From 1bbee40a16c0c5da58698e2892ba33f836eedb70 Mon Sep 17 00:00:00 2001 From: jiangweixing Date: Mon, 6 Jul 2020 20:06:29 +0800 Subject: [PATCH] feat: delete weex bridge & reactive bridge --- WeexGcanvas.podspec | 40 - bridges/react-native-gcanvas/README.md | 1 - .../react-native-gcanvas/android/.gitignore | 2 - .../react-native-gcanvas/android/build.gradle | 45 - .../android/proguard-rules.pro | 21 - .../android/src/main/AndroidManifest.xml | 2 - .../gcanvas/bridges/rn/GReactModule.java | 285 - .../gcanvas/bridges/rn/GReactPackage.java | 37 - .../gcanvas/bridges/rn/GReactTextureView.java | 47 - .../gcanvas/bridges/rn/GReactViewManager.java | 48 - .../bridges/rn/bridge/RNJSCallbackArray.java | 181 - .../rn/bridge/RNJSCallbackDataFactory.java | 21 - .../bridges/rn/bridge/RNJSCallbackMap.java | 177 - .../android/src/main/res/values/strings.xml | 3 - .../components/GCanvasComponent.js | 18 - bridges/react-native-gcanvas/index.js | 5 - .../ios/RCTGCanvas.xcodeproj/project.pbxproj | 365 - .../ios/RCTGCanvasModule.h | 29 - .../ios/RCTGCanvasModule.m | 160 - .../react-native-gcanvas/ios/RCTGCanvasView.h | 49 - .../react-native-gcanvas/ios/RCTGCanvasView.m | 70 - .../ios/RCTGCanvasViewManager.h | 26 - .../ios/RCTGCanvasViewManager.m | 37 - bridges/react-native-gcanvas/package.json | 16 - .../android/weex_bridge/.gitignore | 2 - .../android/weex_bridge/build.gradle | 50 - .../android/weex_bridge/proguard-rules.pro | 25 - .../weex_bridge/src/main/AndroidManifest.xml | 3 - .../bridges/weex/GCanvasWeexModule.java | 341 - .../gcanvas/bridges/weex/GWXTextureView.java | 48 - .../bridges/weex/WXGCanvasWeexComponent.java | 142 - .../weex/bridge/WeexJSCallbackArray.java | 116 - .../bridge/WeexJSCallbackDataFactory.java | 20 - .../weex/bridge/WeexJSCallbackMap.java | 136 - .../android/weex_playground/.gitignore | 2 - .../android/weex_playground/build.gradle | 101 - .../weex_playground/proguard-rules.pro | 34 - .../src/main/AndroidManifest.xml | 160 - .../src/main/assets/animation.js | 2295 ------- .../src/main/assets/component/a-demo.js | 2087 ------ .../main/assets/component/countdown-demo.js | 2288 ------- .../src/main/assets/component/image-demo.js | 2336 ------- .../src/main/assets/component/input-demo.js | 2351 ------- .../main/assets/component/list/list-basic.js | 319 - .../component/list/list-demo-horizon.js | 1230 ---- .../main/assets/component/list/list-demo.js | 1231 ---- .../src/main/assets/component/marquee-demo.js | 2151 ------ .../main/assets/component/navigator-demo.js | 3054 --------- .../main/assets/component/process-bar-demo.js | 2165 ------ .../main/assets/component/scroller-demo.js | 2326 ------- .../assets/component/slider-neighbor/index.js | 264 - .../slider-neighbor/slider-neighbor-item.js | 141 - .../slider-neighbor/slider-neighbor-page.js | 221 - .../src/main/assets/component/slider/index.js | 2748 -------- .../assets/component/slider/slider-item.js | 126 - .../assets/component/slider/slider-page.js | 208 - .../assets/component/tabbar/tabbar-demo.js | 3030 --------- .../assets/component/tabbar/tabbar-item.js | 157 - .../src/main/assets/component/text-demo.js | 2637 ------- .../src/main/assets/component/video-demo.js | 2236 ------ .../src/main/assets/component/web-demo.js | 2286 ------- .../weex_playground/src/main/assets/error.js | 2217 ------ .../src/main/assets/geolocation.js | 183 - .../weex_playground/src/main/assets/hello.js | 88 - .../src/main/assets/iconfont.js | 184 - .../weex_playground/src/main/assets/index.js | 3160 --------- .../src/main/assets/linear-gradient.js | 367 - .../src/main/assets/module/clipboard.js | 2321 ------- .../src/main/assets/module/componentRect.js | 563 -- .../src/main/assets/module/instance-api.js | 2225 ------ .../src/main/assets/module/modal.js | 2311 ------- .../src/main/assets/module/picker-demo.js | 2353 ------- .../src/main/assets/module/storage-demo.js | 2331 ------- .../src/main/assets/module/stream-demo.js | 2451 ------- .../src/main/assets/module/websocket-demo.js | 2412 ------- .../src/main/assets/showcase/calculator.js | 2506 ------- .../assets/showcase/dropdown/dropdown-demo.js | 638 -- .../assets/showcase/dropdown/we-dropdown.js | 357 - .../src/main/assets/showcase/minesweeper.js | 345 - .../assets/showcase/new-fashion/banner.js | 116 - .../assets/showcase/new-fashion/banners.js | 235 - .../main/assets/showcase/new-fashion/brand.js | 359 - .../assets/showcase/new-fashion/category.js | 791 --- .../assets/showcase/new-fashion/coupon.js | 209 - .../assets/showcase/new-fashion/fashion.js | 361 - .../main/assets/showcase/new-fashion/goods.js | 321 - .../assets/showcase/new-fashion/headlines.js | 479 -- .../main/assets/showcase/new-fashion/index.js | 3139 --------- .../main/assets/showcase/new-fashion/link.js | 109 - .../main/assets/showcase/new-fashion/main.js | 6051 ----------------- .../main/assets/showcase/new-fashion/match.js | 273 - .../assets/showcase/new-fashion/resource.js | 333 - .../main/assets/showcase/new-fashion/scene.js | 506 -- .../src/main/assets/showcase/pseudo-class.js | 2425 ------- .../src/main/assets/showcase/ui.js | 2441 ------- .../src/main/assets/style/index.js | 3496 ---------- .../src/main/assets/style/style-box.js | 2629 ------- .../src/main/assets/style/style-flex.js | 2982 -------- .../src/main/assets/style/style-item.js | 128 - .../src/main/assets/syntax/hello-world-1.js | 77 - .../src/main/assets/syntax/hello-world-2.js | 94 - .../src/main/assets/syntax/hello-world-3.js | 114 - .../src/main/assets/syntax/hello-world-4.js | 136 - .../src/main/assets/syntax/hello-world-5.js | 144 - .../src/main/assets/syntax/hello-world.js | 144 - .../src/main/assets/syntax/index.js | 3285 --------- .../main/assets/syntax/script-component.js | 180 - .../src/main/assets/syntax/script-data.js | 165 - .../src/main/assets/syntax/script-events.js | 176 - .../src/main/assets/syntax/script-instance.js | 145 - .../main/assets/syntax/script-lifecycle.js | 130 - .../src/main/assets/syntax/script-module.js | 129 - .../src/main/assets/syntax/script-options.js | 139 - .../src/main/assets/syntax/template-class.js | 142 - .../main/assets/syntax/template-content.js | 149 - .../src/main/assets/syntax/template-event.js | 195 - .../src/main/assets/syntax/template-if.js | 151 - .../assets/syntax/template-repeat-update.js | 177 - .../src/main/assets/syntax/template-repeat.js | 261 - .../src/main/assets/syntax/template-style.js | 121 - .../src/main/assets/template.js | 2251 ------ .../weex_playground/src/main/assets/test.js | 128 - .../src/main/assets/vue/animation.js | 709 -- .../src/main/assets/vue/components/a.js | 438 -- .../main/assets/vue/components/countdown.js | 640 -- .../src/main/assets/vue/components/image.js | 641 -- .../src/main/assets/vue/components/input.js | 364 - .../src/main/assets/vue/components/list.js | 246 - .../src/main/assets/vue/components/marquee.js | 534 -- .../main/assets/vue/components/navigator.js | 1059 --- .../main/assets/vue/components/scroller.js | 304 - .../src/main/assets/vue/components/slider.js | 898 --- .../src/main/assets/vue/components/tabbar.js | 599 -- .../src/main/assets/vue/components/text.js | 513 -- .../src/main/assets/vue/components/video.js | 396 -- .../src/main/assets/vue/components/web.js | 459 -- .../src/main/assets/vue/hello.js | 99 - .../src/main/assets/vue/iconfont.js | 204 - .../src/main/assets/vue/index.js | 496 -- .../src/main/assets/vue/modules/clipboard.js | 691 -- .../main/assets/vue/modules/instance-api.js | 304 - .../src/main/assets/vue/modules/modal.js | 581 -- .../src/main/assets/vue/modules/storage.js | 381 -- .../src/main/assets/vue/modules/stream.js | 477 -- .../main/assets/vue/showcase/calculator.js | 340 - .../src/main/assets/vue/showcase/itemlist.js | 1062 --- .../main/assets/vue/showcase/new-fashion.js | 3302 --------- .../src/main/assets/vue/showcase/progress.js | 336 - .../src/main/assets/vue/style/index.js | 1566 ----- .../src/main/assets/vue/style/style-box.js | 780 --- .../src/main/assets/vue/style/style-flex.js | 919 --- .../src/main/assets/vue/style/style-item.js | 155 - .../main/assets/vue/syntax/hello-world-1.js | 95 - .../main/assets/vue/syntax/hello-world-2.js | 112 - .../main/assets/vue/syntax/hello-world-3.js | 127 - .../main/assets/vue/syntax/hello-world-4.js | 167 - .../main/assets/vue/syntax/hello-world-5.js | 173 - .../src/main/assets/vue/syntax/hello-world.js | 183 - .../assets/vue/syntax/script-component.js | 224 - .../src/main/assets/vue/syntax/script-data.js | 214 - .../main/assets/vue/syntax/script-events.js | 161 - .../main/assets/vue/syntax/script-instance.js | 196 - .../assets/vue/syntax/script-lifecycle.js | 155 - .../main/assets/vue/syntax/script-module.js | 156 - .../main/assets/vue/syntax/script-options.js | 182 - .../main/assets/vue/syntax/template-class.js | 161 - .../assets/vue/syntax/template-content.js | 189 - .../main/assets/vue/syntax/template-event.js | 197 - .../src/main/assets/vue/syntax/template-if.js | 165 - .../vue/syntax/template-repeat-update.js | 195 - .../main/assets/vue/syntax/template-repeat.js | 170 - .../main/assets/vue/syntax/template-style.js | 144 - .../src/main/assets/vue/template.js | 796 --- .../src/main/ic_launcher-web.png | Bin 19935 -> 0 bytes .../com/alibaba/weex/BenchmarkActivity.java | 227 - .../java/com/alibaba/weex/IndexActivity.java | 198 - .../java/com/alibaba/weex/SplashActivity.java | 66 - .../main/java/com/alibaba/weex/Utility.java | 91 - .../java/com/alibaba/weex/WXApplication.java | 183 - .../java/com/alibaba/weex/WXBaseActivity.java | 31 - .../com/alibaba/weex/WXDebugActivity.java | 96 - .../java/com/alibaba/weex/WXPageActivity.java | 597 -- .../weex/commons/AbstractWeexActivity.java | 252 - .../weex/commons/SimpleWeexActivity.java | 47 - .../weex/commons/WXAnalyzerDelegate.java | 193 - .../weex/commons/adapter/BlurTool.java | 326 - .../commons/adapter/BlurTransformation.java | 52 - .../adapter/DefaultWebSocketAdapter.java | 188 - .../DefaultWebSocketAdapterFactory.java | 33 - .../commons/adapter/FrescoImageAdapter.java | 175 - .../weex/commons/adapter/ImageAdapter.java | 95 - .../commons/adapter/JSExceptionAdapter.java | 36 - .../alibaba/weex/commons/util/AssertUtil.java | 30 - .../weex/commons/util/RequestIdGenerator.java | 15 - .../alibaba/weex/commons/util/ScreenUtil.java | 126 - .../weex/commons/util/WSEventReporter.java | 192 - .../com/alibaba/weex/constants/Constants.java | 34 - .../extend/WXInstanceStatisticsListener.java | 82 - .../adapter/InterceptWXHttpAdapter.java | 80 - .../weex/extend/module/GeolocationModule.java | 159 - .../alibaba/weex/extend/module/MyModule.java | 34 - .../weex/extend/module/RenderModule.java | 33 - .../weex/extend/module/SyncTestModule.java | 71 - .../weex/extend/module/WXEventModule.java | 85 - .../module/location/DefaultLocation.java | 370 - .../extend/module/location/ILocatable.java | 94 - .../module/location/LocationFactory.java | 30 - .../alibaba/weex/extend/view/WXMaskView.java | 34 - .../alibaba/weex/https/HotRefreshManager.java | 119 - .../com/alibaba/weex/https/WXHttpManager.java | 60 - .../alibaba/weex/https/WXHttpResponse.java | 25 - .../com/alibaba/weex/https/WXHttpTask.java | 26 - .../weex/https/WXOkHttpDispatcher.java | 103 - .../alibaba/weex/https/WXRequestListener.java | 26 - .../alibaba/weex/util/CoverageDataDumper.java | 36 - .../alibaba/weex/util/JacocoCodeCoverage.java | 93 - .../com/google/zxing/BarcodeFormat.java | 77 - .../com/google/zxing/Binarizer.java | 87 - .../com/google/zxing/BinaryBitmap.java | 150 - .../com/google/zxing/ChecksumException.java | 47 - .../com/google/zxing/DecodeHintType.java | 122 - .../com/google/zxing/Dimension.java | 62 - .../com/google/zxing/EncodeHintType.java | 98 - .../com/google/zxing/FormatException.java | 47 - .../google/zxing/InvertedLuminanceSource.java | 88 - .../com/google/zxing/LuminanceSource.java | 157 - .../com/google/zxing/MultiFormatReader.java | 180 - .../com/google/zxing/MultiFormatWriter.java | 105 - .../com/google/zxing/NotFoundException.java | 40 - .../zxing/PlanarYUVLuminanceSource.java | 169 - .../com/google/zxing/RGBLuminanceSource.java | 142 - .../java_zxing/com/google/zxing/Reader.java | 69 - .../com/google/zxing/ReaderException.java | 49 - .../java_zxing/com/google/zxing/Result.java | 133 - .../com/google/zxing/ResultMetadataType.java | 97 - .../com/google/zxing/ResultPoint.java | 138 - .../com/google/zxing/ResultPointCallback.java | 29 - .../java_zxing/com/google/zxing/Writer.java | 59 - .../com/google/zxing/WriterException.java | 38 - .../zxing/aztec/AztecDetectorResult.java | 52 - .../com/google/zxing/aztec/AztecReader.java | 117 - .../com/google/zxing/aztec/AztecWriter.java | 93 - .../google/zxing/aztec/decoder/Decoder.java | 338 - .../google/zxing/aztec/detector/Detector.java | 600 -- .../google/zxing/aztec/encoder/AztecCode.java | 89 - .../zxing/aztec/encoder/BinaryShiftToken.java | 60 - .../google/zxing/aztec/encoder/Encoder.java | 346 - .../zxing/aztec/encoder/HighLevelEncoder.java | 307 - .../zxing/aztec/encoder/SimpleToken.java | 45 - .../com/google/zxing/aztec/encoder/State.java | 169 - .../com/google/zxing/aztec/encoder/Token.java | 46 - .../client/android/AmbientLightManager.java | 87 - .../zxing/client/android/BeepManager.java | 133 - .../zxing/client/android/CaptureActivity.java | 822 --- .../android/CaptureActivityHandler.java | 164 - .../google/zxing/client/android/Contents.java | 115 - .../client/android/DecodeFormatManager.java | 106 - .../zxing/client/android/DecodeHandler.java | 132 - .../client/android/DecodeHintManager.java | 236 - .../zxing/client/android/DecodeThread.java | 113 - .../zxing/client/android/FinishListener.java | 49 - .../zxing/client/android/HelpActivity.java | 68 - .../zxing/client/android/HttpHelper.java | 228 - .../zxing/client/android/InactivityTimer.java | 116 - .../zxing/client/android/IntentSource.java | 26 - .../google/zxing/client/android/Intents.java | 278 - .../zxing/client/android/LocaleManager.java | 188 - .../client/android/PreferencesActivity.java | 72 - .../client/android/PreferencesFragment.java | 129 - .../android/ScanFromWebPageManager.java | 77 - .../ViewfinderResultPointCallback.java | 35 - .../zxing/client/android/ViewfinderView.java | 191 - .../android/book/BrowseBookListener.java | 62 - .../book/SearchBookContentsActivity.java | 274 - .../book/SearchBookContentsAdapter.java | 61 - .../book/SearchBookContentsListItem.java | 85 - .../book/SearchBookContentsResult.java | 66 - .../android/camera/AutoFocusManager.java | 132 - .../camera/CameraConfigurationManager.java | 252 - .../camera/CameraConfigurationUtils.java | 447 -- .../client/android/camera/CameraManager.java | 338 - .../client/android/camera/FrontLightMode.java | 43 - .../android/camera/PreviewCallback.java | 56 - .../android/camera/open/CameraFacing.java | 24 - .../android/camera/open/OpenCamera.java | 52 - .../camera/open/OpenCameraInterface.java | 95 - .../android/clipboard/ClipboardInterface.java | 58 - .../client/android/encode/ContactEncoder.java | 96 - .../client/android/encode/EncodeActivity.java | 242 - .../client/android/encode/Formatter.java | 33 - .../android/encode/MECARDContactEncoder.java | 97 - .../client/android/encode/QRCodeEncoder.java | 389 -- .../android/encode/VCardContactEncoder.java | 155 - .../android/encode/VCardFieldFormatter.java | 79 - .../encode/VCardTelDisplayFormatter.java | 73 - .../client/android/history/DBHelper.java | 60 - .../android/history/HistoryActivity.java | 163 - .../client/android/history/HistoryItem.java | 50 - .../android/history/HistoryItemAdapter.java | 72 - .../android/history/HistoryManager.java | 366 - .../result/AddressBookResultHandler.java | 219 - .../android/result/CalendarResultHandler.java | 186 - .../result/EmailAddressResultHandler.java | 71 - .../android/result/GeoResultHandler.java | 67 - .../android/result/ISBNResultHandler.java | 76 - .../android/result/ProductResultHandler.java | 83 - .../android/result/ResultButtonListener.java | 40 - .../client/android/result/ResultHandler.java | 513 -- .../android/result/ResultHandlerFactory.java | 64 - .../android/result/SMSResultHandler.java | 85 - .../android/result/TelResultHandler.java | 82 - .../android/result/TextResultHandler.java | 76 - .../android/result/URIResultHandler.java | 105 - .../android/result/WifiResultHandler.java | 92 - .../supplement/BookResultInfoRetriever.java | 106 - .../ProductResultInfoRetriever.java | 83 - .../supplement/SupplementalInfoRetriever.java | 181 - .../result/supplement/TitleRetriever.java | 71 - .../supplement/URIResultInfoRetriever.java | 64 - .../zxing/client/android/share/AppInfo.java | 65 - .../android/share/AppPickerActivity.java | 64 - .../client/android/share/BookMarkColumns.java | 68 - .../client/android/share/BookmarkAdapter.java | 84 - .../android/share/BookmarkPickerActivity.java | 89 - .../android/share/LoadPackagesAsyncTask.java | 116 - .../client/android/share/ShareActivity.java | 299 - .../client/android/wifi/NetworkType.java | 41 - .../android/wifi/WifiConfigManager.java | 226 - .../result/AbstractDoCoMoResultParser.java | 39 - .../result/AddressBookAUResultParser.java | 91 - .../result/AddressBookDoCoMoResultParser.java | 92 - .../result/AddressBookParsedResult.java | 208 - .../client/result/BizcardResultParser.java | 100 - .../result/BookmarkDoCoMoResultParser.java | 41 - .../client/result/CalendarParsedResult.java | 246 - .../result/EmailAddressParsedResult.java | 96 - .../result/EmailAddressResultParser.java | 85 - .../result/EmailDoCoMoResultParser.java | 64 - .../result/ExpandedProductParsedResult.java | 204 - .../result/ExpandedProductResultParser.java | 218 - .../zxing/client/result/GeoParsedResult.java | 101 - .../zxing/client/result/GeoResultParser.java | 73 - .../zxing/client/result/ISBNParsedResult.java | 40 - .../zxing/client/result/ISBNResultParser.java | 50 - .../zxing/client/result/ParsedResult.java | 67 - .../zxing/client/result/ParsedResultType.java | 40 - .../client/result/ProductParsedResult.java | 50 - .../client/result/ProductResultParser.java | 55 - .../zxing/client/result/ResultParser.java | 259 - .../client/result/SMSMMSResultParser.java | 109 - .../zxing/client/result/SMSParsedResult.java | 111 - .../client/result/SMSTOMMSTOResultParser.java | 52 - .../zxing/client/result/SMTPResultParser.java | 54 - .../zxing/client/result/TelParsedResult.java | 55 - .../zxing/client/result/TelResultParser.java | 42 - .../zxing/client/result/TextParsedResult.java | 49 - .../zxing/client/result/URIParsedResult.java | 90 - .../zxing/client/result/URIResultParser.java | 63 - .../client/result/URLTOResultParser.java | 45 - .../client/result/VCardResultParser.java | 357 - .../client/result/VEventResultParser.java | 119 - .../zxing/client/result/VINParsedResult.java | 104 - .../zxing/client/result/VINResultParser.java | 209 - .../zxing/client/result/WifiParsedResult.java | 67 - .../zxing/client/result/WifiResultParser.java | 51 - .../com/google/zxing/common/BitArray.java | 375 - .../com/google/zxing/common/BitMatrix.java | 449 -- .../com/google/zxing/common/BitSource.java | 111 - .../google/zxing/common/CharacterSetECI.java | 118 - .../google/zxing/common/DecoderResult.java | 113 - .../zxing/common/DefaultGridSampler.java | 88 - .../google/zxing/common/DetectorResult.java | 46 - .../common/GlobalHistogramBinarizer.java | 196 - .../com/google/zxing/common/GridSampler.java | 173 - .../google/zxing/common/HybridBinarizer.java | 237 - .../zxing/common/PerspectiveTransform.java | 156 - .../com/google/zxing/common/StringUtils.java | 210 - .../zxing/common/detector/MathUtils.java | 49 - .../detector/MonochromeRectangleDetector.java | 215 - .../detector/WhiteRectangleDetector.java | 342 - .../zxing/common/reedsolomon/GenericGF.java | 166 - .../common/reedsolomon/GenericGFPoly.java | 264 - .../reedsolomon/ReedSolomonDecoder.java | 190 - .../reedsolomon/ReedSolomonEncoder.java | 74 - .../reedsolomon/ReedSolomonException.java | 31 - .../zxing/datamatrix/DataMatrixReader.java | 161 - .../zxing/datamatrix/DataMatrixWriter.java | 180 - .../datamatrix/decoder/BitMatrixParser.java | 440 -- .../zxing/datamatrix/decoder/DataBlock.java | 118 - .../decoder/DecodedBitStreamParser.java | 497 -- .../zxing/datamatrix/decoder/Decoder.java | 136 - .../zxing/datamatrix/decoder/Version.java | 237 - .../zxing/datamatrix/detector/Detector.java | 440 -- .../datamatrix/encoder/ASCIIEncoder.java | 82 - .../datamatrix/encoder/Base256Encoder.java | 74 - .../zxing/datamatrix/encoder/C40Encoder.java | 180 - .../encoder/DataMatrixSymbolInfo144.java | 35 - .../datamatrix/encoder/DefaultPlacement.java | 198 - .../datamatrix/encoder/EdifactEncoder.java | 137 - .../zxing/datamatrix/encoder/Encoder.java | 25 - .../datamatrix/encoder/EncoderContext.java | 134 - .../datamatrix/encoder/ErrorCorrection.java | 184 - .../datamatrix/encoder/HighLevelEncoder.java | 448 -- .../zxing/datamatrix/encoder/SymbolInfo.java | 240 - .../datamatrix/encoder/SymbolShapeHint.java | 29 - .../zxing/datamatrix/encoder/TextEncoder.java | 85 - .../zxing/datamatrix/encoder/X12Encoder.java | 84 - .../google/zxing/maxicode/MaxiCodeReader.java | 126 - .../maxicode/decoder/BitMatrixParser.java | 88 - .../decoder/DecodedBitStreamParser.java | 197 - .../zxing/maxicode/decoder/Decoder.java | 114 - .../google/zxing/multi/ByQuadrantReader.java | 115 - .../multi/GenericMultipleBarcodeReader.java | 175 - .../zxing/multi/MultipleBarcodeReader.java | 39 - .../zxing/multi/qrcode/QRCodeMultiReader.java | 181 - .../multi/qrcode/detector/MultiDetector.java | 73 - .../detector/MultiFinderPatternFinder.java | 311 - .../com/google/zxing/oned/CodaBarReader.java | 345 - .../com/google/zxing/oned/CodaBarWriter.java | 130 - .../com/google/zxing/oned/Code128Reader.java | 539 -- .../com/google/zxing/oned/Code128Writer.java | 200 - .../com/google/zxing/oned/Code39Reader.java | 324 - .../com/google/zxing/oned/Code39Writer.java | 89 - .../com/google/zxing/oned/Code93Reader.java | 287 - .../com/google/zxing/oned/Code93Writer.java | 115 - .../com/google/zxing/oned/EAN13Reader.java | 138 - .../com/google/zxing/oned/EAN13Writer.java | 94 - .../com/google/zxing/oned/EAN8Reader.java | 75 - .../com/google/zxing/oned/EAN8Writer.java | 84 - .../zxing/oned/EANManufacturerOrgSupport.java | 171 - .../com/google/zxing/oned/ITFReader.java | 354 - .../com/google/zxing/oned/ITFWriter.java | 76 - .../zxing/oned/MultiFormatOneDReader.java | 112 - .../zxing/oned/MultiFormatUPCEANReader.java | 124 - .../com/google/zxing/oned/OneDReader.java | 297 - .../zxing/oned/OneDimensionalCodeWriter.java | 129 - .../com/google/zxing/oned/UPCAReader.java | 86 - .../com/google/zxing/oned/UPCAWriter.java | 73 - .../zxing/oned/UPCEANExtension2Support.java | 112 - .../zxing/oned/UPCEANExtension5Support.java | 181 - .../zxing/oned/UPCEANExtensionSupport.java | 40 - .../com/google/zxing/oned/UPCEANReader.java | 398 -- .../com/google/zxing/oned/UPCEANWriter.java | 34 - .../com/google/zxing/oned/UPCEReader.java | 180 - .../com/google/zxing/oned/UPCEWriter.java | 77 - .../zxing/oned/rss/AbstractRSSReader.java | 133 - .../google/zxing/oned/rss/DataCharacter.java | 56 - .../google/zxing/oned/rss/FinderPattern.java | 62 - .../com/google/zxing/oned/rss/Pair.java | 41 - .../google/zxing/oned/rss/RSS14Reader.java | 477 -- .../com/google/zxing/oned/rss/RSSUtils.java | 159 - .../oned/rss/expanded/BitArrayBuilder.java | 85 - .../zxing/oned/rss/expanded/ExpandedPair.java | 104 - .../zxing/oned/rss/expanded/ExpandedRow.java | 76 - .../oned/rss/expanded/RSSExpandedReader.java | 783 --- .../expanded/decoders/AI013103decoder.java | 49 - .../expanded/decoders/AI01320xDecoder.java | 57 - .../expanded/decoders/AI01392xDecoder.java | 68 - .../expanded/decoders/AI01393xDecoder.java | 78 - .../expanded/decoders/AI013x0x1xDecoder.java | 109 - .../expanded/decoders/AI013x0xDecoder.java | 57 - .../expanded/decoders/AI01AndOtherAIs.java | 58 - .../rss/expanded/decoders/AI01decoder.java | 81 - .../expanded/decoders/AI01weightDecoder.java | 60 - .../decoders/AbstractExpandedDecoder.java | 93 - .../rss/expanded/decoders/AnyAIDecoder.java | 50 - .../expanded/decoders/BlockParsedResult.java | 54 - .../decoders/CurrentParsingState.java | 83 - .../rss/expanded/decoders/DecodedChar.java | 52 - .../expanded/decoders/DecodedInformation.java | 64 - .../rss/expanded/decoders/DecodedNumeric.java | 77 - .../rss/expanded/decoders/DecodedObject.java | 44 - .../rss/expanded/decoders/FieldParser.java | 291 - .../decoders/GeneralAppIdDecoder.java | 469 -- .../com/google/zxing/pdf417/PDF417Common.java | 459 -- .../com/google/zxing/pdf417/PDF417Reader.java | 135 - .../zxing/pdf417/PDF417ResultMetadata.java | 61 - .../com/google/zxing/pdf417/PDF417Writer.java | 176 - .../zxing/pdf417/decoder/BarcodeMetadata.java | 58 - .../zxing/pdf417/decoder/BarcodeValue.java | 68 - .../zxing/pdf417/decoder/BoundingBox.java | 176 - .../google/zxing/pdf417/decoder/Codeword.java | 84 - .../decoder/DecodedBitStreamParser.java | 641 -- .../zxing/pdf417/decoder/DetectionResult.java | 296 - .../pdf417/decoder/DetectionResultColumn.java | 96 - .../DetectionResultRowIndicatorColumn.java | 268 - .../pdf417/decoder/PDF417CodewordDecoder.java | 117 - .../pdf417/decoder/PDF417ScanningDecoder.java | 629 -- .../pdf417/decoder/ec/ErrorCorrection.java | 187 - .../zxing/pdf417/decoder/ec/ModulusGF.java | 112 - .../zxing/pdf417/decoder/ec/ModulusPoly.java | 260 - .../zxing/pdf417/detector/Detector.java | 344 - .../pdf417/detector/PDF417DetectorResult.java | 45 - .../zxing/pdf417/encoder/BarcodeMatrix.java | 82 - .../zxing/pdf417/encoder/BarcodeRow.java | 85 - .../zxing/pdf417/encoder/Compaction.java | 26 - .../zxing/pdf417/encoder/Dimensions.java | 54 - .../google/zxing/pdf417/encoder/PDF417.java | 769 --- .../pdf417/encoder/PDF417ErrorCorrection.java | 204 - .../encoder/PDF417HighLevelEncoder.java | 582 -- .../com/google/zxing/qrcode/QRCodeReader.java | 218 - .../com/google/zxing/qrcode/QRCodeWriter.java | 118 - .../zxing/qrcode/decoder/BitMatrixParser.java | 245 - .../zxing/qrcode/decoder/DataBlock.java | 122 - .../google/zxing/qrcode/decoder/DataMask.java | 163 - .../decoder/DecodedBitStreamParser.java | 354 - .../google/zxing/qrcode/decoder/Decoder.java | 203 - .../qrcode/decoder/ErrorCorrectionLevel.java | 60 - .../qrcode/decoder/FormatInformation.java | 172 - .../com/google/zxing/qrcode/decoder/Mode.java | 102 - .../qrcode/decoder/QRCodeDecoderMetaData.java | 57 - .../google/zxing/qrcode/decoder/Version.java | 578 -- .../qrcode/detector/AlignmentPattern.java | 59 - .../detector/AlignmentPatternFinder.java | 277 - .../zxing/qrcode/detector/Detector.java | 405 -- .../zxing/qrcode/detector/FinderPattern.java | 82 - .../qrcode/detector/FinderPatternFinder.java | 680 -- .../qrcode/detector/FinderPatternInfo.java | 49 - .../zxing/qrcode/encoder/BlockPair.java | 37 - .../zxing/qrcode/encoder/ByteMatrix.java | 98 - .../google/zxing/qrcode/encoder/Encoder.java | 578 -- .../google/zxing/qrcode/encoder/MaskUtil.java | 217 - .../zxing/qrcode/encoder/MatrixUtil.java | 485 -- .../google/zxing/qrcode/encoder/QRCode.java | 108 - .../res/drawable-hdpi/ic_action_refresh.png | Bin 663 -> 0 bytes .../main/res/drawable-hdpi/ic_action_scan.png | Bin 304 -> 0 bytes .../res/drawable-mdpi/ic_action_refresh.png | Bin 508 -> 0 bytes .../main/res/drawable-mdpi/ic_action_scan.png | Bin 191 -> 0 bytes .../main/res/drawable-v21/ic_menu_camera.xml | 30 - .../main/res/drawable-v21/ic_menu_gallery.xml | 27 - .../main/res/drawable-v21/ic_menu_manage.xml | 27 - .../main/res/drawable-v21/ic_menu_send.xml | 27 - .../main/res/drawable-v21/ic_menu_share.xml | 27 - .../res/drawable-v21/ic_menu_slideshow.xml | 27 - .../res/drawable-xhdpi/ic_action_refresh.png | Bin 895 -> 0 bytes .../res/drawable-xhdpi/ic_action_scan.png | Bin 344 -> 0 bytes .../res/drawable-xxhdpi/ic_action_refresh.png | Bin 1239 -> 0 bytes .../res/drawable-xxhdpi/ic_action_scan.png | Bin 588 -> 0 bytes .../src/main/res/drawable/side_nav_bar.xml | 27 - .../src/main/res/layout/activity_dynamic.xml | 45 - .../main/res/layout/activity_game_detail.xml | 13 - .../src/main/res/layout/activity_gview.xml | 34 - .../src/main/res/layout/activity_index.xml | 46 - .../main/res/layout/activity_multiview.xml | 20 - .../src/main/res/layout/activity_splash.xml | 36 - .../src/main/res/layout/activity_wxpage.xml | 79 - .../src/main/res/layout/app_bar_main.xml | 53 - .../main/res/layout/app_picker_list_item.xml | 38 - .../res/layout/bookmark_picker_list_item.xml | 38 - .../src/main/res/layout/camera.xml | 36 - .../src/main/res/layout/capture.xml | 204 - .../src/main/res/layout/catalog_item.xml | 32 - .../src/main/res/layout/content_dynamic.xml | 42 - .../src/main/res/layout/content_main.xml | 32 - .../src/main/res/layout/content_wx_main.xml | 42 - .../src/main/res/layout/encode.xml | 53 - .../src/main/res/layout/hello_weex.xml | 37 - .../src/main/res/layout/help.xml | 21 - .../src/main/res/layout/history_list_item.xml | 38 - .../src/main/res/layout/id_stub.xml | 75 - .../src/main/res/layout/main.xml | 78 - .../main/res/layout/search_book_contents.xml | 54 - .../layout/search_book_contents_header.xml | 24 - .../layout/search_book_contents_list_item.xml | 40 - .../src/main/res/layout/share.xml | 95 - .../src/main/res/menu/capture.xml | 44 - .../src/main/res/menu/encode.xml | 28 - .../src/main/res/menu/history.xml | 28 - .../src/main/res/menu/main.xml | 32 - .../src/main/res/menu/main_scan.xml | 27 - .../src/main/res/menu/refresh.xml | 27 - .../src/main/res/mipmap-hdpi/gcanvas_icon.png | Bin 8296 -> 0 bytes .../src/main/res/mipmap-mdpi/gcanvas_icon.png | Bin 8296 -> 0 bytes .../main/res/mipmap-xhdpi/gcanvas_icon.png | Bin 8296 -> 0 bytes .../main/res/mipmap-xxhdpi/gcanvas_icon.png | Bin 8296 -> 0 bytes .../main/res/mipmap-xxxhdpi/gcanvas_icon.png | Bin 8296 -> 0 bytes .../weex_playground/src/main/res/raw/beep.ogg | Bin 6401 -> 0 bytes .../src/main/res/values-v21/styles.xml | 27 - .../src/main/res/values-w820dp/dimens.xml | 24 - .../src/main/res/values-zh-rCN/strings.xml | 147 - .../src/main/res/values/attrs.xml | 35 - .../src/main/res/values/colors.xml | 26 - .../src/main/res/values/dimens.xml | 28 - .../src/main/res/values/drawables.xml | 26 - .../src/main/res/values/scan_code_arrays.xml | 62 - .../src/main/res/values/scan_code_colors.xml | 29 - .../src/main/res/values/scan_code_dimens.xml | 20 - .../src/main/res/values/scan_code_ids.xml | 25 - .../src/main/res/values/scan_code_strings.xml | 140 - .../src/main/res/values/scan_code_styles.xml | 48 - .../src/main/res/values/strings.xml | 49 - .../src/main/res/values/styles.xml | 50 - .../src/main/res/values/themes.xml | 24 - .../src/main/res/xml/preferences.xml | 135 - .../main/res/xml/scan_code_preferences.xml | 130 - .../android/weex_playground/tools/weex.jks | Bin 2174 -> 0 bytes .../project.pbxproj | 503 -- .../xcschemes/GCanvasPlayground.xcscheme | 91 - .../GCanvasPlayground/AppDelegate.h | 28 - .../GCanvasPlayground/AppDelegate.m | 202 - .../AppIcon.appiconset/Contents.json | 111 - .../AppIcon.appiconset/Icon-29.png | Bin 2323 -> 0 bytes .../AppIcon.appiconset/Icon-29@2x-1.png | Bin 3969 -> 0 bytes .../AppIcon.appiconset/Icon-29@2x.png | Bin 3969 -> 0 bytes .../AppIcon.appiconset/Icon-29@3x.png | Bin 5876 -> 0 bytes .../AppIcon.appiconset/Icon-40.png | Bin 2935 -> 0 bytes .../AppIcon.appiconset/Icon-40@2x-1.png | Bin 5433 -> 0 bytes .../AppIcon.appiconset/Icon-40@2x.png | Bin 5433 -> 0 bytes .../AppIcon.appiconset/Icon-40@3x.png | Bin 7209 -> 0 bytes .../AppIcon.appiconset/Icon-60@2x.png | Bin 7997 -> 0 bytes .../AppIcon.appiconset/Icon-60@3x.png | Bin 10605 -> 0 bytes .../AppIcon.appiconset/Icon-76.png | Bin 5172 -> 0 bytes .../AppIcon.appiconset/Icon-76@2x.png | Bin 9865 -> 0 bytes .../AppIcon.appiconset/Icon-83.5@2x.png | Bin 9956 -> 0 bytes .../Assets.xcassets/Contents.json | 6 - .../LaunchImage.launchimage/Contents.json | 150 - .../Default-4.7@2x.png | Bin 23453 -> 0 bytes .../Default-568h@2x-1.png | Bin 23051 -> 0 bytes .../Default-568h@2x.png | Bin 23051 -> 0 bytes .../LaunchImage.launchimage/Default.png | Bin 17825 -> 0 bytes .../LaunchImage.launchimage/Default@2x-1.png | Bin 22579 -> 0 bytes .../LaunchImage.launchimage/Default@2x.png | Bin 22579 -> 0 bytes .../LaunchImage.launchimage/Default@3x-1.png | Bin 36744 -> 0 bytes .../LaunchImage.launchimage/Default@3x.png | Bin 36744 -> 0 bytes .../back.imageset/Contents.json | 23 - .../Assets.xcassets/back.imageset/back.png | Bin 1244 -> 0 bytes .../Assets.xcassets/back.imageset/back@2x.png | Bin 1646 -> 0 bytes .../Assets.xcassets/back.imageset/back@3x.png | Bin 2179 -> 0 bytes .../delete.imageset/Contents.json | 23 - .../delete.imageset/delete.png | Bin 289 -> 0 bytes .../delete.imageset/delete@2x.png | Bin 504 -> 0 bytes .../delete.imageset/delete@3x.png | Bin 690 -> 0 bytes .../reload.imageset/Contents.json | 23 - .../reload.imageset/reload.png | Bin 542 -> 0 bytes .../reload.imageset/reload@2x.png | Bin 1037 -> 0 bytes .../reload.imageset/reload@3x.png | Bin 1516 -> 0 bytes .../scan.imageset/Contents.json | 23 - .../Assets.xcassets/scan.imageset/scan.png | Bin 1344 -> 0 bytes .../Assets.xcassets/scan.imageset/scan@2x.png | Bin 2458 -> 0 bytes .../Assets.xcassets/scan.imageset/scan@3x.png | Bin 3723 -> 0 bytes .../scan_history.imageset/Contents.json | 23 - .../scan_history.imageset/history.png | Bin 546 -> 0 bytes .../scan_history.imageset/history@2x.png | Bin 1037 -> 0 bytes .../scan_history.imageset/history@3x.png | Bin 1628 -> 0 bytes .../playground/GCanvasPlayground/Info.plist | 54 - .../GCanvasPlayground/MacroDefine.h | 48 - .../Scanner/WXScannerHistoryVC.h | 24 - .../Scanner/WXScannerHistoryVC.m | 224 - .../GCanvasPlayground/Scanner/WXScannerVC.h | 25 - .../GCanvasPlayground/Scanner/WXScannerVC.m | 250 - .../GCanvasPlayground/UIView+Toast.h | 15 - .../GCanvasPlayground/UIView+Toast.m | 101 - .../GCanvasPlayground/UIView+UIThreadCheck.h | 26 - .../GCanvasPlayground/UIView+UIThreadCheck.m | 53 - .../UIViewController+NaviBar.h | 33 - .../UIViewController+NaviBar.m | 144 - .../GCanvasPlayground/ViewController.h | 32 - .../GCanvasPlayground/ViewController.m | 243 - .../extend/component/WXSelectComponent.h | 25 - .../extend/component/WXSelectComponent.m | 154 - .../handler/WXConfigCenterDefaultImpl.h | 25 - .../handler/WXConfigCenterDefaultImpl.m | 45 - .../extend/handler/WXImgLoaderDefaultImpl.h | 24 - .../extend/handler/WXImgLoaderDefaultImpl.m | 62 - .../extend/module/WXEventModule.h | 26 - .../extend/module/WXEventModule.m | 63 - .../extend/module/WXExtModule.h | 26 - .../extend/module/WXExtModule.m | 45 - .../extend/module/WXSyncTestModule.h | 25 - .../extend/module/WXSyncTestModule.m | 49 - .../GCanvasPlayground/gcanvas-icon.png | Bin 28010 -> 0 bytes .../ios/playground/GCanvasPlayground/main.m | 16 - bridges/weex-gcanvas/ios/playground/Podfile | 14 - bridges/weex-gcanvas/ios/sdk/Info.plist | 24 - bridges/weex-gcanvas/ios/sdk/Podfile | 11 - .../ios/sdk/Sources/WXGCanvasComponent.h | 43 - .../ios/sdk/Sources/WXGCanvasComponent.mm | 122 - .../ios/sdk/Sources/WXGCanvasModule.h | 25 - .../ios/sdk/Sources/WXGCanvasModule.m | 234 - .../sdk/WeexGcanvas.xcodeproj/project.pbxproj | 411 -- .../xcschemes/WeexGcanvas.xcscheme | 82 - examples/ReactNativeGCanvasExample/.babelrc | 3 - .../ReactNativeGCanvasExample/.buckconfig | 6 - .../ReactNativeGCanvasExample/.flowconfig | 54 - .../ReactNativeGCanvasExample/.gitattributes | 1 - examples/ReactNativeGCanvasExample/.gitignore | 53 - .../ReactNativeGCanvasExample/.watchmanconfig | 1 - examples/ReactNativeGCanvasExample/App.js | 106 - .../__tests__/App.js | 12 - .../android/app/BUCK | 65 - .../android/app/build.gradle | 151 - .../android/app/proguard-rules.pro | 70 - .../android/app/src/main/AndroidManifest.xml | 32 - .../com/rngcanvassample/MainActivity.java | 18 - .../com/rngcanvassample/MainApplication.java | 47 - .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 3418 -> 0 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 2206 -> 0 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 4842 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 7718 -> 0 bytes .../app/src/main/res/values/strings.xml | 3 - .../app/src/main/res/values/styles.xml | 8 - .../android/build.gradle | 33 - .../android/gradle.properties | 20 - .../ReactNativeGCanvasExample/android/gradlew | 160 - .../android/gradlew.bat | 90 - .../android/keystores/BUCK | 8 - .../keystores/debug.keystore.properties | 4 - .../android/settings.gradle | 3 - examples/ReactNativeGCanvasExample/app.json | 4 - examples/ReactNativeGCanvasExample/index.js | 4 - .../ios/RNGCanvasSample-tvOS/Info.plist | 54 - .../ios/RNGCanvasSample-tvOSTests/Info.plist | 24 - .../RNGCanvasSample.xcodeproj/project.pbxproj | 1489 ---- .../xcschemes/RNGCanvasSample-tvOS.xcscheme | 129 - .../xcschemes/RNGCanvasSample.xcscheme | 129 - .../ios/RNGCanvasSample/AppDelegate.h | 16 - .../ios/RNGCanvasSample/AppDelegate.m | 37 - .../Base.lproj/LaunchScreen.xib | 42 - .../AppIcon.appiconset/Contents.json | 38 - .../Images.xcassets/Contents.json | 6 - .../ios/RNGCanvasSample/Info.plist | 56 - .../ios/RNGCanvasSample/main.m | 18 - .../ios/RNGCanvasSampleTests/Info.plist | 24 - .../RNGCanvasSampleTests.m | 70 - .../ReactNativeGCanvasExample/package.json | 24 - 725 files changed, 190350 deletions(-) delete mode 100644 WeexGcanvas.podspec delete mode 100644 bridges/react-native-gcanvas/README.md delete mode 100644 bridges/react-native-gcanvas/android/.gitignore delete mode 100644 bridges/react-native-gcanvas/android/build.gradle delete mode 100644 bridges/react-native-gcanvas/android/proguard-rules.pro delete mode 100644 bridges/react-native-gcanvas/android/src/main/AndroidManifest.xml delete mode 100644 bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/GReactModule.java delete mode 100644 bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/GReactPackage.java delete mode 100644 bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/GReactTextureView.java delete mode 100644 bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/GReactViewManager.java delete mode 100644 bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/bridge/RNJSCallbackArray.java delete mode 100644 bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/bridge/RNJSCallbackDataFactory.java delete mode 100644 bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/bridge/RNJSCallbackMap.java delete mode 100644 bridges/react-native-gcanvas/android/src/main/res/values/strings.xml delete mode 100644 bridges/react-native-gcanvas/components/GCanvasComponent.js delete mode 100644 bridges/react-native-gcanvas/index.js delete mode 100644 bridges/react-native-gcanvas/ios/RCTGCanvas.xcodeproj/project.pbxproj delete mode 100644 bridges/react-native-gcanvas/ios/RCTGCanvasModule.h delete mode 100644 bridges/react-native-gcanvas/ios/RCTGCanvasModule.m delete mode 100644 bridges/react-native-gcanvas/ios/RCTGCanvasView.h delete mode 100644 bridges/react-native-gcanvas/ios/RCTGCanvasView.m delete mode 100644 bridges/react-native-gcanvas/ios/RCTGCanvasViewManager.h delete mode 100644 bridges/react-native-gcanvas/ios/RCTGCanvasViewManager.m delete mode 100644 bridges/react-native-gcanvas/package.json delete mode 100644 bridges/weex-gcanvas/android/weex_bridge/.gitignore delete mode 100644 bridges/weex-gcanvas/android/weex_bridge/build.gradle delete mode 100644 bridges/weex-gcanvas/android/weex_bridge/proguard-rules.pro delete mode 100644 bridges/weex-gcanvas/android/weex_bridge/src/main/AndroidManifest.xml delete mode 100644 bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/GCanvasWeexModule.java delete mode 100644 bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/GWXTextureView.java delete mode 100644 bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/WXGCanvasWeexComponent.java delete mode 100644 bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/bridge/WeexJSCallbackArray.java delete mode 100644 bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/bridge/WeexJSCallbackDataFactory.java delete mode 100644 bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/bridge/WeexJSCallbackMap.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/.gitignore delete mode 100644 bridges/weex-gcanvas/android/weex_playground/build.gradle delete mode 100644 bridges/weex-gcanvas/android/weex_playground/proguard-rules.pro delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/AndroidManifest.xml delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/animation.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/a-demo.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/countdown-demo.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/image-demo.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/input-demo.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/list/list-basic.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/list/list-demo-horizon.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/list/list-demo.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/marquee-demo.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/navigator-demo.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/process-bar-demo.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/scroller-demo.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider-neighbor/index.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider-neighbor/slider-neighbor-item.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider-neighbor/slider-neighbor-page.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider/index.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider/slider-item.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider/slider-page.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/tabbar/tabbar-demo.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/tabbar/tabbar-item.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/text-demo.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/video-demo.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/web-demo.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/error.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/geolocation.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/hello.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/iconfont.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/index.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/linear-gradient.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/clipboard.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/componentRect.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/instance-api.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/modal.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/picker-demo.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/storage-demo.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/stream-demo.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/websocket-demo.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/calculator.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/dropdown/dropdown-demo.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/dropdown/we-dropdown.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/minesweeper.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/banner.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/banners.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/brand.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/category.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/coupon.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/fashion.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/goods.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/headlines.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/index.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/link.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/main.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/match.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/resource.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/scene.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/pseudo-class.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/ui.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/style/index.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/style/style-box.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/style/style-flex.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/style/style-item.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world-1.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world-2.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world-3.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world-4.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world-5.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/index.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-component.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-data.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-events.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-instance.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-lifecycle.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-module.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-options.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-class.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-content.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-event.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-if.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-repeat-update.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-repeat.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-style.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/template.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/test.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/animation.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/a.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/countdown.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/image.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/input.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/list.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/marquee.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/navigator.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/scroller.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/slider.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/tabbar.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/text.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/video.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/web.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/hello.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/iconfont.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/index.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/modules/clipboard.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/modules/instance-api.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/modules/modal.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/modules/storage.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/modules/stream.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/showcase/calculator.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/showcase/itemlist.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/showcase/new-fashion.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/showcase/progress.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/style/index.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/style/style-box.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/style/style-flex.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/style/style-item.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world-1.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world-2.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world-3.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world-4.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world-5.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-component.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-data.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-events.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-instance.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-lifecycle.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-module.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-options.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-class.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-content.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-event.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-if.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-repeat-update.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-repeat.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-style.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/template.js delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/ic_launcher-web.png delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/BenchmarkActivity.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/IndexActivity.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/SplashActivity.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/Utility.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/WXApplication.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/WXBaseActivity.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/WXDebugActivity.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/WXPageActivity.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/AbstractWeexActivity.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/SimpleWeexActivity.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/WXAnalyzerDelegate.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/BlurTool.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/BlurTransformation.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/DefaultWebSocketAdapter.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/DefaultWebSocketAdapterFactory.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/FrescoImageAdapter.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/ImageAdapter.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/JSExceptionAdapter.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/util/AssertUtil.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/util/RequestIdGenerator.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/util/ScreenUtil.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/util/WSEventReporter.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/constants/Constants.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/WXInstanceStatisticsListener.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/adapter/InterceptWXHttpAdapter.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/GeolocationModule.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/MyModule.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/RenderModule.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/SyncTestModule.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/WXEventModule.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/location/DefaultLocation.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/location/ILocatable.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/location/LocationFactory.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/view/WXMaskView.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/HotRefreshManager.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/WXHttpManager.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/WXHttpResponse.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/WXHttpTask.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/WXOkHttpDispatcher.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/WXRequestListener.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/util/CoverageDataDumper.java delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/util/JacocoCodeCoverage.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/BarcodeFormat.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/Binarizer.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/BinaryBitmap.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/ChecksumException.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/DecodeHintType.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/Dimension.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/EncodeHintType.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/FormatException.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/InvertedLuminanceSource.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/LuminanceSource.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/MultiFormatReader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/MultiFormatWriter.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/NotFoundException.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/PlanarYUVLuminanceSource.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/RGBLuminanceSource.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/Reader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/ReaderException.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/Result.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/ResultMetadataType.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/ResultPoint.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/ResultPointCallback.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/Writer.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/WriterException.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/AztecDetectorResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/AztecReader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/AztecWriter.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/decoder/Decoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/detector/Detector.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/AztecCode.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/BinaryShiftToken.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/Encoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/HighLevelEncoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/SimpleToken.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/State.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/Token.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/AmbientLightManager.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/BeepManager.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/CaptureActivity.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/CaptureActivityHandler.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/Contents.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/DecodeFormatManager.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/DecodeHandler.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/DecodeHintManager.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/DecodeThread.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/FinishListener.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/HelpActivity.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/HttpHelper.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/InactivityTimer.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/IntentSource.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/Intents.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/LocaleManager.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/PreferencesActivity.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/PreferencesFragment.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/ScanFromWebPageManager.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/ViewfinderResultPointCallback.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/ViewfinderView.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/book/BrowseBookListener.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/book/SearchBookContentsActivity.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/book/SearchBookContentsAdapter.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/book/SearchBookContentsListItem.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/book/SearchBookContentsResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/AutoFocusManager.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/CameraConfigurationManager.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/CameraConfigurationUtils.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/CameraManager.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/FrontLightMode.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/PreviewCallback.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/open/CameraFacing.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/open/OpenCamera.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/open/OpenCameraInterface.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/clipboard/ClipboardInterface.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/ContactEncoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/EncodeActivity.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/Formatter.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/MECARDContactEncoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/QRCodeEncoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/VCardContactEncoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/VCardFieldFormatter.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/VCardTelDisplayFormatter.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/history/DBHelper.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/history/HistoryActivity.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/history/HistoryItem.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/history/HistoryItemAdapter.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/history/HistoryManager.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/AddressBookResultHandler.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/CalendarResultHandler.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/EmailAddressResultHandler.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/GeoResultHandler.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/ISBNResultHandler.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/ProductResultHandler.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/ResultButtonListener.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/ResultHandler.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/ResultHandlerFactory.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/SMSResultHandler.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/TelResultHandler.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/TextResultHandler.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/URIResultHandler.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/WifiResultHandler.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/supplement/BookResultInfoRetriever.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/supplement/ProductResultInfoRetriever.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/supplement/SupplementalInfoRetriever.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/supplement/TitleRetriever.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/supplement/URIResultInfoRetriever.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/AppInfo.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/AppPickerActivity.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/BookMarkColumns.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/BookmarkAdapter.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/BookmarkPickerActivity.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/LoadPackagesAsyncTask.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/ShareActivity.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/wifi/NetworkType.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/wifi/WifiConfigManager.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/AbstractDoCoMoResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/AddressBookAUResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/AddressBookDoCoMoResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/AddressBookParsedResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/BizcardResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/BookmarkDoCoMoResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/CalendarParsedResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/EmailAddressParsedResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/EmailAddressResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/EmailDoCoMoResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ExpandedProductParsedResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ExpandedProductResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/GeoParsedResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/GeoResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ISBNParsedResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ISBNResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ParsedResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ParsedResultType.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ProductParsedResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ProductResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/SMSMMSResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/SMSParsedResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/SMSTOMMSTOResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/SMTPResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/TelParsedResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/TelResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/TextParsedResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/URIParsedResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/URIResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/URLTOResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/VCardResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/VEventResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/VINParsedResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/VINResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/WifiParsedResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/WifiResultParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/BitArray.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/BitMatrix.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/BitSource.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/CharacterSetECI.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/DecoderResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/DefaultGridSampler.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/DetectorResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/GlobalHistogramBinarizer.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/GridSampler.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/HybridBinarizer.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/PerspectiveTransform.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/StringUtils.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/detector/MathUtils.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/detector/MonochromeRectangleDetector.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/detector/WhiteRectangleDetector.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/reedsolomon/GenericGF.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/reedsolomon/GenericGFPoly.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/reedsolomon/ReedSolomonDecoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/reedsolomon/ReedSolomonEncoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/reedsolomon/ReedSolomonException.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/DataMatrixReader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/DataMatrixWriter.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/decoder/BitMatrixParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/decoder/DataBlock.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/decoder/DecodedBitStreamParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/decoder/Decoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/decoder/Version.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/detector/Detector.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/ASCIIEncoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/Base256Encoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/C40Encoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/DataMatrixSymbolInfo144.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/DefaultPlacement.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/EdifactEncoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/Encoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/EncoderContext.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/ErrorCorrection.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/HighLevelEncoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/SymbolInfo.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/SymbolShapeHint.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/TextEncoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/X12Encoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/maxicode/MaxiCodeReader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/maxicode/decoder/BitMatrixParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/maxicode/decoder/DecodedBitStreamParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/maxicode/decoder/Decoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/ByQuadrantReader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/GenericMultipleBarcodeReader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/MultipleBarcodeReader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/qrcode/QRCodeMultiReader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/qrcode/detector/MultiDetector.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/qrcode/detector/MultiFinderPatternFinder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/CodaBarReader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/CodaBarWriter.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code128Reader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code128Writer.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code39Reader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code39Writer.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code93Reader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code93Writer.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/EAN13Reader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/EAN13Writer.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/EAN8Reader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/EAN8Writer.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/EANManufacturerOrgSupport.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/ITFReader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/ITFWriter.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/MultiFormatOneDReader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/MultiFormatUPCEANReader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/OneDReader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/OneDimensionalCodeWriter.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCAReader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCAWriter.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEANExtension2Support.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEANExtension5Support.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEANExtensionSupport.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEANReader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEANWriter.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEReader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEWriter.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/AbstractRSSReader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/DataCharacter.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/FinderPattern.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/Pair.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/RSS14Reader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/RSSUtils.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/BitArrayBuilder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/ExpandedPair.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/ExpandedRow.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/RSSExpandedReader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI013103decoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01320xDecoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01392xDecoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01393xDecoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI013x0xDecoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01AndOtherAIs.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01decoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01weightDecoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AnyAIDecoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/BlockParsedResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/CurrentParsingState.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/DecodedChar.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/DecodedInformation.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/DecodedNumeric.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/DecodedObject.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/FieldParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/PDF417Common.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/PDF417Reader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/PDF417ResultMetadata.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/PDF417Writer.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/BarcodeMetadata.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/BarcodeValue.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/BoundingBox.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/Codeword.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/DecodedBitStreamParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/DetectionResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/DetectionResultColumn.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/DetectionResultRowIndicatorColumn.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/PDF417CodewordDecoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/PDF417ScanningDecoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/ec/ErrorCorrection.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/ec/ModulusGF.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/ec/ModulusPoly.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/detector/Detector.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/detector/PDF417DetectorResult.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/BarcodeMatrix.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/BarcodeRow.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/Compaction.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/Dimensions.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/PDF417.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/PDF417ErrorCorrection.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/PDF417HighLevelEncoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/QRCodeReader.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/QRCodeWriter.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/BitMatrixParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/DataBlock.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/DataMask.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/DecodedBitStreamParser.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/Decoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/ErrorCorrectionLevel.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/FormatInformation.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/Mode.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/QRCodeDecoderMetaData.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/Version.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/AlignmentPattern.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/AlignmentPatternFinder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/Detector.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/FinderPattern.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/FinderPatternFinder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/FinderPatternInfo.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/BlockPair.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/ByteMatrix.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/Encoder.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/MaskUtil.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/MatrixUtil.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/QRCode.java delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-hdpi/ic_action_refresh.png delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-hdpi/ic_action_scan.png delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-mdpi/ic_action_refresh.png delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-mdpi/ic_action_scan.png delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_camera.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_gallery.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_manage.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_send.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_share.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_slideshow.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-xhdpi/ic_action_refresh.png delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-xhdpi/ic_action_scan.png delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-xxhdpi/ic_action_refresh.png delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-xxhdpi/ic_action_scan.png delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable/side_nav_bar.xml delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_dynamic.xml delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_game_detail.xml delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_gview.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_index.xml delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_multiview.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_splash.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_wxpage.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/app_bar_main.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/app_picker_list_item.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/bookmark_picker_list_item.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/camera.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/capture.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/catalog_item.xml delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/content_dynamic.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/content_main.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/content_wx_main.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/encode.xml delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/hello_weex.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/help.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/history_list_item.xml delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/id_stub.xml delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/main.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/search_book_contents.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/search_book_contents_header.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/search_book_contents_list_item.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/share.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/capture.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/encode.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/history.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/main.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/main_scan.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/refresh.xml delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/res/mipmap-hdpi/gcanvas_icon.png delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/res/mipmap-mdpi/gcanvas_icon.png delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/res/mipmap-xhdpi/gcanvas_icon.png delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/res/mipmap-xxhdpi/gcanvas_icon.png delete mode 100644 bridges/weex-gcanvas/android/weex_playground/src/main/res/mipmap-xxxhdpi/gcanvas_icon.png delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/raw/beep.ogg delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/values-v21/styles.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/values-w820dp/dimens.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/values-zh-rCN/strings.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/values/attrs.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/values/colors.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/values/dimens.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/values/drawables.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_arrays.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_colors.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_dimens.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_ids.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_strings.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_styles.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/values/strings.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/values/styles.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/values/themes.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/xml/preferences.xml delete mode 100755 bridges/weex-gcanvas/android/weex_playground/src/main/res/xml/scan_code_preferences.xml delete mode 100644 bridges/weex-gcanvas/android/weex_playground/tools/weex.jks delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground.xcodeproj/project.pbxproj delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground.xcodeproj/xcshareddata/xcschemes/GCanvasPlayground.xcscheme delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/AppDelegate.h delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/AppDelegate.m delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-29.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-29@2x-1.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-40.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-40@2x-1.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-40@3x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-76.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/Contents.json delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Contents.json delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default-4.7@2x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x-1.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default@2x-1.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default@2x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default@3x-1.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default@3x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/back.imageset/Contents.json delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/back.imageset/back.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/back.imageset/back@2x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/back.imageset/back@3x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/delete.imageset/Contents.json delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/delete.imageset/delete.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/delete.imageset/delete@2x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/delete.imageset/delete@3x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/reload.imageset/Contents.json delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/reload.imageset/reload.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/reload.imageset/reload@2x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/reload.imageset/reload@3x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan.imageset/Contents.json delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan.imageset/scan.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan.imageset/scan@2x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan.imageset/scan@3x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan_history.imageset/Contents.json delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan_history.imageset/history.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan_history.imageset/history@2x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan_history.imageset/history@3x.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Info.plist delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/MacroDefine.h delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Scanner/WXScannerHistoryVC.h delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Scanner/WXScannerHistoryVC.m delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Scanner/WXScannerVC.h delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Scanner/WXScannerVC.m delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIView+Toast.h delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIView+Toast.m delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIView+UIThreadCheck.h delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIView+UIThreadCheck.m delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIViewController+NaviBar.h delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIViewController+NaviBar.m delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/ViewController.h delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/ViewController.m delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/component/WXSelectComponent.h delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/component/WXSelectComponent.m delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/handler/WXConfigCenterDefaultImpl.h delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/handler/WXConfigCenterDefaultImpl.m delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/handler/WXImgLoaderDefaultImpl.h delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/handler/WXImgLoaderDefaultImpl.m delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXEventModule.h delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXEventModule.m delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXExtModule.h delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXExtModule.m delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXSyncTestModule.h delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXSyncTestModule.m delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/gcanvas-icon.png delete mode 100644 bridges/weex-gcanvas/ios/playground/GCanvasPlayground/main.m delete mode 100644 bridges/weex-gcanvas/ios/playground/Podfile delete mode 100644 bridges/weex-gcanvas/ios/sdk/Info.plist delete mode 100644 bridges/weex-gcanvas/ios/sdk/Podfile delete mode 100644 bridges/weex-gcanvas/ios/sdk/Sources/WXGCanvasComponent.h delete mode 100644 bridges/weex-gcanvas/ios/sdk/Sources/WXGCanvasComponent.mm delete mode 100644 bridges/weex-gcanvas/ios/sdk/Sources/WXGCanvasModule.h delete mode 100644 bridges/weex-gcanvas/ios/sdk/Sources/WXGCanvasModule.m delete mode 100644 bridges/weex-gcanvas/ios/sdk/WeexGcanvas.xcodeproj/project.pbxproj delete mode 100644 bridges/weex-gcanvas/ios/sdk/WeexGcanvas.xcodeproj/xcshareddata/xcschemes/WeexGcanvas.xcscheme delete mode 100644 examples/ReactNativeGCanvasExample/.babelrc delete mode 100644 examples/ReactNativeGCanvasExample/.buckconfig delete mode 100644 examples/ReactNativeGCanvasExample/.flowconfig delete mode 100644 examples/ReactNativeGCanvasExample/.gitattributes delete mode 100644 examples/ReactNativeGCanvasExample/.gitignore delete mode 100644 examples/ReactNativeGCanvasExample/.watchmanconfig delete mode 100644 examples/ReactNativeGCanvasExample/App.js delete mode 100644 examples/ReactNativeGCanvasExample/__tests__/App.js delete mode 100644 examples/ReactNativeGCanvasExample/android/app/BUCK delete mode 100644 examples/ReactNativeGCanvasExample/android/app/build.gradle delete mode 100644 examples/ReactNativeGCanvasExample/android/app/proguard-rules.pro delete mode 100644 examples/ReactNativeGCanvasExample/android/app/src/main/AndroidManifest.xml delete mode 100644 examples/ReactNativeGCanvasExample/android/app/src/main/java/com/rngcanvassample/MainActivity.java delete mode 100644 examples/ReactNativeGCanvasExample/android/app/src/main/java/com/rngcanvassample/MainApplication.java delete mode 100644 examples/ReactNativeGCanvasExample/android/app/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100644 examples/ReactNativeGCanvasExample/android/app/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100644 examples/ReactNativeGCanvasExample/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 examples/ReactNativeGCanvasExample/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 examples/ReactNativeGCanvasExample/android/app/src/main/res/values/strings.xml delete mode 100644 examples/ReactNativeGCanvasExample/android/app/src/main/res/values/styles.xml delete mode 100644 examples/ReactNativeGCanvasExample/android/build.gradle delete mode 100644 examples/ReactNativeGCanvasExample/android/gradle.properties delete mode 100755 examples/ReactNativeGCanvasExample/android/gradlew delete mode 100644 examples/ReactNativeGCanvasExample/android/gradlew.bat delete mode 100644 examples/ReactNativeGCanvasExample/android/keystores/BUCK delete mode 100644 examples/ReactNativeGCanvasExample/android/keystores/debug.keystore.properties delete mode 100644 examples/ReactNativeGCanvasExample/android/settings.gradle delete mode 100644 examples/ReactNativeGCanvasExample/app.json delete mode 100644 examples/ReactNativeGCanvasExample/index.js delete mode 100644 examples/ReactNativeGCanvasExample/ios/RNGCanvasSample-tvOS/Info.plist delete mode 100644 examples/ReactNativeGCanvasExample/ios/RNGCanvasSample-tvOSTests/Info.plist delete mode 100644 examples/ReactNativeGCanvasExample/ios/RNGCanvasSample.xcodeproj/project.pbxproj delete mode 100644 examples/ReactNativeGCanvasExample/ios/RNGCanvasSample.xcodeproj/xcshareddata/xcschemes/RNGCanvasSample-tvOS.xcscheme delete mode 100644 examples/ReactNativeGCanvasExample/ios/RNGCanvasSample.xcodeproj/xcshareddata/xcschemes/RNGCanvasSample.xcscheme delete mode 100644 examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/AppDelegate.h delete mode 100644 examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/AppDelegate.m delete mode 100644 examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/Base.lproj/LaunchScreen.xib delete mode 100644 examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/Images.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/Images.xcassets/Contents.json delete mode 100644 examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/Info.plist delete mode 100644 examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/main.m delete mode 100644 examples/ReactNativeGCanvasExample/ios/RNGCanvasSampleTests/Info.plist delete mode 100644 examples/ReactNativeGCanvasExample/ios/RNGCanvasSampleTests/RNGCanvasSampleTests.m delete mode 100644 examples/ReactNativeGCanvasExample/package.json diff --git a/WeexGcanvas.podspec b/WeexGcanvas.podspec deleted file mode 100644 index 524296ec..00000000 --- a/WeexGcanvas.podspec +++ /dev/null @@ -1,40 +0,0 @@ -Pod::Spec.new do |s| - - s.name = "WeexGcanvas" - s.version = "1.1.0" - s.summary = "GCanvas Weex Bridge Source." - - s.description = <<-DESC - GCanvas Weex Bridge Source. - DESC - - s.homepage = 'https://github.com/alibaba/GCanvas' - s.license = { - :type => 'Copyright', - :text => <<-LICENSE - Alibaba Inc. Copyright - LICENSE - } - - s.author = { 'jwxbond' => 'jwxbond@gmail.com' } - - s.platform = :ios - - s.ios.deployment_target = '9.0' - - # s.source = { :path => '.' } - s.source = { :git => "https://github.com/alibaba/GCanvas.git", :tag => s.version } - - s.source_files = "bridges/weex-gcanvas/ios/sdk/Sources/*.{h,m,mm}" - - s.public_header_files = 'bridges/weex-gcanvas/ios/sdk/Sources/*.h' - - s.user_target_xcconfig = { 'FRAMEWORK_SEARCH_PATHS' => "'$(PODS_ROOT)/WeexGcanvas'" } - - s.requires_arc = true - - s.dependency "WeexPluginLoader" - s.dependency "WeexSDK" - s.dependency "GCanvas" - s.dependency "SDWebImage" -end diff --git a/bridges/react-native-gcanvas/README.md b/bridges/react-native-gcanvas/README.md deleted file mode 100644 index b5a3fca4..00000000 --- a/bridges/react-native-gcanvas/README.md +++ /dev/null @@ -1 +0,0 @@ -[GPlatform](https://gplatformteam.github.io/gplatform-website/docs/) \ No newline at end of file diff --git a/bridges/react-native-gcanvas/android/.gitignore b/bridges/react-native-gcanvas/android/.gitignore deleted file mode 100644 index d0b97c6b..00000000 --- a/bridges/react-native-gcanvas/android/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/build -*.iml \ No newline at end of file diff --git a/bridges/react-native-gcanvas/android/build.gradle b/bridges/react-native-gcanvas/android/build.gradle deleted file mode 100644 index 3b449d02..00000000 --- a/bridges/react-native-gcanvas/android/build.gradle +++ /dev/null @@ -1,45 +0,0 @@ -apply plugin: 'com.android.library' - -group = rootProject.extensions.groups.Bridge -version = "1.1.0" - -android { - compileSdkVersion rootProject.extensions.sdks.CompileSDK - buildToolsVersion rootProject.extensions.sdks.BuildTool - - defaultConfig { - minSdkVersion rootProject.extensions.sdks.MinSDK - targetSdkVersion rootProject.extensions.sdks.TargetSDK - versionCode 1 - versionName "1.0" - - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - } - } -} - -dependencies { - compile "com.taobao.gcanvas:corelib:1.0.2" - compile "com.taobao.gcanvas.bridges:spec:1.0.1" - compile "com.taobao.gcanvas.adapters:img_fresco:1.0.1" - compile fileTree(dir: 'libs', include: ['*.jar']) - androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { - exclude group: 'com.android.support', module: 'support-annotations' - }) - testCompile "junit:junit:${rootProject.extensions.sdks.JUnit}" - provided "com.facebook.react:react-native:+" - provided "com.android.support:support-v4:${rootProject.extensions.sdks.Support}" - provided "com.android.support:support-annotations:${rootProject.extensions.sdks.Support}" - compile "com.android.support:support-dynamic-animation:${rootProject.extensions.sdks.Support}" -} - -project.ext.id = rootProject.extensions.artifacts.ReactNative -project.ext.meta.labels = ['ReactNative', 'GPU', 'OpenGL', 'GCanvas', "canvas", 'WebGL', 'GCanvas ReactNative Bridge'] -project.ext.meta.description = 'GCanvas ReactNative bridge.' -//apply from: "${rootProject.projectDir}/publish.gradle" diff --git a/bridges/react-native-gcanvas/android/proguard-rules.pro b/bridges/react-native-gcanvas/android/proguard-rules.pro deleted file mode 100644 index f1b42451..00000000 --- a/bridges/react-native-gcanvas/android/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile diff --git a/bridges/react-native-gcanvas/android/src/main/AndroidManifest.xml b/bridges/react-native-gcanvas/android/src/main/AndroidManifest.xml deleted file mode 100644 index d5916895..00000000 --- a/bridges/react-native-gcanvas/android/src/main/AndroidManifest.xml +++ /dev/null @@ -1,2 +0,0 @@ - diff --git a/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/GReactModule.java b/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/GReactModule.java deleted file mode 100644 index ada22bd4..00000000 --- a/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/GReactModule.java +++ /dev/null @@ -1,285 +0,0 @@ -package com.taobao.gcanvas.bridges.rn; - -import android.app.Activity; -import android.content.Context; -import android.graphics.Point; -import android.text.TextUtils; -import android.view.Display; -import android.view.View; - -import com.facebook.react.bridge.Callback; -import com.facebook.react.bridge.LifecycleEventListener; -import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.react.bridge.ReactContextBaseJavaModule; -import com.facebook.react.bridge.ReactMethod; -import com.facebook.react.bridge.ReadableArray; -import com.taobao.gcanvas.GCanvasJNI; -import com.taobao.gcanvas.adapters.img.impl.fresco.GCanvasFrescoImageLoader; -import com.taobao.gcanvas.bridges.rn.bridge.RNJSCallbackArray; -import com.taobao.gcanvas.bridges.rn.bridge.RNJSCallbackDataFactory; -import com.taobao.gcanvas.bridges.rn.bridge.RNJSCallbackMap; -import com.taobao.gcanvas.bridges.spec.bridge.IJSCallbackDataFactory; -import com.taobao.gcanvas.bridges.spec.module.AbsGBridgeModule; -import com.taobao.gcanvas.bridges.spec.module.IGBridgeModule; -import com.taobao.gcanvas.util.GLog; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import static com.taobao.gcanvas.bridges.spec.module.IGBridgeModule.ContextType._2D; - - -/** - * ReactNative bridge. - * @author ertong - */ -public class GReactModule extends ReactContextBaseJavaModule implements LifecycleEventListener { - private static final String NAME = "CanvasModule"; - - private static final String TAG = GReactModule.class.getSimpleName(); - - private HashMap mViews = new HashMap<>(); - - @Override - public void onHostResume() { - - } - - @Override - public void onHostPause() { - } - - @Override - public void onHostDestroy() { - // release resource - getReactApplicationContext().removeLifecycleEventListener(this); - Iterator> iter = mViews.entrySet().iterator(); - while (iter.hasNext()) { - Map.Entry entry = iter.next(); - GReactTextureView val = entry.getValue(); - val.onHostDestroy(); - } - - mViews.clear(); - } - - private class RNModuleImpl extends AbsGBridgeModule { - - private final RNJSCallbackDataFactory mFactory = new RNJSCallbackDataFactory(); - - @Override - public String enable(JSONObject data) { - try { - final String refId = data.getString("componentId"); - int viewTag = Integer.parseInt(refId); - - Activity activity = getCurrentActivity(); - - if (null == activity) { - return Boolean.FALSE.toString(); - } - - View v = activity.findViewById(viewTag); - if (v instanceof GReactTextureView) { - mViews.put(refId, (GReactTextureView) v); - return Boolean.TRUE.toString(); - } - - return Boolean.FALSE.toString(); - } catch (Throwable e) { - e.printStackTrace(); - return Boolean.FALSE.toString(); - } - } - - @Override - public void setContextType(String canvasId, ContextType type) { - GReactTextureView textureView = mViews.get(canvasId); - if (null == textureView) { - GLog.e(TAG, "can not find canvas with id ===> " + canvasId); - return; - } - GCanvasJNI.setContextType(textureView.getCanvasKey(), type.value()); - } - - @Override - public void setDevicePixelRatio(String canvasId, double ratio) { - } - - @Override - public void render(String canvasId, String cmd) { - GReactTextureView textureView = mViews.get(canvasId); - if (null == textureView) { - GLog.e(TAG, "can not find canvas with id ===> " + canvasId); - return; - } - GCanvasJNI.render(textureView.getCanvasKey(), cmd); - } - - @Override - public Context getContext() { - return getReactApplicationContext(); - } - - @Override - protected void invokeCallback(Callback callback, Object args) { - if (null != callback) { - if (args instanceof RNJSCallbackArray) { - callback.invoke(((RNJSCallbackArray) args).getArray()); - } else if (args instanceof RNJSCallbackMap) { - callback.invoke(((RNJSCallbackMap) args).getMap()); - } else { - callback.invoke(args); - } - } - } - - @Override - protected IJSCallbackDataFactory getDataFactory() { - return mFactory; - } - } - - private RNModuleImpl mImpl; - - @ReactMethod - public void bindImageTexture(final ReadableArray array, final String refId, final Callback callback) { - if (null == array || TextUtils.isEmpty(refId) || array.size() != 2) { - return; - } - GReactTextureView textureView = mViews.get(refId); - if (null == textureView) { - GLog.e(TAG, "can not find canvas with id ===> " + refId); - return; - } - String url = array.getString(0); - int rid = array.getInt(1); - mImpl.bindImageTexture(textureView.getCanvasKey(), url, rid, callback); - } - - @ReactMethod - public void preLoadImage(ReadableArray args, final Callback callback) { - if (null == args || args.size() != 2) { - GLog.d(TAG, "invalid input parameter"); - return; - } - try { - JSONArray array = new JSONArray(); - array.put(args.getString(0)); - array.put(args.getInt(1)); - mImpl.preLoadImage(array, callback); - } catch (Throwable e) { - GLog.e(TAG, e.getMessage(), e); - HashMap error = new HashMap<>(); - error.put("error", e.getMessage()); - mImpl.invokeCallback(callback, error); - } - } - - - @ReactMethod - public void render(String cmd, String canvasId) { - mImpl.render(canvasId, cmd); - } - - @ReactMethod - public void setLogLevel(int level) { - GLog.d(TAG, "setLogLevel() args: " + level); - mImpl.setLogLevel(level); - } - - @ReactMethod - public String enable(String args) { - try { - JSONObject json = new JSONObject(args); - return mImpl.enable(json); - } catch (JSONException e) { - return Boolean.FALSE.toString(); - } - } - - @ReactMethod - public void getDeviceInfo(String args, Callback callBack) { - if (!TextUtils.isEmpty(args)) { - - HashMap hm = new HashMap<>(); - - JSONObject data = new JSONObject(); - try { - data.put("platform", "Android"); - } catch (JSONException e) { - } - hm.put("data", data.toString()); - callBack.invoke(hm); - } - } - - @ReactMethod - public void setContextType(int args, String refId) { - if (TextUtils.isEmpty(refId)) { - return; - } - - Activity ctx = getCurrentActivity(); - if (ctx == null) { - GLog.e(TAG, "setDevicePixelRatio error ctx == null"); - return; - } - - Display display = ctx.getWindowManager().getDefaultDisplay(); - Point size = new Point(); - display.getSize(size); - double devicePixelRatio = size.x * 1.0 / size.y; -// - GLog.d(TAG, "enable size " + size.toString()); - GLog.d(TAG, "enable devicePixelRatio " + devicePixelRatio); - - mImpl.setDevicePixelRatio(refId, devicePixelRatio); - - - IGBridgeModule.ContextType type = _2D; - try { - type = IGBridgeModule.ContextType.values()[args]; - } catch (Throwable throwable) { - } - - mImpl.setContextType(refId, type); - } - - - @ReactMethod - public void setAlpha(String refId, float alpha) { - } - - - @ReactMethod - public void texImage2D(final String refid, final int target, final int level, final int internalformat, final int format, final int type, String path) { - if (!TextUtils.isEmpty(path)) { - mImpl.texImage2D(refid, target, level, internalformat, format, type, path); - } - } - - @ReactMethod - public void texSubImage2D(final String refid, final int target, final int level, final int xoffset, final int yoffset, final int format, final int type, String path) { - if (!TextUtils.isEmpty(path)) { - mImpl.texSubImage2D(refid, target, level, xoffset, yoffset, format, type, path); - } - } - - public GReactModule(ReactApplicationContext reactContext) { - super(reactContext); - mImpl = new RNModuleImpl(); - mImpl.setImageLoader(new GCanvasFrescoImageLoader()); - getReactApplicationContext().addLifecycleEventListener(this); - } - - @Override - public String getName() { - return NAME; - } -} diff --git a/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/GReactPackage.java b/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/GReactPackage.java deleted file mode 100644 index f471cb39..00000000 --- a/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/GReactPackage.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.taobao.gcanvas.bridges.rn; - -import com.facebook.react.ReactPackage; -import com.facebook.react.bridge.JavaScriptModule; -import com.facebook.react.bridge.NativeModule; -import com.facebook.react.bridge.ReactApplicationContext; -import com.facebook.react.uimanager.ViewManager; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * ReactNative package. - * @author ertong - */ - -public class GReactPackage implements ReactPackage { - @Override - public List createNativeModules(ReactApplicationContext reactContext) { - List modules = new ArrayList<>(); - modules.add(new GReactModule(reactContext)); - return modules; - } - - @Override - public List> createJSModules() { - return Collections.EMPTY_LIST; - } - - @Override - public List createViewManagers(ReactApplicationContext reactContext) { - List viewManagers = new ArrayList<>(); - viewManagers.add(new GReactViewManager()); - return viewManagers; - } -} diff --git a/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/GReactTextureView.java b/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/GReactTextureView.java deleted file mode 100644 index 317d031e..00000000 --- a/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/GReactTextureView.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.taobao.gcanvas.bridges.rn; - -import android.content.Context; -import android.util.AttributeSet; - -import com.facebook.react.bridge.LifecycleEventListener; -import com.taobao.gcanvas.surface.GTextureView; - -/** - * View for ReactNative. - * @author ertong - * create at 2018/1/23 - */ - -public class GReactTextureView extends GTextureView implements LifecycleEventListener{ - public GReactTextureView(Context context, String id) { - super(context, id); - } - - public GReactTextureView(Context context, String id, AttributeSet attrs) { - super(context, id, attrs); - } - - public GReactTextureView(Context context, String id, AttributeSet attrs, int defStyleAttr) { - super(context, id, attrs, defStyleAttr); - } - - public GReactTextureView(Context context, String id, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, id, attrs, defStyleAttr, defStyleRes); - } - - @Override - public void onHostResume() { - resume(); - } - - @Override - public void onHostPause() { - pause(); - } - - @Override - public void onHostDestroy() { - setSurfaceTextureListener(null); - requestExit(); - } -} diff --git a/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/GReactViewManager.java b/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/GReactViewManager.java deleted file mode 100644 index 23f32173..00000000 --- a/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/GReactViewManager.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.taobao.gcanvas.bridges.rn; - -import com.facebook.react.bridge.ReadableArray; -import com.facebook.react.uimanager.SimpleViewManager; -import com.facebook.react.uimanager.ThemedReactContext; - -import java.util.Map; -import java.util.UUID; - -import javax.annotation.Nullable; - -/** - * ReactNative bridge view manager. - * @author ertong - * create at 2018/1/17 - */ - -public class GReactViewManager extends SimpleViewManager { - - @Override - public String getName() { - return "GCanvasView"; - } - - - @Override - protected GReactTextureView createViewInstance(ThemedReactContext reactContext) { - return new GReactTextureView(reactContext, UUID.randomUUID().toString()); - } - - @Override - public void receiveCommand(GReactTextureView root, int commandId, @Nullable ReadableArray args) { - super.receiveCommand(root, commandId, args); - } - - @Nullable - @Override - public Map getCommandsMap() { - return super.getCommandsMap(); - } - - @Override - public void onDropViewInstance(GReactTextureView view) { - super.onDropViewInstance(view); - } - - -} diff --git a/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/bridge/RNJSCallbackArray.java b/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/bridge/RNJSCallbackArray.java deleted file mode 100644 index 00e031c6..00000000 --- a/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/bridge/RNJSCallbackArray.java +++ /dev/null @@ -1,181 +0,0 @@ -package com.taobao.gcanvas.bridges.rn.bridge; - -import com.facebook.react.bridge.ReadableArray; -import com.facebook.react.bridge.ReadableMap; -import com.facebook.react.bridge.ReadableNativeArray; -import com.facebook.react.bridge.ReadableNativeMap; -import com.facebook.react.bridge.ReadableType; -import com.facebook.react.bridge.WritableArray; -import com.facebook.react.bridge.WritableNativeArray; -import com.facebook.react.bridge.WritableNativeMap; -import com.taobao.gcanvas.bridges.spec.bridge.IJSCallbackArray; -import com.taobao.gcanvas.bridges.spec.bridge.IJSCallbackMap; -import com.taobao.gcanvas.bridges.spec.bridge.IJSCallbackType; - -/** - * @author ertong - */ - -public class RNJSCallbackArray implements IJSCallbackArray { - - private WritableNativeArray mArray = new WritableNativeArray(); - - public RNJSCallbackArray(ReadableNativeArray array) { - if (null != array) { - for (int i = 0; i < array.size(); i++) { - ReadableType type = array.getType(i); - switch (type) { - case Map: - ReadableMap map = array.getMap(i); - if (map instanceof WritableNativeMap) { - mArray.pushMap((WritableNativeMap) map); - } - break; - - case Null: - mArray.pushNull(); - break; - - case Boolean: - mArray.pushBoolean(array.getBoolean(i)); - break; - - case Number: - mArray.pushDouble(array.getDouble(i)); - break; - - case String: - mArray.pushString(array.getString(i)); - break; - - case Array: - ReadableArray arr = array.getArray(i); - if (arr instanceof WritableNativeArray) { - mArray.pushArray((WritableArray) arr); - } - } - } - } - } - - public RNJSCallbackArray() { - } - - public WritableNativeArray getArray() { - return mArray; - } - - @Override - public int size() { - return mArray.size(); - } - - @Override - public boolean isNull(int index) { - return mArray.isNull(index); - } - - @Override - public boolean getBoolean(int index) { - return mArray.getBoolean(index); - } - - @Override - public double getDouble(int index) { - return mArray.getDouble(index); - } - - @Override - public int getInt(int index) { - return mArray.getInt(index); - } - - @Override - public String getString(int index) { - return mArray.getString(index); - } - - @Override - public IJSCallbackArray getArray(int index) { - ReadableNativeArray array = mArray.getArray(index); - if (null != array) { - return new RNJSCallbackArray(array); - } - return null; - } - - @Override - public IJSCallbackMap getMap(int index) { - ReadableNativeMap map = mArray.getMap(index); - if (null != map) { - return new RNJSCallbackMap(map); - } - return null; - } - - @Override - public IJSCallbackType getType(int index) { - ReadableType type = mArray.getType(index); - switch (type) { - case Map: - return IJSCallbackType.Map; - - case Null: - return IJSCallbackType.Null; - - case Boolean: - return IJSCallbackType.Boolean; - - case Number: - return IJSCallbackType.Number; - - case String: - return IJSCallbackType.String; - - case Array: - return IJSCallbackType.Array; - - default: - throw new RuntimeException("unknown type"); - } - } - - @Override - public void pushNull() { - mArray.pushNull(); - } - - @Override - public void pushBoolean(boolean value) { - mArray.pushBoolean(value); - } - - @Override - public void pushDouble(double value) { - mArray.pushDouble(value); - } - - @Override - public void pushInt(int value) { - mArray.pushInt(value); - } - - @Override - public void pushString(String value) { - mArray.pushString(value); - } - - @Override - public void pushArray(IJSCallbackArray array) { - if (array instanceof RNJSCallbackArray) { - mArray.pushArray(((RNJSCallbackArray) array).getArray()); - } - } - - @Override - public void pushMap(IJSCallbackMap map) { - if (map instanceof RNJSCallbackMap) { - mArray.pushMap(((RNJSCallbackMap) map).getMap()); - } - } -} diff --git a/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/bridge/RNJSCallbackDataFactory.java b/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/bridge/RNJSCallbackDataFactory.java deleted file mode 100644 index e30a4fd5..00000000 --- a/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/bridge/RNJSCallbackDataFactory.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.taobao.gcanvas.bridges.rn.bridge; - -import com.taobao.gcanvas.bridges.spec.bridge.IJSCallbackArray; -import com.taobao.gcanvas.bridges.spec.bridge.IJSCallbackDataFactory; -import com.taobao.gcanvas.bridges.spec.bridge.IJSCallbackMap; - -/** - * @author ertong - */ - -public class RNJSCallbackDataFactory implements IJSCallbackDataFactory { - @Override - public IJSCallbackArray createJSCallbackArray() { - return new RNJSCallbackArray(); - } - - @Override - public IJSCallbackMap createJSCallbackMap() { - return new RNJSCallbackMap(); - } -} diff --git a/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/bridge/RNJSCallbackMap.java b/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/bridge/RNJSCallbackMap.java deleted file mode 100644 index b53ea751..00000000 --- a/bridges/react-native-gcanvas/android/src/main/java/com/taobao/gcanvas/bridges/rn/bridge/RNJSCallbackMap.java +++ /dev/null @@ -1,177 +0,0 @@ -package com.taobao.gcanvas.bridges.rn.bridge; - -import com.facebook.react.bridge.ReadableMapKeySetIterator; -import com.facebook.react.bridge.ReadableNativeArray; -import com.facebook.react.bridge.ReadableNativeMap; -import com.facebook.react.bridge.ReadableType; -import com.facebook.react.bridge.WritableNativeMap; -import com.taobao.gcanvas.bridges.spec.bridge.IJSCallbackArray; -import com.taobao.gcanvas.bridges.spec.bridge.IJSCallbackMap; -import com.taobao.gcanvas.bridges.spec.bridge.IJSCallbackType; - -/** - * @author ertong - */ - -public class RNJSCallbackMap implements IJSCallbackMap { - - private WritableNativeMap mMap = new WritableNativeMap(); - - public RNJSCallbackMap(ReadableNativeMap map) { - if (null != map) { - mMap.merge(map); - } - } - - public RNJSCallbackMap() { - } - - public WritableNativeMap getMap() { - return mMap; - } - - @Override - public boolean hasKey(String name) { - return mMap.hasKey(name); - } - - @Override - public boolean isNull(String name) { - return mMap.isNull(name); - } - - @Override - public boolean getBoolean(String name) { - return mMap.getBoolean(name); - } - - @Override - public double getDouble(String name) { - return mMap.getDouble(name); - } - - @Override - public int getInt(String name) { - return mMap.getInt(name); - } - - @Override - public String getString(String name) { - return mMap.getString(name); - } - - @Override - public IJSCallbackArray getArray(String name) { - ReadableNativeArray array = mMap.getArray(name); - if (null != array) { - return new RNJSCallbackArray(array); - } - return null; - } - - @Override - public IJSCallbackMap getMap(String name) { - ReadableNativeMap map = mMap.getMap(name); - if (null != map) { - return new RNJSCallbackMap(map); - } - return null; - } - - @Override - public IJSCallbackType getType(String name) { - ReadableType type = mMap.getType(name); - switch (type) { - case Map: - return IJSCallbackType.Map; - - case Null: - return IJSCallbackType.Null; - - case Boolean: - return IJSCallbackType.Boolean; - - case Number: - return IJSCallbackType.Number; - - case String: - return IJSCallbackType.String; - - case Array: - return IJSCallbackType.Array; - - default: - throw new RuntimeException("unknown type"); - } - } - - @Override - public IJSCallbackMapKeySetIterator keySetIterator() { - return new RNJSCallbackMapIterator(this); - } - - @Override - public void putNull(String key) { - mMap.putNull(key); - } - - @Override - public void putBoolean(String key, boolean value) { - mMap.putBoolean(key, value); - } - - @Override - public void putDouble(String key, double value) { - mMap.putDouble(key, value); - } - - @Override - public void putInt(String key, int value) { - mMap.putInt(key, value); - } - - @Override - public void putString(String key, String value) { - mMap.putString(key, value); - } - - @Override - public void putArray(String key, IJSCallbackArray value) { - if (value instanceof RNJSCallbackArray) { - mMap.putArray(key, ((RNJSCallbackArray) value).getArray()); - } - } - - @Override - public void putMap(String key, IJSCallbackMap value) { - if (value instanceof RNJSCallbackMap) { - mMap.putMap(key, ((RNJSCallbackMap) value).getMap()); - } - } - - @Override - public void merge(IJSCallbackMap source) { - if (source instanceof RNJSCallbackMap) { - mMap.merge(((RNJSCallbackMap) source).getMap()); - } - } - - private static class RNJSCallbackMapIterator implements IJSCallbackMapKeySetIterator { - - private ReadableMapKeySetIterator mIterator; - - public RNJSCallbackMapIterator(RNJSCallbackMap mMap) { - this.mIterator = mMap.mMap.keySetIterator(); - } - - @Override - public boolean hasNextKey() { - return this.mIterator.hasNextKey(); - } - - @Override - public String nextKey() { - return this.mIterator.nextKey(); - } - } -} diff --git a/bridges/react-native-gcanvas/android/src/main/res/values/strings.xml b/bridges/react-native-gcanvas/android/src/main/res/values/strings.xml deleted file mode 100644 index 5aeae572..00000000 --- a/bridges/react-native-gcanvas/android/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - rn_plugin - diff --git a/bridges/react-native-gcanvas/components/GCanvasComponent.js b/bridges/react-native-gcanvas/components/GCanvasComponent.js deleted file mode 100644 index e19920e1..00000000 --- a/bridges/react-native-gcanvas/components/GCanvasComponent.js +++ /dev/null @@ -1,18 +0,0 @@ -import React, { Component, PropTypes } from 'react'; -import { requireNativeComponent, View, Platform, findNodeHandle } from 'react-native'; - -var CanvasView = Platform.select({ - ios: requireNativeComponent('RCTGCanvasView', null), - android: requireNativeComponent('GCanvasView', null) -}); - -export default class GCanvasView extends Component { - static propTypes = { - // isOffscreen: PropTypes.bool, - ...View.propTypes - }; - - render() { - return ( ); - }; -} diff --git a/bridges/react-native-gcanvas/index.js b/bridges/react-native-gcanvas/index.js deleted file mode 100644 index ddc42b4f..00000000 --- a/bridges/react-native-gcanvas/index.js +++ /dev/null @@ -1,5 +0,0 @@ -import GCanvasView from './components/GCanvasComponent'; - -module.exports = { - GCanvasView, -} \ No newline at end of file diff --git a/bridges/react-native-gcanvas/ios/RCTGCanvas.xcodeproj/project.pbxproj b/bridges/react-native-gcanvas/ios/RCTGCanvas.xcodeproj/project.pbxproj deleted file mode 100644 index 001a331f..00000000 --- a/bridges/react-native-gcanvas/ios/RCTGCanvas.xcodeproj/project.pbxproj +++ /dev/null @@ -1,365 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 48; - objects = { - -/* Begin PBXBuildFile section */ - A2385E4E2005FDC30010B576 /* RCTGCanvasView.m in Sources */ = {isa = PBXBuildFile; fileRef = A2385E4D2005FDC30010B576 /* RCTGCanvasView.m */; }; - A2385E51200600600010B576 /* RCTGCanvasViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = A2385E50200600600010B576 /* RCTGCanvasViewManager.m */; }; - A2385E52200607840010B576 /* RCTGCanvasModule.m in Sources */ = {isa = PBXBuildFile; fileRef = A2385E222004D91B0010B576 /* RCTGCanvasModule.m */; }; - A25C220E237BF22F004C1B6C /* GCanvas.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A25C220B237BF216004C1B6C /* GCanvas.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - A25C220A237BF216004C1B6C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A25C2206237BF216004C1B6C /* GCanvas.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 9A40B58B1ED4546700739AE6; - remoteInfo = GCanvas; - }; - A25C220C237BF221004C1B6C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A25C2206237BF216004C1B6C /* GCanvas.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 9A40B58A1ED4546700739AE6; - remoteInfo = GCanvas; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - A2385E362005FB730010B576 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - A2385E212004D91B0010B576 /* RCTGCanvasModule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCTGCanvasModule.h; sourceTree = ""; }; - A2385E222004D91B0010B576 /* RCTGCanvasModule.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RCTGCanvasModule.m; sourceTree = ""; }; - A2385E382005FB730010B576 /* libRCTGCanvas.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRCTGCanvas.a; sourceTree = BUILT_PRODUCTS_DIR; }; - A2385E4C2005FDC30010B576 /* RCTGCanvasView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCTGCanvasView.h; sourceTree = ""; }; - A2385E4D2005FDC30010B576 /* RCTGCanvasView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RCTGCanvasView.m; sourceTree = ""; }; - A2385E4F200600600010B576 /* RCTGCanvasViewManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCTGCanvasViewManager.h; sourceTree = ""; }; - A2385E50200600600010B576 /* RCTGCanvasViewManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RCTGCanvasViewManager.m; sourceTree = ""; }; - A25C2206237BF216004C1B6C /* GCanvas.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = GCanvas.xcodeproj; path = "/Users/jiangweixing/Documents/github/GCanvas_github/GCanvas/bridges/react-native-bridge/examples/RNGCanvasSample/ios/../../../../../ios/GCanvas/GCanvas.xcodeproj"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - A2385E352005FB730010B576 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A25C220E237BF22F004C1B6C /* GCanvas.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - A2385DD12004D8540010B576 = { - isa = PBXGroup; - children = ( - A25C2206237BF216004C1B6C /* GCanvas.xcodeproj */, - A2385E4C2005FDC30010B576 /* RCTGCanvasView.h */, - A2385E4D2005FDC30010B576 /* RCTGCanvasView.m */, - A2385E4F200600600010B576 /* RCTGCanvasViewManager.h */, - A2385E50200600600010B576 /* RCTGCanvasViewManager.m */, - A2385E212004D91B0010B576 /* RCTGCanvasModule.h */, - A2385E222004D91B0010B576 /* RCTGCanvasModule.m */, - A2385DDC2004D8540010B576 /* Products */, - A2385E6120060A510010B576 /* Frameworks */, - ); - sourceTree = ""; - }; - A2385DDC2004D8540010B576 /* Products */ = { - isa = PBXGroup; - children = ( - A2385E382005FB730010B576 /* libRCTGCanvas.a */, - ); - name = Products; - sourceTree = ""; - }; - A2385E6120060A510010B576 /* Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = Frameworks; - sourceTree = ""; - }; - A25C2207237BF216004C1B6C /* Products */ = { - isa = PBXGroup; - children = ( - A25C220B237BF216004C1B6C /* GCanvas.framework */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - A2385E372005FB730010B576 /* RCTGCanvas */ = { - isa = PBXNativeTarget; - buildConfigurationList = A2385E3E2005FB730010B576 /* Build configuration list for PBXNativeTarget "RCTGCanvas" */; - buildPhases = ( - A2385E342005FB730010B576 /* Sources */, - A2385E352005FB730010B576 /* Frameworks */, - A2385E362005FB730010B576 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - A25C220D237BF221004C1B6C /* PBXTargetDependency */, - ); - name = RCTGCanvas; - productName = RCTGCanvas; - productReference = A2385E382005FB730010B576 /* libRCTGCanvas.a */; - productType = "com.apple.product-type.library.static"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - A2385DD22004D8540010B576 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0910; - ORGANIZATIONNAME = taobao; - TargetAttributes = { - A2385E372005FB730010B576 = { - CreatedOnToolsVersion = 9.1; - ProvisioningStyle = Automatic; - }; - }; - }; - buildConfigurationList = A2385DD52004D8540010B576 /* Build configuration list for PBXProject "RCTGCanvas" */; - compatibilityVersion = "Xcode 8.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = A2385DD12004D8540010B576; - productRefGroup = A2385DDC2004D8540010B576 /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = A25C2207237BF216004C1B6C /* Products */; - ProjectRef = A25C2206237BF216004C1B6C /* GCanvas.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - A2385E372005FB730010B576 /* RCTGCanvas */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - A25C220B237BF216004C1B6C /* GCanvas.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = GCanvas.framework; - remoteRef = A25C220A237BF216004C1B6C /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXSourcesBuildPhase section */ - A2385E342005FB730010B576 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A2385E52200607840010B576 /* RCTGCanvasModule.m in Sources */, - A2385E4E2005FDC30010B576 /* RCTGCanvasView.m in Sources */, - A2385E51200600600010B576 /* RCTGCanvasViewManager.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - A25C220D237BF221004C1B6C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = GCanvas; - targetProxy = A25C220C237BF221004C1B6C /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - A2385DE12004D8550010B576 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.1; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - A2385DE22004D8550010B576 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.1; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - A2385E3F2005FB730010B576 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = 7E55936SGW; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)", - ); - HEADER_SEARCH_PATHS = ""; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - A2385E402005FB730010B576 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = 7E55936SGW; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)", - ); - HEADER_SEARCH_PATHS = ""; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - A2385DD52004D8540010B576 /* Build configuration list for PBXProject "RCTGCanvas" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A2385DE12004D8550010B576 /* Debug */, - A2385DE22004D8550010B576 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A2385E3E2005FB730010B576 /* Build configuration list for PBXNativeTarget "RCTGCanvas" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A2385E3F2005FB730010B576 /* Debug */, - A2385E402005FB730010B576 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = A2385DD22004D8540010B576 /* Project object */; -} diff --git a/bridges/react-native-gcanvas/ios/RCTGCanvasModule.h b/bridges/react-native-gcanvas/ios/RCTGCanvasModule.h deleted file mode 100644 index 80fb3d58..00000000 --- a/bridges/react-native-gcanvas/ios/RCTGCanvasModule.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import - -#import -#import -#import - - -@interface RCTGCanvasModule : RCTEventEmitter - -@end diff --git a/bridges/react-native-gcanvas/ios/RCTGCanvasModule.m b/bridges/react-native-gcanvas/ios/RCTGCanvasModule.m deleted file mode 100644 index 0ea018e8..00000000 --- a/bridges/react-native-gcanvas/ios/RCTGCanvasModule.m +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "RCTGCanvasModule.h" -#import "RCTGCanvasView.h" - -#import - -#import -#import -#import -#import -#import -#import -#import -#import - - -@interface RCTGCanvasModule() - -@property (nonatomic, strong) GCanvasModule *gcanvasModule; - -@end - -@implementation RCTGCanvasModule - - -RCT_EXPORT_MODULE() - -+ (BOOL)requiresMainQueueSetup -{ - return NO; -} -- (instancetype)init{ - if( self = [super init] ){ - self.gcanvasModule = [[GCanvasModule alloc] initWithDelegate:self]; - self.gcanvasModule.imageLoader = self; - } - return self; -} - -- (dispatch_queue_t)methodQueue -{ - static dispatch_queue_t queue; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - queue = dispatch_queue_create("com.facebook.react.gcanvasQueue", DISPATCH_QUEUE_SERIAL); - }); - return queue; -} - -- (NSArray *)supportedEvents{ - return @[@"GCanvasReady"]; -} - - -#pragma mark - Export Method -RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(enable:(NSDictionary*) args) -{ - return [self.gcanvasModule enable:args]; -} - -//render -RCT_EXPORT_METHOD(render:(NSString *)commands componentId:(NSString*)componentId) -{ - [self.gcanvasModule render:commands componentId:componentId]; -} - -//preload image -RCT_EXPORT_METHOD(preLoadImage:(NSArray *)data callback:(RCTResponseSenderBlock)callback) -{ - [self.gcanvasModule preLoadImage:data callback:^(id result) { - callback(@[result?:@""]); - }]; -} - -//bind image texture -RCT_EXPORT_METHOD(bindImageTexture:(NSArray *)data componentId:(NSString*)componentId callback:(RCTResponseSenderBlock)callback) -{ - [self.gcanvasModule bindImageTexture:data componentId:componentId callback:^(id result) { - callback(@[result?:@""]); - }]; -} - -//set context type -RCT_EXPORT_METHOD(setContextType:(NSUInteger)type componentId:(NSString*)componentId) -{ - [self.gcanvasModule setContextType:type componentId:componentId]; -} - -//set loglevel -RCT_EXPORT_METHOD(setLogLevel:(NSUInteger)level) -{ - [self.gcanvasModule setLogLevel:level]; -} - -//reset component -RCT_EXPORT_METHOD(resetComponent:(NSString*)componentId) -{ - [self.gcanvasModule resetComponent:componentId]; -} - -#pragma mark - WebGL -RCT_EXPORT_BLOCKING_SYNCHRONOUS_METHOD(extendCallNative:(NSDictionary*)dict) -{ - return [self.gcanvasModule extendCallNative:dict]; -} - -#pragma mark - GCVImageLoaderProtocol -- (void)loadImage:(NSURL*)url completed:(GCVLoadImageCompletion)completion{ - NSURLRequest *requst = [NSURLRequest requestWithURL:url]; - [self.bridge.imageLoader loadImageWithURLRequest:requst callback:^(NSError *error, UIImage *image) { - completion(image, error, !error, url); - }]; -} - - -#pragma mark - GCanvasModuleProtocol -- (NSString*)gcanvasModuleInstanceId -{ - return [NSString stringWithFormat:@"%p", self]; -} - -- (id)gcanvasComponentById:(NSString*)componentId -{ - NSNumber *reactTag = [NSNumber numberWithInteger: [componentId integerValue]]; - RCTUIManager *uiManager = self.bridge.uiManager; - - __block UIView *view = nil; - dispatch_sync(dispatch_get_main_queue(), ^{ - view = [uiManager viewForReactTag:reactTag]; - }); - if ( [view isKindOfClass: [RCTGCanvasView class]] ){ - return (RCTGCanvasView*)view; - } - return nil; -} - -- (void)dispatchGlobalEvent:(NSString*)event params:(NSDictionary*)params -{ - [self sendEventWithName:event body:params]; -} - -@end diff --git a/bridges/react-native-gcanvas/ios/RCTGCanvasView.h b/bridges/react-native-gcanvas/ios/RCTGCanvasView.h deleted file mode 100644 index ef75e88d..00000000 --- a/bridges/react-native-gcanvas/ios/RCTGCanvasView.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import -#import -#import - -@class RCTBridge; - -@interface RCTGCanvasView : RCTView - -@property (nonatomic, strong, readonly) GLKView* glkview; -@property (nonatomic, assign, readonly) CGRect componetFrame; - -/** - * offscreen UIView - */ -@property (nonatomic, assign, readonly) BOOL isOffscreen; - -/** - * GCnavas plugin initilaise or refresh - */ -@property (nonatomic, assign) BOOL needChangeEAGLContenxt; - - -- (CGFloat)devicePixelRatio; -- (NSString*)componentId; - - -- (instancetype)initWithBridge:(RCTBridge *)bridge; - -@end diff --git a/bridges/react-native-gcanvas/ios/RCTGCanvasView.m b/bridges/react-native-gcanvas/ios/RCTGCanvasView.m deleted file mode 100644 index 6db88b2f..00000000 --- a/bridges/react-native-gcanvas/ios/RCTGCanvasView.m +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "RCTGCanvasView.h" - -#import -#import -#import - -@interface RCTGCanvasView() - -@property (nonatomic, strong) GLKView *glkview; - -@end - -@implementation RCTGCanvasView -{ - __weak RCTBridge *_bridge; -} - - -- (instancetype)initWithBridge:(RCTBridge *)bridge{ - if (self = [super init]) { - _bridge = bridge; - } - return self; -} - -- (void)reactSetFrame:(CGRect)frame{ - [super reactSetFrame:frame]; - - if( !self.glkview ){ - self.glkview = [[GLKView alloc] init]; - self.glkview.enableSetNeedsDisplay = YES; - self.glkview.userInteractionEnabled = YES; - self.glkview.drawableDepthFormat = GLKViewDrawableDepthFormat24; - self.glkview.backgroundColor = [UIColor clearColor]; - [self addSubview:self.glkview]; - } - - self.glkview.frame = self.bounds; - _componetFrame = frame; - self.needChangeEAGLContenxt = YES; -} - -- (CGFloat)devicePixelRatio{ - return [UIScreen mainScreen].nativeScale; -} - -- (NSString*)componentId{ - return [NSString stringWithFormat:@"%@", self.reactTag]; -} - -@end diff --git a/bridges/react-native-gcanvas/ios/RCTGCanvasViewManager.h b/bridges/react-native-gcanvas/ios/RCTGCanvasViewManager.h deleted file mode 100644 index ff61556c..00000000 --- a/bridges/react-native-gcanvas/ios/RCTGCanvasViewManager.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import -#import - - -@interface RCTGCanvasViewManager : RCTViewManager - -@end diff --git a/bridges/react-native-gcanvas/ios/RCTGCanvasViewManager.m b/bridges/react-native-gcanvas/ios/RCTGCanvasViewManager.m deleted file mode 100644 index 0fb72df9..00000000 --- a/bridges/react-native-gcanvas/ios/RCTGCanvasViewManager.m +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "RCTGCanvasViewManager.h" -#import "RCTGCanvasView.h" -#import - -@implementation RCTGCanvasViewManager - -@synthesize bridge = _bridge; - - -RCT_EXPORT_MODULE() - -- (UIView *)view{ - return (UIView*)[[RCTGCanvasView alloc] initWithBridge:self.bridge]; -} - -RCT_EXPORT_VIEW_PROPERTY(isOffscreen, NSUInteger) - -@end diff --git a/bridges/react-native-gcanvas/package.json b/bridges/react-native-gcanvas/package.json deleted file mode 100644 index c95d3278..00000000 --- a/bridges/react-native-gcanvas/package.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "react-native-gcanvas", - "version": "0.0.4", - "description": "GCanvas React-Native version", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "keywords": [ - "react-native", - "gcanvas" - ], - "peerDependencies": { - "@gcanvas/core": "^1.0.0" - } -} diff --git a/bridges/weex-gcanvas/android/weex_bridge/.gitignore b/bridges/weex-gcanvas/android/weex_bridge/.gitignore deleted file mode 100644 index d0b97c6b..00000000 --- a/bridges/weex-gcanvas/android/weex_bridge/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/build -*.iml \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_bridge/build.gradle b/bridges/weex-gcanvas/android/weex_bridge/build.gradle deleted file mode 100644 index 378ece4a..00000000 --- a/bridges/weex-gcanvas/android/weex_bridge/build.gradle +++ /dev/null @@ -1,50 +0,0 @@ -apply plugin: 'com.android.library' - -group = rootProject.extensions.groups.Bridge -version = "1.1.0" - -android { - compileSdkVersion rootProject.extensions.sdks.CompileSDK - buildToolsVersion rootProject.extensions.sdks.BuildTool - - defaultConfig { - minSdkVersion rootProject.extensions.sdks.MinSDK - targetSdkVersion rootProject.extensions.sdks.TargetSDK - versionCode 1 - versionName "1.0" - - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - } - } - -} - -dependencies { - implementation project(':android:gcanvas_library') - implementation project(':android:bridge_spec') - implementation project(':android:adapters:gcanvas_imageloader_fresco') - implementation project(':android:adapters:bridge_adapter') - - implementation fileTree(dir: 'libs', include: ['*.jar']) - androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', { - exclude group: 'com.android.support', module: 'support-annotations' - }) - testImplementation "junit:junit:${rootProject.extensions.sdks.JUnit}" - compileOnly "com.taobao.android:weexplugin-annotation:${rootProject.extensions.sdks.WeexAnnotation}" - compileOnly "com.taobao.android:weex_sdk:${rootProject.extensions.sdks.Weex}" - compileOnly "com.android.support:support-v4:${rootProject.extensions.sdks.Support}" - compileOnly "com.android.support:support-annotations:${rootProject.extensions.sdks.Support}" - compileOnly "com.android.support:support-dynamic-animation:${rootProject.extensions.sdks.Support}" -} - - -project.ext.id = rootProject.extensions.artifacts.WeexBridge -project.ext.meta.labels = ['Weex', 'GPU', 'OpenGL', 'GCanvas', "canvas", 'WebGL', 'GCanvas Weex Bridge'] -project.ext.meta.description = 'This package defines GCanvas Weex bridge.' -apply from: "${rootProject.projectDir}/publish.gradle" diff --git a/bridges/weex-gcanvas/android/weex_bridge/proguard-rules.pro b/bridges/weex-gcanvas/android/weex_bridge/proguard-rules.pro deleted file mode 100644 index e4a982b0..00000000 --- a/bridges/weex-gcanvas/android/weex_bridge/proguard-rules.pro +++ /dev/null @@ -1,25 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in /Users/yuantong/Library/Android/sdk/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile diff --git a/bridges/weex-gcanvas/android/weex_bridge/src/main/AndroidManifest.xml b/bridges/weex-gcanvas/android/weex_bridge/src/main/AndroidManifest.xml deleted file mode 100644 index 63a2e6f0..00000000 --- a/bridges/weex-gcanvas/android/weex_bridge/src/main/AndroidManifest.xml +++ /dev/null @@ -1,3 +0,0 @@ - - diff --git a/bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/GCanvasWeexModule.java b/bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/GCanvasWeexModule.java deleted file mode 100644 index 9cea0078..00000000 --- a/bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/GCanvasWeexModule.java +++ /dev/null @@ -1,341 +0,0 @@ -package com.taobao.gcanvas.bridges.weex; - -import android.app.Activity; -import android.content.Context; -import android.text.TextUtils; -import android.view.Display; - -import com.alibaba.weex.plugin.annotation.WeexModule; -import com.taobao.gcanvas.GCanvasJNI; -import com.taobao.gcanvas.adapters.img.impl.fresco.GCanvasFrescoImageLoader; -import com.taobao.gcanvas.bridges.spec.bridge.IJSCallbackDataFactory; -import com.taobao.gcanvas.bridges.spec.module.AbsGBridgeModule; -import com.taobao.gcanvas.bridges.spec.module.IGBridgeModule; -import com.taobao.gcanvas.bridges.weex.bridge.WeexJSCallbackDataFactory; -import com.taobao.gcanvas.surface.GTextureView; -import com.taobao.gcanvas.util.GLog; -import com.taobao.weex.WXEnvironment; -import com.taobao.weex.WXSDKManager; -import com.taobao.weex.annotation.JSMethod; -import com.taobao.weex.bridge.JSCallback; -import com.taobao.weex.common.Destroyable; -import com.taobao.weex.common.WXModule; -import com.taobao.weex.ui.component.WXComponent; -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - -import java.lang.ref.WeakReference; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - -import static com.taobao.gcanvas.bridges.spec.module.IGBridgeModule.ContextType._2D; - - -/** - * @author ertong - * create at 2017/8/17 - */ - -@WeexModule(name = "gcanvas") -public class GCanvasWeexModule extends WXModule implements Destroyable { - private static final String TAG = "GCanvasWeexModule"; - - private HashMap mComponentMap = new HashMap<>(1); - - private WeexModuleImpl mImpl; - - private static class WeexModuleImpl extends AbsGBridgeModule { - - private WeakReference mOutRef; - - private WeexJSCallbackDataFactory mFactory = new WeexJSCallbackDataFactory(); - - public WeexModuleImpl(GCanvasWeexModule module) { - this.mOutRef = new WeakReference<>(module); - } - - @Override - public String enable(JSONObject data) { - GCanvasWeexModule module = this.mOutRef.get(); - if (null == module) { - return Boolean.FALSE.toString(); - } - - try { - String refId = data.getString("componentId"); - WXComponent myComponent = WXSDKManager.getInstance().getWXRenderManager().getWXComponent(module.mWXSDKInstance.getInstanceId(), refId); - - if (myComponent instanceof WXGCanvasWeexComponent) { - WXGCanvasWeexComponent mWXGCanvasComp = (WXGCanvasWeexComponent) myComponent; - module.mComponentMap.put(refId, mWXGCanvasComp); - } - return Boolean.TRUE.toString(); - } catch (JSONException e) { - return Boolean.FALSE.toString(); - } - } - - @Override - public void setContextType(String canvasId, ContextType type) { - GCanvasWeexModule module = this.mOutRef.get(); - if (null == module) { - return; - } - - Display display = ((Activity) getContext()).getWindowManager().getDefaultDisplay(); - - int width = display.getWidth(); - double devicePixelRatio = width / 750.0; - - GLog.d(TAG, "enable width " + width); - GLog.d(TAG, "enable devicePixelRatio " + devicePixelRatio); - - /** - * open high Quality default - */ - GCanvasJNI.setWrapperHiQuality(canvasId, true); - GCanvasJNI.setWrapperDevicePixelRatio(canvasId, devicePixelRatio); - GCanvasJNI.setWrapperContextType(canvasId, type.value()); - - if (GCanvasJNI.sendEvent(canvasId)) { - GLog.d("start to send event in module."); - WXGCanvasWeexComponent component = module.mComponentMap.get(canvasId); - if (component != null) { - component.sendEvent(); - } - } - - WXGCanvasWeexComponent component = module.mComponentMap.get(canvasId); - if (component != null) { - component.mType = type; - } - } - - @Override - public void setDevicePixelRatio(String canvasId, double ratio) { - - } - - @Override - public void render(String canvasId, String cmd) { - - } - - @Override - public Context getContext() { - GCanvasWeexModule module = this.mOutRef.get(); - if (null == module) { - return null; - } - return module.mWXSDKInstance.getContext(); - } - - @Override - protected void invokeCallback(JSCallback jsCallback, Object args) { - if (null != jsCallback) { - jsCallback.invoke(args); - } - } - - @Override - protected IJSCallbackDataFactory getDataFactory() { - return mFactory; - } - } - - public GCanvasWeexModule() { - GCanvasJNI.registerWXCallNativeFunc(WXEnvironment.getApplication()); - mImpl = new WeexModuleImpl(this); - mImpl.setImageLoader(new GCanvasFrescoImageLoader()); - } - - - @JSMethod(uiThread = false) - public void bindImageTexture(final String args, final String refId, final JSCallback callback) { - String url = null; - int rid = 0; - if (!TextUtils.isEmpty(args)) { - try { - JSONArray dataArray = new JSONArray(args); - url = dataArray.getString(0); - rid = dataArray.getInt(1); - } catch (Throwable e) { - GLog.e(TAG, e.getMessage(), e); - } - } - - final String src = url; - final int id = rid; - mImpl.bindImageTexture(refId, src, id, callback); - } - - @JSMethod(uiThread = false) - public void resetComponent(String refId) { - } - - @JSMethod(uiThread = false) - public void setup(String args, String refId, JSCallback callback) { - } - - - @JSMethod(uiThread = false) - public void preLoadImage(String args, final JSCallback callBack) { - GLog.d(TAG, "preLoadImage() in GCanvasWeexModule,args: " + args); - if (!TextUtils.isEmpty(args)) { - try { - JSONArray dataArray = new JSONArray(args); - mImpl.preLoadImage(dataArray, callBack); - } catch (Throwable e) { - GLog.e(TAG, e.getMessage(), e); - } - } - } - - @JSMethod(uiThread = false) - public void setHiQuality(String args, String refId) { - } - - @JSMethod(uiThread = false) - public void setLogLevel(String args) { - GLog.d(TAG, "setLogLevel() args: " + args); - int level = 0; - try { - level = Integer.parseInt(args); - } catch (Throwable throwable) { - // for old version compatiblity - switch (args) { - case "debug": - level = 0; - break; - - case "info": - level = 1; - break; - - case "warn": - level = 2; - break; - - case "error": - level = 3; - break; - } - } - mImpl.setLogLevel(level); - } - - - @JSMethod(uiThread = false) - public String enable(String args) { - try { - JSONObject jo = new JSONObject(args); - return mImpl.enable(jo); - } catch (Throwable e) { - return Boolean.FALSE.toString(); - } - } - - @JSMethod(uiThread = false) - public void render(String cmd, String refId) { - // Inject the render function "GCanvasCallNative" to weex core .so, empty implementation here. - } - - @JSMethod(uiThread = false) - public void getDeviceInfo(String args, JSCallback callBack) { - if (!TextUtils.isEmpty(args)) { - - HashMap hm = new HashMap<>(); - - JSONObject data = new JSONObject(); - try { - data.put("platform", "Android"); - } catch (JSONException e) { - } - hm.put("data", data.toString()); - callBack.invoke(hm); - } - } - - @JSMethod(uiThread = false) - public void setContextType(String args, String refId) { - if (TextUtils.isEmpty(args) || TextUtils.isEmpty(refId)) { - return; - } - - Context ctx = (mWXSDKInstance.getContext()); - if (ctx == null) { - GLog.e(TAG, "setDevicePixelRatio error ctx == null"); - return; - } - - /** - * Weex has 750 dpi width. - */ - Display display = ((Activity) ctx).getWindowManager().getDefaultDisplay(); - - int width = display.getWidth(); - double devicePixelRatio = width / 750.0; - - GLog.d(TAG, "enable width " + width); - GLog.d(TAG, "enable devicePixelRatio " + devicePixelRatio); - - IGBridgeModule.ContextType type = _2D; - - if ("3d".equals(args) || "1".equals(args)) { - type = IGBridgeModule.ContextType._3D; - } - mImpl.setContextType(refId, type); - } - - @JSMethod(uiThread = false) - public void setAlpha(String refId, float alpha) { - GLog.d("start to set alpha in 3dmodule."); - WXGCanvasWeexComponent component = mComponentMap.get(refId); - if (component != null) { - GTextureView view = component.getSurfaceView(); - if (view != null) { - GLog.d("set alpha success in 3dmodule."); - view.setAlpha(alpha); - } - } - } - - @JSMethod(uiThread = false) - public void setDevicePixelRatio(String refId) { - } - - @JSMethod(uiThread = false) - public String execGcanvaSyncCMD(String refId, String action, String args) { - return ""; - } - - @Override - public void destroy() { - Iterator iter = mComponentMap.entrySet().iterator(); - while (iter.hasNext()) { - Map.Entry entry = (Map.Entry) iter.next(); - WXGCanvasWeexComponent val = (WXGCanvasWeexComponent) entry.getValue(); - GLog.d("component destroy id=" + entry.getKey()); - - val.onActivityDestroy(); - } - - mComponentMap.clear(); - } - - @JSMethod(uiThread = false) - public void texImage2D(final String refid, final int target, final int level, final int internalformat, final int format, final int type, String path) { - if (!TextUtils.isEmpty(path)) { - mImpl.texImage2D(refid, target, level, internalformat, format, type, path); - } - } - - @JSMethod(uiThread = false) - public void texSubImage2D(final String refid, final int target, final int level, final int xoffset, final int yoffset, final int format, final int type, String path) { - if (!TextUtils.isEmpty(path)) { - mImpl.texSubImage2D(refid, target, level, xoffset, yoffset, format, type, path); - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/GWXTextureView.java b/bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/GWXTextureView.java deleted file mode 100644 index e7754fe3..00000000 --- a/bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/GWXTextureView.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.taobao.gcanvas.bridges.weex; - -import android.content.Context; -import android.view.MotionEvent; - -import com.taobao.gcanvas.surface.GTextureView; -import com.taobao.weex.ui.view.gesture.WXGesture; -import com.taobao.weex.ui.view.gesture.WXGestureObservable; - -/** - * @author ertong - */ - -public class GWXTextureView extends GTextureView implements WXGestureObservable { - - private WXGesture wxGesture; - private WXGCanvasWeexComponent wxComponent; - - public GWXTextureView(Context context, WXGCanvasWeexComponent component) { - super(context, component.getRef()); - this.wxComponent = component; - } - - @Override - public void registerGestureListener(WXGesture wxGesture) { - this.wxGesture = wxGesture; - } - - @Override - public WXGesture getGestureListener() { - return wxGesture; - } - - @Override - public boolean onTouchEvent(MotionEvent event) { - boolean result = super.onTouchEvent(event); - if (wxGesture != null) { - result |= wxGesture.onTouch(this, event); - } - return result; - } - - public void sendEvent(){ - if(wxComponent != null){ - wxComponent.sendEvent(); - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/WXGCanvasWeexComponent.java b/bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/WXGCanvasWeexComponent.java deleted file mode 100644 index 9b148c46..00000000 --- a/bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/WXGCanvasWeexComponent.java +++ /dev/null @@ -1,142 +0,0 @@ -package com.taobao.gcanvas.bridges.weex; - -import android.app.Activity; -import android.content.Context; -import android.graphics.SurfaceTexture; -import android.support.annotation.NonNull; -import android.text.TextUtils; -import android.view.Display; -import android.view.TextureView; - -import com.alibaba.weex.plugin.annotation.WeexComponent; -import com.taobao.gcanvas.GCanvasJNI; -import com.taobao.gcanvas.bridges.spec.module.IGBridgeModule; -import com.taobao.gcanvas.surface.GTextureView; -import com.taobao.gcanvas.util.GLog; -import com.taobao.weex.WXSDKInstance; -import com.taobao.weex.annotation.Component; -import com.taobao.weex.ui.ComponentCreator; -import com.taobao.weex.ui.action.BasicComponentData; -import com.taobao.weex.ui.component.WXComponent; -import com.taobao.weex.ui.component.WXVContainer; - -import java.util.HashMap; -import java.util.Map; -import java.util.concurrent.atomic.AtomicBoolean; - -/** - * @author ertong - */ - -@WeexComponent(names = {"gcanvas"}) -@Component(lazyload = false) -public class WXGCanvasWeexComponent extends WXComponent implements TextureView.SurfaceTextureListener { - private GWXTextureView mSurfaceView; - public AtomicBoolean mSended = new AtomicBoolean(false); - public IGBridgeModule.ContextType mType; - - private static final String TAG = WXGCanvasWeexComponent.class.getSimpleName(); - - private void addGCanvasView() { - String backgroundColor = getStyles().getBackgroundColor(); - mSurfaceView = new GWXTextureView(getContext(), this); - GCanvasJNI.registerWXCallNativeFunc(getContext()); - if (TextUtils.isEmpty(backgroundColor)) { - backgroundColor = "rgba(0,0,0,0)"; - } - mSurfaceView.setBackgroundColor(backgroundColor); - mSurfaceView.addSurfaceTextureListener(this); - } - - public static class Creator implements ComponentCreator { - @Override - public WXComponent createInstance(WXSDKInstance wxsdkInstance, WXVContainer wxvContainer, BasicComponentData basicComponentData) { - return new WXGCanvasWeexComponent(wxsdkInstance, wxvContainer, basicComponentData); - } - } - - public WXGCanvasWeexComponent(WXSDKInstance instance, WXVContainer parent, BasicComponentData basicComponentData) { - super(instance, parent, basicComponentData); - } - - public WXGCanvasWeexComponent(WXSDKInstance instance, WXVContainer parent, int type, BasicComponentData basicComponentData) { - super(instance, parent, type, basicComponentData); - } - - @Override - public void onActivityResume() { - if (null != mSurfaceView) { - mSurfaceView.resume(); - } - } - - @Override - public void onActivityDestroy() { - if (null != mSurfaceView) { - mSurfaceView.setSurfaceTextureListener(null); - mSurfaceView.requestExit(); - } - } - - @Override - public void onActivityPause() { - if (null != mSurfaceView) { - mSurfaceView.pause(); - } - } - - @Override - protected GWXTextureView initComponentHostView(@NonNull Context context) { - mSended.set(false); - addGCanvasView(); - - return mSurfaceView; - } - - public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) { - - } - - public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) { - Context ctx = getContext(); - if (ctx == null) { - GLog.e(TAG, "setDevicePixelRatio error ctx == null"); - return; - } - - Display display = ((Activity) ctx).getWindowManager().getDefaultDisplay(); - - int screenWidth = display.getWidth(); - double devicePixelRatio = screenWidth / 750.0; - - GLog.d(TAG, "enable width = " + screenWidth + ",devicePixelRatio = " + devicePixelRatio); - - GCanvasJNI.setWrapperDevicePixelRatio(getRef(), devicePixelRatio); - } - - public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) { - return true; - } - - public void onSurfaceTextureUpdated(SurfaceTexture surface) { - } - - public GTextureView getSurfaceView() { - return mSurfaceView; - } - - public void sendEvent() { - - synchronized (this) { - if (!mSended.get()) { - Map params = new HashMap<>(); - params.put("ref", getRef()); - - getInstance().fireGlobalEventCallback("GCanvasReady", params); - mSended.set(true); - } else { - GLog.d("event sent."); - } - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/bridge/WeexJSCallbackArray.java b/bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/bridge/WeexJSCallbackArray.java deleted file mode 100644 index 9cd537cd..00000000 --- a/bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/bridge/WeexJSCallbackArray.java +++ /dev/null @@ -1,116 +0,0 @@ -package com.taobao.gcanvas.bridges.weex.bridge; - - -import com.taobao.gcanvas.bridges.spec.bridge.IJSCallbackArray; -import com.taobao.gcanvas.bridges.spec.bridge.IJSCallbackMap; -import com.taobao.gcanvas.bridges.spec.bridge.IJSCallbackType; - -import org.json.JSONArray; -import org.json.JSONException; - -/** - * Weex IJSCallbackArray, implemented by ArrayList. - * - * @author ertong - */ -public class WeexJSCallbackArray extends JSONArray implements IJSCallbackArray { - @Override - public int size() { - return length(); - } - - @Override - public boolean isNull(int index) { - return opt(index) == null; - } - - @Override - public boolean getBoolean(int index) { - return optBoolean(index, false); - } - - @Override - public double getDouble(int index) { - return optDouble(index); - } - - @Override - public int getInt(int index) { - return optInt(index); - } - - @Override - public String getString(int index) { - return optString(index); - } - - @Override - public IJSCallbackArray getArray(int index) { - return (IJSCallbackArray) opt(index); - } - - @Override - public IJSCallbackMap getMap(int index) { - return (IJSCallbackMap) opt(index); - } - - @Override - public IJSCallbackType getType(int index) { - Object object = opt(index); - - if (object == null) { - return IJSCallbackType.Null; - } else if (object instanceof Boolean) { - return IJSCallbackType.Boolean; - } else if (object instanceof Double || - object instanceof Float || - object instanceof Integer) { - return IJSCallbackType.Number; - } else if (object instanceof String) { - return IJSCallbackType.String; - } else if (object instanceof IJSCallbackArray) { - return IJSCallbackType.Array; - } else if (object instanceof IJSCallbackMap) { - return IJSCallbackType.Map; - } - return null; - } - - @Override - public void pushNull() { - put(null); - } - - @Override - public void pushBoolean(boolean value) { - put(value); - } - - @Override - public void pushDouble(double value) { - try { - put(value); - } catch (JSONException e) { - } - } - - @Override - public void pushInt(int value) { - put(value); - } - - @Override - public void pushString(String value) { - put(value); - } - - @Override - public void pushArray(IJSCallbackArray array) { - put(array); - } - - @Override - public void pushMap(IJSCallbackMap map) { - put(map); - } -} diff --git a/bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/bridge/WeexJSCallbackDataFactory.java b/bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/bridge/WeexJSCallbackDataFactory.java deleted file mode 100644 index 068da905..00000000 --- a/bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/bridge/WeexJSCallbackDataFactory.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.taobao.gcanvas.bridges.weex.bridge; - -import com.taobao.gcanvas.bridges.spec.bridge.IJSCallbackArray; -import com.taobao.gcanvas.bridges.spec.bridge.IJSCallbackDataFactory; -import com.taobao.gcanvas.bridges.spec.bridge.IJSCallbackMap; - -/** - * @author ertong - */ -public class WeexJSCallbackDataFactory implements IJSCallbackDataFactory { - @Override - public IJSCallbackArray createJSCallbackArray() { - return new WeexJSCallbackArray(); - } - - @Override - public IJSCallbackMap createJSCallbackMap() { - return new WeexJSCallbackMap(); - } -} diff --git a/bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/bridge/WeexJSCallbackMap.java b/bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/bridge/WeexJSCallbackMap.java deleted file mode 100644 index a02fba6c..00000000 --- a/bridges/weex-gcanvas/android/weex_bridge/src/main/java/com/taobao/gcanvas/bridges/weex/bridge/WeexJSCallbackMap.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.taobao.gcanvas.bridges.weex.bridge; - - -import com.taobao.gcanvas.bridges.spec.bridge.IJSCallbackArray; -import com.taobao.gcanvas.bridges.spec.bridge.IJSCallbackMap; -import com.taobao.gcanvas.bridges.spec.bridge.IJSCallbackType; - -import java.util.HashMap; -import java.util.Iterator; - - -/** - * Weex IJSCallbackMap implemented by HashMap. - * @author ertong - */ -public class WeexJSCallbackMap extends HashMap implements IJSCallbackMap { - @Override - public boolean hasKey(String name) { - return containsKey(name); - } - - @Override - public boolean isNull(String name) { - return get(name) == null; - } - - @Override - public boolean getBoolean(String name) { - return (Boolean) get(name); - } - - @Override - public double getDouble(String name) { - return (Double) get(name); - } - - @Override - public int getInt(String name) { - return (Integer) get(name); - } - - @Override - public String getString(String name) { - return String.valueOf(get(name)); - } - - @Override - public IJSCallbackArray getArray(String name) { - return (IJSCallbackArray) get(name); - } - - @Override - public IJSCallbackMap getMap(String name) { - return (IJSCallbackMap) get(name); - } - - @Override - public IJSCallbackType getType(String name) { - Object value = get(name); - if (value == null) { - return IJSCallbackType.Null; - } else if (value instanceof Number) { - return IJSCallbackType.Number; - } else if (value instanceof String) { - return IJSCallbackType.String; - } else if (value instanceof Boolean) { - return IJSCallbackType.Boolean; - } else if (value instanceof IJSCallbackMap) { - return IJSCallbackType.Map; - } else if (value instanceof IJSCallbackArray) { - return IJSCallbackType.Array; - } else { - throw new IllegalArgumentException("Invalid value " + value.toString() + " for key " + name + - "contained in JavaOnlyMap"); - } - } - - @Override - public IJSCallbackMapKeySetIterator keySetIterator() { - return new IJSCallbackMapKeySetIterator() { - Iterator mIterator = keySet().iterator(); - - @Override - public boolean hasNextKey() { - return mIterator.hasNext(); - } - - @Override - public String nextKey() { - return mIterator.next(); - } - }; - } - - @Override - public void putNull(String key) { - put(key, null); - } - - @Override - public void putBoolean(String key, boolean value) { - put(key, value); - } - - @Override - public void putDouble(String key, double value) { - put(key, value); - } - - @Override - public void putInt(String key, int value) { - put(key, value); - } - - @Override - public void putString(String key, String value) { - put(key, value); - } - - @Override - public void putArray(String key, IJSCallbackArray value) { - put(key, value); - } - - @Override - public void putMap(String key, IJSCallbackMap value) { - put(key, value); - } - - @Override - public void merge(IJSCallbackMap source) { - if (source instanceof WeexJSCallbackMap) { - putAll(((WeexJSCallbackMap) source)); - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/.gitignore b/bridges/weex-gcanvas/android/weex_playground/.gitignore deleted file mode 100644 index e8fa30f8..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/build -*.iml diff --git a/bridges/weex-gcanvas/android/weex_playground/build.gradle b/bridges/weex-gcanvas/android/weex_playground/build.gradle deleted file mode 100644 index 0aaed91e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/build.gradle +++ /dev/null @@ -1,101 +0,0 @@ -apply plugin: 'com.android.application' - -android { - compileSdkVersion rootProject.extensions.sdks.CompileSDK - buildToolsVersion rootProject.extensions.sdks.BuildTool - - defaultConfig { - minSdkVersion rootProject.extensions.sdks.MinSDK - targetSdkVersion rootProject.extensions.sdks.TargetSDK - versionCode 1 - versionName "1.0" - - testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" - multiDexEnabled true - - ndk{ - abiFilters "armeabi-v7a" - } - } - - applicationVariants.all { variant -> - variant.outputs.each { output -> - def outputFile = output.outputFile - if (outputFile != null && outputFile.name.equals('app-debug.apk')) { - def fileName = outputFile.name.replace("app-debug.apk", "playground.apk") - output.outputFile = new File(outputFile.parent, fileName) - } - } - } - signingConfigs { - debug { - storeFile file("tools/weex.jks") - storePassword "123456" - keyAlias "weex" - keyPassword "123456" - } - } - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - } - } - sourceSets { - main { - java { - srcDirs = ["src/main/java", "src/main/java_zxing","src/main/java_commons"]; - } - } - } - lintOptions { - abortOnError false - } - - packagingOptions { - exclude 'LICENSE.txt' - } - testOptions { - reportDir = "$project.buildDir/test/report" - } - dexOptions { - preDexLibraries false - javaMaxHeapSize "4g" - } - -} - -dependencies { - compile fileTree(dir: 'libs', include: ['*.jar']) - androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { - exclude group: 'com.android.support', module: 'support-annotations' - }) - implementation project(':bridges:weex-gcanvas:android:weex_bridge') - - compile 'com.loopj.android:android-async-http:1.4.9@aar' - compile "com.squareup.picasso:picasso:${rootProject.extensions.sdks.Picasso}" - compile "com.facebook.fresco:fresco:${rootProject.extensions.sdks.Fresco}" - compile "com.facebook.fresco:animated-gif:${rootProject.extensions.sdks.Fresco}" - - compile 'com.squareup.okhttp:okhttp:2.3.0' - compile 'com.squareup.okhttp:okhttp-ws:2.3.0' - compile 'com.squareup.okio:okio:1.0.1' - compile "com.android.support:support-v4:${rootProject.extensions.sdks.Support}" - compile "com.android.support:appcompat-v7:${rootProject.extensions.sdks.Support}" - compile "com.android.support:design:${rootProject.extensions.sdks.Support}" - compile "com.android.support:support-annotations:${rootProject.extensions.sdks.Support}" - compile 'com.jakewharton.scalpel:scalpel:1.1.2' - compile 'com.android.support.test.espresso:espresso-idling-resource:2.2.2' - compile 'com.android.support:multidex:1.0.3' - compile "com.taobao.android:weex_sdk:${rootProject.extensions.sdks.Weex}" - - - - - compile 'com.taobao.android:weexplugin-annotation:1.3' - compile 'com.taobao.android.weex_inspection:urlconnection_interceptor:1.0.0' - compile 'com.taobao.android.weex_inspection:protocol:1.1.4.1' - compile 'com.taobao.android:weex_inspector:0.18.12' - compile 'com.taobao.android:weexplugin-loader:1.3' - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/proguard-rules.pro b/bridges/weex-gcanvas/android/weex_playground/proguard-rules.pro deleted file mode 100644 index 7d39e103..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/proguard-rules.pro +++ /dev/null @@ -1,34 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in /Users/yuantong/Library/Android/sdk/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -##weex --keep class com.taobao.weex.bridge.**{*;} --keep class com.taobao.weex.dom.**{*;} --keep class com.taobao.weex.adapter.**{*;} --keep class com.taobao.weex.common.**{*;} --keep class * implements com.taobao.weex.IWXObject{*;} --keep class com.taobao.weex.ui.**{*;} --keep class com.taobao.weex.ui.component.**{*;} --keep class com.taobao.weex.utils.**{ - public ; - public ; - } --keep class com.taobao.weex.view.**{*;} --keep class com.taobao.weex.module.**{*;} --keep public class * extends com.taobao.weex.common.WXModule{*;} --keep public class com.taobao.weex.WXDebugTool{*;} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/AndroidManifest.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/AndroidManifest.xml deleted file mode 100755 index 07b601ce..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/AndroidManifest.xml +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/animation.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/animation.js deleted file mode 100644 index 6ae347a7..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/animation.js +++ /dev/null @@ -1,2295 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "4371c408c20969c65a13d9fa5a51d925" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(1) - var __weex_style__ = __webpack_require__(2) - var __weex_script__ = __webpack_require__(3) - - __weex_define__('@weex-component/08f3d99ae6a6056191aa37369285037a', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/08f3d99ae6a6056191aa37369285037a',undefined,undefined) - -/***/ }, -/* 1 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "Transform", - "type": "primary" - }, - "children": [ - { - "type": "wxc-button", - "attr": { - "value": "Rotate", - "type": "primary", - "size": "middle" - }, - "events": { - "click": "rotate" - } - }, - { - "type": "wxc-button", - "attr": { - "value": "Scale", - "type": "primary", - "size": "middle" - }, - "events": { - "click": "scale" - }, - "style": { - "marginTop": 12 - } - }, - { - "type": "wxc-button", - "attr": { - "value": "Translate", - "type": "primary", - "size": "middle" - }, - "events": { - "click": "translate" - }, - "style": { - "marginTop": 12 - } - }, - { - "type": "wxc-button", - "attr": { - "value": "Transform", - "type": "success", - "size": "middle" - }, - "events": { - "click": "transform" - }, - "style": { - "marginTop": 12 - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "Others", - "type": "primary" - }, - "children": [ - { - "type": "wxc-button", - "attr": { - "value": "BgColor", - "type": "primary", - "size": "middle" - }, - "events": { - "click": "color" - } - }, - { - "type": "wxc-button", - "attr": { - "value": "Opacity", - "type": "primary", - "size": "middle" - }, - "events": { - "click": "opacity" - }, - "style": { - "marginTop": 12 - } - }, - { - "type": "wxc-button", - "attr": { - "value": "All", - "type": "success", - "size": "middle" - }, - "events": { - "click": "composite" - }, - "style": { - "marginTop": 12 - } - } - ] - }, - { - "type": "div", - "id": "block", - "classList": [ - "block" - ], - "style": { - "transformOrigin": function () {return this.transformOrigin} - }, - "children": [ - { - "type": "text", - "classList": [ - "block-txt" - ], - "attr": { - "value": "Anim" - } - } - ] - } - ] - } - -/***/ }, -/* 2 */ -/***/ function(module, exports) { - - module.exports = { - "block": { - "position": "absolute", - "width": 250, - "height": 250, - "top": 300, - "left": 400, - "backgroundColor": "#F0AD4E", - "alignItems": "center", - "justifyContent": "center" - }, - "block-txt": { - "color": "#FFFFFF", - "fontSize": 70 - } - } - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - module.exports = { - data: function () {return { - transformOrigin: 'center center', - current_rotate: 0, - current_scale: 1, - current_color: '#FF0000', - current_opacity: 1, - current_translate: '', - current_transform: '', - isStop: true - }}, - methods: { - anim: function anim(styles, timingFunction, duration, callback) { - this.$call('animation', 'transition', this._ids.block.el.ref, { - styles: styles, - timingFunction: timingFunction, - duration: duration - }, callback); - }, - rotate: function rotate() { - var self = this; - self.current_rotate += 90; - self.anim({ - transform: 'rotate(' + self.current_rotate + 'deg)' - }, 'ease-in-out', 500, function () { - if (self.current_rotate === 360) { - self.current_rotate = 0; - } else { - self.rotate(); - } - }); - }, - translate: function translate() { - this.current_translate = this.current_translate ? '' : 'translate(50%, 50%)'; - this.anim({ - transform: this.current_translate - }, 'ease-in', 500, function () {}); - }, - scale: function scale() { - var self = this; - self.current_scale = self.current_scale === 2 ? .5 : 2; - self.anim({ - transform: 'scale(' + self.current_scale + ')' - }, 'linear', 500, function () {}); - }, - transform: function transform() { - var self = this; - this.current_transform = this.current_transform ? '' : 'rotate(45deg) scale(1.5)'; - this.anim({ - transform: this.current_transform, - transformOrigin: 'left top' - }, 'ease-out', 500, function () { - if (self.current_transform !== '') { - self.anim({ - transform: 'rotate(-90deg) scale(1.2)', - transformOrigin: 'left top' - }, 'ease-out', 500, function () {}); - } else {} - }); - }, - composite: function composite() { - var self = this; - self.current_transform = self.current_transform ? '' : 'rotate(45deg) scale(1.5) translate(50%, 50%)'; - self.current_color = self.current_color === '#F0AD4E' ? '#D9534F' : '#F0AD4E'; - self.current_opacity = self.current_opacity === 1 ? 0.1 : 1; - this.anim({ - transform: this.current_transform, - transformOrigin: 'left top', - backgroundColor: self.current_color, - opacity: self.current_opacity - }, 'ease-out', 1000, function () {}); - }, - color: function color() { - var self = this; - self.current_color = self.current_color === '#F0AD4E' ? '#D9534F' : '#F0AD4E'; - self.anim({ - backgroundColor: self.current_color - }, 'linear', 500, function () {}); - }, - opacity: function opacity() { - var self = this; - self.current_opacity = self.current_opacity === 1 ? 0.1 : 1; - self.anim({ - opacity: self.current_opacity - }, 'linear', 500, function () {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/a-demo.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/a-demo.js deleted file mode 100644 index 56e085d5..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/a-demo.js +++ /dev/null @@ -1,2087 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "bd7d951b8dffd3ab47133123e937e3a0" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(86) - var __weex_script__ = __webpack_require__(87) - - __weex_define__('@weex-component/c1a5ee0b8eec58d4b53a6bf8756f068b', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/c1a5ee0b8eec58d4b53a6bf8756f068b',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */ -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "Hyperlink", - "type": "primary" - }, - "children": [ - { - "type": "a", - "attr": { - "href": "http://g.tbcdn.cn/ali-wireless-h5/res/0.0.16/hello.js" - }, - "children": [ - { - "type": "wxc-tip", - "attr": { - "type": "info", - "value": "Click me to see how 'A' element opens a new world." - }, - "style": { - "marginBottom": 20 - } - } - ] - } - ] - } - ] - } - -/***/ }, -/* 87 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - module.exports = { - data: function () {return { - img: '//gw.alicdn.com/tps/i2/TB1DpsmMpXXXXabaXXX20ySQVXX-512-512.png_400x400.jpg' - }} - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/countdown-demo.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/countdown-demo.js deleted file mode 100644 index 434348c0..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/countdown-demo.js +++ /dev/null @@ -1,2288 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "42bc563b62a414952e3bc04aace7897c" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(88) - var __weex_style__ = __webpack_require__(89) - var __weex_script__ = __webpack_require__(90) - - __weex_define__('@weex-component/d7fb6937f4dc3cd5e71cdd30037cf729', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/d7fb6937f4dc3cd5e71cdd30037cf729',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */ -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "Countdown", - "type": "primary" - }, - "children": [ - { - "type": "wxc-countdown", - "id": "countdown1", - "attr": { - "remain": function () {return this.countdown1.remain} - }, - "style": { - "width": 750, - "marginTop": 20, - "marginBottom": 20 - }, - "children": [ - { - "type": "text", - "classList": [ - "ctno1" - ], - "attr": { - "value": function () {return this.countdown1.time.D} - } - }, - { - "type": "text", - "classList": [ - "ctno1" - ], - "style": { - "backgroundColor": "#FFFFFF", - "color": "#AAAAAA" - }, - "attr": { - "value": "day(s)" - } - }, - { - "type": "text", - "classList": [ - "ctno1" - ], - "attr": { - "value": function () {return this.countdown1.time.hh} - } - }, - { - "type": "text", - "classList": [ - "ctno1" - ], - "style": { - "backgroundColor": "#FFFFFF", - "color": "#AAAAAA" - }, - "attr": { - "value": "hour(s)" - } - }, - { - "type": "text", - "classList": [ - "ctno1" - ], - "attr": { - "value": function () {return this.countdown1.time.mm} - } - }, - { - "type": "text", - "classList": [ - "ctno1" - ], - "style": { - "backgroundColor": "#FFFFFF", - "color": "#AAAAAA" - }, - "attr": { - "value": "minute(s)" - } - }, - { - "type": "text", - "classList": [ - "ctno1" - ], - "attr": { - "value": function () {return this.countdown1.time.ss} - } - }, - { - "type": "text", - "classList": [ - "ctno1" - ], - "style": { - "backgroundColor": "#FFFFFF", - "color": "#AAAAAA" - }, - "attr": { - "value": "second(s)" - } - } - ] - }, - { - "type": "wxc-countdown", - "id": "countdown2", - "attr": { - "remain": function () {return this.countdown2.remain} - }, - "style": { - "width": 600 - }, - "children": [ - { - "type": "text", - "classList": [ - "ctno2" - ], - "attr": { - "value": function () {return this.countdown2.time.MM} - } - }, - { - "type": "text", - "classList": [ - "ctno2" - ], - "style": { - "backgroundColor": "#FFFFFF", - "color": "#AAAAAA" - }, - "attr": { - "value": ":" - } - }, - { - "type": "text", - "classList": [ - "ctno2" - ], - "attr": { - "value": function () {return this.countdown2.time.ss} - } - } - ] - } - ] - } - ] - } - -/***/ }, -/* 89 */ -/***/ function(module, exports) { - - module.exports = { - "ctno1": { - "borderRadius": 8, - "paddingTop": 6, - "paddingBottom": 6, - "paddingRight": 4, - "paddingLeft": 4, - "marginLeft": 2, - "marginRight": 2, - "backgroundColor": "rgb(242,222,222)", - "color": "rgb(169,68,66)" - }, - "ctno2": { - "borderRadius": 8, - "paddingTop": 30, - "paddingBottom": 30, - "paddingLeft": 16, - "paddingRight": 16, - "backgroundColor": "rgb(217,237,247)", - "color": "rgb(49,112,143)", - "textAlign": "center", - "fontSize": 40 - } - } - -/***/ }, -/* 90 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - __webpack_require__(4); - - module.exports = { - data: function () {return { - countdown1: { - remain: 5000, - time: { - D: '0', - hh: '00', - mm: '00', - ss: '00' - } - }, - countdown2: { - remain: 5000, - time: { - MM: '0', - ss: '0' - } - } - }}, - ready: function ready() { - this.initCountdown('countdown1'); - this.initCountdown('countdown2'); - }, - methods: { - initCountdown: function initCountdown(id) { - var self = this; - - var $countdown = this.$vm(id); - $countdown.$on('tick', function (e) { - (0, _assign2.default)(self[id].time, e.detail); - }); - - $countdown.$on('alarm', function (e) { - (0, _assign2.default)(self[id].time, e.detail); - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/image-demo.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/image-demo.js deleted file mode 100644 index fb15249a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/image-demo.js +++ /dev/null @@ -1,2336 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "e2de07c3eed6548e5195268fa9599669" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(91) - var __weex_style__ = __webpack_require__(92) - var __weex_script__ = __webpack_require__(93) - - __weex_define__('@weex-component/edbf120a9d73e4b4dc26be7677e984ea', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/edbf120a9d73e4b4dc26be7677e984ea',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */ -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "width x height", - "type": "primary" - }, - "children": [ - { - "type": "wxc-tip", - "attr": { - "type": "warning", - "value": "Weex screen width is 750" - }, - "style": { - "marginBottom": 20 - } - }, - { - "type": "div", - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "image", - "classList": [ - "img" - ], - "style": { - "width": 300, - "height": 300 - }, - "attr": { - "src": function () {return this.img} - } - }, - { - "type": "image", - "classList": [ - "img" - ], - "style": { - "width": 200, - "height": 200 - }, - "attr": { - "src": function () {return this.img} - } - }, - { - "type": "image", - "classList": [ - "img" - ], - "style": { - "width": 50, - "height": 50 - }, - "attr": { - "src": function () {return this.img} - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "GIF Animation", - "type": "primary" - }, - "children": [ - { - "type": "wxc-tip", - "attr": { - "type": "warning", - "value": "Depanding on Native ImageSDK" - }, - "style": { - "marginBottom": 20 - } - }, - { - "type": "div", - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "image", - "classList": [ - "img" - ], - "style": { - "width": 96, - "height": 96 - }, - "attr": { - "src": "https://gtd.alicdn.com/tps/i4/T1HcvHXd4nXXb6ROYh-48-48.gif" - } - }, - { - "type": "image", - "classList": [ - "img" - ], - "style": { - "width": 68, - "height": 68, - "marginLeft": 20 - }, - "attr": { - "src": "https://gw.alicdn.com/tps/TB1El.mKXXXXXXyapXXXXXXXXXX-34-34.gif" - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "Base64", - "type": "primary" - }, - "children": [ - { - "type": "wxc-tip", - "attr": { - "type": "warning", - "value": "Depanding on Native ImageSDK" - }, - "style": { - "marginBottom": 20 - } - }, - { - "type": "div", - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "image", - "classList": [ - "img" - ], - "style": { - "width": 96, - "height": 96 - }, - "attr": { - "src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAhCAMAAABgOjJdAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAO1QTFRFhomSb3J8XGBrdnqDgYWNlJefV1tmfoGKU1diT1NfgISNgoWOYmZwio2Vi4+Wc3eAkJObZGhzUlZiaGt2U1djfYCKZGdyhYiQeHyFio6VgYWOVVllbHB6XWFsY2ZxaWx3jZCYXmFsfYCJcnZ/UVVham54V1tng4aPb3N8WV1pX2JtZWl0YWVvVlpmiYyUWVxohomRd3uEdHiBeX2GZ2t1hIeQVFhkf4OMbnJ8fYGKdnqEb3N9kJScY2dycnaAjpKZdHeBjpKajI+Yc3eBhYiRf4KLXmFtio6Wi4+XjZCZkJSbkZScjI+XlJifTlJe+rAZcwAAAZBJREFUeNp0lOeWgjAQhSdUBQRRbFjX7tpW3XUt23tL3v9xNigJIHh/zRk+5iR3ZgIkULWmwgv+A7VWDWWBR/nSt2gLUzIVbLH1lo8RRW1wEfqxPtCKUaKTMUhURuUhTIi6Q07l6LuAEFdpEld6tWNEx00CKKJ3jsR1xSHJcj4bB+LmkpxT49Yj8mqQUVBBciUk8ITepESJ+5AqY1+uwny5IjDPcADoN0BIwjLOsjKZOewtbi/9fvi338a44CetIai2H/cokPLj9tfEj2wVzD4rIWMlfpu+CXc5Pw4qh5X7AUw4gZIswUENGT8lAN1fMBVeAxIIxYR3Nin0imOe52emdxkyP8aY+0S9Y2d63cNoxvACRTaeI70slst+cjYCAnXmuuS1RKKmy1hKBX0hzaC3KOsxsmz2Ir2NzMcEbVCo+cf5oDOWOzNAucpxxoglnZlT1+KzXk4kymKwL4ttN+73dhHeuWV85zLL073Vw3v7MdDuE3a/JRrCmqwFQ2yV8gmvg/d+aPCMH0GLvB//AgwAo1MTpxsaxVoAAAAASUVORK5CYII=" - } - }, - { - "type": "image", - "classList": [ - "img" - ], - "style": { - "width": 68, - "height": 68, - "marginLeft": 20 - }, - "attr": { - "src": "data:image/gif;base64,R0lGODlhIgAiANU7AMvLy83Nzdra2srKysnJyejo6MbGxtzc3M7Ozuzs7NTU1N3d3fz8/NfX1/j4+Ovr6+/v79DQ0Obm5v39/d/f3/f398/Pz9vb2+np6fn5+f7+/tXV1fX19dnZ2erq6tHR0fb29sjIyMfHx+Li4vLy8u7u7ufn5/r6+uPj49bW1tPT09LS0sTExPT09ODg4O3t7eHh4eTk5MXFxd7e3vHx8fPz8/Dw8OXl5djY2P///8zMzP///wAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0Q0QxODlDNENEOEQxMUUzOEIzM0I1ODVGNjU1MjBBQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0Q0QxODlDNUNEOEQxMUUzOEIzM0I1ODVGNjU1MjBBQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDRDE4OUMyQ0Q4RDExRTM4QjMzQjU4NUY2NTUyMEFCIiBzdFJl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" - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "resize", - "type": "primary" - }, - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "resize=stretch(default) 600 x 200" - }, - "children": [ - { - "type": "image", - "classList": [ - "img" - ], - "style": { - "width": 600, - "height": 200, - "borderStyle": "solid", - "borderWidth": 1, - "borderColor": "#333333" - }, - "attr": { - "src": function () {return this.img}, - "resize": "stretch" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "resize=contain 600 x 200" - }, - "children": [ - { - "type": "image", - "classList": [ - "img" - ], - "style": { - "width": 600, - "height": 200, - "borderStyle": "solid", - "borderWidth": 1, - "borderColor": "#333333" - }, - "attr": { - "src": function () {return this.img}, - "resize": "contain" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "resize=cover 600 x 200" - }, - "children": [ - { - "type": "image", - "classList": [ - "img" - ], - "style": { - "width": 600, - "height": 200, - "borderStyle": "solid", - "borderWidth": 1, - "borderColor": "#333333" - }, - "attr": { - "src": function () {return this.img}, - "resize": "cover" - } - } - ] - } - ] - } - ] - } - -/***/ }, -/* 92 */ -/***/ function(module, exports) { - - module.exports = { - "img": { - "marginBottom": 20 - } - } - -/***/ }, -/* 93 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - module.exports = { - data: function () {return { - img: 'http://gw.alicdn.com/tps/i2/TB1DpsmMpXXXXabaXXX20ySQVXX-512-512.png_400x400.jpg' - }} - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/input-demo.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/input-demo.js deleted file mode 100644 index f7ba9eca..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/input-demo.js +++ /dev/null @@ -1,2351 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "7433ba4d5d8f30fe6d5e3d9db6fb3cf5" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(94) - var __weex_style__ = __webpack_require__(95) - var __weex_script__ = __webpack_require__(96) - - __weex_define__('@weex-component/9b05297660bffdeefca2cb266249ee4d', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/9b05297660bffdeefca2cb266249ee4d',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "div", - "children": [ - { - "type": "text", - "style": { - "fontSize": 40 - }, - "attr": { - "value": function () {return 'oninput: ' + (this.txtInput)} - } - }, - { - "type": "text", - "style": { - "fontSize": 40 - }, - "attr": { - "value": function () {return 'onchange: ' + (this.txtChange)} - } - } - ] - }, - { - "type": "scroller", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "input type = text", - "type": "primary" - }, - "children": [ - { - "type": "input", - "attr": { - "type": "text", - "placeholder": "Input Text", - "autofocus": function () {return this.autofocus}, - "value": "" - }, - "classList": [ - "input" - ], - "events": { - "change": "onchange", - "input": "oninput" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "input type = password", - "type": "primary" - }, - "children": [ - { - "type": "input", - "attr": { - "type": "password", - "placeholder": "Input Password" - }, - "classList": [ - "input" - ], - "events": { - "change": "onchange", - "input": "oninput" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "input type = url", - "type": "primary" - }, - "children": [ - { - "type": "input", - "attr": { - "type": "url", - "placeholder": "Input URL" - }, - "classList": [ - "input" - ], - "events": { - "change": "onchange", - "input": "oninput" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "input type = email", - "type": "primary" - }, - "children": [ - { - "type": "input", - "attr": { - "type": "email", - "placeholder": "Input Email" - }, - "classList": [ - "input" - ], - "events": { - "change": "onchange", - "input": "oninput" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "input type = tel", - "type": "primary" - }, - "children": [ - { - "type": "input", - "attr": { - "type": "tel", - "placeholder": "Input Tel" - }, - "classList": [ - "input" - ], - "events": { - "change": "onchange", - "input": "oninput" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "input type = time", - "type": "primary" - }, - "children": [ - { - "type": "input", - "attr": { - "type": "time", - "placeholder": "Input Time" - }, - "classList": [ - "input" - ], - "events": { - "change": "onchange", - "input": "oninput" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "input type = date", - "type": "primary" - }, - "children": [ - { - "type": "input", - "attr": { - "type": "date", - "placeholder": "Input Date", - "max": "2017-12-12", - "min": "2015-01-01" - }, - "classList": [ - "input" - ], - "events": { - "change": "onchange", - "input": "oninput" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "function focus() & blur()", - "type": "primary" - }, - "children": [ - { - "type": "div", - "style": { - "flexDirection": "row", - "marginBottom": 16, - "justifyContent": "space-between" - }, - "children": [ - { - "type": "wxc-button", - "attr": { - "value": "Focus", - "type": "primary" - }, - "events": { - "click": "focus" - } - }, - { - "type": "wxc-button", - "attr": { - "value": "Blur", - "type": "primary" - }, - "events": { - "click": "blur" - } - } - ] - }, - { - "type": "input", - "attr": { - "type": "text", - "placeholder": "Input1", - "value": "" - }, - "classList": [ - "input" - ], - "id": "input1" - } - ] - } - ] - } - ] - } - -/***/ }, -/* 95 */ -/***/ function(module, exports) { - - module.exports = { - "input": { - "fontSize": 60, - "height": 80, - "width": 750 - } - } - -/***/ }, -/* 96 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - module.exports = { - data: function () {return { - txtInput: '', - txtChange: '', - autofocus: false - }}, - methods: { - ready: function ready() { - var self = this; - setTimeout(function () { - self.autofocus = true; - }, 1000); - }, - onchange: function onchange(event) { - this.txtChange = event.value; - console.log('onchange', event.value); - }, - oninput: function oninput(event) { - this.txtInput = event.value; - console.log('oninput', event.value); - }, - focus: function focus() { - this.$el('input1').focus(); - }, - blur: function blur() { - this.$el('input1').blur(); - } - } - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/list/list-basic.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/list/list-basic.js deleted file mode 100644 index 37bd7eae..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/list/list-basic.js +++ /dev/null @@ -1,319 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "2eeb35e809bccd8c518a92942ff0205e" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(97) - var __weex_style__ = __webpack_require__(98) - var __weex_script__ = __webpack_require__(99) - - __weex_define__('@weex-component/e4cde146096cc51ec5ab930a518ea157', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/e4cde146096cc51ec5ab930a518ea157',undefined,undefined) - -/***/ }, - -/***/ 97: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "list", - "classList": [ - "list" - ], - "children": [ - { - "type": "refresh", - "classList": [ - "refresh-view" - ], - "attr": { - "display": function () {return this.refresh_display} - }, - "events": { - "refresh": "onrefresh" - }, - "children": [ - { - "type": "text", - "shown": function () {return (this.refresh_display==='hide')}, - "attr": { - "value": "↓ pull to refresh" - } - }, - { - "type": "loading-indicator", - "classList": [ - "indicator" - ] - } - ] - }, - { - "type": "cell", - "append": "tree", - "events": { - "appear": "onappear", - "disappear": "ondisappear" - }, - "classList": [ - "row" - ], - "repeat": function () {return this.rows}, - "attr": { - "index": function () {return this.$index} - }, - "children": [ - { - "type": "div", - "classList": [ - "item" - ], - "children": [ - { - "type": "text", - "classList": [ - "item-title" - ], - "attr": { - "value": function () {return 'row ' + (this.id)} - } - } - ] - } - ] - }, - { - "type": "loading", - "classList": [ - "loading-view" - ], - "attr": { - "display": function () {return this.loading_display} - }, - "events": { - "loading": "onloading" - }, - "children": [ - { - "type": "text", - "shown": function () {return (this.loading_display==='hide')}, - "attr": { - "value": "↑ Loadmore" - } - }, - { - "type": "loading-indicator", - "classList": [ - "indicator" - ] - } - ] - } - ] - }, - { - "type": "text", - "classList": [ - "count" - ], - "attr": { - "value": function () {return 'Appear items:' + (this.appearMin) + ' - ' + (this.appearMax)} - } - } - ] - } - -/***/ }, - -/***/ 98: -/***/ function(module, exports) { - - module.exports = { - "list": { - "height": 850 - }, - "count": { - "fontSize": 48, - "margin": 10 - }, - "indicator": { - "height": 60, - "width": 60, - "color": "#889967" - }, - "refresh-arrow": { - "fontSize": 30, - "color": "#45b5f0" - }, - "row": { - "width": 750 - }, - "item": { - "justifyContent": "center", - "borderBottomWidth": 2, - "borderBottomColor": "#c0c0c0", - "height": 100, - "padding": 20 - }, - "refresh-view": { - "width": 750, - "height": 100, - "display": "flex", - "MsFlexAlign": "center", - "WebkitAlignItems": "center", - "WebkitBoxAlign": "center", - "alignItems": "center" - }, - "loading-view": { - "width": 750, - "height": 100, - "display": "flex", - "MsFlexAlign": "center", - "WebkitAlignItems": "center", - "WebkitBoxAlign": "center", - "alignItems": "center" - } - } - -/***/ }, - -/***/ 99: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - methods: { - onappear: function onappear(e) { - var appearId = this.rows[e.target.attr.index].id; - nativeLog('+++++', appearId); - var appearIds = this.appearIds; - appearIds.push(appearId); - this.getMinAndMaxIds(appearIds); - }, - ondisappear: function ondisappear(e) { - var disAppearId = this.rows[e.target.attr.index].id; - nativeLog('+++++', disAppearId); - var appearIds = this.appearIds; - var index = appearIds.indexOf(disAppearId); - if (index > -1) { - appearIds.splice(index, 1); - } - this.getMinAndMaxIds(appearIds); - }, - getMinAndMaxIds: function getMinAndMaxIds(appearIds) { - appearIds.sort(function (a, b) { - return a - b; - }); - this.appearIds = appearIds; - this.appearMax = appearIds[appearIds.length - 1]; - this.appearMin = appearIds[0]; - }, - onrefresh: function onrefresh(e) { - var self = this; - self.refresh_display = 'show'; - self.$call('modal', 'toast', { - 'message': 'onrefresh' - }); - - this.$call('timer', 'setTimeout', function () { - self.refresh_display = 'hide'; - }, 3000); - }, - - onloading: function onloading() { - var self = this; - self.loading_display = 'show'; - self.$call('modal', 'toast', { - 'message': 'onloading' - }); - - this.$call('timer', 'setTimeout', function () { - if (self.rows.length <= 33) { - self.rows.push(self.moreRows[self.rows.length - 29]); - } - self.loading_display = 'hide'; - }, 3000); - } - }, - data: function () {return { - refresh_display: 'hide', - loading_display: 'hide', - appearMin: 1, - appearMax: 1, - appearIds: [], - rows: [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }, { id: 5 }, { id: 6 }, { id: 7 }, { id: 8 }, { id: 9 }, { id: 10 }, { id: 11 }, { id: 12 }, { id: 13 }, { id: 14 }, { id: 15 }, { id: 16 }, { id: 17 }, { id: 18 }, { id: 19 }, { id: 20 }, { id: 21 }, { id: 22 }, { id: 23 }, { id: 24 }, { id: 25 }, { id: 26 }, { id: 27 }, { id: 28 }, { id: 29 }], - moreRows: [{ id: 30 }, { id: 31 }, { id: 32 }, { id: 33 }] - }} - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/list/list-demo-horizon.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/list/list-demo-horizon.js deleted file mode 100644 index db9b80f5..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/list/list-demo-horizon.js +++ /dev/null @@ -1,1230 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "0fe05660e286b278d48fbe62da79bf4e" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(103) - var __weex_style__ = __webpack_require__(104) - var __weex_script__ = __webpack_require__(105) - - __weex_define__('@weex-component/a089a89d3221f94935162af3aa4db1af', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/a089a89d3221f94935162af3aa4db1af',undefined,undefined) - -/***/ }, - -/***/ 103: -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "children": [ - { - "type": "div", - "classList": [ - "block" - ], - "children": [ - { - "type": "text", - "attr": { - "value": "Horizontal list" - } - } - ] - }, - { - "type": "hlist", - "classList": [ - "list" - ], - "events": { - "loadmore": "loadmore" - }, - "attr": { - "loadmoreoffset": "2000", - "transform": "opacity(0.8);translate(100,0);rotate(80);" - }, - "children": [ - { - "type": "cell", - "append": "tree", - "classList": [ - "cell" - ], - "events": { - "click": "oncellclick" - }, - "attr": { - "rownumber": function () {return this.id}, - "scope": function () {return this.scopeValue}, - "composite": function () {return this.composite} - }, - "repeat": function () {return this.shopList}, - "children": [ - { - "type": "div", - "classList": [ - "shopDiv" - ], - "children": [ - { - "type": "div", - "classList": [ - "shopHeader" - ], - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "style": { - "flex": 2, - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "children": [ - { - "type": "image", - "style": { - "width": 60, - "height": 60 - }, - "attr": { - "src": function () {return this.PersonPhoto} - } - } - ] - }, - { - "type": "div", - "style": { - "flexDirection": "column", - "marginLeft": 5 - }, - "children": [ - { - "type": "div", - "style": { - "marginTop": 5 - }, - "children": [ - { - "type": "text", - "style": { - "fontSize": 20 - }, - "attr": { - "value": function () {return this.PersonName} - } - } - ] - }, - { - "type": "div", - "style": { - "marginTop": 5 - }, - "children": [ - { - "type": "text", - "style": { - "fontSize": 20, - "color": "#cccccc" - }, - "attr": { - "value": function () {return this.PersonVisitTime} - } - } - ] - } - ] - } - ] - }, - { - "type": "div", - "style": { - "flex": 5, - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "style": { - "flexDirection": "row", - "marginLeft": 10, - "marginTop": 10 - }, - "children": [ - { - "type": "div", - "children": [ - { - "type": "image", - "style": { - "width": 20, - "height": 20 - }, - "attr": { - "src": "https://img.alicdn.com/tps/i4/TB1zkDeIFXXXXXrXVXX07tlTXXX-200-200.png_88x88xz.jpg" - } - } - ] - }, - { - "type": "div", - "children": [ - { - "type": "text", - "style": { - "fontSize": 20 - }, - "attr": { - "value": "Hope" - } - } - ] - } - ] - }, - { - "type": "div", - "style": { - "position": "absolute", - "left": 90, - "top": 10, - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "children": [ - { - "type": "image", - "style": { - "width": 20, - "height": 20 - }, - "attr": { - "src": "https://img.alicdn.com/tps/i2/TB1hRb1IXXXXXX3XVXXXQaP.pXX-87-87.jpeg" - } - } - ] - }, - { - "type": "div", - "children": [ - { - "type": "text", - "style": { - "fontSize": 20 - }, - "attr": { - "value": "Mem" - } - } - ] - } - ] - }, - { - "type": "div", - "style": { - "position": "absolute", - "left": 170, - "top": 10, - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "children": [ - { - "type": "image", - "style": { - "width": 20, - "height": 20 - }, - "attr": { - "src": "https://img.alicdn.com/tps/i3/TB1DGkJJFXXXXaZXFXX07tlTXXX-200-200.png" - } - } - ] - }, - { - "type": "div", - "children": [ - { - "type": "text", - "style": { - "fontSize": 20 - }, - "attr": { - "value": "auth" - } - } - ] - } - ] - }, - { - "type": "div", - "style": { - "position": "absolute", - "left": 250, - "top": 10, - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "children": [ - { - "type": "image", - "style": { - "width": 20, - "height": 20 - }, - "attr": { - "src": "https://img.alicdn.com/tps/i1/TB1nFvPIXXXXXbUXXXXUAkPJpXX-87-87.png" - } - } - ] - }, - { - "type": "div", - "children": [ - { - "type": "text", - "style": { - "fontSize": 20 - }, - "attr": { - "value": "Friend" - } - } - ] - } - ] - }, - { - "type": "div", - "style": { - "position": "absolute", - "left": 330, - "top": 10, - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "children": [ - { - "type": "image", - "style": { - "width": 20, - "height": 20 - }, - "attr": { - "src": "https://img.alicdn.com/tps/i2/TB1CpD7IXXXXXbSXXXXUAkPJpXX-87-87.png" - } - } - ] - }, - { - "type": "div", - "children": [ - { - "type": "text", - "style": { - "fontSize": 20 - }, - "attr": { - "value": "issue" - } - } - ] - } - ] - }, - { - "type": "div", - "style": { - "position": "absolute", - "left": 410, - "top": 10, - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "children": [ - { - "type": "image", - "style": { - "width": 20, - "height": 20 - }, - "attr": { - "src": "https://gtms02.alicdn.com/tps/i2/TB11ZZfIVXXXXbMXFXXEDhGGXXX-32-32.png" - } - } - ] - }, - { - "type": "div", - "children": [ - { - "type": "text", - "style": { - "fontSize": 20 - }, - "attr": { - "value": "super" - } - } - ] - } - ] - } - ] - } - ] - }, - { - "type": "div", - "classList": [ - "shopBody" - ], - "style": { - "flexDirection": "column" - }, - "children": [ - { - "type": "div", - "classList": [ - "descDiv" - ], - "style": { - "marginTop": 10, - "marginLeft": 10 - }, - "children": [ - { - "type": "text", - "classList": [ - "shopDesc" - ], - "style": { - "fontSize": 25, - "height": 60 - }, - "attr": { - "value": function () {return this.shopDesc} - } - } - ] - }, - { - "type": "div", - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "classList": [ - "imgDiv" - ], - "style": { - "flex": 1, - "flexDirection": "column", - "margin": 10 - }, - "repeat": function () {return this.shopImgList}, - "children": [ - { - "type": "div", - "children": [ - { - "type": "image", - "classList": [ - "shopImg" - ], - "style": { - "width": function () {return this.shopImgWidth}, - "height": function () {return this.shopImgHeight} - }, - "attr": { - "src": function () {return this.shopImg} - } - } - ] - }, - { - "type": "div", - "style": { - "flex": 1, - "marginTop": 10, - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "style": { - "flex": 1, - "justifyContent": "center", - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "children": [ - { - "type": "image", - "style": { - "width": 20, - "height": 20 - }, - "attr": { - "src": "https://img.alicdn.com/tps/i1/TB1nFvPIXXXXXbUXXXXUAkPJpXX-87-87.png" - } - } - ] - }, - { - "type": "div", - "style": { - "marginLeft": 5 - }, - "children": [ - { - "type": "text", - "style": { - "fontSize": 20, - "textAlign": "center" - }, - "attr": { - "value": "Up" - } - } - ] - } - ] - }, - { - "type": "div", - "style": { - "flex": 1, - "justifyContent": "center", - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "children": [ - { - "type": "image", - "style": { - "width": 20, - "height": 20 - }, - "attr": { - "src": "https://img.alicdn.com/tps/i2/TB1CpD7IXXXXXbSXXXXUAkPJpXX-87-87.png" - } - } - ] - }, - { - "type": "div", - "style": { - "marginLeft": 5 - }, - "children": [ - { - "type": "text", - "style": { - "fontSize": 20, - "textAlign": "center" - }, - "attr": { - "value": "down" - } - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, - { - "type": "div", - "classList": [ - "shopFooter" - ], - "style": { - "flexDirection": "row", - "marginTop": 10, - "marginLeft": 10, - "justifyContent": "flex-end" - }, - "children": [ - { - "type": "div", - "style": { - "marginRight": 5 - }, - "children": [ - { - "type": "image", - "classList": [ - "shopLikeImg", - "smallImg" - ], - "attr": { - "src": function () {return this.shopLikeImg} - } - } - ] - }, - { - "type": "div", - "style": { - "marginRight": 15 - }, - "children": [ - { - "type": "text", - "classList": [ - "shopLikeText" - ], - "style": { - "fontSize": 20 - }, - "attr": { - "value": function () {return this.shopLikeText} - } - } - ] - }, - { - "type": "div", - "style": { - "marginRight": 5 - }, - "children": [ - { - "type": "image", - "classList": [ - "shopCommentImg", - "smallImg" - ], - "attr": { - "src": function () {return this.shopCommentImg} - } - } - ] - }, - { - "type": "div", - "style": { - "marginRight": 15 - }, - "children": [ - { - "type": "text", - "classList": [ - "shopCommentText" - ], - "style": { - "fontSize": 20 - }, - "attr": { - "value": function () {return this.shopCommentText} - } - } - ] - }, - { - "type": "div", - "style": { - "marginRight": 5 - }, - "children": [ - { - "type": "image", - "classList": [ - "shopLookImg", - "smallImg" - ], - "attr": { - "src": function () {return this.shopLookImg} - } - } - ] - }, - { - "type": "div", - "style": { - "marginRight": 15 - }, - "children": [ - { - "type": "text", - "classList": [ - "shopLookText" - ], - "style": { - "fontSize": 20 - }, - "attr": { - "value": function () {return this.shopLookText} - } - } - ] - }, - { - "type": "div", - "style": { - "marginRight": 5 - }, - "children": [ - { - "type": "image", - "classList": [ - "shareImg", - "smallImg" - ], - "attr": { - "src": function () {return this.shareImg} - } - } - ] - }, - { - "type": "div", - "style": { - "marginRight": 20 - }, - "children": [ - { - "type": "text", - "classList": [ - "shareText" - ], - "style": { - "fontSize": 20 - }, - "attr": { - "value": function () {return this.shareText} - } - } - ] - } - ] - } - ] - } - ] - } - ] - }, - { - "type": "div", - "classList": [ - "block" - ], - "children": [ - { - "type": "text", - "attr": { - "value": "In" - } - } - ] - }, - { - "type": "div", - "classList": [ - "block" - ], - "children": [ - { - "type": "text", - "attr": { - "value": "A" - } - } - ] - }, - { - "type": "div", - "classList": [ - "block" - ], - "children": [ - { - "type": "text", - "attr": { - "value": "Scroller" - } - } - ] - }, - { - "type": "div", - "classList": [ - "block" - ], - "children": [ - { - "type": "text", - "attr": { - "value": "4" - } - } - ] - } - ] - } - -/***/ }, - -/***/ 104: -/***/ function(module, exports) { - - module.exports = { - "block": { - "height": 300, - "width": 750, - "backgroundColor": "#cccccc", - "alignItems": "center", - "justifyContent": "center" - }, - "flexRow": { - "flexDirection": "row" - }, - "flexColumn": { - "flexDirection": "column" - }, - "fixed": { - "position": "fixed", - "bottom": 50, - "left": 50, - "width": 300, - "height": 50, - "alignItems": "center", - "justifyContent": "center" - }, - "shopImg": { - "width": 220, - "height": 220 - }, - "list": { - "flexDirection": "column", - "overflow": "hidden", - "width": 750, - "height": 500, - "backgroundColor": "#dddddd" - }, - "cell": { - "backgroundColor": "#dddddd", - "flexDirection": "column", - "width": 750 - }, - "shopDiv": { - "flexDirection": "column", - "backgroundColor": "#ffffff", - "margin": 5, - "padding": 10, - "borderWidth": 1, - "borderColor": "#cccccc", - "overflow": "visible" - }, - "shopRowList": { - "flexDirection": "column", - "borderWidth": 1, - "borderColor": "#cccccc", - "overflow": "visible", - "margin": 5, - "padding": 10, - "backgroundColor": "#ffffff" - }, - "shopHeader": { - "flexDirection": "row", - "width": 720 - }, - "shopFooter": { - "flexDirection": "row", - "width": 720 - }, - "smallImg": { - "width": 20, - "height": 20 - } - } - -/***/ }, - -/***/ 105: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - backgroundColor: 'red', - composite: 'false', - shopList: [{ - id: 1, - scopeValue: 1, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Mendeleyev', - PersonVisitTime: 'today', - shopDesc: 'Genius only means hard-working all one\'s life', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/bao/uploaded/i2/TB1rtOnHpXXXXXLaXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/bao/uploaded/i4/TB15KrfFVXXXXXJXXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 2, - scopeValue: 2, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Napoleon', - PersonVisitTime: 'yesterday', - shopDesc: 'The man who has made up his mind to win will never say "impossible "', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd1.alicdn.com/imgextra/i1/2655929383/TB2.qITjpXXXXcIXXXXXXXXXXXX_!!2655929383.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd3.alicdn.com/imgextra/i3/2655929383/TB2eWwZjpXXXXbHXXXXXXXXXXXX_!!2655929383.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 3, - scopeValue: 3, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Balzac', - PersonVisitTime: 'yesterday', - shopDesc: 'There is no such thing as a great talent without great will - power', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd1.alicdn.com/imgextra/i1/TB1AFz9LXXXXXbrXVXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/imgextra/i2/2557954751/TB2is2njXXXXXatXpXXXXXXXXXX_!!2557954751.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 4, - scopeValue: 4, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Thomas Carlyle', - PersonVisitTime: '3 day ago', - shopDesc: 'Cease to struggle and you cease to live', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/imgextra/i4/69426324/TB2zbwdfXXXXXa4XpXXXXXXXXXX_!!69426324.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/imgextra/i4/69426324/TB2L7ZAfXXXXXXOXXXXXXXXXXXX_!!69426324.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 5, - scopeValue: 5, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Addison', - PersonVisitTime: 'yesterday', - shopDesc: 'A strong man will struggle with the storms of fate', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd3.alicdn.com/bao/uploaded/i3/TB1MQ8_KVXXXXaLXVXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/imgextra/i2/53218032/TB2bGSqiXXXXXXyXpXXXXXXXXXX_!!53218032.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 6, - scopeValue: 1, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Ruskin', - PersonVisitTime: 'yesterday', - shopDesc: 'Living without an aim is like sailing without a compass', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/bao/uploaded/i4/TB11yFnHXXXXXakaXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/imgextra/i4/32720628/TB2CRJUcXXXXXXwXpXXXXXXXXXX_!!32720628.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 7, - scopeValue: 2, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Yiming', - PersonVisitTime: 'today', - shopDesc: 'Live a noble and honest life. Reviving past times in your old age will help you to enjoy your life again', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/bao/uploaded/i4/TB1hvNoJXXXXXaMaXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/imgextra/i4/2058567235/TB2V8iygFXXXXaRXpXXXXXXXXXX_!!2058567235.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 8, - scopeValue: 3, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Brown', - PersonVisitTime: 'yesterday', - shopDesc: 'Behind every successful man there\'s a lot u unsuccessful years', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd1.alicdn.com/bao/uploaded/i1/TB18BZ2KFXXXXb8XFXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd1.alicdn.com/imgextra/i1/2775383848/TB2r012jVXXXXXHXpXXXXXXXXXX_!!2775383848.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 9, - scopeValue: 4, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'YIMING', - PersonVisitTime: 'today', - shopDesc: 'Enrich your life today,. yesterday is history.tomorrow is mystery', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd1.alicdn.com/bao/uploaded/i1/TB1JB.rLpXXXXXLXXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/imgextra/i4/2702739128/TB2JdvmjVXXXXXjXXXXXXXXXXXX_!!2702739128.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 10, - scopeValue: 5, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'YIMING', - PersonVisitTime: 'yesterday', - shopDesc: 'The secret of success is constancy to purpose', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd3.alicdn.com/bao/uploaded/i3/TB17zXOGXXXXXbEXVXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd1.alicdn.com/imgextra/i1/2265445951/TB22ACTbFXXXXXBXXXXXXXXXXXX_!!2265445951.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - }] - }}, - methods: { - loadmore: function loadmore(e) { - this.$call('modal', 'toast', { - 'message': 'loadmore', - 'duration': 2.0 - }); - }, - oncellclick: function oncellclick(e) { - this.$call('modal', 'toast', { - 'message': 'row ' + e.target.attr.rownumber + ' clicked', - 'duration': 2.0 - }); - }, - onfixedclick: function onfixedclick(e) { - if (e.target.style.backgroundColor == 'red') { - this.backgroundColor = 'green'; - this.composite = true; - } else { - this.backgroundColor = 'red'; - this.composite = false; - } - } - } - - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/list/list-demo.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/list/list-demo.js deleted file mode 100644 index 4db50da6..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/list/list-demo.js +++ /dev/null @@ -1,1231 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "f49cbcb21d54f4a3a48fecc9429d1df2" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(100) - var __weex_style__ = __webpack_require__(101) - var __weex_script__ = __webpack_require__(102) - - __weex_define__('@weex-component/3226d5b3a8f5b1ae43875db22de0785e', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/3226d5b3a8f5b1ae43875db22de0785e',undefined,undefined) - -/***/ }, - -/***/ 100: -/***/ function(module, exports) { - - module.exports = { - "type": "list", - "classList": [ - "list" - ], - "attr": { - "loadmoreoffset": "2000" - }, - "children": [ - { - "type": "cell", - "append": "tree", - "classList": [ - "cell" - ], - "events": { - "click": "oncellclick" - }, - "attr": { - "rownumber": function () {return this.id}, - "scope": function () {return this.scopeValue}, - "composite": function () {return this.composite} - }, - "repeat": function () {return this.shopList}, - "children": [ - { - "type": "div", - "classList": [ - "shopDiv" - ], - "children": [ - { - "type": "div", - "classList": [ - "shopHeader" - ], - "style": { - "flexDirection": "row", - "overflow": "hidden" - }, - "children": [ - { - "type": "div", - "style": { - "flex": 2, - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "children": [ - { - "type": "image", - "style": { - "width": 60, - "height": 60 - }, - "attr": { - "src": function () {return this.PersonPhoto} - } - } - ] - }, - { - "type": "div", - "style": { - "flexDirection": "column", - "marginLeft": 5 - }, - "children": [ - { - "type": "div", - "style": { - "marginTop": 5 - }, - "children": [ - { - "type": "text", - "style": { - "fontSize": 20 - }, - "attr": { - "value": function () {return this.PersonName} - } - } - ] - }, - { - "type": "div", - "style": { - "marginTop": 5 - }, - "children": [ - { - "type": "text", - "style": { - "fontSize": 20, - "color": "#cccccc" - }, - "attr": { - "value": function () {return this.PersonVisitTime} - } - } - ] - } - ] - } - ] - }, - { - "type": "div", - "style": { - "flex": 5, - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "style": { - "flexDirection": "row", - "marginLeft": 10, - "marginTop": 10 - }, - "children": [ - { - "type": "div", - "children": [ - { - "type": "image", - "style": { - "width": 20, - "height": 20 - }, - "attr": { - "src": "https://img.alicdn.com/tps/i4/TB1zkDeIFXXXXXrXVXX07tlTXXX-200-200.png_88x88xz.jpg" - } - } - ] - }, - { - "type": "div", - "children": [ - { - "type": "text", - "style": { - "fontSize": 20 - }, - "attr": { - "value": "Hope" - } - } - ] - } - ] - }, - { - "type": "div", - "style": { - "position": "absolute", - "left": 90, - "top": 10, - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "children": [ - { - "type": "image", - "style": { - "width": 20, - "height": 20 - }, - "attr": { - "src": "https://img.alicdn.com/tps/i2/TB1hRb1IXXXXXX3XVXXXQaP.pXX-87-87.jpeg" - } - } - ] - }, - { - "type": "div", - "children": [ - { - "type": "text", - "style": { - "fontSize": 20 - }, - "attr": { - "value": "Mem" - } - } - ] - } - ] - }, - { - "type": "div", - "style": { - "position": "absolute", - "left": 170, - "top": 10, - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "children": [ - { - "type": "image", - "style": { - "width": 20, - "height": 20 - }, - "attr": { - "src": "https://img.alicdn.com/tps/i3/TB1DGkJJFXXXXaZXFXX07tlTXXX-200-200.png" - } - } - ] - }, - { - "type": "div", - "children": [ - { - "type": "text", - "style": { - "fontSize": 20 - }, - "attr": { - "value": "auth" - } - } - ] - } - ] - }, - { - "type": "div", - "style": { - "position": "absolute", - "left": 250, - "top": 10, - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "children": [ - { - "type": "image", - "style": { - "width": 20, - "height": 20 - }, - "attr": { - "src": "https://img.alicdn.com/tps/i1/TB1nFvPIXXXXXbUXXXXUAkPJpXX-87-87.png" - } - } - ] - }, - { - "type": "div", - "children": [ - { - "type": "text", - "style": { - "fontSize": 20 - }, - "attr": { - "value": "Friend" - } - } - ] - } - ] - }, - { - "type": "div", - "style": { - "position": "absolute", - "left": 330, - "top": 10, - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "children": [ - { - "type": "image", - "style": { - "width": 20, - "height": 20 - }, - "attr": { - "src": "https://img.alicdn.com/tps/i2/TB1CpD7IXXXXXbSXXXXUAkPJpXX-87-87.png" - } - } - ] - }, - { - "type": "div", - "children": [ - { - "type": "text", - "style": { - "fontSize": 20 - }, - "attr": { - "value": "issue" - } - } - ] - } - ] - }, - { - "type": "div", - "style": { - "position": "absolute", - "left": 410, - "top": 10, - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "children": [ - { - "type": "image", - "style": { - "width": 20, - "height": 20 - }, - "attr": { - "src": "https://gtms02.alicdn.com/tps/i2/TB11ZZfIVXXXXbMXFXXEDhGGXXX-32-32.png" - } - } - ] - }, - { - "type": "div", - "children": [ - { - "type": "text", - "style": { - "fontSize": 20 - }, - "attr": { - "value": "super" - } - } - ] - } - ] - } - ] - } - ] - }, - { - "type": "div", - "classList": [ - "shopBody" - ], - "style": { - "flexDirection": "column" - }, - "children": [ - { - "type": "div", - "classList": [ - "descDiv" - ], - "style": { - "marginTop": 10, - "marginLeft": 10 - }, - "children": [ - { - "type": "text", - "classList": [ - "shopDesc" - ], - "style": { - "fontSize": 25 - }, - "attr": { - "value": function () {return this.shopDesc} - } - } - ] - }, - { - "type": "div", - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "classList": [ - "imgDiv" - ], - "style": { - "flex": 1, - "flexDirection": "column", - "margin": 10 - }, - "repeat": function () {return this.shopImgList}, - "children": [ - { - "type": "div", - "children": [ - { - "type": "image", - "classList": [ - "shopImg" - ], - "style": { - "width": function () {return this.shopImgWidth}, - "height": function () {return this.shopImgHeight} - }, - "attr": { - "src": function () {return this.shopImg} - } - } - ] - }, - { - "type": "div", - "style": { - "flex": 1, - "marginTop": 10, - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "style": { - "flex": 1, - "justifyContent": "center", - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "children": [ - { - "type": "image", - "style": { - "width": 20, - "height": 20 - }, - "attr": { - "src": "https://img.alicdn.com/tps/i1/TB1nFvPIXXXXXbUXXXXUAkPJpXX-87-87.png" - } - } - ] - }, - { - "type": "div", - "style": { - "marginLeft": 5 - }, - "children": [ - { - "type": "text", - "style": { - "fontSize": 20, - "textAlign": "center" - }, - "attr": { - "value": "Up" - } - } - ] - } - ] - }, - { - "type": "div", - "style": { - "flex": 1, - "justifyContent": "center", - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "children": [ - { - "type": "image", - "style": { - "width": 20, - "height": 20 - }, - "attr": { - "src": "https://img.alicdn.com/tps/i2/TB1CpD7IXXXXXbSXXXXUAkPJpXX-87-87.png" - } - } - ] - }, - { - "type": "div", - "style": { - "marginLeft": 5 - }, - "children": [ - { - "type": "text", - "style": { - "fontSize": 20, - "textAlign": "center" - }, - "attr": { - "value": "down" - } - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - }, - { - "type": "div", - "classList": [ - "shopFooter" - ], - "style": { - "flexDirection": "row", - "marginTop": 10, - "marginLeft": 10, - "justifyContent": "flex-end" - }, - "children": [ - { - "type": "div", - "style": { - "marginRight": 5 - }, - "children": [ - { - "type": "image", - "classList": [ - "shopLikeImg", - "smallImg" - ], - "attr": { - "src": function () {return this.shopLikeImg} - } - } - ] - }, - { - "type": "div", - "style": { - "marginRight": 15 - }, - "children": [ - { - "type": "text", - "classList": [ - "shopLikeText" - ], - "style": { - "fontSize": 20 - }, - "attr": { - "value": function () {return this.shopLikeText} - } - } - ] - }, - { - "type": "div", - "style": { - "marginRight": 5 - }, - "children": [ - { - "type": "image", - "classList": [ - "shopCommentImg", - "smallImg" - ], - "attr": { - "src": function () {return this.shopCommentImg} - } - } - ] - }, - { - "type": "div", - "style": { - "marginRight": 15 - }, - "children": [ - { - "type": "text", - "classList": [ - "shopCommentText" - ], - "style": { - "fontSize": 20 - }, - "attr": { - "value": function () {return this.shopCommentText} - } - } - ] - }, - { - "type": "div", - "style": { - "marginRight": 5 - }, - "children": [ - { - "type": "image", - "classList": [ - "shopLookImg", - "smallImg" - ], - "attr": { - "src": function () {return this.shopLookImg} - } - } - ] - }, - { - "type": "div", - "style": { - "marginRight": 15 - }, - "children": [ - { - "type": "text", - "classList": [ - "shopLookText" - ], - "style": { - "fontSize": 20 - }, - "attr": { - "value": function () {return this.shopLookText} - } - } - ] - }, - { - "type": "div", - "style": { - "marginRight": 5 - }, - "children": [ - { - "type": "image", - "classList": [ - "shareImg", - "smallImg" - ], - "attr": { - "src": function () {return this.shareImg} - } - } - ] - }, - { - "type": "div", - "style": { - "marginRight": 20 - }, - "children": [ - { - "type": "text", - "classList": [ - "shareText" - ], - "style": { - "fontSize": 20 - }, - "attr": { - "value": function () {return this.shareText} - } - } - ] - } - ] - } - ] - } - ] - }, - { - "type": "loading", - "classList": [ - "refresh-view" - ], - "attr": { - "display": function () {return this.loading_display} - }, - "events": { - "loading": "onloading" - }, - "children": [ - { - "type": "text", - "classList": [ - "refresh-arrow" - ], - "style": { - "textAlign": "center", - "color": "rgb(238,162,54)" - }, - "shown": function () {return (this.refresh_display==='hide')}, - "attr": { - "value": "Load more" - } - }, - { - "type": "loading-indicator", - "style": { - "height": 60, - "width": 60, - "color": "#3192e1" - } - } - ] - } - ] - } - -/***/ }, - -/***/ 101: -/***/ function(module, exports) { - - module.exports = { - "flexRow": { - "flexDirection": "row" - }, - "flexColumn": { - "flexDirection": "column" - }, - "fixed": { - "position": "fixed", - "bottom": 50, - "left": 50, - "width": 300, - "height": 50, - "alignItems": "center", - "justifyContent": "center" - }, - "shopImg": { - "width": 220, - "height": 220 - }, - "list": { - "flexDirection": "column", - "overflow": "hidden", - "width": 750, - "height": 1200, - "backgroundColor": "#dddddd" - }, - "cell": { - "backgroundColor": "#dddddd", - "flexDirection": "column", - "width": 750 - }, - "shopDiv": { - "flexDirection": "column", - "backgroundColor": "#ffffff", - "margin": 5, - "padding": 10, - "borderWidth": 1, - "borderColor": "#cccccc", - "overflow": "visible" - }, - "shopRowList": { - "flexDirection": "column", - "borderWidth": 1, - "borderColor": "#cccccc", - "overflow": "visible", - "margin": 5, - "padding": 10, - "backgroundColor": "#ffffff" - }, - "shopHeader": { - "flexDirection": "row", - "width": 720 - }, - "shopFooter": { - "flexDirection": "row", - "width": 720 - }, - "smallImg": { - "width": 20, - "height": 20 - }, - "refresh-view": { - "height": 120, - "width": 750, - "display": "flex", - "MsFlexAlign": "center", - "WebkitAlignItems": "center", - "WebkitBoxAlign": "center", - "alignItems": "center" - } - } - -/***/ }, - -/***/ 102: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - refresh_display: 'hide', - loading_display: 'hide', - backgroundColor: 'red', - composite: 'false', - shopList: [{ - id: 1, - scopeValue: 1, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Mendeleyev', - PersonVisitTime: 'today', - shopDesc: 'Genius only means hard-working all one\'s life', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/bao/uploaded/i2/TB1rtOnHpXXXXXLaXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/bao/uploaded/i4/TB15KrfFVXXXXXJXXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/bao/uploaded/i2/TB1t5YBGVXXXXXcaXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 2, - scopeValue: 2, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Napoleon', - PersonVisitTime: 'yesterday', - shopDesc: 'The man who has made up his mind to win will never say "impossible "', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd1.alicdn.com/imgextra/i1/2655929383/TB2.qITjpXXXXcIXXXXXXXXXXXX_!!2655929383.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd3.alicdn.com/imgextra/i3/2655929383/TB2eWwZjpXXXXbHXXXXXXXXXXXX_!!2655929383.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/imgextra/i2/2655929383/TB2tgQWjpXXXXbZXXXXXXXXXXXX_!!2655929383.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 3, - scopeValue: 3, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Balzac', - PersonVisitTime: 'yesterday', - shopDesc: 'There is no such thing as a great talent without great will - power', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd1.alicdn.com/imgextra/i1/TB1AFz9LXXXXXbrXVXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/imgextra/i2/2557954751/TB2is2njXXXXXatXpXXXXXXXXXX_!!2557954751.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/imgextra/i2/2557954751/TB2PNYGjXXXXXbXXXXXXXXXXXXX_!!2557954751.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 4, - scopeValue: 4, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Thomas Carlyle', - PersonVisitTime: '3 day ago', - shopDesc: 'Cease to struggle and you cease to live', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/imgextra/i4/69426324/TB2zbwdfXXXXXa4XpXXXXXXXXXX_!!69426324.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/imgextra/i4/69426324/TB2L7ZAfXXXXXXOXXXXXXXXXXXX_!!69426324.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/imgextra/i4/69426324/TB2p9wufXXXXXbiXXXXXXXXXXXX_!!69426324.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 5, - scopeValue: 5, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Addison', - PersonVisitTime: 'yesterday', - shopDesc: 'A strong man will struggle with the storms of fate', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd3.alicdn.com/bao/uploaded/i3/TB1MQ8_KVXXXXaLXVXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/imgextra/i2/53218032/TB2bGSqiXXXXXXyXpXXXXXXXXXX_!!53218032.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/bao/uploaded/i2/TB1kP2zKFXXXXbIXXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 6, - scopeValue: 1, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Ruskin', - PersonVisitTime: 'yesterday', - shopDesc: 'Living without an aim is like sailing without a compass', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/bao/uploaded/i4/TB11yFnHXXXXXakaXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/imgextra/i4/32720628/TB2CRJUcXXXXXXwXpXXXXXXXXXX_!!32720628.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/bao/uploaded/i2/TB17LUzHXXXXXcEaXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 7, - scopeValue: 2, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Yiming', - PersonVisitTime: 'today', - shopDesc: 'Live a noble and honest life. Reviving past times in your old age will help you to enjoy your life again', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/bao/uploaded/i4/TB1hvNoJXXXXXaMaXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/imgextra/i4/2058567235/TB2V8iygFXXXXaRXpXXXXXXXXXX_!!2058567235.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/imgextra/i2/2058567235/TB2im1QgFXXXXX8XXXXXXXXXXXX_!!2058567235.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 8, - scopeValue: 3, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Brown', - PersonVisitTime: 'yesterday', - shopDesc: 'Behind every successful man there\'s a lot u unsuccessful years', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd1.alicdn.com/bao/uploaded/i1/TB18BZ2KFXXXXb8XFXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd1.alicdn.com/imgextra/i1/2775383848/TB2r012jVXXXXXHXpXXXXXXXXXX_!!2775383848.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd3.alicdn.com/imgextra/i3/2775383848/TB2iI9VjVXXXXaoXpXXXXXXXXXX_!!2775383848.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 9, - scopeValue: 4, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'YIMING', - PersonVisitTime: 'today', - shopDesc: 'Enrich your life today,. yesterday is history.tomorrow is mystery', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd1.alicdn.com/bao/uploaded/i1/TB1JB.rLpXXXXXLXXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/imgextra/i4/2702739128/TB2JdvmjVXXXXXjXXXXXXXXXXXX_!!2702739128.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/imgextra/i2/2702739128/TB2A.e6jVXXXXXGXpXXXXXXXXXX_!!2702739128.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 10, - scopeValue: 5, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'YIMING', - PersonVisitTime: 'yesterday', - shopDesc: 'The secret of success is constancy to purpose', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd3.alicdn.com/bao/uploaded/i3/TB17zXOGXXXXXbEXVXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd1.alicdn.com/imgextra/i1/2265445951/TB22ACTbFXXXXXBXXXXXXXXXXXX_!!2265445951.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd3.alicdn.com/imgextra/i3/2265445951/TB2oXqUbFXXXXXIXXXXXXXXXXXX_!!2265445951.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - }] - }}, - methods: { - oncellclick: function oncellclick(e) { - this.$call('modal', 'toast', { - 'message': 'row ' + e.target.attr.rownumber + ' clicked', - 'duration': 2.0 - }); - }, - onfixedclick: function onfixedclick(e) { - if (e.target.style.backgroundColor == 'red') { - this.backgroundColor = 'green'; - this.composite = true; - } else { - this.backgroundColor = 'red'; - this.composite = false; - } - }, - onloading: function onloading(e) { - this.loading_display = "show"; - setTimeout(function () { - this.loading_display = 'hide'; - }.bind(this), 1000); - } - } - - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/marquee-demo.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/marquee-demo.js deleted file mode 100644 index 3261b558..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/marquee-demo.js +++ /dev/null @@ -1,2151 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "ae96d8382266c0d24fad5c641b084827" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(106) - var __weex_script__ = __webpack_require__(107) - - __weex_define__('@weex-component/eeaccd3d9c9113871c5ec6aa21c1c2cd', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/eeaccd3d9c9113871c5ec6aa21c1c2cd',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */ -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "Marquee", - "type": "primary" - }, - "children": [ - { - "type": "wxc-marquee", - "id": "marquee", - "style": { - "width": 700, - "height": function () {return this.marquee.height*2}, - "backgroundColor": "rgb(223,240,216)", - "borderRadius": 8, - "paddingLeft": 10, - "paddingRight": 10 - }, - "attr": { - "step": function () {return this.marquee.height*2}, - "count": function () {return this.marquee.list.length}, - "interval": function () {return this.marquee.interval}, - "duration": function () {return this.marquee.duration} - }, - "children": [ - { - "type": "div", - "repeat": function () {return this.marquee.list}, - "style": { - "height": function () {return this.marquee.height*this.marquee.length}, - "paddingTop": function () {return this.marquee.height*0.5}, - "paddingBottom": function () {return this.marquee.height*0.5}, - "overflow": "hidden" - }, - "children": [ - { - "type": "text", - "style": { - "height": function () {return this.marquee.height}, - "color": "rgb(60,118,61)", - "fontSize": 28 - }, - "attr": { - "value": function () {return this.text} - } - } - ] - } - ] - } - ] - } - ] - } - -/***/ }, -/* 107 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - - module.exports = { - data: function () {return { - marquee: { - height: 30, - duration: 1500, - interval: 2000, - list: [{ text: 'Introducing Bots on Messenger' }, { text: 'Capturing 3D 360-Stereo VR Video' }, { text: 'The Future of Video on Facebook' }, { text: 'Announcing Vue.js 2.0' }, { text: 'Not Your Average Virtual-DOM' }, { text: 'Templates, JSX, or Hyperscript?' }] - } - }}, - ready: function ready() { - this.initMarquee('marquee'); - }, - methods: { - initMarquee: function initMarquee(id) { - var self = this; - - var $marquee = this.$vm(id); - $marquee.$on('change', function () { - console.log('marquee change'); - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/navigator-demo.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/navigator-demo.js deleted file mode 100644 index 8c7e3657..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/navigator-demo.js +++ /dev/null @@ -1,3054 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "992133479ab7de90b597406bf57d9e30" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(108) - var __weex_script__ = __webpack_require__(109) - - __weex_define__('@weex-component/b61c889e8b46c55f4d9373e71beced64', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/b61c889e8b46c55f4d9373e71beced64',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */ -/***/ function(module, exports) { - - module.exports = { - "type": "wxc-navpage", - "attr": { - "dataRole": "none", - "height": function () {return this.navBarHeight}, - "backgroundColor": "#ff5898", - "title": function () {return this.title}, - "titleColor": "white", - "leftItemTitle": "More", - "leftItemColor": "white", - "rightItemSrc": "http://gtms02.alicdn.com/tps/i2/TB1ED7iMpXXXXXEXXXXWA_BHXXX-48-48.png" - }, - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "push a new page" - }, - "children": [ - { - "type": "wxc-button", - "attr": { - "type": "primary", - "size": "small", - "value": "push" - }, - "events": { - "click": "push" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "pop to the last page" - }, - "children": [ - { - "type": "wxc-button", - "attr": { - "type": "success", - "size": "small", - "value": "pop" - }, - "events": { - "click": "pop" - } - } - ] - } - ] - } - -/***/ }, -/* 109 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _typeof2 = __webpack_require__(110); - - var _typeof3 = _interopRequireDefault(_typeof2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - __webpack_require__(4); - var navigator = __weex_require__('@weex-module/navigator'); - var modal = __weex_require__('@weex-module/modal'); - - module.exports = { - data: function () {return { - navBarHeight: 88, - title: 'Navigator', - dir: 'examples', - baseURL: '' - }}, - created: function created() { - this.$getConfig(function (config) { - var env = config.env; - if (env.platform == 'iOS') { - var scale = env.scale; - var deviceWidth = env.deviceWidth / scale; - this.navBarHeight = 64.0 * 750.0 / deviceWidth; - } - }.bind(this)); - - this.$on('naviBar.rightItem.click', function (e) { - duration = 2; - modal.toast({ - 'message': 'naviBar.rightItem.click', - 'duration': duration - }); - }); - - this.$on('naviBar.leftItem.click', function (e) { - duration = 2; - modal.toast({ - 'message': 'naviBar.leftItem.click', - 'duration': duration - }); - }); - - var bundleUrl = this.$getConfig().bundleUrl; - bundleUrl = new String(bundleUrl); - console.log('hit', bundleUrl); - var nativeBase; - var isAndroidAssets = bundleUrl.indexOf('file://assets/') >= 0; - - var isiOSAssets = bundleUrl.indexOf('file:///') >= 0 && bundleUrl.indexOf('WeexDemo.app') > 0; - if (isAndroidAssets) { - nativeBase = 'file://assets/'; - } else if (isiOSAssets) { - nativeBase = bundleUrl.substring(0, bundleUrl.lastIndexOf('/') + 1); - } else { - var host = 'localhost:12580'; - var matches = /\/\/([^\/]+?)\//.exec(this.$getConfig().bundleUrl); - if (matches && matches.length >= 2) { - host = matches[1]; - } - nativeBase = 'http://' + host + '/' + this.dir + '/build/'; - } - var h5Base = bundleUrl; - - var base = nativeBase; - if ((typeof window === 'undefined' ? 'undefined' : (0, _typeof3.default)(window)) == 'object') { - base = h5Base; - } - this.baseURL = base; - }, - methods: { - push: function push() { - var vm = this; - if ((typeof window === 'undefined' ? 'undefined' : (0, _typeof3.default)(window)) !== 'object') { - this.baseURL = this.baseURL + 'component/navigator-demo.js?test=1'; - } - var params = { - 'url': this.baseURL, - 'animated': 'true' - }; - navigator.push(params, function () {}); - }, - - pop: function pop() { - var vm = this; - var params = { - 'animated': 'true' - }; - navigator.pop(params, function () {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 110 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - exports.__esModule = true; - - var _iterator = __webpack_require__(111); - - var _iterator2 = _interopRequireDefault(_iterator); - - var _symbol = __webpack_require__(131); - - var _symbol2 = _interopRequireDefault(_symbol); - - var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { - return typeof obj === "undefined" ? "undefined" : _typeof(obj); - } : function (obj) { - return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); - }; - -/***/ }, -/* 111 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(112), __esModule: true }; - -/***/ }, -/* 112 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(113); - __webpack_require__(126); - module.exports = __webpack_require__(130).f('iterator'); - -/***/ }, -/* 113 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var $at = __webpack_require__(114)(true); - - // 21.1.3.27 String.prototype[@@iterator]() - __webpack_require__(115)(String, 'String', function(iterated){ - this._t = String(iterated); // target - this._i = 0; // next index - // 21.1.5.2.1 %StringIteratorPrototype%.next() - }, function(){ - var O = this._t - , index = this._i - , point; - if(index >= O.length)return {value: undefined, done: true}; - point = $at(O, index); - this._i += point.length; - return {value: point, done: false}; - }); - -/***/ }, -/* 114 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , defined = __webpack_require__(54); - // true -> String#at - // false -> String#codePointAt - module.exports = function(TO_STRING){ - return function(that, pos){ - var s = String(defined(that)) - , i = toInteger(pos) - , l = s.length - , a, b; - if(i < 0 || i >= l)return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; - }; - -/***/ }, -/* 115 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var LIBRARY = __webpack_require__(116) - , $export = __webpack_require__(32) - , redefine = __webpack_require__(117) - , hide = __webpack_require__(37) - , has = __webpack_require__(50) - , Iterators = __webpack_require__(118) - , $iterCreate = __webpack_require__(119) - , setToStringTag = __webpack_require__(123) - , getPrototypeOf = __webpack_require__(125) - , ITERATOR = __webpack_require__(124)('iterator') - , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next` - , FF_ITERATOR = '@@iterator' - , KEYS = 'keys' - , VALUES = 'values'; - - var returnThis = function(){ return this; }; - - module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){ - $iterCreate(Constructor, NAME, next); - var getMethod = function(kind){ - if(!BUGGY && kind in proto)return proto[kind]; - switch(kind){ - case KEYS: return function keys(){ return new Constructor(this, kind); }; - case VALUES: return function values(){ return new Constructor(this, kind); }; - } return function entries(){ return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator' - , DEF_VALUES = DEFAULT == VALUES - , VALUES_BUG = false - , proto = Base.prototype - , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT] - , $default = $native || getMethod(DEFAULT) - , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined - , $anyNative = NAME == 'Array' ? proto.entries || $native : $native - , methods, key, IteratorPrototype; - // Fix native - if($anyNative){ - IteratorPrototype = getPrototypeOf($anyNative.call(new Base)); - if(IteratorPrototype !== Object.prototype){ - // Set @@toStringTag to native iterators - setToStringTag(IteratorPrototype, TAG, true); - // fix for some old engines - if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis); - } - } - // fix Array#{values, @@iterator}.name in V8 / FF - if(DEF_VALUES && $native && $native.name !== VALUES){ - VALUES_BUG = true; - $default = function values(){ return $native.call(this); }; - } - // Define iterator - if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){ - hide(proto, ITERATOR, $default); - } - // Plug for library - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if(DEFAULT){ - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if(FORCED)for(key in methods){ - if(!(key in proto))redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; - }; - -/***/ }, -/* 116 */ -/***/ function(module, exports) { - - module.exports = true; - -/***/ }, -/* 117 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(37); - -/***/ }, -/* 118 */ -/***/ function(module, exports) { - - module.exports = {}; - -/***/ }, -/* 119 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var create = __webpack_require__(120) - , descriptor = __webpack_require__(46) - , setToStringTag = __webpack_require__(123) - , IteratorPrototype = {}; - - // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() - __webpack_require__(37)(IteratorPrototype, __webpack_require__(124)('iterator'), function(){ return this; }); - - module.exports = function(Constructor, NAME, next){ - Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)}); - setToStringTag(Constructor, NAME + ' Iterator'); - }; - -/***/ }, -/* 120 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) - var anObject = __webpack_require__(39) - , dPs = __webpack_require__(121) - , enumBugKeys = __webpack_require__(62) - , IE_PROTO = __webpack_require__(59)('IE_PROTO') - , Empty = function(){ /* empty */ } - , PROTOTYPE = 'prototype'; - - // Create object with fake `null` prototype: use iframe Object with cleared prototype - var createDict = function(){ - // Thrash, waste and sodomy: IE GC bug - var iframe = __webpack_require__(44)('iframe') - , i = enumBugKeys.length - , lt = '<' - , gt = '>' - , iframeDocument; - iframe.style.display = 'none'; - __webpack_require__(122).appendChild(iframe); - iframe.src = 'javascript:'; // eslint-disable-line no-script-url - // createDict = iframe.contentWindow.Object; - // html.removeChild(iframe); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - createDict = iframeDocument.F; - while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]]; - return createDict(); - }; - - module.exports = Object.create || function create(O, Properties){ - var result; - if(O !== null){ - Empty[PROTOTYPE] = anObject(O); - result = new Empty; - Empty[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = createDict(); - return Properties === undefined ? result : dPs(result, Properties); - }; - - -/***/ }, -/* 121 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , anObject = __webpack_require__(39) - , getKeys = __webpack_require__(48); - - module.exports = __webpack_require__(42) ? Object.defineProperties : function defineProperties(O, Properties){ - anObject(O); - var keys = getKeys(Properties) - , length = keys.length - , i = 0 - , P; - while(length > i)dP.f(O, P = keys[i++], Properties[P]); - return O; - }; - -/***/ }, -/* 122 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(33).document && document.documentElement; - -/***/ }, -/* 123 */ -/***/ function(module, exports, __webpack_require__) { - - var def = __webpack_require__(38).f - , has = __webpack_require__(50) - , TAG = __webpack_require__(124)('toStringTag'); - - module.exports = function(it, tag, stat){ - if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); - }; - -/***/ }, -/* 124 */ -/***/ function(module, exports, __webpack_require__) { - - var store = __webpack_require__(60)('wks') - , uid = __webpack_require__(61) - , Symbol = __webpack_require__(33).Symbol - , USE_SYMBOL = typeof Symbol == 'function'; - - var $exports = module.exports = function(name){ - return store[name] || (store[name] = - USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); - }; - - $exports.store = store; - -/***/ }, -/* 125 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) - var has = __webpack_require__(50) - , toObject = __webpack_require__(65) - , IE_PROTO = __webpack_require__(59)('IE_PROTO') - , ObjectProto = Object.prototype; - - module.exports = Object.getPrototypeOf || function(O){ - O = toObject(O); - if(has(O, IE_PROTO))return O[IE_PROTO]; - if(typeof O.constructor == 'function' && O instanceof O.constructor){ - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; - }; - -/***/ }, -/* 126 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(127); - var global = __webpack_require__(33) - , hide = __webpack_require__(37) - , Iterators = __webpack_require__(118) - , TO_STRING_TAG = __webpack_require__(124)('toStringTag'); - - for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){ - var NAME = collections[i] - , Collection = global[NAME] - , proto = Collection && Collection.prototype; - if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = Iterators.Array; - } - -/***/ }, -/* 127 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var addToUnscopables = __webpack_require__(128) - , step = __webpack_require__(129) - , Iterators = __webpack_require__(118) - , toIObject = __webpack_require__(51); - - // 22.1.3.4 Array.prototype.entries() - // 22.1.3.13 Array.prototype.keys() - // 22.1.3.29 Array.prototype.values() - // 22.1.3.30 Array.prototype[@@iterator]() - module.exports = __webpack_require__(115)(Array, 'Array', function(iterated, kind){ - this._t = toIObject(iterated); // target - this._i = 0; // next index - this._k = kind; // kind - // 22.1.5.2.1 %ArrayIteratorPrototype%.next() - }, function(){ - var O = this._t - , kind = this._k - , index = this._i++; - if(!O || index >= O.length){ - this._t = undefined; - return step(1); - } - if(kind == 'keys' )return step(0, index); - if(kind == 'values')return step(0, O[index]); - return step(0, [index, O[index]]); - }, 'values'); - - // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) - Iterators.Arguments = Iterators.Array; - - addToUnscopables('keys'); - addToUnscopables('values'); - addToUnscopables('entries'); - -/***/ }, -/* 128 */ -/***/ function(module, exports) { - - module.exports = function(){ /* empty */ }; - -/***/ }, -/* 129 */ -/***/ function(module, exports) { - - module.exports = function(done, value){ - return {value: value, done: !!done}; - }; - -/***/ }, -/* 130 */ -/***/ function(module, exports, __webpack_require__) { - - exports.f = __webpack_require__(124); - -/***/ }, -/* 131 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(132), __esModule: true }; - -/***/ }, -/* 132 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(133); - __webpack_require__(142); - __webpack_require__(143); - __webpack_require__(144); - module.exports = __webpack_require__(34).Symbol; - -/***/ }, -/* 133 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // ECMAScript 6 symbols shim - var global = __webpack_require__(33) - , has = __webpack_require__(50) - , DESCRIPTORS = __webpack_require__(42) - , $export = __webpack_require__(32) - , redefine = __webpack_require__(117) - , META = __webpack_require__(134).KEY - , $fails = __webpack_require__(43) - , shared = __webpack_require__(60) - , setToStringTag = __webpack_require__(123) - , uid = __webpack_require__(61) - , wks = __webpack_require__(124) - , wksExt = __webpack_require__(130) - , wksDefine = __webpack_require__(135) - , keyOf = __webpack_require__(136) - , enumKeys = __webpack_require__(137) - , isArray = __webpack_require__(138) - , anObject = __webpack_require__(39) - , toIObject = __webpack_require__(51) - , toPrimitive = __webpack_require__(45) - , createDesc = __webpack_require__(46) - , _create = __webpack_require__(120) - , gOPNExt = __webpack_require__(139) - , $GOPD = __webpack_require__(141) - , $DP = __webpack_require__(38) - , $keys = __webpack_require__(48) - , gOPD = $GOPD.f - , dP = $DP.f - , gOPN = gOPNExt.f - , $Symbol = global.Symbol - , $JSON = global.JSON - , _stringify = $JSON && $JSON.stringify - , PROTOTYPE = 'prototype' - , HIDDEN = wks('_hidden') - , TO_PRIMITIVE = wks('toPrimitive') - , isEnum = {}.propertyIsEnumerable - , SymbolRegistry = shared('symbol-registry') - , AllSymbols = shared('symbols') - , OPSymbols = shared('op-symbols') - , ObjectProto = Object[PROTOTYPE] - , USE_NATIVE = typeof $Symbol == 'function' - , QObject = global.QObject; - // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 - var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; - - // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 - var setSymbolDesc = DESCRIPTORS && $fails(function(){ - return _create(dP({}, 'a', { - get: function(){ return dP(this, 'a', {value: 7}).a; } - })).a != 7; - }) ? function(it, key, D){ - var protoDesc = gOPD(ObjectProto, key); - if(protoDesc)delete ObjectProto[key]; - dP(it, key, D); - if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc); - } : dP; - - var wrap = function(tag){ - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - sym._k = tag; - return sym; - }; - - var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){ - return typeof it == 'symbol'; - } : function(it){ - return it instanceof $Symbol; - }; - - var $defineProperty = function defineProperty(it, key, D){ - if(it === ObjectProto)$defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - if(has(AllSymbols, key)){ - if(!D.enumerable){ - if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false; - D = _create(D, {enumerable: createDesc(0, false)}); - } return setSymbolDesc(it, key, D); - } return dP(it, key, D); - }; - var $defineProperties = function defineProperties(it, P){ - anObject(it); - var keys = enumKeys(P = toIObject(P)) - , i = 0 - , l = keys.length - , key; - while(l > i)$defineProperty(it, key = keys[i++], P[key]); - return it; - }; - var $create = function create(it, P){ - return P === undefined ? _create(it) : $defineProperties(_create(it), P); - }; - var $propertyIsEnumerable = function propertyIsEnumerable(key){ - var E = isEnum.call(this, key = toPrimitive(key, true)); - if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; - }; - var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){ - it = toIObject(it); - key = toPrimitive(key, true); - if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return; - var D = gOPD(it, key); - if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true; - return D; - }; - var $getOwnPropertyNames = function getOwnPropertyNames(it){ - var names = gOPN(toIObject(it)) - , result = [] - , i = 0 - , key; - while(names.length > i){ - if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key); - } return result; - }; - var $getOwnPropertySymbols = function getOwnPropertySymbols(it){ - var IS_OP = it === ObjectProto - , names = gOPN(IS_OP ? OPSymbols : toIObject(it)) - , result = [] - , i = 0 - , key; - while(names.length > i){ - if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]); - } return result; - }; - - // 19.4.1.1 Symbol([description]) - if(!USE_NATIVE){ - $Symbol = function Symbol(){ - if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - var $set = function(value){ - if(this === ObjectProto)$set.call(OPSymbols, value); - if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set}); - return wrap(tag); - }; - redefine($Symbol[PROTOTYPE], 'toString', function toString(){ - return this._k; - }); - - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __webpack_require__(140).f = gOPNExt.f = $getOwnPropertyNames; - __webpack_require__(64).f = $propertyIsEnumerable; - __webpack_require__(63).f = $getOwnPropertySymbols; - - if(DESCRIPTORS && !__webpack_require__(116)){ - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function(name){ - return wrap(wks(name)); - } - } - - $export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol}); - - for(var symbols = ( - // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' - ).split(','), i = 0; symbols.length > i; )wks(symbols[i++]); - - for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]); - - $export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - // 19.4.2.1 Symbol.for(key) - 'for': function(key){ - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(key){ - if(isSymbol(key))return keyOf(SymbolRegistry, key); - throw TypeError(key + ' is not a symbol!'); - }, - useSetter: function(){ setter = true; }, - useSimple: function(){ setter = false; } - }); - - $export($export.S + $export.F * !USE_NATIVE, 'Object', { - // 19.1.2.2 Object.create(O [, Properties]) - create: $create, - // 19.1.2.4 Object.defineProperty(O, P, Attributes) - defineProperty: $defineProperty, - // 19.1.2.3 Object.defineProperties(O, Properties) - defineProperties: $defineProperties, - // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - // 19.1.2.7 Object.getOwnPropertyNames(O) - getOwnPropertyNames: $getOwnPropertyNames, - // 19.1.2.8 Object.getOwnPropertySymbols(O) - getOwnPropertySymbols: $getOwnPropertySymbols - }); - - // 24.3.2 JSON.stringify(value [, replacer [, space]]) - $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){ - var S = $Symbol(); - // MS Edge converts symbol values to JSON as {} - // WebKit converts symbol values to JSON as null - // V8 throws on boxed symbols - return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}'; - })), 'JSON', { - stringify: function stringify(it){ - if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined - var args = [it] - , i = 1 - , replacer, $replacer; - while(arguments.length > i)args.push(arguments[i++]); - replacer = args[1]; - if(typeof replacer == 'function')$replacer = replacer; - if($replacer || !isArray(replacer))replacer = function(key, value){ - if($replacer)value = $replacer.call(this, key, value); - if(!isSymbol(value))return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } - }); - - // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) - $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(37)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); - // 19.4.3.5 Symbol.prototype[@@toStringTag] - setToStringTag($Symbol, 'Symbol'); - // 20.2.1.9 Math[@@toStringTag] - setToStringTag(Math, 'Math', true); - // 24.3.3 JSON[@@toStringTag] - setToStringTag(global.JSON, 'JSON', true); - -/***/ }, -/* 134 */ -/***/ function(module, exports, __webpack_require__) { - - var META = __webpack_require__(61)('meta') - , isObject = __webpack_require__(40) - , has = __webpack_require__(50) - , setDesc = __webpack_require__(38).f - , id = 0; - var isExtensible = Object.isExtensible || function(){ - return true; - }; - var FREEZE = !__webpack_require__(43)(function(){ - return isExtensible(Object.preventExtensions({})); - }); - var setMeta = function(it){ - setDesc(it, META, {value: { - i: 'O' + ++id, // object ID - w: {} // weak collections IDs - }}); - }; - var fastKey = function(it, create){ - // return primitive with prefix - if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if(!has(it, META)){ - // can't set metadata to uncaught frozen object - if(!isExtensible(it))return 'F'; - // not necessary to add metadata - if(!create)return 'E'; - // add missing metadata - setMeta(it); - // return object ID - } return it[META].i; - }; - var getWeak = function(it, create){ - if(!has(it, META)){ - // can't set metadata to uncaught frozen object - if(!isExtensible(it))return true; - // not necessary to add metadata - if(!create)return false; - // add missing metadata - setMeta(it); - // return hash weak collections IDs - } return it[META].w; - }; - // add metadata on freeze-family methods calling - var onFreeze = function(it){ - if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it); - return it; - }; - var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze - }; - -/***/ }, -/* 135 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , LIBRARY = __webpack_require__(116) - , wksExt = __webpack_require__(130) - , defineProperty = __webpack_require__(38).f; - module.exports = function(name){ - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)}); - }; - -/***/ }, -/* 136 */ -/***/ function(module, exports, __webpack_require__) { - - var getKeys = __webpack_require__(48) - , toIObject = __webpack_require__(51); - module.exports = function(object, el){ - var O = toIObject(object) - , keys = getKeys(O) - , length = keys.length - , index = 0 - , key; - while(length > index)if(O[key = keys[index++]] === el)return key; - }; - -/***/ }, -/* 137 */ -/***/ function(module, exports, __webpack_require__) { - - // all enumerable object keys, includes symbols - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64); - module.exports = function(it){ - var result = getKeys(it) - , getSymbols = gOPS.f; - if(getSymbols){ - var symbols = getSymbols(it) - , isEnum = pIE.f - , i = 0 - , key; - while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key); - } return result; - }; - -/***/ }, -/* 138 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.2.2 IsArray(argument) - var cof = __webpack_require__(53); - module.exports = Array.isArray || function isArray(arg){ - return cof(arg) == 'Array'; - }; - -/***/ }, -/* 139 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window - var toIObject = __webpack_require__(51) - , gOPN = __webpack_require__(140).f - , toString = {}.toString; - - var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - - var getWindowNames = function(it){ - try { - return gOPN(it); - } catch(e){ - return windowNames.slice(); - } - }; - - module.exports.f = function getOwnPropertyNames(it){ - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); - }; - - -/***/ }, -/* 140 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) - var $keys = __webpack_require__(49) - , hiddenKeys = __webpack_require__(62).concat('length', 'prototype'); - - exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){ - return $keys(O, hiddenKeys); - }; - -/***/ }, -/* 141 */ -/***/ function(module, exports, __webpack_require__) { - - var pIE = __webpack_require__(64) - , createDesc = __webpack_require__(46) - , toIObject = __webpack_require__(51) - , toPrimitive = __webpack_require__(45) - , has = __webpack_require__(50) - , IE8_DOM_DEFINE = __webpack_require__(41) - , gOPD = Object.getOwnPropertyDescriptor; - - exports.f = __webpack_require__(42) ? gOPD : function getOwnPropertyDescriptor(O, P){ - O = toIObject(O); - P = toPrimitive(P, true); - if(IE8_DOM_DEFINE)try { - return gOPD(O, P); - } catch(e){ /* empty */ } - if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]); - }; - -/***/ }, -/* 142 */ -/***/ function(module, exports) { - - - -/***/ }, -/* 143 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(135)('asyncIterator'); - -/***/ }, -/* 144 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(135)('observable'); - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/process-bar-demo.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/process-bar-demo.js deleted file mode 100644 index 90a32060..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/process-bar-demo.js +++ /dev/null @@ -1,2165 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "3771bf113fd85c270d38518ea7af1a5f" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(145) - var __weex_style__ = __webpack_require__(146) - var __weex_script__ = __webpack_require__(147) - - __weex_define__('@weex-component/0a82ae39306363e81eeac009d30abc0a', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/0a82ae39306363e81eeac009d30abc0a',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */ -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "Basic", - "type": "primary" - }, - "children": [ - { - "type": "div", - "style": { - "width": function () {return this.fullW}, - "borderColor": "#333333", - "borderWidth": 1, - "borderStyle": "solid" - }, - "children": [ - { - "type": "div", - "style": { - "width": function () {return this.w}, - "height": 60, - "backgroundColor": "#333333" - } - } - ] - } - ] - } - ] - } - -/***/ }, -/* 146 */ -/***/ function(module, exports) { - - module.exports = {} - -/***/ }, -/* 147 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - var INC = 20; - module.exports = { - data: function () {return { - fullW: 600, - w: 40 - }}, - ready: function ready() { - var me = this; - setInterval(function () { - if (me.w >= me.fullW) me.w = 0; - me.w = me.w + INC >= me.fullW ? me.fullW : me.w + INC; - }, 33); - } - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/scroller-demo.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/scroller-demo.js deleted file mode 100644 index 6513791a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/scroller-demo.js +++ /dev/null @@ -1,2326 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "7e81a5d2d50e2dcff9daf08e7329aff1" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(148) - var __weex_style__ = __webpack_require__(149) - var __weex_script__ = __webpack_require__(150) - - __weex_define__('@weex-component/3999ea06e04b487185c2565d7cda9180', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/3999ea06e04b487185c2565d7cda9180',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */ -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "classList": [ - "list" - ], - "attr": { - "append=\"tree\"": "" - }, - "children": [ - { - "type": "refresh", - "classList": [ - "refresh-view" - ], - "attr": { - "display": function () {return this.refresh_display} - }, - "events": { - "refresh": "onrefresh" - }, - "children": [ - { - "type": "loading-indicator", - "classList": [ - "indicator" - ] - }, - { - "type": "text", - "classList": [ - "refresh-arrow" - ], - "style": { - "textAlign": "center", - "color": "rgb(238,162,54)" - }, - "shown": function () {return (this.refresh_display==='hide')}, - "attr": { - "value": "Pull To Refresh" - } - } - ] - }, - { - "type": "div", - "classList": [ - "section" - ], - "repeat": function () {return this.sections}, - "children": [ - { - "type": "div", - "classList": [ - "header" - ], - "children": [ - { - "type": "text", - "classList": [ - "header-title" - ], - "attr": { - "value": function () {return this.title} - } - } - ] - }, - { - "type": "div", - "classList": [ - "item" - ], - "repeat": function () {return this.items}, - "children": [ - { - "type": "text", - "classList": [ - "item-title" - ], - "attr": { - "value": function () {return 'row ' + (this.id)} - } - } - ] - } - ] - }, - { - "type": "loading", - "classList": [ - "loading-view" - ], - "attr": { - "display": function () {return this.loading_display} - }, - "events": { - "loading": "onloading" - }, - "children": [ - { - "type": "loading-indicator", - "classList": [ - "indicator" - ] - } - ] - } - ] - } - -/***/ }, -/* 149 */ -/***/ function(module, exports) { - - module.exports = { - "refresh-view": { - "height": 120, - "width": 750, - "display": "flex", - "MsFlexAlign": "center", - "WebkitAlignItems": "center", - "WebkitBoxAlign": "center", - "alignItems": "center" - }, - "refresh-arrow": { - "fontSize": 30, - "color": "#45b5f0" - }, - "loading-view": { - "width": 750, - "height": 100, - "display": "flex", - "MsFlexAlign": "center", - "WebkitAlignItems": "center", - "WebkitBoxAlign": "center", - "alignItems": "center" - }, - "indicator": { - "height": 60, - "width": 60, - "color": "#889967" - }, - "header": { - "backgroundColor": "#45b5f0", - "padding": 20, - "height": 88, - "justifyContent": "center" - }, - "header-title": { - "color": "#FFFFFF", - "fontWeight": "bold" - }, - "item": { - "justifyContent": "center", - "borderBottomWidth": 2, - "borderBottomColor": "#c0c0c0", - "height": 100, - "padding": 20 - } - } - -/***/ }, -/* 150 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - module.exports = { - methods: { - onrefresh: function onrefresh(e) { - var self = this; - self.refresh_display = 'show'; - self.$call('modal', 'toast', { - 'message': 'onrefresh' - }); - this.$call('timer', 'setTimeout', function () { - self.refresh_display = 'hide'; - }, 3000); - }, - onloading: function onloading(e) { - var self = this; - self.loading_display = 'show'; - self.$call('modal', 'toast', { - 'message': 'onloading' - }); - this.$call('timer', 'setTimeout', function () { - if (self.sections.length <= 6) { - self.sections.push(self.moreSections[self.sections.length - 2]); - } - self.loading_display = 'hide'; - }, 3000); - } - }, - data: function () {return { - refresh_display: 'hide', - loading_display: 'hide', - sections: [{ - title: 'Header 1', - items: [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }, { id: 5 }] - }, { - title: 'Header 2', - items: [{ id: 6 }, { id: 7 }, { id: 8 }, { id: 9 }, { id: 10 }, { id: 11 }] - }], - moreSections: [{ - title: 'Header 3', - items: [{ id: 12 }, { id: 13 }, { id: 14 }, { id: 15 }, { id: 16 }, { id: 17 }, { id: 18 }] - }, { - title: 'Header 4', - items: [{ id: 19 }, { id: 20 }, { id: 21 }, { id: 22 }] - }, { - title: 'Header 5', - items: [{ id: 23 }, { id: 24 }, { id: 25 }, { id: 26 }, { id: 27 }] - }, { - title: 'Header 6', - items: [{ id: 28 }, { id: 29 }, { id: 30 }, { id: 31 }, { id: 32 }] - }] - }} - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider-neighbor/index.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider-neighbor/index.js deleted file mode 100644 index a6ce7165..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider-neighbor/index.js +++ /dev/null @@ -1,264 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(151) - var __weex_script__ = __webpack_require__(152) - - __weex_define__('@weex-component/3157b803090c07c091af8fa3147f3d5c', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/3157b803090c07c091af8fa3147f3d5c',undefined,undefined) - -/***/ }, - -/***/ 151: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "flexDirection": "column", - "backgroundColor": "#ffffff", - "width": 750, - "height": 600, - "borderWidth": 0 - }, - "children": [ - { - "type": "div", - "style": { - "width": 700, - "height": 400, - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#000000", - "margin": 0 - }, - "children": [ - { - "type": "slider-neighbor", - "style": { - "width": 700, - "height": 400 - }, - "attr": { - "neighborScale": "0.8", - "neighborSpace": "30", - "currentItemScale": "0.90", - "interval": "3000", - "neighborAlpha": "0.8", - "autoPlay": function () {return this.attr_auto_play} - }, - "children": [ - { - "type": "image", - "style": { - "width": 600, - "backgroundColor": "#FFFFDF", - "height": 400 - }, - "attr": { - "src": "https://gw.alicdn.com/tps/TB1dzanMVXXXXXQXVXXXXXXXXXX-573-412.png" - } - }, - { - "type": "image", - "style": { - "width": 600, - "backgroundColor": "#FFFFDF", - "height": 400 - }, - "attr": { - "src": "https://gw.alicdn.com/tps/TB1p9CCMVXXXXa_XFXXXXXXXXXX-450-340.png" - } - }, - { - "type": "image", - "style": { - "width": 600, - "backgroundColor": "#FFFFDF", - "height": 400 - }, - "attr": { - "src": "https://gw.alicdn.com/tps/TB1zpSiMVXXXXchXFXXXXXXXXXX-448-338.png" - } - }, - { - "type": "image", - "style": { - "width": 600, - "backgroundColor": "#FFFFDF", - "height": 400 - }, - "attr": { - "src": "https://gw.alicdn.com/tps/TB1EuGIMVXXXXcoXpXXXXXXXXXX-452-337.png" - } - }, - { - "type": "indicator", - "style": { - "height": 60, - "position": "absolute", - "bottom": 15, - "width": 700, - "left": 0, - "itemSelectedColor": "#0000FF", - "itemSize": 20, - "itemColor": "#FF0000" - } - } - ] - } - ] - }, - { - "type": "div", - "style": { - "height": 100, - "borderWidth": 0, - "margin": 10 - }, - "children": [ - { - "type": "tc_support_subtitle", - "attr": { - "title": "auto-play" - } - }, - { - "type": "div", - "repeat": function () {return this.btnList2100}, - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "text", - "events": { - "click": "update2100" - }, - "attr": { - "flagid": function () {return this.index}, - "value": function () {return 'auto play: ' + (this.value)} - }, - "repeat": function () {return this.row}, - "style": { - "width": 310, - "height": 50, - "textAlign": "center", - "borderWidth": 1, - "borderColor": "#696969", - "borderStyle": "solid", - "borderRadius": 5, - "margin": 10, - "backgroundColor": function () {return this.bgc} - } - } - ] - } - ] - } - ] - } - -/***/ }, - -/***/ 152: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - module.exports = { - data: function () {return { - log_detail: [], - attr_auto_play: false, - btnList2100: [{ row: [{ value: "false", bgc: '#EEEEEE', index: 0 }, { value: "true", bgc: '#EEEEEE', index: 1 }] - }] - }}, - methods: { - update2100: function update2100(e) { - var self = this; - var index = e.target.attr.flagid; - for (var i = 0; i < self.btnList2100.length; i++) { - var row = self.btnList2100[i]; - var columnlist = row.row; - for (var j = 0; j < columnlist.length; j++) { - var column = columnlist[j]; - if (column.index === index) { - column.bgc = '#B2DFEE'; - switch (index) { - case 0: - self.attr_auto_play = false; - break; - case 1: - self.attr_auto_play = true; - break; - default: - break; - } - } else { - column.bgc = '#EEEEEE'; - } - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider-neighbor/slider-neighbor-item.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider-neighbor/slider-neighbor-item.js deleted file mode 100644 index 4cfac3a5..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider-neighbor/slider-neighbor-item.js +++ /dev/null @@ -1,141 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "a58f9d1c2bcd30bc0d09fdba96a34ed9" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(153) - var __weex_style__ = __webpack_require__(154) - var __weex_script__ = __webpack_require__(155) - - __weex_define__('@weex-component/d723bedd436352d63e4fa599317a8037', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/d723bedd436352d63e4fa599317a8037',undefined,undefined) - -/***/ }, - -/***/ 153: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "slider-item-container" - ], - "children": [ - { - "type": "image", - "classList": [ - "slider-item-image" - ], - "attr": { - "src": function () {return this.image} - } - } - ] - } - -/***/ }, - -/***/ 154: -/***/ function(module, exports) { - - module.exports = { - "slider-item-container": { - "width": 542, - "height": 360, - "justifyContent": "center", - "flexDirection": "row", - "padding": 10 - }, - "slider-item-image": { - "width": 542, - "height": 360 - } - } - -/***/ }, - -/***/ 155: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - image: '', - link: '', - href: '' - }}, - methods: { - ready: function ready() { - this.href = this.link; - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider-neighbor/slider-neighbor-page.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider-neighbor/slider-neighbor-page.js deleted file mode 100644 index a7c001c3..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider-neighbor/slider-neighbor-page.js +++ /dev/null @@ -1,221 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "b9409ec1aa3cbde7167d1d8be94da60b" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(156) - var __weex_template__ = __webpack_require__(157) - var __weex_style__ = __webpack_require__(158) - var __weex_script__ = __webpack_require__(159) - - __weex_define__('@weex-component/01b832918f8c3165cebb597eb613f790', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/01b832918f8c3165cebb597eb613f790',undefined,undefined) - -/***/ }, - -/***/ 153: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "slider-item-container" - ], - "children": [ - { - "type": "image", - "classList": [ - "slider-item-image" - ], - "attr": { - "src": function () {return this.image} - } - } - ] - } - -/***/ }, - -/***/ 154: -/***/ function(module, exports) { - - module.exports = { - "slider-item-container": { - "width": 542, - "height": 360, - "justifyContent": "center", - "flexDirection": "row", - "padding": 10 - }, - "slider-item-image": { - "width": 542, - "height": 360 - } - } - -/***/ }, - -/***/ 155: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - image: '', - link: '', - href: '' - }}, - methods: { - ready: function ready() { - this.href = this.link; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 156: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(153) - var __weex_style__ = __webpack_require__(154) - var __weex_script__ = __webpack_require__(155) - - __weex_define__('@weex-component/slider-neighbor-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, - -/***/ 157: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "slider-page" - ], - "children": [ - { - "type": "slider-neighbor-item", - "repeat": function () {return this.sliderItems} - } - ] - } - -/***/ }, - -/***/ 158: -/***/ function(module, exports) { - - module.exports = { - "slider-page": { - "width": 720, - "height": 420 - } - } - -/***/ }, - -/***/ 159: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - module.exports = { - data: function () {return { - items: [], - sliderItems: [] - }}, - methods: { - ready: function ready() { - this.sliderItems = this.getSliderItems(); - }, - getSliderItems: function getSliderItems() { - return this.items.map(function (item, index) { - return item; - }.bind(this)); - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider/index.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider/index.js deleted file mode 100644 index 3dd51b6b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider/index.js +++ /dev/null @@ -1,2748 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "c856213bf680d7edaca1e292bf1c353e" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(160) - var __weex_template__ = __webpack_require__(168) - var __weex_style__ = __webpack_require__(169) - var __weex_script__ = __webpack_require__(170) - - __weex_define__('@weex-component/0f29733e34d42a0cdfe7b98eb53bff4c', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/0f29733e34d42a0cdfe7b98eb53bff4c',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(161) - var __weex_template__ = __webpack_require__(165) - var __weex_style__ = __webpack_require__(166) - var __weex_script__ = __webpack_require__(167) - - __weex_define__('@weex-component/slider-page', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 161 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(162) - var __weex_style__ = __webpack_require__(163) - var __weex_script__ = __webpack_require__(164) - - __weex_define__('@weex-component/slider-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 162 */ -/***/ function(module, exports) { - - module.exports = { - "type": "image", - "classList": [ - "slider-item" - ], - "attr": { - "src": function () {return this.image} - } - } - -/***/ }, -/* 163 */ -/***/ function(module, exports) { - - module.exports = { - "slider-item": { - "width": 348, - "height": 400 - } - } - -/***/ }, -/* 164 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - image: '', - link: '', - href: '' - }}, - methods: { - ready: function ready() { - this.href = this.link; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 165 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "slider-page" - ], - "children": [ - { - "type": "slider-item", - "repeat": function () {return this.sliderItems} - } - ] - } - -/***/ }, -/* 166 */ -/***/ function(module, exports) { - - module.exports = { - "slider-page": { - "flexDirection": "row", - "justifyContent": "space-between", - "width": 714, - "height": 420 - } - } - -/***/ }, -/* 167 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - module.exports = { - data: function () {return { - items: [], - sliderItems: [] - }}, - methods: { - ready: function ready() { - this.sliderItems = this.getSliderItems(); - }, - getSliderItems: function getSliderItems() { - return this.items.map(function (item, index) { - return item; - }.bind(this)); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 168 */ -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "classList": [ - "body" - ], - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "auto-play", - "type": "primary" - }, - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "auto-play = false", - "paddingBody": "0" - }, - "children": [ - { - "type": "slider", - "classList": [ - "slider" - ], - "append": "tree", - "attr": { - "interval": function () {return this.sliders[1].interval}, - "autoPlay": "false" - }, - "children": [ - { - "type": "indicator", - "classList": [ - "indicator" - ] - }, - { - "type": "slider-page", - "repeat": function () {return this.sliders[1].sliderPages} - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "auto-play = true", - "paddingBody": "0" - }, - "children": [ - { - "type": "slider", - "classList": [ - "slider" - ], - "append": "tree", - "attr": { - "interval": function () {return this.sliders[0].interval}, - "autoPlay": function () {return this.sliders[0].autoPlay} - }, - "children": [ - { - "type": "indicator", - "classList": [ - "indicator" - ] - }, - { - "type": "slider-page", - "repeat": function () {return this.sliders[0].sliderPages} - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "auto-play = true & scrollable = false", - "paddingBody": "0" - }, - "children": [ - { - "type": "slider", - "classList": [ - "slider" - ], - "append": "tree", - "attr": { - "interval": function () {return this.sliders[0].interval}, - "autoPlay": function () {return this.sliders[0].autoPlay}, - "scrollable": "false" - }, - "children": [ - { - "type": "indicator", - "classList": [ - "indicator" - ] - }, - { - "type": "slider-page", - "repeat": function () {return this.sliders[0].sliderPages} - } - ] - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": function () {return 'Event, ' + (this.eventCnt) + ' change'}, - "type": "primary" - }, - "children": [ - { - "type": "slider", - "classList": [ - "slider" - ], - "append": "tree", - "attr": { - "interval": function () {return this.sliders[0].interval}, - "autoPlay": function () {return this.sliders[0].autoPlay} - }, - "events": { - "change": "handleSliderChange" - }, - "children": [ - { - "type": "indicator", - "classList": [ - "indicator" - ] - }, - { - "type": "slider-page", - "repeat": function () {return this.sliders[0].sliderPages} - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "Indicator", - "type": "primary" - }, - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "default style", - "paddingBody": "0" - }, - "children": [ - { - "type": "slider", - "classList": [ - "slider" - ], - "append": "tree", - "attr": { - "interval": function () {return this.sliders[0].interval}, - "autoPlay": function () {return this.sliders[0].autoPlay} - }, - "events": { - "change": "handleSliderChange" - }, - "children": [ - { - "type": "indicator", - "classList": [ - "indicator" - ] - }, - { - "type": "slider-page", - "repeat": function () {return this.sliders[0].sliderPages} - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "width & height", - "paddingBody": "0" - }, - "children": [ - { - "type": "slider", - "classList": [ - "slider" - ], - "append": "tree", - "attr": { - "interval": function () {return this.sliders[0].interval}, - "autoPlay": function () {return this.sliders[0].autoPlay} - }, - "children": [ - { - "type": "indicator", - "style": { - "itemColor": "#dddddd", - "width": 714, - "height": 460 - } - }, - { - "type": "slider-page", - "repeat": function () {return this.sliders[0].sliderPages} - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "left & top", - "paddingBody": "0" - }, - "children": [ - { - "type": "slider", - "classList": [ - "slider" - ], - "append": "tree", - "attr": { - "interval": function () {return this.sliders[1].interval}, - "autoPlay": function () {return this.sliders[1].autoPlay} - }, - "children": [ - { - "type": "indicator", - "classList": [ - "indicator" - ], - "style": { - "top": -140, - "left": -240 - } - }, - { - "type": "slider-page", - "repeat": function () {return this.sliders[1].sliderPages} - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "itemColor & itemSelectedColor", - "paddingBody": "0" - }, - "children": [ - { - "type": "slider", - "classList": [ - "slider" - ], - "append": "tree", - "attr": { - "interval": function () {return this.sliders[2].interval}, - "autoPlay": function () {return this.sliders[2].autoPlay} - }, - "children": [ - { - "type": "indicator", - "classList": [ - "indicator" - ], - "style": { - "itemSelectedColor": "rgb(217, 83, 79)" - } - }, - { - "type": "slider-page", - "repeat": function () {return this.sliders[2].sliderPages} - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "itemSize", - "paddingBody": "0" - }, - "children": [ - { - "type": "slider", - "classList": [ - "slider" - ], - "append": "tree", - "attr": { - "interval": function () {return this.sliders[1].interval}, - "autoPlay": function () {return this.sliders[1].autoPlay} - }, - "children": [ - { - "type": "indicator", - "style": { - "itemColor": "#dddddd", - "itemSize": 40, - "top": 140, - "left": 180, - "width": 700, - "height": 380 - } - }, - { - "type": "slider-page", - "repeat": function () {return this.sliders[1].sliderPages} - } - ] - } - ] - } - ] - } - ] - } - -/***/ }, -/* 169 */ -/***/ function(module, exports) { - - module.exports = { - "body": { - "backgroundColor": "#ffffff" - }, - "slider": { - "flexDirection": "row", - "width": 690, - "height": 360 - }, - "indicator": { - "position": "absolute", - "width": 690, - "height": 420, - "top": 140, - "left": 240, - "itemColor": "#dddddd", - "itemSelectedColor": "rgb(40, 96, 144)" - } - } - -/***/ }, -/* 170 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - var img0 = '//gw.alicdn.com/tps/i2/TB1DpsmMpXXXXabaXXX20ySQVXX-512-512.png_400x400.jpg'; - var img1 = '//gw.alicdn.com/tps/i1/TB1M3sQMpXXXXakXXXXApNeJVXX-360-360.png'; - module.exports = { - data: function () {return { - eventCnt: 0, - togglePlayMsg: 'pause', - sliders: [{ - interval: 1000, - autoPlay: true, - sliderPages: [{ - items: [{ - image: img0, - link: '//h5.m.taobao.com/1' - }, { - image: img0, - link: '//h5.m.taobao.com/1' - }] - }, { - items: [{ - image: img1, - link: '//h5.m.taobao.com/1' - }, { - image: img1, - link: '//h5.m.taobao.com/1' - }] - }, { - items: [{ - image: img0, - link: '//h5.m.taobao.com/1' - }, { - image: img1, - link: '//h5.m.taobao.com/1' - }] - }] - }, { - interval: 3000, - autoPlay: true, - sliderPages: [{ - items: [{ - image: img0, - link: '//h5.m.taobao.com/1' - }, { - image: img0, - link: '//h5.m.taobao.com/1' - }] - }, { - items: [{ - image: img1, - link: '//h5.m.taobao.com/1' - }, { - image: img1, - link: '//h5.m.taobao.com/1' - }] - }, { - items: [{ - image: img0, - link: '//h5.m.taobao.com/1' - }, { - image: img1, - link: '//h5.m.taobao.com/1' - }] - }] - }, { - interval: 5000, - autoPlay: true, - sliderPages: [{ - items: [{ - image: img0, - link: '//h5.m.taobao.com/1' - }, { - image: img0, - link: '//h5.m.taobao.com/1' - }] - }, { - items: [{ - image: img1, - link: '//h5.m.taobao.com/1' - }, { - image: img1, - link: '//h5.m.taobao.com/1' - }] - }, { - items: [{ - image: img0, - link: '//h5.m.taobao.com/1' - }, { - image: img1, - link: '//h5.m.taobao.com/1' - }] - }] - }] - }}, - methods: { - ready: function ready() {}, - togglePlay: function togglePlay() { - var autoPlay = this.sliders[0].autoPlay; - autoPlay = !autoPlay; - this.sliders[0].autoPlay = autoPlay; - this.togglePlayMsg = autoPlay ? 'pause' : 'play'; - }, - handleSliderChange: function handleSliderChange() { - var nowCnt = this.eventCnt + 1; - this.eventCnt = nowCnt; - }, - setInterval1: function setInterval1() { - this.sliders[0].interval = 1000; - }, - setInterval3: function setInterval3() { - this.sliders[0].interval = 3000; - }, - setInterval5: function setInterval5() { - this.sliders[0].interval = 5000; - } - } - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider/slider-item.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider/slider-item.js deleted file mode 100644 index 6b667d20..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider/slider-item.js +++ /dev/null @@ -1,126 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "34acca66a0e62b4f42973fd76d844b2a" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(162) - var __weex_style__ = __webpack_require__(163) - var __weex_script__ = __webpack_require__(164) - - __weex_define__('@weex-component/acad2f79d78cffd36dfaedd0c65d980d', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/acad2f79d78cffd36dfaedd0c65d980d',undefined,undefined) - -/***/ }, - -/***/ 162: -/***/ function(module, exports) { - - module.exports = { - "type": "image", - "classList": [ - "slider-item" - ], - "attr": { - "src": function () {return this.image} - } - } - -/***/ }, - -/***/ 163: -/***/ function(module, exports) { - - module.exports = { - "slider-item": { - "width": 348, - "height": 400 - } - } - -/***/ }, - -/***/ 164: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - image: '', - link: '', - href: '' - }}, - methods: { - ready: function ready() { - this.href = this.link; - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider/slider-page.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider/slider-page.js deleted file mode 100644 index 43bd70fa..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/slider/slider-page.js +++ /dev/null @@ -1,208 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "f98c63bc90652387ecc5012f97344e01" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(161) - var __weex_template__ = __webpack_require__(165) - var __weex_style__ = __webpack_require__(166) - var __weex_script__ = __webpack_require__(167) - - __weex_define__('@weex-component/ea51bd2d36d6d5354af97da097043629', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/ea51bd2d36d6d5354af97da097043629',undefined,undefined) - -/***/ }, - -/***/ 161: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(162) - var __weex_style__ = __webpack_require__(163) - var __weex_script__ = __webpack_require__(164) - - __weex_define__('@weex-component/slider-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, - -/***/ 162: -/***/ function(module, exports) { - - module.exports = { - "type": "image", - "classList": [ - "slider-item" - ], - "attr": { - "src": function () {return this.image} - } - } - -/***/ }, - -/***/ 163: -/***/ function(module, exports) { - - module.exports = { - "slider-item": { - "width": 348, - "height": 400 - } - } - -/***/ }, - -/***/ 164: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - image: '', - link: '', - href: '' - }}, - methods: { - ready: function ready() { - this.href = this.link; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 165: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "slider-page" - ], - "children": [ - { - "type": "slider-item", - "repeat": function () {return this.sliderItems} - } - ] - } - -/***/ }, - -/***/ 166: -/***/ function(module, exports) { - - module.exports = { - "slider-page": { - "flexDirection": "row", - "justifyContent": "space-between", - "width": 714, - "height": 420 - } - } - -/***/ }, - -/***/ 167: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - module.exports = { - data: function () {return { - items: [], - sliderItems: [] - }}, - methods: { - ready: function ready() { - this.sliderItems = this.getSliderItems(); - }, - getSliderItems: function getSliderItems() { - return this.items.map(function (item, index) { - return item; - }.bind(this)); - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/tabbar/tabbar-demo.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/tabbar/tabbar-demo.js deleted file mode 100644 index 8f2019dd..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/tabbar/tabbar-demo.js +++ /dev/null @@ -1,3030 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "912dfb1184b615aad9a037b71b619c20" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(171) - var __weex_script__ = __webpack_require__(172) - - __weex_define__('@weex-component/e76831b20ac1521dc607984f55a74c02', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/e76831b20ac1521dc607984f55a74c02',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - exports.__esModule = true; - - var _iterator = __webpack_require__(111); - - var _iterator2 = _interopRequireDefault(_iterator); - - var _symbol = __webpack_require__(131); - - var _symbol2 = _interopRequireDefault(_symbol); - - var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { - return typeof obj === "undefined" ? "undefined" : _typeof(obj); - } : function (obj) { - return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); - }; - -/***/ }, -/* 111 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(112), __esModule: true }; - -/***/ }, -/* 112 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(113); - __webpack_require__(126); - module.exports = __webpack_require__(130).f('iterator'); - -/***/ }, -/* 113 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var $at = __webpack_require__(114)(true); - - // 21.1.3.27 String.prototype[@@iterator]() - __webpack_require__(115)(String, 'String', function(iterated){ - this._t = String(iterated); // target - this._i = 0; // next index - // 21.1.5.2.1 %StringIteratorPrototype%.next() - }, function(){ - var O = this._t - , index = this._i - , point; - if(index >= O.length)return {value: undefined, done: true}; - point = $at(O, index); - this._i += point.length; - return {value: point, done: false}; - }); - -/***/ }, -/* 114 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , defined = __webpack_require__(54); - // true -> String#at - // false -> String#codePointAt - module.exports = function(TO_STRING){ - return function(that, pos){ - var s = String(defined(that)) - , i = toInteger(pos) - , l = s.length - , a, b; - if(i < 0 || i >= l)return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; - }; - -/***/ }, -/* 115 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var LIBRARY = __webpack_require__(116) - , $export = __webpack_require__(32) - , redefine = __webpack_require__(117) - , hide = __webpack_require__(37) - , has = __webpack_require__(50) - , Iterators = __webpack_require__(118) - , $iterCreate = __webpack_require__(119) - , setToStringTag = __webpack_require__(123) - , getPrototypeOf = __webpack_require__(125) - , ITERATOR = __webpack_require__(124)('iterator') - , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next` - , FF_ITERATOR = '@@iterator' - , KEYS = 'keys' - , VALUES = 'values'; - - var returnThis = function(){ return this; }; - - module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){ - $iterCreate(Constructor, NAME, next); - var getMethod = function(kind){ - if(!BUGGY && kind in proto)return proto[kind]; - switch(kind){ - case KEYS: return function keys(){ return new Constructor(this, kind); }; - case VALUES: return function values(){ return new Constructor(this, kind); }; - } return function entries(){ return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator' - , DEF_VALUES = DEFAULT == VALUES - , VALUES_BUG = false - , proto = Base.prototype - , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT] - , $default = $native || getMethod(DEFAULT) - , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined - , $anyNative = NAME == 'Array' ? proto.entries || $native : $native - , methods, key, IteratorPrototype; - // Fix native - if($anyNative){ - IteratorPrototype = getPrototypeOf($anyNative.call(new Base)); - if(IteratorPrototype !== Object.prototype){ - // Set @@toStringTag to native iterators - setToStringTag(IteratorPrototype, TAG, true); - // fix for some old engines - if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis); - } - } - // fix Array#{values, @@iterator}.name in V8 / FF - if(DEF_VALUES && $native && $native.name !== VALUES){ - VALUES_BUG = true; - $default = function values(){ return $native.call(this); }; - } - // Define iterator - if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){ - hide(proto, ITERATOR, $default); - } - // Plug for library - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if(DEFAULT){ - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if(FORCED)for(key in methods){ - if(!(key in proto))redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; - }; - -/***/ }, -/* 116 */ -/***/ function(module, exports) { - - module.exports = true; - -/***/ }, -/* 117 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(37); - -/***/ }, -/* 118 */ -/***/ function(module, exports) { - - module.exports = {}; - -/***/ }, -/* 119 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var create = __webpack_require__(120) - , descriptor = __webpack_require__(46) - , setToStringTag = __webpack_require__(123) - , IteratorPrototype = {}; - - // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() - __webpack_require__(37)(IteratorPrototype, __webpack_require__(124)('iterator'), function(){ return this; }); - - module.exports = function(Constructor, NAME, next){ - Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)}); - setToStringTag(Constructor, NAME + ' Iterator'); - }; - -/***/ }, -/* 120 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) - var anObject = __webpack_require__(39) - , dPs = __webpack_require__(121) - , enumBugKeys = __webpack_require__(62) - , IE_PROTO = __webpack_require__(59)('IE_PROTO') - , Empty = function(){ /* empty */ } - , PROTOTYPE = 'prototype'; - - // Create object with fake `null` prototype: use iframe Object with cleared prototype - var createDict = function(){ - // Thrash, waste and sodomy: IE GC bug - var iframe = __webpack_require__(44)('iframe') - , i = enumBugKeys.length - , lt = '<' - , gt = '>' - , iframeDocument; - iframe.style.display = 'none'; - __webpack_require__(122).appendChild(iframe); - iframe.src = 'javascript:'; // eslint-disable-line no-script-url - // createDict = iframe.contentWindow.Object; - // html.removeChild(iframe); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - createDict = iframeDocument.F; - while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]]; - return createDict(); - }; - - module.exports = Object.create || function create(O, Properties){ - var result; - if(O !== null){ - Empty[PROTOTYPE] = anObject(O); - result = new Empty; - Empty[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = createDict(); - return Properties === undefined ? result : dPs(result, Properties); - }; - - -/***/ }, -/* 121 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , anObject = __webpack_require__(39) - , getKeys = __webpack_require__(48); - - module.exports = __webpack_require__(42) ? Object.defineProperties : function defineProperties(O, Properties){ - anObject(O); - var keys = getKeys(Properties) - , length = keys.length - , i = 0 - , P; - while(length > i)dP.f(O, P = keys[i++], Properties[P]); - return O; - }; - -/***/ }, -/* 122 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(33).document && document.documentElement; - -/***/ }, -/* 123 */ -/***/ function(module, exports, __webpack_require__) { - - var def = __webpack_require__(38).f - , has = __webpack_require__(50) - , TAG = __webpack_require__(124)('toStringTag'); - - module.exports = function(it, tag, stat){ - if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); - }; - -/***/ }, -/* 124 */ -/***/ function(module, exports, __webpack_require__) { - - var store = __webpack_require__(60)('wks') - , uid = __webpack_require__(61) - , Symbol = __webpack_require__(33).Symbol - , USE_SYMBOL = typeof Symbol == 'function'; - - var $exports = module.exports = function(name){ - return store[name] || (store[name] = - USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); - }; - - $exports.store = store; - -/***/ }, -/* 125 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) - var has = __webpack_require__(50) - , toObject = __webpack_require__(65) - , IE_PROTO = __webpack_require__(59)('IE_PROTO') - , ObjectProto = Object.prototype; - - module.exports = Object.getPrototypeOf || function(O){ - O = toObject(O); - if(has(O, IE_PROTO))return O[IE_PROTO]; - if(typeof O.constructor == 'function' && O instanceof O.constructor){ - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; - }; - -/***/ }, -/* 126 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(127); - var global = __webpack_require__(33) - , hide = __webpack_require__(37) - , Iterators = __webpack_require__(118) - , TO_STRING_TAG = __webpack_require__(124)('toStringTag'); - - for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){ - var NAME = collections[i] - , Collection = global[NAME] - , proto = Collection && Collection.prototype; - if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = Iterators.Array; - } - -/***/ }, -/* 127 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var addToUnscopables = __webpack_require__(128) - , step = __webpack_require__(129) - , Iterators = __webpack_require__(118) - , toIObject = __webpack_require__(51); - - // 22.1.3.4 Array.prototype.entries() - // 22.1.3.13 Array.prototype.keys() - // 22.1.3.29 Array.prototype.values() - // 22.1.3.30 Array.prototype[@@iterator]() - module.exports = __webpack_require__(115)(Array, 'Array', function(iterated, kind){ - this._t = toIObject(iterated); // target - this._i = 0; // next index - this._k = kind; // kind - // 22.1.5.2.1 %ArrayIteratorPrototype%.next() - }, function(){ - var O = this._t - , kind = this._k - , index = this._i++; - if(!O || index >= O.length){ - this._t = undefined; - return step(1); - } - if(kind == 'keys' )return step(0, index); - if(kind == 'values')return step(0, O[index]); - return step(0, [index, O[index]]); - }, 'values'); - - // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) - Iterators.Arguments = Iterators.Array; - - addToUnscopables('keys'); - addToUnscopables('values'); - addToUnscopables('entries'); - -/***/ }, -/* 128 */ -/***/ function(module, exports) { - - module.exports = function(){ /* empty */ }; - -/***/ }, -/* 129 */ -/***/ function(module, exports) { - - module.exports = function(done, value){ - return {value: value, done: !!done}; - }; - -/***/ }, -/* 130 */ -/***/ function(module, exports, __webpack_require__) { - - exports.f = __webpack_require__(124); - -/***/ }, -/* 131 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(132), __esModule: true }; - -/***/ }, -/* 132 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(133); - __webpack_require__(142); - __webpack_require__(143); - __webpack_require__(144); - module.exports = __webpack_require__(34).Symbol; - -/***/ }, -/* 133 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // ECMAScript 6 symbols shim - var global = __webpack_require__(33) - , has = __webpack_require__(50) - , DESCRIPTORS = __webpack_require__(42) - , $export = __webpack_require__(32) - , redefine = __webpack_require__(117) - , META = __webpack_require__(134).KEY - , $fails = __webpack_require__(43) - , shared = __webpack_require__(60) - , setToStringTag = __webpack_require__(123) - , uid = __webpack_require__(61) - , wks = __webpack_require__(124) - , wksExt = __webpack_require__(130) - , wksDefine = __webpack_require__(135) - , keyOf = __webpack_require__(136) - , enumKeys = __webpack_require__(137) - , isArray = __webpack_require__(138) - , anObject = __webpack_require__(39) - , toIObject = __webpack_require__(51) - , toPrimitive = __webpack_require__(45) - , createDesc = __webpack_require__(46) - , _create = __webpack_require__(120) - , gOPNExt = __webpack_require__(139) - , $GOPD = __webpack_require__(141) - , $DP = __webpack_require__(38) - , $keys = __webpack_require__(48) - , gOPD = $GOPD.f - , dP = $DP.f - , gOPN = gOPNExt.f - , $Symbol = global.Symbol - , $JSON = global.JSON - , _stringify = $JSON && $JSON.stringify - , PROTOTYPE = 'prototype' - , HIDDEN = wks('_hidden') - , TO_PRIMITIVE = wks('toPrimitive') - , isEnum = {}.propertyIsEnumerable - , SymbolRegistry = shared('symbol-registry') - , AllSymbols = shared('symbols') - , OPSymbols = shared('op-symbols') - , ObjectProto = Object[PROTOTYPE] - , USE_NATIVE = typeof $Symbol == 'function' - , QObject = global.QObject; - // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 - var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; - - // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 - var setSymbolDesc = DESCRIPTORS && $fails(function(){ - return _create(dP({}, 'a', { - get: function(){ return dP(this, 'a', {value: 7}).a; } - })).a != 7; - }) ? function(it, key, D){ - var protoDesc = gOPD(ObjectProto, key); - if(protoDesc)delete ObjectProto[key]; - dP(it, key, D); - if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc); - } : dP; - - var wrap = function(tag){ - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - sym._k = tag; - return sym; - }; - - var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){ - return typeof it == 'symbol'; - } : function(it){ - return it instanceof $Symbol; - }; - - var $defineProperty = function defineProperty(it, key, D){ - if(it === ObjectProto)$defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - if(has(AllSymbols, key)){ - if(!D.enumerable){ - if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false; - D = _create(D, {enumerable: createDesc(0, false)}); - } return setSymbolDesc(it, key, D); - } return dP(it, key, D); - }; - var $defineProperties = function defineProperties(it, P){ - anObject(it); - var keys = enumKeys(P = toIObject(P)) - , i = 0 - , l = keys.length - , key; - while(l > i)$defineProperty(it, key = keys[i++], P[key]); - return it; - }; - var $create = function create(it, P){ - return P === undefined ? _create(it) : $defineProperties(_create(it), P); - }; - var $propertyIsEnumerable = function propertyIsEnumerable(key){ - var E = isEnum.call(this, key = toPrimitive(key, true)); - if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; - }; - var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){ - it = toIObject(it); - key = toPrimitive(key, true); - if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return; - var D = gOPD(it, key); - if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true; - return D; - }; - var $getOwnPropertyNames = function getOwnPropertyNames(it){ - var names = gOPN(toIObject(it)) - , result = [] - , i = 0 - , key; - while(names.length > i){ - if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key); - } return result; - }; - var $getOwnPropertySymbols = function getOwnPropertySymbols(it){ - var IS_OP = it === ObjectProto - , names = gOPN(IS_OP ? OPSymbols : toIObject(it)) - , result = [] - , i = 0 - , key; - while(names.length > i){ - if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]); - } return result; - }; - - // 19.4.1.1 Symbol([description]) - if(!USE_NATIVE){ - $Symbol = function Symbol(){ - if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - var $set = function(value){ - if(this === ObjectProto)$set.call(OPSymbols, value); - if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set}); - return wrap(tag); - }; - redefine($Symbol[PROTOTYPE], 'toString', function toString(){ - return this._k; - }); - - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __webpack_require__(140).f = gOPNExt.f = $getOwnPropertyNames; - __webpack_require__(64).f = $propertyIsEnumerable; - __webpack_require__(63).f = $getOwnPropertySymbols; - - if(DESCRIPTORS && !__webpack_require__(116)){ - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function(name){ - return wrap(wks(name)); - } - } - - $export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol}); - - for(var symbols = ( - // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' - ).split(','), i = 0; symbols.length > i; )wks(symbols[i++]); - - for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]); - - $export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - // 19.4.2.1 Symbol.for(key) - 'for': function(key){ - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(key){ - if(isSymbol(key))return keyOf(SymbolRegistry, key); - throw TypeError(key + ' is not a symbol!'); - }, - useSetter: function(){ setter = true; }, - useSimple: function(){ setter = false; } - }); - - $export($export.S + $export.F * !USE_NATIVE, 'Object', { - // 19.1.2.2 Object.create(O [, Properties]) - create: $create, - // 19.1.2.4 Object.defineProperty(O, P, Attributes) - defineProperty: $defineProperty, - // 19.1.2.3 Object.defineProperties(O, Properties) - defineProperties: $defineProperties, - // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - // 19.1.2.7 Object.getOwnPropertyNames(O) - getOwnPropertyNames: $getOwnPropertyNames, - // 19.1.2.8 Object.getOwnPropertySymbols(O) - getOwnPropertySymbols: $getOwnPropertySymbols - }); - - // 24.3.2 JSON.stringify(value [, replacer [, space]]) - $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){ - var S = $Symbol(); - // MS Edge converts symbol values to JSON as {} - // WebKit converts symbol values to JSON as null - // V8 throws on boxed symbols - return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}'; - })), 'JSON', { - stringify: function stringify(it){ - if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined - var args = [it] - , i = 1 - , replacer, $replacer; - while(arguments.length > i)args.push(arguments[i++]); - replacer = args[1]; - if(typeof replacer == 'function')$replacer = replacer; - if($replacer || !isArray(replacer))replacer = function(key, value){ - if($replacer)value = $replacer.call(this, key, value); - if(!isSymbol(value))return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } - }); - - // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) - $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(37)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); - // 19.4.3.5 Symbol.prototype[@@toStringTag] - setToStringTag($Symbol, 'Symbol'); - // 20.2.1.9 Math[@@toStringTag] - setToStringTag(Math, 'Math', true); - // 24.3.3 JSON[@@toStringTag] - setToStringTag(global.JSON, 'JSON', true); - -/***/ }, -/* 134 */ -/***/ function(module, exports, __webpack_require__) { - - var META = __webpack_require__(61)('meta') - , isObject = __webpack_require__(40) - , has = __webpack_require__(50) - , setDesc = __webpack_require__(38).f - , id = 0; - var isExtensible = Object.isExtensible || function(){ - return true; - }; - var FREEZE = !__webpack_require__(43)(function(){ - return isExtensible(Object.preventExtensions({})); - }); - var setMeta = function(it){ - setDesc(it, META, {value: { - i: 'O' + ++id, // object ID - w: {} // weak collections IDs - }}); - }; - var fastKey = function(it, create){ - // return primitive with prefix - if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if(!has(it, META)){ - // can't set metadata to uncaught frozen object - if(!isExtensible(it))return 'F'; - // not necessary to add metadata - if(!create)return 'E'; - // add missing metadata - setMeta(it); - // return object ID - } return it[META].i; - }; - var getWeak = function(it, create){ - if(!has(it, META)){ - // can't set metadata to uncaught frozen object - if(!isExtensible(it))return true; - // not necessary to add metadata - if(!create)return false; - // add missing metadata - setMeta(it); - // return hash weak collections IDs - } return it[META].w; - }; - // add metadata on freeze-family methods calling - var onFreeze = function(it){ - if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it); - return it; - }; - var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze - }; - -/***/ }, -/* 135 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , LIBRARY = __webpack_require__(116) - , wksExt = __webpack_require__(130) - , defineProperty = __webpack_require__(38).f; - module.exports = function(name){ - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)}); - }; - -/***/ }, -/* 136 */ -/***/ function(module, exports, __webpack_require__) { - - var getKeys = __webpack_require__(48) - , toIObject = __webpack_require__(51); - module.exports = function(object, el){ - var O = toIObject(object) - , keys = getKeys(O) - , length = keys.length - , index = 0 - , key; - while(length > index)if(O[key = keys[index++]] === el)return key; - }; - -/***/ }, -/* 137 */ -/***/ function(module, exports, __webpack_require__) { - - // all enumerable object keys, includes symbols - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64); - module.exports = function(it){ - var result = getKeys(it) - , getSymbols = gOPS.f; - if(getSymbols){ - var symbols = getSymbols(it) - , isEnum = pIE.f - , i = 0 - , key; - while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key); - } return result; - }; - -/***/ }, -/* 138 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.2.2 IsArray(argument) - var cof = __webpack_require__(53); - module.exports = Array.isArray || function isArray(arg){ - return cof(arg) == 'Array'; - }; - -/***/ }, -/* 139 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window - var toIObject = __webpack_require__(51) - , gOPN = __webpack_require__(140).f - , toString = {}.toString; - - var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - - var getWindowNames = function(it){ - try { - return gOPN(it); - } catch(e){ - return windowNames.slice(); - } - }; - - module.exports.f = function getOwnPropertyNames(it){ - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); - }; - - -/***/ }, -/* 140 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) - var $keys = __webpack_require__(49) - , hiddenKeys = __webpack_require__(62).concat('length', 'prototype'); - - exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){ - return $keys(O, hiddenKeys); - }; - -/***/ }, -/* 141 */ -/***/ function(module, exports, __webpack_require__) { - - var pIE = __webpack_require__(64) - , createDesc = __webpack_require__(46) - , toIObject = __webpack_require__(51) - , toPrimitive = __webpack_require__(45) - , has = __webpack_require__(50) - , IE8_DOM_DEFINE = __webpack_require__(41) - , gOPD = Object.getOwnPropertyDescriptor; - - exports.f = __webpack_require__(42) ? gOPD : function getOwnPropertyDescriptor(O, P){ - O = toIObject(O); - P = toPrimitive(P, true); - if(IE8_DOM_DEFINE)try { - return gOPD(O, P); - } catch(e){ /* empty */ } - if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]); - }; - -/***/ }, -/* 142 */ -/***/ function(module, exports) { - - - -/***/ }, -/* 143 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(135)('asyncIterator'); - -/***/ }, -/* 144 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(135)('observable'); - -/***/ }, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "flexDirection": "column" - }, - "children": [ - { - "type": "wxc-tabbar", - "attr": { - "tabItems": function () {return this.tabItems} - } - } - ] - } - -/***/ }, -/* 172 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _typeof2 = __webpack_require__(110); - - var _typeof3 = _interopRequireDefault(_typeof2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - __webpack_require__(4); - module.exports = { - data: function () {return { - dir: 'examples', - tabItems: [{ - index: 0, - title: 'tab1', - titleColor: '#000000', - icon: '', - image: 'http://gtms01.alicdn.com/tps/i1/TB1qw.hMpXXXXagXXXX9t7RGVXX-46-46.png', - selectedImage: 'http://gtms04.alicdn.com/tps/i4/TB16jjPMpXXXXazXVXX9t7RGVXX-46-46.png', - src: 'component/tabbar/tabbar-item.js?itemId=tab1', - visibility: 'visible' - }, { - index: 1, - title: 'tab2', - titleColor: '#000000', - icon: '', - image: 'http://gtms03.alicdn.com/tps/i3/TB1LEn9MpXXXXaUXpXX9t7RGVXX-46-46.png', - selectedImage: 'http://gtms02.alicdn.com/tps/i2/TB1qysbMpXXXXcnXXXX9t7RGVXX-46-46.png', - src: 'component/tabbar/tabbar-item.js?itemId=tab2', - visibility: 'hidden' - }, { - index: 2, - title: 'tab3', - titleColor: '#000000', - icon: '', - image: 'http://gtms01.alicdn.com/tps/i1/TB1B0v5MpXXXXcvXpXX9t7RGVXX-46-46.png', - selectedImage: 'http://gtms04.alicdn.com/tps/i4/TB1NxY5MpXXXXcrXpXX9t7RGVXX-46-46.png', - src: 'component/tabbar/tabbar-item.js?itemId=tab3', - visibility: 'hidden' - }] - }}, - created: function created() { - var bundleUrl = this.$getConfig().bundleUrl; - console.log('hit', bundleUrl); - var nativeBase; - var isAndroidAssets = bundleUrl.indexOf('file://assets/') >= 0; - var isiOSAssets = bundleUrl.indexOf('file:///') >= 0 && bundleUrl.indexOf('WeexDemo.app') > 0; - if (isAndroidAssets) { - nativeBase = 'file://assets/'; - } else if (isiOSAssets) { - nativeBase = bundleUrl.substring(0, bundleUrl.lastIndexOf('/') + 1); - } else { - var host = 'localhost:12580'; - var matches = /\/\/([^\/]+?)\//.exec(this.$getConfig().bundleUrl); - if (matches && matches.length >= 2) { - host = matches[1]; - } - nativeBase = 'http://' + host + '/' + this.dir + '/build/'; - } - var h5Base = './' + this.dir + '/build/'; - - var base = nativeBase; - if ((typeof window === 'undefined' ? 'undefined' : (0, _typeof3.default)(window)) === 'object') { - base = h5Base; - } - - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - tabItem.src = base + tabItem.src; - } - }, - methods: { - ready: function ready(e) { - var vm = this; - vm.$on('tabBar.onClick', function (e) { - var detail = e.detail; - nativeLog('tabBar.onClick ' + detail.index); - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/tabbar/tabbar-item.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/tabbar/tabbar-item.js deleted file mode 100644 index 7216c2e8..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/tabbar/tabbar-item.js +++ /dev/null @@ -1,157 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "4fd57e31e564370c775b265d3fdb4733" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(173) - var __weex_style__ = __webpack_require__(174) - var __weex_script__ = __webpack_require__(175) - - __weex_define__('@weex-component/2545712e41a9ef7852b8787c68bed645', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/2545712e41a9ef7852b8787c68bed645',undefined,undefined) - -/***/ }, - -/***/ 173: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "text", - "classList": [ - "text" - ], - "style": { - "color": function () {return this.color} - }, - "attr": { - "value": function () {return this.text} - } - } - ] - } - -/***/ }, - -/***/ 174: -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "alignItems": "center", - "justifyContent": "center" - }, - "text": { - "fontSize": 60, - "fontWeight": "bold", - "fontFamily": "\"Open Sans\", sans-serif" - } - } - -/***/ }, - -/***/ 175: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - color: '#ff0000', - text: '' - }}, - created: function created() { - var bundleUrl = this.$getConfig().bundleUrl; - nativeLog('bundleUrl = ' + bundleUrl); - - if (bundleUrl.indexOf("tab1") > 0) { - this.color = '#ff0000'; - this.text = 'This is Tab 1 Test.'; - } else if (bundleUrl.indexOf("tab2") > 0) { - this.color = '#00ff00'; - this.text = 'This is Tab 2 Test.'; - } else if (bundleUrl.indexOf("tab3") > 0) { - this.color = '#0000ff'; - this.text = 'This is Tab 3 Test.'; - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/text-demo.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/text-demo.js deleted file mode 100644 index 6fb0fab6..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/text-demo.js +++ /dev/null @@ -1,2637 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "7a417d023cb6eb6ea5079386a155fec5" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(176) - var __weex_style__ = __webpack_require__(177) - var __weex_script__ = __webpack_require__(178) - - __weex_define__('@weex-component/c0ea4ed580d5c38f82bd25b5602f26fe', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/c0ea4ed580d5c38f82bd25b5602f26fe',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */ -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "color", - "type": "primary" - }, - "children": [ - { - "type": "text", - "classList": [ - "txt" - ], - "attr": { - "value": "default is black" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "color": "#286090" - }, - "attr": { - "value": "#286090" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "color": "#00ff00" - }, - "attr": { - "value": "#0f0" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "color": "#FF0000" - }, - "attr": { - "value": "keyword" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "color": "rgb(238,162,54)" - }, - "attr": { - "value": "rgb(238, 162, 54)" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "color": "rgba(238,162,54,0.5)" - }, - "attr": { - "value": "rgba(238, 162, 54, 0.5)" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "font-size", - "type": "primary" - }, - "children": [ - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "fontSize": 32 - }, - "attr": { - "value": "32" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "fontSize": 64 - }, - "attr": { - "value": "64" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "fontSize": 100 - }, - "attr": { - "value": "100" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "font-style", - "type": "primary" - }, - "children": [ - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "fontStyle": "normal" - }, - "attr": { - "value": "normal" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "fontStyle": "italic" - }, - "attr": { - "value": "italic" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "font-weight", - "type": "primary" - }, - "children": [ - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "fontWeight": "normal" - }, - "attr": { - "value": "normal" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "fontWeight": "bold" - }, - "attr": { - "value": "bold" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "fontWeight": "100" - }, - "attr": { - "value": "100" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "fontWeight": "200" - }, - "attr": { - "value": "200" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "fontWeight": "300" - }, - "attr": { - "value": "300" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "fontWeight": "400" - }, - "attr": { - "value": "400" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "fontWeight": "500" - }, - "attr": { - "value": "500" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "fontWeight": "600" - }, - "attr": { - "value": "600" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "fontWeight": "700" - }, - "attr": { - "value": "700" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "fontWeight": "800" - }, - "attr": { - "value": "800" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "fontWeight": "900" - }, - "attr": { - "value": "900" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "text-decoration", - "type": "primary" - }, - "children": [ - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "textDecoration": "none" - }, - "attr": { - "value": "none" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "textDecoration": "underline" - }, - "attr": { - "value": "underline" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "textDecoration": "line-through" - }, - "attr": { - "value": "line-through" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "text-align", - "type": "primary" - }, - "children": [ - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "textAlign": "left" - }, - "attr": { - "value": "left" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "textAlign": "center" - }, - "attr": { - "value": "center" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "textAlign": "right" - }, - "attr": { - "value": "right" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "text-overflow", - "type": "primary" - }, - "children": [ - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "lines": 1 - }, - "attr": { - "value": "no text-overflow, no text-overflow" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "textOverflow": "clip", - "width": 450, - "lines": 1 - }, - "attr": { - "value": "text-overflow: clip, text-overflow: clip" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "textOverflow": "ellipsis", - "width": 450, - "lines": 1 - }, - "attr": { - "value": "text-overflow: ellipsis, text-overflow: ellipsis" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "line-height", - "type": "primary" - }, - "children": [ - { - "type": "text", - "classList": [ - "txt" - ], - "attr": { - "value": "no lineheight setting" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "lineHeight": 50 - }, - "attr": { - "value": "lineheight 50" - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "style": { - "lineHeight": 80 - }, - "attr": { - "value": "lineheight 80" - } - } - ] - } - ] - } - -/***/ }, -/* 177 */ -/***/ function(module, exports) { - - module.exports = { - "txt": { - "marginBottom": 12, - "fontSize": 40 - } - } - -/***/ }, -/* 178 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4);} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/video-demo.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/video-demo.js deleted file mode 100644 index fbefb37e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/video-demo.js +++ /dev/null @@ -1,2236 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "29348b4180a8c78e3a6cd4b260b74774" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(179) - var __weex_style__ = __webpack_require__(180) - var __weex_script__ = __webpack_require__(181) - - __weex_define__('@weex-component/a6ac855fc70c0bffbf2b317f9487878f', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/a6ac855fc70c0bffbf2b317f9487878f',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */ -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "children": [ - { - "type": "video", - "classList": [ - "video" - ], - "events": { - "pause": "onpause", - "start": "onstart", - "finish": "onfinish", - "fail": "onfail" - }, - "attr": { - "src": "http://g.tbcdn.cn/ali-wireless-h5/res/0.0.6/toy.mp4", - "autoPlay": "true", - "playStatus": function () {return this.playStatus} - } - }, - { - "type": "div", - "style": { - "flexDirection": "row", - "justifyContent": "center" - }, - "children": [ - { - "type": "wxc-button", - "attr": { - "value": "Pause" - }, - "events": { - "click": "pause" - } - }, - { - "type": "wxc-button", - "attr": { - "value": "Play", - "type": "primary" - }, - "events": { - "click": "play" - }, - "style": { - "marginLeft": 20 - } - } - ] - } - ] - } - -/***/ }, -/* 180 */ -/***/ function(module, exports) { - - module.exports = { - "video": { - "width": 750, - "height": 460, - "marginBottom": 80 - } - } - -/***/ }, -/* 181 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - module.exports = { - data: function () {return { - playStatus: 'play' - }}, - methods: { - pause: function pause() { - this.playStatus = 'pause'; - }, - play: function play() { - this.playStatus = 'play'; - }, - onpause: function onpause(e) { - this.$call('modal', 'toast', { 'message': 'video pause' }); - }, - onstart: function onstart(e) { - this.$call('modal', 'toast', { 'message': 'video start' }); - }, - onfinish: function onfinish(e) { - this.$call('modal', 'toast', { 'message': 'video finish' }); - }, - onfail: function onfail(e) { - this.$call('modal', 'toast', { 'message': 'video fail' }); - } - } - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/web-demo.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/web-demo.js deleted file mode 100644 index 61a3248a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/component/web-demo.js +++ /dev/null @@ -1,2286 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "3a484987637f61a6bce81312d94081e0" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(182) - var __weex_style__ = __webpack_require__(183) - var __weex_script__ = __webpack_require__(184) - - __weex_define__('@weex-component/1a81fb780319a63605d941949f4ff5d7', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/1a81fb780319a63605d941949f4ff5d7',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "div", - "classList": [ - "toolbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-button", - "attr": { - "type": "primary", - "size": "small", - "value": "back" - }, - "events": { - "click": "goback" - }, - "style": { - "marginLeft": 30, - "width": 210, - "marginTop": 5, - "marginBottom": 5 - } - }, - { - "type": "wxc-button", - "attr": { - "type": "primary", - "size": "small", - "value": "forward" - }, - "events": { - "click": "goforward" - }, - "style": { - "marginLeft": 30, - "width": 210, - "marginTop": 5, - "marginBottom": 5 - } - }, - { - "type": "wxc-button", - "attr": { - "type": "primary", - "size": "small", - "value": "refresh" - }, - "events": { - "click": "refresh" - }, - "style": { - "marginLeft": 30, - "width": 210, - "marginTop": 5, - "marginBottom": 5 - } - } - ] - }, - { - "type": "web", - "classList": [ - "content" - ], - "id": "webview", - "attr": { - "src": "https://m.taobao.com/?spm=0.0.0.0&v=0#index" - }, - "events": { - "pagestart": "startload", - "pagefinish": "finishload", - "error": "failload" - } - } - ] - } - -/***/ }, -/* 183 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 70 - }, - "toolbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 70 - } - } - -/***/ }, -/* 184 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - - module.exports = { - methods: { - goback: function goback() { - var webElement = this.$el('webview'); - $webview.goBack(webElement.ref); - }, - goforward: function goforward() { - var $webview = __weex_require__('@weex-module/webview'); - var webElement = this.$el('webview'); - $webview.goForward(webElement.ref); - }, - refresh: function refresh() { - var $webview = __weex_require__('@weex-module/webview'); - var webElement = this.$el('webview'); - $webview.reload(webElement.ref); - }, - startload: function startload(e) {}, - finishload: function finishload(e) {}, - failload: function failload(e) {} - } - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/error.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/error.js deleted file mode 100644 index 2b0ade10..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/error.js +++ /dev/null @@ -1,2217 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(185) - var __weex_script__ = __webpack_require__(186) - - __weex_define__('@weex-component/a62071d3ca8239528c69d72539119e08', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/a62071d3ca8239528c69d72539119e08',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - }, - "panel-body": {} - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */, -/* 183 */, -/* 184 */, -/* 185 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center" - }, - "children": [ - { - "type": "image", - "attr": { - "src": "http://gw.alicdn.com/mt/TB1GJDuMVXXXXbMaXXXXXXXXXXX-200-200.png" - }, - "style": { - "width": 200, - "height": 200, - "margin": 30 - } - }, - { - "type": "text", - "style": { - "fontSize": 40 - }, - "attr": { - "value": "你访问的资源不存在" - } - }, - { - "type": "text", - "style": { - "fontSize": 30, - "margin": 30, - "color": "#999999" - }, - "attr": { - "value": "去看看其他页面吧" - } - }, - { - "type": "div", - "style": { - "borderWidth": 3, - "borderRadius": 8, - "borderColor": "#A9A9A9" - }, - "events": { - "click": "go_home" - }, - "children": [ - { - "type": "text", - "style": { - "fontSize": 45, - "marginTop": 16, - "marginBottom": 16, - "marginLeft": 45, - "marginRight": 45 - }, - "attr": { - "value": "去首页" - } - } - ] - } - ] - } - -/***/ }, -/* 186 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - __webpack_require__(4); - module.exports = { - data: function () {return {}}, - methods: { - go_home: function go_home(event) { - this.$openURL("https://www.taobao.com"); - } - } - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/geolocation.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/geolocation.js deleted file mode 100644 index 09b72b44..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/geolocation.js +++ /dev/null @@ -1,183 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(187) - var __weex_script__ = __webpack_require__(188) - - __weex_define__('@weex-component/c1022e7ee9ce09ed1eadcf7bffe1b341', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/c1022e7ee9ce09ed1eadcf7bffe1b341',undefined,undefined) - -/***/ }, - -/***/ 34: -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, - -/***/ 187: -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "children": [ - { - "type": "div", - "style": { - "alignItems": "center" - }, - "children": [ - { - "type": "text", - "style": { - "fontSize": 30, - "color": "#000000" - }, - "attr": { - "value": function () {return this.location} - } - }, - { - "type": "text", - "style": { - "fontSize": 35, - "color": "#FFA07A" - }, - "attr": { - "value": function () {return this.watchlocation} - } - } - ] - } - ] - } - -/***/ }, - -/***/ 188: -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - var _stringify = __webpack_require__(189); - - var _stringify2 = _interopRequireDefault(_stringify); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - location: "等待定位数据", - watchlocation: "watch location", - i: 0 - }}, - created: function created() { - var geolocation = __weex_require__('@weex-module/geolocation'); - geolocation.getCurrentPosition(function (result) { - console.log("into--[getCurrentPosition success] result:" + (0, _stringify2.default)(result)); - this.location = (0, _stringify2.default)(result); - }.bind(this), function (result) { - console.log("into--[getCurrentPosition error] result:" + (0, _stringify2.default)(result)); - this.location = (0, _stringify2.default)(result); - }.bind(this), { enableHighAcuracy: false, address: true }); - - geolocation.watchPosition(function (result) { - console.log("into--[watchPosition success] result:" + (0, _stringify2.default)(result)); - var str = this.watchlocation + '\n' + (0, _stringify2.default)(result); - this.watchlocation = str; - this.i += 1; - - if (this.i == 2) { - geolocation.clearWatch(result.registerId); - __weex_require__('@weex-module/modal').toast({ - 'message': "[clear watch] id:" + result.registerId, - 'duration': 1 - }); - } - }.bind(this), function (result) { - console.log("into--[watchPosition success] result:" + (0, _stringify2.default)(result)); - this.watchlocation = (0, _stringify2.default)(result); - }.bind(this), { enableHighAcuracy: false, address: true }); - }, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 189: -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(190), __esModule: true }; - -/***/ }, - -/***/ 190: -/***/ function(module, exports, __webpack_require__) { - - var core = __webpack_require__(34) - , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify}); - module.exports = function stringify(it){ // eslint-disable-line no-unused-vars - return $JSON.stringify.apply($JSON, arguments); - }; - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/hello.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/hello.js deleted file mode 100644 index 44f8cf32..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/hello.js +++ /dev/null @@ -1,88 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "86ed5dd60f58efe1a84b64e8c7eacb7a" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(191) - - __weex_define__('@weex-component/3bfdbb5ef29172e6db527e1bc85ec8fd', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/3bfdbb5ef29172e6db527e1bc85ec8fd',undefined,undefined) - -/***/ }, - -/***/ 191: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "text", - "style": { - "fontSize": 100 - }, - "attr": { - "value": "Hello World." - } - } - ] - } - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/iconfont.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/iconfont.js deleted file mode 100644 index 14b0c16f..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/iconfont.js +++ /dev/null @@ -1,184 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "6ee7e2ff19346198a8505e7e4911ff81" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(192) - var __weex_style__ = __webpack_require__(193) - var __weex_script__ = __webpack_require__(194) - - __weex_define__('@weex-component/c90fb40e28668dc487c3cb9e5dc4fabd', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/c90fb40e28668dc487c3cb9e5dc4fabd',undefined,undefined) - -/***/ }, - -/***/ 192: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "text", - "classList": [ - "title1" - ], - "attr": { - "value": "Assets: " - } - }, - { - "type": "text", - "classList": [ - "title2" - ], - "attr": { - "value": "http ttf: " - } - }, - { - "type": "text", - "classList": [ - "title3" - ], - "attr": { - "value": "http woff: " - } - }, - { - "type": "text", - "classList": [ - "title4" - ], - "attr": { - "value": "file: " - } - } - ] - } - -/***/ }, - -/***/ 193: -/***/ function(module, exports) { - - module.exports = { - "title1": { - "color": "#FF0000", - "fontSize": 36, - "fontFamily": "iconfont1" - }, - "title2": { - "color": "#FF0000", - "fontSize": 36, - "fontFamily": "iconfont2" - }, - "title3": { - "color": "#FF0000", - "fontSize": 36, - "fontFamily": "iconfont3" - }, - "title4": { - "color": "#FF0000", - "fontSize": 36, - "fontFamily": "iconfont4" - } - } - -/***/ }, - -/***/ 194: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - created: function created() { - var domModule = __weex_require__('@weex-module/dom'); - - domModule.addRule('fontFace', { - 'fontFamily': "iconfont1", - 'src': "url('iconfont.ttf')" - }); - domModule.addRule('fontFace', { - 'fontFamily': "iconfont2", - 'src': "url('http://at.alicdn.com/t/font_1469606063_76593.ttf')" - }); - domModule.addRule('fontFace', { - 'fontFamily': "iconfont3", - 'src': "url('http://at.alicdn.com/t/font_1469606522_9417143.woff')" - }); - domModule.addRule('fontFace', { - 'fontFamily': "iconfont4", - 'src': "url('file:///storage/emulated/0/Android/data/com.alibaba.weex/cache/http:__at.alicdn.com_t_font_1469606063_76593.ttf')" - }); - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/index.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/index.js deleted file mode 100644 index 1264d6be..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/index.js +++ /dev/null @@ -1,3160 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(195) - var __weex_script__ = __webpack_require__(196) - - __weex_define__('@weex-component/677c57764d82d558f236d5241843a2a2', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/677c57764d82d558f236d5241843a2a2',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - }, - "panel-body": {} - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - exports.__esModule = true; - - var _iterator = __webpack_require__(111); - - var _iterator2 = _interopRequireDefault(_iterator); - - var _symbol = __webpack_require__(131); - - var _symbol2 = _interopRequireDefault(_symbol); - - var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default ? "symbol" : typeof obj; }; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { - return typeof obj === "undefined" ? "undefined" : _typeof(obj); - } : function (obj) { - return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); - }; - -/***/ }, -/* 111 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(112), __esModule: true }; - -/***/ }, -/* 112 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(113); - __webpack_require__(126); - module.exports = __webpack_require__(130).f('iterator'); - -/***/ }, -/* 113 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var $at = __webpack_require__(114)(true); - - // 21.1.3.27 String.prototype[@@iterator]() - __webpack_require__(115)(String, 'String', function(iterated){ - this._t = String(iterated); // target - this._i = 0; // next index - // 21.1.5.2.1 %StringIteratorPrototype%.next() - }, function(){ - var O = this._t - , index = this._i - , point; - if(index >= O.length)return {value: undefined, done: true}; - point = $at(O, index); - this._i += point.length; - return {value: point, done: false}; - }); - -/***/ }, -/* 114 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , defined = __webpack_require__(54); - // true -> String#at - // false -> String#codePointAt - module.exports = function(TO_STRING){ - return function(that, pos){ - var s = String(defined(that)) - , i = toInteger(pos) - , l = s.length - , a, b; - if(i < 0 || i >= l)return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; - }; - -/***/ }, -/* 115 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var LIBRARY = __webpack_require__(116) - , $export = __webpack_require__(32) - , redefine = __webpack_require__(117) - , hide = __webpack_require__(37) - , has = __webpack_require__(50) - , Iterators = __webpack_require__(118) - , $iterCreate = __webpack_require__(119) - , setToStringTag = __webpack_require__(123) - , getPrototypeOf = __webpack_require__(125) - , ITERATOR = __webpack_require__(124)('iterator') - , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next` - , FF_ITERATOR = '@@iterator' - , KEYS = 'keys' - , VALUES = 'values'; - - var returnThis = function(){ return this; }; - - module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){ - $iterCreate(Constructor, NAME, next); - var getMethod = function(kind){ - if(!BUGGY && kind in proto)return proto[kind]; - switch(kind){ - case KEYS: return function keys(){ return new Constructor(this, kind); }; - case VALUES: return function values(){ return new Constructor(this, kind); }; - } return function entries(){ return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator' - , DEF_VALUES = DEFAULT == VALUES - , VALUES_BUG = false - , proto = Base.prototype - , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT] - , $default = $native || getMethod(DEFAULT) - , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined - , $anyNative = NAME == 'Array' ? proto.entries || $native : $native - , methods, key, IteratorPrototype; - // Fix native - if($anyNative){ - IteratorPrototype = getPrototypeOf($anyNative.call(new Base)); - if(IteratorPrototype !== Object.prototype){ - // Set @@toStringTag to native iterators - setToStringTag(IteratorPrototype, TAG, true); - // fix for some old engines - if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis); - } - } - // fix Array#{values, @@iterator}.name in V8 / FF - if(DEF_VALUES && $native && $native.name !== VALUES){ - VALUES_BUG = true; - $default = function values(){ return $native.call(this); }; - } - // Define iterator - if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){ - hide(proto, ITERATOR, $default); - } - // Plug for library - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if(DEFAULT){ - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if(FORCED)for(key in methods){ - if(!(key in proto))redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; - }; - -/***/ }, -/* 116 */ -/***/ function(module, exports) { - - module.exports = true; - -/***/ }, -/* 117 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(37); - -/***/ }, -/* 118 */ -/***/ function(module, exports) { - - module.exports = {}; - -/***/ }, -/* 119 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var create = __webpack_require__(120) - , descriptor = __webpack_require__(46) - , setToStringTag = __webpack_require__(123) - , IteratorPrototype = {}; - - // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() - __webpack_require__(37)(IteratorPrototype, __webpack_require__(124)('iterator'), function(){ return this; }); - - module.exports = function(Constructor, NAME, next){ - Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)}); - setToStringTag(Constructor, NAME + ' Iterator'); - }; - -/***/ }, -/* 120 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) - var anObject = __webpack_require__(39) - , dPs = __webpack_require__(121) - , enumBugKeys = __webpack_require__(62) - , IE_PROTO = __webpack_require__(59)('IE_PROTO') - , Empty = function(){ /* empty */ } - , PROTOTYPE = 'prototype'; - - // Create object with fake `null` prototype: use iframe Object with cleared prototype - var createDict = function(){ - // Thrash, waste and sodomy: IE GC bug - var iframe = __webpack_require__(44)('iframe') - , i = enumBugKeys.length - , lt = '<' - , gt = '>' - , iframeDocument; - iframe.style.display = 'none'; - __webpack_require__(122).appendChild(iframe); - iframe.src = 'javascript:'; // eslint-disable-line no-script-url - // createDict = iframe.contentWindow.Object; - // html.removeChild(iframe); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - createDict = iframeDocument.F; - while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]]; - return createDict(); - }; - - module.exports = Object.create || function create(O, Properties){ - var result; - if(O !== null){ - Empty[PROTOTYPE] = anObject(O); - result = new Empty; - Empty[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = createDict(); - return Properties === undefined ? result : dPs(result, Properties); - }; - - -/***/ }, -/* 121 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , anObject = __webpack_require__(39) - , getKeys = __webpack_require__(48); - - module.exports = __webpack_require__(42) ? Object.defineProperties : function defineProperties(O, Properties){ - anObject(O); - var keys = getKeys(Properties) - , length = keys.length - , i = 0 - , P; - while(length > i)dP.f(O, P = keys[i++], Properties[P]); - return O; - }; - -/***/ }, -/* 122 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(33).document && document.documentElement; - -/***/ }, -/* 123 */ -/***/ function(module, exports, __webpack_require__) { - - var def = __webpack_require__(38).f - , has = __webpack_require__(50) - , TAG = __webpack_require__(124)('toStringTag'); - - module.exports = function(it, tag, stat){ - if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); - }; - -/***/ }, -/* 124 */ -/***/ function(module, exports, __webpack_require__) { - - var store = __webpack_require__(60)('wks') - , uid = __webpack_require__(61) - , Symbol = __webpack_require__(33).Symbol - , USE_SYMBOL = typeof Symbol == 'function'; - - var $exports = module.exports = function(name){ - return store[name] || (store[name] = - USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); - }; - - $exports.store = store; - -/***/ }, -/* 125 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) - var has = __webpack_require__(50) - , toObject = __webpack_require__(65) - , IE_PROTO = __webpack_require__(59)('IE_PROTO') - , ObjectProto = Object.prototype; - - module.exports = Object.getPrototypeOf || function(O){ - O = toObject(O); - if(has(O, IE_PROTO))return O[IE_PROTO]; - if(typeof O.constructor == 'function' && O instanceof O.constructor){ - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; - }; - -/***/ }, -/* 126 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(127); - var global = __webpack_require__(33) - , hide = __webpack_require__(37) - , Iterators = __webpack_require__(118) - , TO_STRING_TAG = __webpack_require__(124)('toStringTag'); - - for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){ - var NAME = collections[i] - , Collection = global[NAME] - , proto = Collection && Collection.prototype; - if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = Iterators.Array; - } - -/***/ }, -/* 127 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var addToUnscopables = __webpack_require__(128) - , step = __webpack_require__(129) - , Iterators = __webpack_require__(118) - , toIObject = __webpack_require__(51); - - // 22.1.3.4 Array.prototype.entries() - // 22.1.3.13 Array.prototype.keys() - // 22.1.3.29 Array.prototype.values() - // 22.1.3.30 Array.prototype[@@iterator]() - module.exports = __webpack_require__(115)(Array, 'Array', function(iterated, kind){ - this._t = toIObject(iterated); // target - this._i = 0; // next index - this._k = kind; // kind - // 22.1.5.2.1 %ArrayIteratorPrototype%.next() - }, function(){ - var O = this._t - , kind = this._k - , index = this._i++; - if(!O || index >= O.length){ - this._t = undefined; - return step(1); - } - if(kind == 'keys' )return step(0, index); - if(kind == 'values')return step(0, O[index]); - return step(0, [index, O[index]]); - }, 'values'); - - // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) - Iterators.Arguments = Iterators.Array; - - addToUnscopables('keys'); - addToUnscopables('values'); - addToUnscopables('entries'); - -/***/ }, -/* 128 */ -/***/ function(module, exports) { - - module.exports = function(){ /* empty */ }; - -/***/ }, -/* 129 */ -/***/ function(module, exports) { - - module.exports = function(done, value){ - return {value: value, done: !!done}; - }; - -/***/ }, -/* 130 */ -/***/ function(module, exports, __webpack_require__) { - - exports.f = __webpack_require__(124); - -/***/ }, -/* 131 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(132), __esModule: true }; - -/***/ }, -/* 132 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(133); - __webpack_require__(142); - __webpack_require__(143); - __webpack_require__(144); - module.exports = __webpack_require__(34).Symbol; - -/***/ }, -/* 133 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // ECMAScript 6 symbols shim - var global = __webpack_require__(33) - , has = __webpack_require__(50) - , DESCRIPTORS = __webpack_require__(42) - , $export = __webpack_require__(32) - , redefine = __webpack_require__(117) - , META = __webpack_require__(134).KEY - , $fails = __webpack_require__(43) - , shared = __webpack_require__(60) - , setToStringTag = __webpack_require__(123) - , uid = __webpack_require__(61) - , wks = __webpack_require__(124) - , wksExt = __webpack_require__(130) - , wksDefine = __webpack_require__(135) - , keyOf = __webpack_require__(136) - , enumKeys = __webpack_require__(137) - , isArray = __webpack_require__(138) - , anObject = __webpack_require__(39) - , toIObject = __webpack_require__(51) - , toPrimitive = __webpack_require__(45) - , createDesc = __webpack_require__(46) - , _create = __webpack_require__(120) - , gOPNExt = __webpack_require__(139) - , $GOPD = __webpack_require__(141) - , $DP = __webpack_require__(38) - , $keys = __webpack_require__(48) - , gOPD = $GOPD.f - , dP = $DP.f - , gOPN = gOPNExt.f - , $Symbol = global.Symbol - , $JSON = global.JSON - , _stringify = $JSON && $JSON.stringify - , PROTOTYPE = 'prototype' - , HIDDEN = wks('_hidden') - , TO_PRIMITIVE = wks('toPrimitive') - , isEnum = {}.propertyIsEnumerable - , SymbolRegistry = shared('symbol-registry') - , AllSymbols = shared('symbols') - , OPSymbols = shared('op-symbols') - , ObjectProto = Object[PROTOTYPE] - , USE_NATIVE = typeof $Symbol == 'function' - , QObject = global.QObject; - // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 - var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; - - // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 - var setSymbolDesc = DESCRIPTORS && $fails(function(){ - return _create(dP({}, 'a', { - get: function(){ return dP(this, 'a', {value: 7}).a; } - })).a != 7; - }) ? function(it, key, D){ - var protoDesc = gOPD(ObjectProto, key); - if(protoDesc)delete ObjectProto[key]; - dP(it, key, D); - if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc); - } : dP; - - var wrap = function(tag){ - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - sym._k = tag; - return sym; - }; - - var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){ - return typeof it == 'symbol'; - } : function(it){ - return it instanceof $Symbol; - }; - - var $defineProperty = function defineProperty(it, key, D){ - if(it === ObjectProto)$defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - if(has(AllSymbols, key)){ - if(!D.enumerable){ - if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false; - D = _create(D, {enumerable: createDesc(0, false)}); - } return setSymbolDesc(it, key, D); - } return dP(it, key, D); - }; - var $defineProperties = function defineProperties(it, P){ - anObject(it); - var keys = enumKeys(P = toIObject(P)) - , i = 0 - , l = keys.length - , key; - while(l > i)$defineProperty(it, key = keys[i++], P[key]); - return it; - }; - var $create = function create(it, P){ - return P === undefined ? _create(it) : $defineProperties(_create(it), P); - }; - var $propertyIsEnumerable = function propertyIsEnumerable(key){ - var E = isEnum.call(this, key = toPrimitive(key, true)); - if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; - }; - var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){ - it = toIObject(it); - key = toPrimitive(key, true); - if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return; - var D = gOPD(it, key); - if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true; - return D; - }; - var $getOwnPropertyNames = function getOwnPropertyNames(it){ - var names = gOPN(toIObject(it)) - , result = [] - , i = 0 - , key; - while(names.length > i){ - if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key); - } return result; - }; - var $getOwnPropertySymbols = function getOwnPropertySymbols(it){ - var IS_OP = it === ObjectProto - , names = gOPN(IS_OP ? OPSymbols : toIObject(it)) - , result = [] - , i = 0 - , key; - while(names.length > i){ - if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]); - } return result; - }; - - // 19.4.1.1 Symbol([description]) - if(!USE_NATIVE){ - $Symbol = function Symbol(){ - if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - var $set = function(value){ - if(this === ObjectProto)$set.call(OPSymbols, value); - if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set}); - return wrap(tag); - }; - redefine($Symbol[PROTOTYPE], 'toString', function toString(){ - return this._k; - }); - - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __webpack_require__(140).f = gOPNExt.f = $getOwnPropertyNames; - __webpack_require__(64).f = $propertyIsEnumerable; - __webpack_require__(63).f = $getOwnPropertySymbols; - - if(DESCRIPTORS && !__webpack_require__(116)){ - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function(name){ - return wrap(wks(name)); - } - } - - $export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol}); - - for(var symbols = ( - // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' - ).split(','), i = 0; symbols.length > i; )wks(symbols[i++]); - - for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]); - - $export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - // 19.4.2.1 Symbol.for(key) - 'for': function(key){ - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(key){ - if(isSymbol(key))return keyOf(SymbolRegistry, key); - throw TypeError(key + ' is not a symbol!'); - }, - useSetter: function(){ setter = true; }, - useSimple: function(){ setter = false; } - }); - - $export($export.S + $export.F * !USE_NATIVE, 'Object', { - // 19.1.2.2 Object.create(O [, Properties]) - create: $create, - // 19.1.2.4 Object.defineProperty(O, P, Attributes) - defineProperty: $defineProperty, - // 19.1.2.3 Object.defineProperties(O, Properties) - defineProperties: $defineProperties, - // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - // 19.1.2.7 Object.getOwnPropertyNames(O) - getOwnPropertyNames: $getOwnPropertyNames, - // 19.1.2.8 Object.getOwnPropertySymbols(O) - getOwnPropertySymbols: $getOwnPropertySymbols - }); - - // 24.3.2 JSON.stringify(value [, replacer [, space]]) - $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){ - var S = $Symbol(); - // MS Edge converts symbol values to JSON as {} - // WebKit converts symbol values to JSON as null - // V8 throws on boxed symbols - return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}'; - })), 'JSON', { - stringify: function stringify(it){ - if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined - var args = [it] - , i = 1 - , replacer, $replacer; - while(arguments.length > i)args.push(arguments[i++]); - replacer = args[1]; - if(typeof replacer == 'function')$replacer = replacer; - if($replacer || !isArray(replacer))replacer = function(key, value){ - if($replacer)value = $replacer.call(this, key, value); - if(!isSymbol(value))return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } - }); - - // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) - $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(37)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); - // 19.4.3.5 Symbol.prototype[@@toStringTag] - setToStringTag($Symbol, 'Symbol'); - // 20.2.1.9 Math[@@toStringTag] - setToStringTag(Math, 'Math', true); - // 24.3.3 JSON[@@toStringTag] - setToStringTag(global.JSON, 'JSON', true); - -/***/ }, -/* 134 */ -/***/ function(module, exports, __webpack_require__) { - - var META = __webpack_require__(61)('meta') - , isObject = __webpack_require__(40) - , has = __webpack_require__(50) - , setDesc = __webpack_require__(38).f - , id = 0; - var isExtensible = Object.isExtensible || function(){ - return true; - }; - var FREEZE = !__webpack_require__(43)(function(){ - return isExtensible(Object.preventExtensions({})); - }); - var setMeta = function(it){ - setDesc(it, META, {value: { - i: 'O' + ++id, // object ID - w: {} // weak collections IDs - }}); - }; - var fastKey = function(it, create){ - // return primitive with prefix - if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if(!has(it, META)){ - // can't set metadata to uncaught frozen object - if(!isExtensible(it))return 'F'; - // not necessary to add metadata - if(!create)return 'E'; - // add missing metadata - setMeta(it); - // return object ID - } return it[META].i; - }; - var getWeak = function(it, create){ - if(!has(it, META)){ - // can't set metadata to uncaught frozen object - if(!isExtensible(it))return true; - // not necessary to add metadata - if(!create)return false; - // add missing metadata - setMeta(it); - // return hash weak collections IDs - } return it[META].w; - }; - // add metadata on freeze-family methods calling - var onFreeze = function(it){ - if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it); - return it; - }; - var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze - }; - -/***/ }, -/* 135 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , LIBRARY = __webpack_require__(116) - , wksExt = __webpack_require__(130) - , defineProperty = __webpack_require__(38).f; - module.exports = function(name){ - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)}); - }; - -/***/ }, -/* 136 */ -/***/ function(module, exports, __webpack_require__) { - - var getKeys = __webpack_require__(48) - , toIObject = __webpack_require__(51); - module.exports = function(object, el){ - var O = toIObject(object) - , keys = getKeys(O) - , length = keys.length - , index = 0 - , key; - while(length > index)if(O[key = keys[index++]] === el)return key; - }; - -/***/ }, -/* 137 */ -/***/ function(module, exports, __webpack_require__) { - - // all enumerable object keys, includes symbols - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64); - module.exports = function(it){ - var result = getKeys(it) - , getSymbols = gOPS.f; - if(getSymbols){ - var symbols = getSymbols(it) - , isEnum = pIE.f - , i = 0 - , key; - while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key); - } return result; - }; - -/***/ }, -/* 138 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.2.2 IsArray(argument) - var cof = __webpack_require__(53); - module.exports = Array.isArray || function isArray(arg){ - return cof(arg) == 'Array'; - }; - -/***/ }, -/* 139 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window - var toIObject = __webpack_require__(51) - , gOPN = __webpack_require__(140).f - , toString = {}.toString; - - var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - - var getWindowNames = function(it){ - try { - return gOPN(it); - } catch(e){ - return windowNames.slice(); - } - }; - - module.exports.f = function getOwnPropertyNames(it){ - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); - }; - - -/***/ }, -/* 140 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) - var $keys = __webpack_require__(49) - , hiddenKeys = __webpack_require__(62).concat('length', 'prototype'); - - exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){ - return $keys(O, hiddenKeys); - }; - -/***/ }, -/* 141 */ -/***/ function(module, exports, __webpack_require__) { - - var pIE = __webpack_require__(64) - , createDesc = __webpack_require__(46) - , toIObject = __webpack_require__(51) - , toPrimitive = __webpack_require__(45) - , has = __webpack_require__(50) - , IE8_DOM_DEFINE = __webpack_require__(41) - , gOPD = Object.getOwnPropertyDescriptor; - - exports.f = __webpack_require__(42) ? gOPD : function getOwnPropertyDescriptor(O, P){ - O = toIObject(O); - P = toPrimitive(P, true); - if(IE8_DOM_DEFINE)try { - return gOPD(O, P); - } catch(e){ /* empty */ } - if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]); - }; - -/***/ }, -/* 142 */ -/***/ function(module, exports) { - - - -/***/ }, -/* 143 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(135)('asyncIterator'); - -/***/ }, -/* 144 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(135)('observable'); - -/***/ }, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */, -/* 183 */, -/* 184 */, -/* 185 */, -/* 186 */, -/* 187 */, -/* 188 */, -/* 189 */, -/* 190 */, -/* 191 */, -/* 192 */, -/* 193 */, -/* 194 */, -/* 195 */ -/***/ function(module, exports) { - - module.exports = { - "type": "example-list", - "attr": { - "items": function () {return this.items}, - "root": function () {return this.root} - } - } - -/***/ }, -/* 196 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(197); - module.exports = { - data: function () {return { - root: 'examples', - items: [{ name: 'hello', title: 'Hello World' }, { name: 'style/index', title: 'Common Style' }, { name: 'animation', title: 'Animation' }, { name: 'linear-gradient', title: 'Gradient Color' }, { name: 'component/text-demo', title: 'Text' }, { name: 'component/image-demo', title: 'Image' }, { name: 'component/input-demo', title: 'Input' }, { name: 'component/scroller-demo', title: 'Scroller' }, { name: 'component/list/list-basic', title: 'List (Basic)' }, { name: 'component/list/list-demo', title: 'List (Advanced)' }, { name: 'component/slider/index', title: 'Slider' }, { name: 'component/slider-neighbor/index', title: 'Slider Neighbor' }, { name: 'component/a-demo', title: 'A' }, { name: 'component/video-demo', title: 'Video' }, { name: 'component/countdown-demo', title: 'Countdown' }, { name: 'component/marquee-demo', title: 'Marquee' }, { name: 'component/web-demo', title: 'Web' }, { name: 'component/navigator-demo', title: 'Navigator' }, { name: 'component/tabbar/tabbar-demo', title: 'Tabbar' }, { name: 'component/process-bar-demo', title: 'ProcessBar' }, { name: 'module/instance-api', title: 'Instance API' }, { name: 'module/modal', title: 'Modal' }, { name: 'module/stream-demo', title: 'Stream' }, { name: 'module/websocket-demo', title: 'WebSocket' }, { name: 'module/storage-demo', title: 'Storage' }, { name: 'module/picker-demo', title: 'Picker' }, { name: 'module/componentRect', title: 'componentRect' }, { name: 'module/clipboard', title: 'Clipboard' }, { name: 'showcase/new-fashion/index', title: 'Activity' }, { name: 'showcase/calculator', title: 'Calculator' }, { name: 'showcase/minesweeper', title: 'Minesweeper' }, { name: 'showcase/ui', title: 'UI Gallery' }, { name: 'showcase/dropdown/dropdown-demo', title: 'Dropdown' }, { name: 'showcase/pseudo-class', title: 'PseudoClass' }] - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 197 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(198) - var __weex_template__ = __webpack_require__(202) - var __weex_style__ = __webpack_require__(203) - var __weex_script__ = __webpack_require__(204) - - __weex_define__('@weex-component/example-list', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 198 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(199) - var __weex_style__ = __webpack_require__(200) - var __weex_script__ = __webpack_require__(201) - - __weex_define__('@weex-component/example-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 199 */ -/***/ function(module, exports) { - - module.exports = { - "type": "wxc-list-item", - "events": { - "click": "redirect" - }, - "children": [ - { - "type": "text", - "classList": [ - "item-txt" - ], - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 200 */ -/***/ function(module, exports) { - - module.exports = { - "item-txt": { - "fontSize": 48, - "color": "#555555" - } - } - -/***/ }, -/* 201 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - module.exports = { - data: function () {return { - title: '', - url: '' - }}, - methods: { - redirect: function redirect() { - this.$openURL(this.url); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 202 */ -/***/ function(module, exports) { - - module.exports = { - "type": "list", - "children": [ - { - "type": "cell", - "append": "tree", - "repeat": function () {return this.items}, - "children": [ - { - "type": "example-list-item", - "attr": { - "title": function () {return this.title}, - "url": function () {return this.url} - } - } - ] - } - ] - } - -/***/ }, -/* 203 */ -/***/ function(module, exports) { - - module.exports = {} - -/***/ }, -/* 204 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _typeof2 = __webpack_require__(110); - - var _typeof3 = _interopRequireDefault(_typeof2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - __webpack_require__(4); - module.exports = { - data: function () {return { - root: '', - items: [{ name: 'hello', title: 'Hello World', url: '' }] - }}, - created: function created() { - var bundleUrl = this.$getConfig().bundleUrl; - console.log('hit', bundleUrl); - var dirs = this.root.split('/'); - dirs.forEach(function (dir, index) { - if (!dir) dirs.splice(index, 1); - }); - var root = dirs.length > 0 ? dirs[0] : ''; - var subRoot = dirs.length > 1 ? dirs.slice(1).join('/') + '/' : ''; - - var nativeBase; - var isAndroidAssets = bundleUrl.indexOf('your_current_IP') >= 0 || bundleUrl.indexOf('file://assets/') >= 0; - var isiOSAssets = bundleUrl.indexOf('file:///') >= 0 && bundleUrl.indexOf('WeexDemo.app') > 0; - if (isAndroidAssets) { - nativeBase = 'file://assets/'; - } else if (isiOSAssets) { - nativeBase = bundleUrl.substring(0, bundleUrl.lastIndexOf('/') + 1); - } else { - var host = 'localhost:12580'; - var matches = /\/\/([^\/]+?)\//.exec(this.$getConfig().bundleUrl); - if (matches && matches.length >= 2) { - host = matches[1]; - } - nativeBase = '//' + host + '/' + root + '/build/' + subRoot; - } - var h5Base = './index.html?page=./' + root + '/build/' + subRoot; - - var base = nativeBase; - if ((typeof window === 'undefined' ? 'undefined' : (0, _typeof3.default)(window)) === 'object') { - base = h5Base; - } - - for (var i in this.items) { - var item = this.items[i]; - if (!item.url) { - item.url = base + item.name + '.js'; - } - } - - if (this.items.length) console.log('hit', this.items[0].url); - } - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/linear-gradient.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/linear-gradient.js deleted file mode 100644 index 3866ce55..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/linear-gradient.js +++ /dev/null @@ -1,367 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(205) - var __weex_style__ = __webpack_require__(206) - - __weex_define__('@weex-component/695f94322dfa977e2812d2616f20e495', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/695f94322dfa977e2812d2616f20e495',undefined,undefined) - -/***/ }, - -/***/ 205: -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "style": { - "backgroundColor": "#3a3a3a" - }, - "children": [ - { - "type": "div", - "classList": [ - "container1" - ], - "style": { - "backgroundImage": "linear-gradient(to right,#43C6AC,#F8FFAE)" - }, - "children": [ - { - "type": "text", - "classList": [ - "direction" - ], - "attr": { - "value": "to right" - } - } - ] - }, - { - "type": "div", - "classList": [ - "container1" - ], - "style": { - "backgroundImage": "linear-gradient(to left,#DCE35B,#45B649)" - }, - "children": [ - { - "type": "text", - "classList": [ - "direction" - ], - "attr": { - "value": "to left" - } - } - ] - }, - { - "type": "div", - "classList": [ - "container1" - ], - "style": { - "backgroundImage": "linear-gradient(to bottom,#3494E6,#EC6EAD)" - }, - "children": [ - { - "type": "text", - "classList": [ - "direction" - ], - "attr": { - "value": "to bottom" - } - } - ] - }, - { - "type": "div", - "classList": [ - "container1" - ], - "style": { - "backgroundImage": "linear-gradient(to top,#ee0979,#ff6a00)" - }, - "children": [ - { - "type": "text", - "classList": [ - "direction" - ], - "attr": { - "value": "to top" - } - } - ] - }, - { - "type": "div", - "style": { - "flexDirection": "row", - "alignItems": "center", - "justifyContent": "center" - }, - "children": [ - { - "type": "div", - "classList": [ - "container2" - ], - "style": { - "backgroundImage": "linear-gradient(to bottom right,#00c3ff,#ffff1c)" - }, - "children": [ - { - "type": "text", - "classList": [ - "direction" - ], - "attr": { - "value": "to bottom right" - } - } - ] - }, - { - "type": "div", - "classList": [ - "container2" - ], - "style": { - "backgroundImage": "linear-gradient(to top left,#ff00cc,#333399)" - }, - "children": [ - { - "type": "text", - "classList": [ - "direction" - ], - "attr": { - "value": "to top left" - } - } - ] - } - ] - }, - { - "type": "div", - "classList": [ - "container1" - ], - "style": { - "backgroundImage": "linear-gradient(to right,#a80077,#66ff00)" - }, - "children": [ - { - "type": "text", - "classList": [ - "direction" - ], - "attr": { - "value": "to right" - } - } - ] - }, - { - "type": "div", - "classList": [ - "container1" - ], - "style": { - "backgroundImage": "linear-gradient(to left,#a80077,#66ff00)" - }, - "children": [ - { - "type": "text", - "classList": [ - "direction" - ], - "attr": { - "value": "to left" - } - } - ] - }, - { - "type": "div", - "classList": [ - "container1" - ], - "style": { - "backgroundImage": "linear-gradient(to bottom,#a80077,#66ff00)" - }, - "children": [ - { - "type": "text", - "classList": [ - "direction" - ], - "attr": { - "value": "to bottom" - } - } - ] - }, - { - "type": "div", - "classList": [ - "container1" - ], - "style": { - "backgroundImage": "linear-gradient(to top,#a80077,#66ff00)" - }, - "children": [ - { - "type": "text", - "classList": [ - "direction" - ], - "attr": { - "value": "to top" - } - } - ] - }, - { - "type": "div", - "style": { - "flexDirection": "row", - "alignItems": "center", - "justifyContent": "center" - }, - "children": [ - { - "type": "div", - "classList": [ - "container2" - ], - "style": { - "backgroundImage": "linear-gradient(to bottom right,#a80077,#66ff00)" - }, - "children": [ - { - "type": "text", - "classList": [ - "direction" - ], - "attr": { - "value": "to bottom right" - } - } - ] - }, - { - "type": "div", - "classList": [ - "container2" - ], - "style": { - "backgroundImage": "linear-gradient(to top left,#a80077,#66ff00)" - }, - "children": [ - { - "type": "text", - "classList": [ - "direction" - ], - "attr": { - "value": "to top left" - } - } - ] - } - ] - } - ] - } - -/***/ }, - -/***/ 206: -/***/ function(module, exports) { - - module.exports = { - "container1": { - "margin": 10, - "width": 730, - "height": 200, - "alignItems": "center", - "justifyContent": "center", - "border": "solid", - "borderRadius": 10 - }, - "container2": { - "margin": 10, - "width": 300, - "height": 300, - "alignItems": "center", - "justifyContent": "center", - "border": "solid", - "borderRadius": 10 - }, - "direction": { - "fontSize": 40, - "color": "#FFFFFF" - } - } - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/clipboard.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/clipboard.js deleted file mode 100644 index 6b9e504e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/clipboard.js +++ /dev/null @@ -1,2321 +0,0 @@ -/*!197 - * { - * version: "0.4.0.20170207", - * create: "20170207145011", - * git: "origin-taobao/u4_v8_shared_sdk_jsfm-feature-0.19--027e045", - * digest: "ec884d99f54fb0db5203d061a7d1f15d" - * } - !*/ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(207) - var __weex_script__ = __webpack_require__(208) - - __weex_define__('@weex-component/e93e729eb05598f04027627a24c804bf', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/e93e729eb05598f04027627a24c804bf',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */, -/* 183 */, -/* 184 */, -/* 185 */, -/* 186 */, -/* 187 */, -/* 188 */, -/* 189 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(190), __esModule: true }; - -/***/ }, -/* 190 */ -/***/ function(module, exports, __webpack_require__) { - - var core = __webpack_require__(34) - , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify}); - module.exports = function stringify(it){ // eslint-disable-line no-unused-vars - return $JSON.stringify.apply($JSON, arguments); - }; - -/***/ }, -/* 191 */, -/* 192 */, -/* 193 */, -/* 194 */, -/* 195 */, -/* 196 */, -/* 197 */, -/* 198 */, -/* 199 */, -/* 200 */, -/* 201 */, -/* 202 */, -/* 203 */, -/* 204 */, -/* 205 */, -/* 206 */, -/* 207 */ -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "Clipboard", - "type": "primary" - }, - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "Copy to clipboard5" - }, - "children": [ - { - "type": "text", - "style": { - "lineHeight": 40, - "fontSize": 28 - }, - "attr": { - "value": function () {return this.textToCopy} - } - }, - { - "type": "wxc-button", - "attr": { - "type": "info", - "size": "middle", - "value": "Copy" - }, - "events": { - "click": "doCopy" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "Paste from clipboard" - }, - "children": [ - { - "type": "text", - "style": { - "lineHeight": 40, - "fontSize": 28 - }, - "attr": { - "value": function () {return this.textFromPaste} - } - }, - { - "type": "wxc-button", - "attr": { - "type": "info", - "size": "middle", - "value": "Paste" - }, - "events": { - "click": "doPaste" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "Result" - }, - "children": [ - { - "type": "wxc-tip", - "style": { - "marginBottom": 20 - }, - "attr": { - "value": function () {return this.tips} - } - } - ] - } - ] - } - ] - } - -/***/ }, -/* 208 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _stringify = __webpack_require__(189); - - var _stringify2 = _interopRequireDefault(_stringify); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - __webpack_require__(4); - - module.exports = { - data: function () {return { - textToCopy: '', - textFromPaste: '', - tips: '' - }}, - ready: function ready() { - this.tips = "1. Just click COPY button. It will auto generate a string with random text, and copy to system clipboard. \n 2. do copy in another app, then come back and click PASTE button."; - }, - methods: { - clicked: function clicked() { - var $modal = __weex_require__('@weex-module/modal'); - $modal.toast({ 'message': 'clicked!', duration: 0.5 }); - }, - - doCopy: function doCopy() { - var self = this; - var textToCopy = "autoGenerateTextToCopy" + Math.random(); - - var clipboard = __weex_require__('@weex-module/clipboard'); - clipboard.setString(textToCopy); - - self.textToCopy = textToCopy; - self.tips = "copy done. Now system clipboard has string of '" + textToCopy + "', try PASTE button, or paste in another app."; - }, - - doPaste: function doPaste() { - var clipboard = __weex_require__('@weex-module/clipboard'); - var me = this; - clipboard.getString(function (ret) { - console.log("paste result is " + (0, _stringify2.default)(ret)); - - me.textFromPaste = (0, _stringify2.default)(ret); - me.tips = "Paste done. Only support native(Android/iOS) NOW. according to security reason, paste in html5 is not supported."; - }); - } - - } - - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/componentRect.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/componentRect.js deleted file mode 100644 index f8e1d32a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/componentRect.js +++ /dev/null @@ -1,563 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(209) - var __weex_template__ = __webpack_require__(213) - var __weex_style__ = __webpack_require__(214) - var __weex_script__ = __webpack_require__(215) - - __weex_define__('@weex-component/3cccb00caad47f9888c7597d009c670e', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/3cccb00caad47f9888c7597d009c670e',undefined,undefined) - -/***/ }, - -/***/ 209: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(210) - var __weex_style__ = __webpack_require__(211) - var __weex_script__ = __webpack_require__(212) - - __weex_define__('@weex-component/multi-text', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, - -/***/ 210: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "text", - "classList": [ - "text-style", - "text-descript" - ], - "attr": { - "value": function () {return this.descript} - } - }, - { - "type": "text", - "classList": [ - "text-style", - "text-detail" - ], - "attr": { - "value": function () {return this.detail} - } - } - ] - } - -/***/ }, - -/***/ 211: -/***/ function(module, exports) { - - module.exports = { - "text-style": { - "fontSize": 30, - "marginTop": 15, - "marginLeft": 15, - "marginBottom": 15 - }, - "text-descript": { - "fontWeight": "bold", - "flex": 1 - }, - "text-detail": { - "flex": 1 - } - } - -/***/ }, - -/***/ 212: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - descript: '', - detail: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 213: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "width": 730, - "margin": 10, - "borderWidth": 3, - "borderColor": "#00FF00" - }, - "children": [ - { - "type": "text", - "attr": { - "value": "click every view to get view Rect information" - } - }, - { - "type": "scroller", - "style": { - "height": 400, - "width": 700, - "margin": 10, - "borderWidth": 3, - "borderColor": "#0000FF" - }, - "children": [ - { - "type": "text", - "events": { - "click": "getViewportRect" - }, - "classList": [ - "component", - "viewportBtn" - ], - "attr": { - "value": "root view" - } - }, - { - "type": "div", - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "text", - "events": { - "click": "getViewRect" - }, - "classList": [ - "component", - "basicBtn" - ], - "id": "basicview1", - "attr": { - "value": "basicview1" - } - }, - { - "type": "text", - "events": { - "click": "getViewRect" - }, - "classList": [ - "component", - "basicBtn" - ], - "id": "basicview2", - "attr": { - "value": "basicview2" - } - }, - { - "type": "text", - "events": { - "click": "getViewRect" - }, - "classList": [ - "component", - "basicBtn" - ], - "id": "basicview3", - "attr": { - "value": "basicview3" - } - } - ] - }, - { - "type": "div", - "style": { - "flexDirection": "column" - }, - "children": [ - { - "type": "div", - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "text", - "events": { - "click": "getViewRect" - }, - "classList": [ - "component", - "basicBtn" - ], - "id": "basicview4", - "attr": { - "value": "basicview4" - } - }, - { - "type": "text", - "events": { - "click": "getViewRect" - }, - "classList": [ - "component", - "basicBtn" - ], - "id": "basicview5", - "attr": { - "value": "basicview5" - } - } - ] - }, - { - "type": "text", - "events": { - "click": "getViewRect" - }, - "classList": [ - "component", - "basicBtn" - ], - "id": "basicview6", - "attr": { - "value": "basicview6" - } - } - ] - } - ] - }, - { - "type": "div", - "style": { - "width": 700, - "margin": 10, - "borderWidth": 3, - "borderColor": "#0000FF" - }, - "children": [ - { - "type": "text", - "classList": [ - "sub-title" - ], - "attr": { - "value": "Device Config" - } - }, - { - "type": "multi-text", - "attr": { - "descript": "Device Width:", - "detail": function () {return this.configEnv.deviceWidth} - } - }, - { - "type": "div", - "classList": [ - "div-split" - ] - }, - { - "type": "multi-text", - "attr": { - "descript": "Device Height:", - "detail": function () {return this.configEnv.deviceHeight} - } - }, - { - "type": "text", - "classList": [ - "sub-title" - ], - "attr": { - "value": "View Rect Information" - } - }, - { - "type": "div", - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "div", - "style": { - "flex": 1 - }, - "children": [ - { - "type": "text", - "repeat": { - "expression": function () {return this.viewDesc}, - "key": "key", - "value": "value" - }, - "classList": [ - "titleFont" - ], - "attr": { - "value": function () {return this.value} - } - } - ] - }, - { - "type": "div", - "classList": [ - "child-split" - ] - }, - { - "type": "div", - "classList": [ - "child-split" - ] - }, - { - "type": "div", - "style": { - "flex": 1 - }, - "children": [ - { - "type": "text", - "repeat": { - "expression": function () {return this.viewRect}, - "key": "key", - "value": "value" - }, - "classList": [ - "titleFont" - ], - "attr": { - "value": function () {return this.value} - } - } - ] - } - ] - } - ] - } - ] - } - -/***/ }, - -/***/ 214: -/***/ function(module, exports) { - - module.exports = { - "sub-title": { - "height": 40, - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)", - "color": "#FFFFFF", - "borderWidth": 1 - }, - "div-split": { - "height": 2, - "borderWidth": 1, - "borderStyle": "dashed", - "borderColor": "#375830" - }, - "titleFont": { - "fontSize": 30, - "padding": 15, - "borderBottomWidth": 1 - }, - "child-split": { - "width": 2, - "borderWidth": 1, - "borderStyle": "dashed", - "borderColor": "#00FF00" - }, - "component": { - "borderWidth": 3, - "fontSize": 60, - "textAlign": "center", - "backgroundColor": "rgb(240,173,78)" - }, - "viewportBtn": { - "width": 300, - "height": 100, - "marginTop": 20, - "marginLeft": 200 - }, - "basicBtn": { - "width": 190, - "height": 180, - "marginLeft": 30, - "marginTop": 20, - "fontSize": 40, - "padding": 35 - }, - "stickyBtn": { - "position": "sticky", - "width": 200, - "height": 60, - "marginLeft": 30, - "marginTop": 20, - "fontSize": 40 - }, - "fixedBtn": { - "position": "fixed", - "width": 200, - "height": 170, - "right": 100, - "top": 200, - "padding": 20 - }, - "content": { - "height": 400, - "margin": 10, - "padding": 20, - "fontSize": 50, - "color": "#00FF00", - "borderColor": "#FF0000", - "borderWidth": 3 - } - } - -/***/ }, - -/***/ 215: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - configEnv: {}, - viewRect: ['View Rect'], - viewDesc: ['----', 'width', 'height', 'top', 'left', 'bottom', 'right'], - contentList: ['1', '2', '3', '4', '5', '6', '7', '8', '9'] - }}, - created: function created() { - this.$getConfig(function (config) { - this.configEnv = config.env; - }.bind(this)); - }, - methods: { - getViewportRect: function getViewportRect(e) { - var dom = __weex_require__('@weex-module/dom'); - dom.getComponentRect('viewport', function (data) { - if (data.result) { - this.viewRect = [this.viewRect[0]]; - this.viewRect.push(data.size.width); - this.viewRect.push(data.size.height); - this.viewRect.push(data.size.top); - this.viewRect.push(data.size.left); - this.viewRect.push(data.size.bottom); - this.viewRect.push(data.size.right); - } - }.bind(this)); - }, - getViewRect: function getViewRect(e) { - var dom = __weex_require__('@weex-module/dom'); - dom.getComponentRect(this.$el(e.target.attr.value), function (data) { - if (data.result) { - this.viewRect = [this.viewRect[0]]; - this.viewRect.push(data.size.width); - this.viewRect.push(data.size.height); - this.viewRect.push(data.size.top); - this.viewRect.push(data.size.left); - this.viewRect.push(data.size.bottom); - this.viewRect.push(data.size.right); - } - }.bind(this)); - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/instance-api.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/instance-api.js deleted file mode 100644 index 512d721d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/instance-api.js +++ /dev/null @@ -1,2225 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(216) - var __weex_script__ = __webpack_require__(217) - - __weex_define__('@weex-component/2c1f438ffab50b73880065c54d5a1b0c', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/2c1f438ffab50b73880065c54d5a1b0c',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - }, - "panel-body": {} - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */, -/* 183 */, -/* 184 */, -/* 185 */, -/* 186 */, -/* 187 */, -/* 188 */, -/* 189 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(190), __esModule: true }; - -/***/ }, -/* 190 */ -/***/ function(module, exports, __webpack_require__) { - - var core = __webpack_require__(34) - , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify}); - module.exports = function stringify(it){ // eslint-disable-line no-unused-vars - return $JSON.stringify.apply($JSON, arguments); - }; - -/***/ }, -/* 191 */, -/* 192 */, -/* 193 */, -/* 194 */, -/* 195 */, -/* 196 */, -/* 197 */, -/* 198 */, -/* 199 */, -/* 200 */, -/* 201 */, -/* 202 */, -/* 203 */, -/* 204 */, -/* 205 */, -/* 206 */, -/* 207 */, -/* 208 */, -/* 209 */, -/* 210 */, -/* 211 */, -/* 212 */, -/* 213 */, -/* 214 */, -/* 215 */, -/* 216 */ -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "$getConfig()", - "type": "primary" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.config} - } - } - ] - } - ] - } - -/***/ }, -/* 217 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _stringify = __webpack_require__(189); - - var _stringify2 = _interopRequireDefault(_stringify); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - __webpack_require__(4); - - module.exports = { - data: function () {return { - config: '' - }}, - ready: function ready() { - var config = this.$getConfig(); - console.log('config', (0, _stringify2.default)(config)); - this.config = (0, _stringify2.default)(config, null, 2); - }, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/modal.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/modal.js deleted file mode 100644 index a98d0d0a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/modal.js +++ /dev/null @@ -1,2311 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(218) - var __weex_style__ = __webpack_require__(219) - var __weex_script__ = __webpack_require__(220) - - __weex_define__('@weex-component/3e30f1e2562a57b329ab7ebd1387f07b', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/3e30f1e2562a57b329ab7ebd1387f07b',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - }, - "panel-body": {} - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */, -/* 183 */, -/* 184 */, -/* 185 */, -/* 186 */, -/* 187 */, -/* 188 */, -/* 189 */, -/* 190 */, -/* 191 */, -/* 192 */, -/* 193 */, -/* 194 */, -/* 195 */, -/* 196 */, -/* 197 */, -/* 198 */, -/* 199 */, -/* 200 */, -/* 201 */, -/* 202 */, -/* 203 */, -/* 204 */, -/* 205 */, -/* 206 */, -/* 207 */, -/* 208 */, -/* 209 */, -/* 210 */, -/* 211 */, -/* 212 */, -/* 213 */, -/* 214 */, -/* 215 */, -/* 216 */, -/* 217 */, -/* 218 */ -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "Toast", - "type": "primary" - }, - "children": [ - { - "type": "wxc-button", - "attr": { - "type": "primary", - "value": "Toast" - }, - "events": { - "click": "toast" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "Dialog", - "type": "primary" - }, - "children": [ - { - "type": "wxc-button", - "attr": { - "type": "success", - "value": "Alert" - }, - "events": { - "click": "alert" - }, - "style": { - "marginBottom": 20 - } - }, - { - "type": "wxc-button", - "attr": { - "type": "primary", - "value": "Confirm" - }, - "events": { - "click": "confirm" - }, - "style": { - "marginBottom": 20 - } - }, - { - "type": "wxc-button", - "attr": { - "type": "warning", - "value": "Prompt" - }, - "events": { - "click": "prompt" - } - } - ] - } - ] - } - -/***/ }, -/* 219 */ -/***/ function(module, exports) { - - module.exports = {} - -/***/ }, -/* 220 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - module.exports = { - data: function () {return {}}, - methods: { - toast: function toast(msg, duration) { - if (!msg || typeof msg !== 'string') { - msg = 'I am Toast show!'; - } - - duration = duration || 2; - var modal = __weex_require__('@weex-module/modal'); - modal.toast({ - 'message': msg, - 'duration': duration - }); - }, - alert: function alert(msg, okTitle, cancelTitle) { - var self = this; - if (!msg || typeof msg !== 'string') { - msg = "I am Alert!"; - } - var modal = __weex_require__('@weex-module/modal'); - modal.alert({ - 'message': msg, - 'okTitle': okTitle, - 'cancelTitle': cancelTitle - }, function () { - self.toast("Click Alert OK Bnt!!"); - }); - }, - confirm: function confirm(msg, okTitle, cancelTitle) { - var self = this; - if (!msg || typeof msg !== 'string') { - msg = "I am Confirm!"; - } - var modal = __weex_require__('@weex-module/modal'); - okTitle = okTitle || "OK"; - cancelTitle = cancelTitle || "Cancel"; - modal.confirm({ - 'message': msg, - 'okTitle': okTitle, - 'cancelTitle': cancelTitle - }, function (result) { - self.toast("Click Confirm " + result); - }); - }, - prompt: function prompt() { - var self = this; - var modal = __weex_require__('@weex-module/modal'); - modal.prompt({ - 'message': 'I am Prompt!', - 'okTitle': 'ok', - 'cancelTitle': 'cancel' - }, function (result) { - self.toast("Click Prompt " + result); - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/picker-demo.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/picker-demo.js deleted file mode 100644 index 2f2e1c89..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/picker-demo.js +++ /dev/null @@ -1,2353 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(221) - var __weex_style__ = __webpack_require__(222) - var __weex_script__ = __webpack_require__(223) - - __weex_define__('@weex-component/713f21e067b638ad251dbcb7d5b37be5', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/713f21e067b638ad251dbcb7d5b37be5',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - }, - "panel-body": {} - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */, -/* 183 */, -/* 184 */, -/* 185 */, -/* 186 */, -/* 187 */, -/* 188 */, -/* 189 */, -/* 190 */, -/* 191 */, -/* 192 */, -/* 193 */, -/* 194 */, -/* 195 */, -/* 196 */, -/* 197 */, -/* 198 */, -/* 199 */, -/* 200 */, -/* 201 */, -/* 202 */, -/* 203 */, -/* 204 */, -/* 205 */, -/* 206 */, -/* 207 */, -/* 208 */, -/* 209 */, -/* 210 */, -/* 211 */, -/* 212 */, -/* 213 */, -/* 214 */, -/* 215 */, -/* 216 */, -/* 217 */, -/* 218 */, -/* 219 */, -/* 220 */, -/* 221 */ -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "picker module", - "type": "primary" - }, - "children": [ - { - "type": "text", - "style": { - "marginBottom": 20 - }, - "attr": { - "value": function () {return 'pick value: ' + (this.value)} - } - }, - { - "type": "wxc-button", - "attr": { - "type": "primary", - "value": "single pick" - }, - "events": { - "click": "pick" - }, - "style": { - "marginBottom": 20 - } - }, - { - "type": "wxc-button", - "attr": { - "type": "primary", - "value": "pickDate" - }, - "events": { - "click": "pickDate" - }, - "style": { - "marginBottom": 20 - } - }, - { - "type": "wxc-button", - "attr": { - "type": "primary", - "value": "pickTime" - }, - "events": { - "click": "pickTime" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "input component", - "type": "primary" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return 'onchange: ' + (this.txtChange)} - } - }, - { - "type": "input", - "attr": { - "type": "date", - "placeholder": "select date", - "autofocus": "false", - "value": "", - "max": "2029-11-28", - "min": "2015-11-28" - }, - "classList": [ - "input" - ], - "events": { - "change": "onchange" - } - }, - { - "type": "input", - "attr": { - "type": "time", - "placeholder": "select time", - "autofocus": "false", - "value": "" - }, - "classList": [ - "input" - ], - "events": { - "change": "onchange" - } - } - ] - } - ] - } - -/***/ }, -/* 222 */ -/***/ function(module, exports) { - - module.exports = { - "input": { - "fontSize": 60, - "height": 80, - "width": 400 - } - } - -/***/ }, -/* 223 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - module.exports = { - data: function () {return { - value: '', - index: 0, - txtChange: '' - }}, - methods: { - pick: function pick() { - var picker = __weex_require__('@weex-module/picker'); - var items = new Array("Saab", "Volvo", "BMW"); - var self = this; - picker.pick({ - 'items': items, - 'index': self.index - }, function (ret) { - var result = ret.result; - if (result == 'success') { - self.value = items[ret.data]; - self.index = ret.data; - } - }); - }, - pickDate: function pickDate() { - var picker = __weex_require__('@weex-module/picker'); - var self = this; - picker.pickDate({ - 'value': '2016-11-28', - 'max': '2029-11-28', - 'min': '2015-11-28' - }, function (ret) { - var result = ret.result; - if (result == 'success') { - self.value = ret.data; - } - }); - }, - pickTime: function pickTime() { - var picker = __weex_require__('@weex-module/picker'); - var self = this; - picker.pickTime({ - 'value': '19:24' - }, function (ret) { - var result = ret.result; - if (result == 'success') { - self.value = ret.data; - } - }); - }, - onchange: function onchange(event) { - this.txtChange = event.value; - console.log('onchange', event.value); - } - } - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/storage-demo.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/storage-demo.js deleted file mode 100644 index 5aa00881..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/storage-demo.js +++ /dev/null @@ -1,2331 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(224) - var __weex_script__ = __webpack_require__(225) - - __weex_define__('@weex-component/6f110d391fd7b90c9a19583f6ee1a7cf', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/6f110d391fd7b90c9a19583f6ee1a7cf',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - }, - "panel-body": {} - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */, -/* 183 */, -/* 184 */, -/* 185 */, -/* 186 */, -/* 187 */, -/* 188 */, -/* 189 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(190), __esModule: true }; - -/***/ }, -/* 190 */ -/***/ function(module, exports, __webpack_require__) { - - var core = __webpack_require__(34) - , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify}); - module.exports = function stringify(it){ // eslint-disable-line no-unused-vars - return $JSON.stringify.apply($JSON, arguments); - }; - -/***/ }, -/* 191 */, -/* 192 */, -/* 193 */, -/* 194 */, -/* 195 */, -/* 196 */, -/* 197 */, -/* 198 */, -/* 199 */, -/* 200 */, -/* 201 */, -/* 202 */, -/* 203 */, -/* 204 */, -/* 205 */, -/* 206 */, -/* 207 */, -/* 208 */, -/* 209 */, -/* 210 */, -/* 211 */, -/* 212 */, -/* 213 */, -/* 214 */, -/* 215 */, -/* 216 */, -/* 217 */, -/* 218 */, -/* 219 */, -/* 220 */, -/* 221 */, -/* 222 */, -/* 223 */, -/* 224 */ -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "storage API", - "type": "primary" - }, - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "setItem" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.setItemResult} - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "getItem" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.getItemResult} - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "length" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.lengthResult} - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "getAllKeys" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.getAllKeysResult} - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "removeItem" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.removeItemResult} - } - } - ] - } - ] - } - ] - } - -/***/ }, -/* 225 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _stringify = __webpack_require__(189); - - var _stringify2 = _interopRequireDefault(_stringify); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - __webpack_require__(4); - module.exports = { - data: function () {return { - setItemResult: 'loading', - getItemResult: 'loading', - removeItemResult: 'loading', - lengthResult: 'loading', - getAllKeysResult: 'loading' - }}, - ready: function ready() { - var storage = __weex_require__('@weex-module/storage'); - var me = this; - - storage.setItem('foo', 'foo-value', function (e) { - console.log('set [foo<->foo-value]:' + (0, _stringify2.default)(e)); - me.setItemResult = 'foo:' + (0, _stringify2.default)(e) + '\n'; - }); - storage.setItem('bar', 'bar-value', function (e) { - console.log('set [bar<->bar-value]:' + (0, _stringify2.default)(e)); - me.setItemResult = me.setItemResult + 'bar:' + (0, _stringify2.default)(e); - }); - - storage.getItem('foo', function (e) { - console.log('get foo result:' + (0, _stringify2.default)(e)); - me.getItemResult = 'get foo,value is ' + e.data + '\n'; - }); - storage.getItem('bar', function (e) { - console.log('get bar result:' + (0, _stringify2.default)(e)); - me.getItemResult += 'get bar,value is ' + e.data; - }); - - storage.length(function (e) { - console.log('length:' + (0, _stringify2.default)(e)); - me.lengthResult = 'current length is ' + e.data; - }); - - storage.getAllKeys(function (e) { - console.log('getAllKeys:' + (0, _stringify2.default)(e)); - me.getAllKeysResult = (0, _stringify2.default)(e.data); - }); - - storage.removeItem('foo', function (e) { - console.log('remove foo:' + (0, _stringify2.default)(e)); - me.removeItemResult = 'remove item foo ' + e.result; - }); - } - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/stream-demo.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/stream-demo.js deleted file mode 100644 index 36cfffef..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/stream-demo.js +++ /dev/null @@ -1,2451 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(226) - var __weex_script__ = __webpack_require__(227) - - __weex_define__('@weex-component/2c445dcf67fa0895d197edb5ffa2f439', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/2c445dcf67fa0895d197edb5ffa2f439',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - }, - "panel-body": {} - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */, -/* 183 */, -/* 184 */, -/* 185 */, -/* 186 */, -/* 187 */, -/* 188 */, -/* 189 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(190), __esModule: true }; - -/***/ }, -/* 190 */ -/***/ function(module, exports, __webpack_require__) { - - var core = __webpack_require__(34) - , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify}); - module.exports = function stringify(it){ // eslint-disable-line no-unused-vars - return $JSON.stringify.apply($JSON, arguments); - }; - -/***/ }, -/* 191 */, -/* 192 */, -/* 193 */, -/* 194 */, -/* 195 */, -/* 196 */, -/* 197 */, -/* 198 */, -/* 199 */, -/* 200 */, -/* 201 */, -/* 202 */, -/* 203 */, -/* 204 */, -/* 205 */, -/* 206 */, -/* 207 */, -/* 208 */, -/* 209 */, -/* 210 */, -/* 211 */, -/* 212 */, -/* 213 */, -/* 214 */, -/* 215 */, -/* 216 */, -/* 217 */, -/* 218 */, -/* 219 */, -/* 220 */, -/* 221 */, -/* 222 */, -/* 223 */, -/* 224 */, -/* 225 */, -/* 226 */ -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "stream.fetch", - "type": "primary" - }, - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "method = GET" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.getResult} - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "method = GET / type = jsonp" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.getJsonpResult} - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "method = POST" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.postResult} - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "method = PUT" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.putResult} - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "method = DELETE" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.deleteResult} - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "method = HEAD" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.headResult} - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "method = PATCH" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.patchResult} - } - } - ] - } - ] - } - ] - } - -/***/ }, -/* 227 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _stringify = __webpack_require__(189); - - var _stringify2 = _interopRequireDefault(_stringify); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - __webpack_require__(4); - - module.exports = { - data: function () {return { - getJsonpResult: 'loading...', - getResult: 'loading...', - postResult: 'loading...', - putResult: 'loading...', - deleteResult: 'loading...', - headResult: 'loading...', - patchResult: 'loading...' - }}, - ready: function ready() { - var stream = __weex_require__('@weex-module/stream'); - var me = this; - var GET_URL_JSONP = 'http://jsfiddle.net/echo/jsonp/?callback=anything&result=content_in_response'; - var GET_URL = 'http://httpbin.org/get'; - var POST_URL = 'http://httpbin.org/post'; - var PUT_URL = 'http://httpbin.org/put'; - var DELETE_URL = 'http://httpbin.org/delete'; - var HEAD_URL = 'http://httpbin.org/status/418'; - var PATCH_URL = 'http://httpbin.org/patch'; - - stream.fetch({ - method: 'GET', - url: GET_URL_JSONP, - type: 'jsonp' - }, function (ret) { - if (!ret.ok) { - me.getJsonpResult = "request failed"; - } else { - console.log('get:' + ret); - me.getJsonpResult = (0, _stringify2.default)(ret.data); - } - }, function (response) { - console.log('get jsonp in progress:' + response.length); - me.getJsonpResult = "bytes received:" + response.length; - }); - - stream.fetch({ - method: 'GET', - url: GET_URL, - type: 'json' - }, function (ret) { - if (!ret.ok) { - me.getResult = "request failed"; - } else { - console.log('get:' + ret); - me.getResult = (0, _stringify2.default)(ret.data); - } - }, function (response) { - console.log('get in progress:' + response.length); - me.getResult = "bytes received:" + response.length; - }); - - stream.fetch({ - method: 'POST', - url: POST_URL, - type: 'json', - body: (0, _stringify2.default)({ username: 'weex' }) }, function (ret) { - if (!ret.ok) { - me.postResult = "request failed"; - } else { - console.log('get:' + (0, _stringify2.default)(ret)); - me.postResult = (0, _stringify2.default)(ret.data); - } - }, function (response) { - console.log('get in progress:' + response.length); - me.postResult = "bytes received:" + response.length; - }); - - stream.fetch({ - method: 'PUT', - url: PUT_URL, - type: 'json' - }, function (ret) { - if (!ret.ok) { - me.putResult = "request failed"; - } else { - console.log('get:' + (0, _stringify2.default)(ret)); - me.putResult = (0, _stringify2.default)(ret.data); - } - }, function (response) { - console.log('get in progress:' + response.length); - me.putResult = "bytes received:" + response.length; - }); - - stream.fetch({ - method: 'DELETE', - url: DELETE_URL, - type: 'json' - }, function (ret) { - - if (!ret.ok) { - me.deleteResult = "request failed"; - } else { - console.log('get:' + (0, _stringify2.default)(ret)); - me.deleteResult = (0, _stringify2.default)(ret.data); - } - }, function (response) { - console.log('get in progress:' + response.length); - me.deleteResult = "bytes received:" + response.length; - }); - - stream.fetch({ - method: 'HEAD', - url: HEAD_URL, - type: 'json' - }, function (ret) { - if (ret.statusText !== 'I\'m a teapot') { - me.headResult = "request failed"; - } else { - console.log('get:' + (0, _stringify2.default)(ret)); - me.headResult = ret.statusText; - } - }, function (response) { - console.log('get in progress:' + response.length); - me.headResult = "bytes received:" + response.length; - }); - - stream.fetch({ - method: 'PATCH', - url: PATCH_URL, - type: 'json' - }, function (ret) { - if (!ret.ok) { - me.patchResult = "request failed"; - } else { - console.log('get:' + (0, _stringify2.default)(ret)); - me.patchResult = (0, _stringify2.default)(ret.data); - } - }, function (response) { - console.log('get in progress:' + response.length); - me.patchResult = "bytes received:" + response.length; - }); - } - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/websocket-demo.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/websocket-demo.js deleted file mode 100644 index 00a7fbb5..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/module/websocket-demo.js +++ /dev/null @@ -1,2412 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(228) - var __weex_style__ = __webpack_require__(229) - var __weex_script__ = __webpack_require__(230) - - __weex_define__('@weex-component/f1edaa994f4c5a505cfb7f32ca9ee569', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/f1edaa994f4c5a505cfb7f32ca9ee569',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - }, - "panel-body": {} - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */, -/* 183 */, -/* 184 */, -/* 185 */, -/* 186 */, -/* 187 */, -/* 188 */, -/* 189 */, -/* 190 */, -/* 191 */, -/* 192 */, -/* 193 */, -/* 194 */, -/* 195 */, -/* 196 */, -/* 197 */, -/* 198 */, -/* 199 */, -/* 200 */, -/* 201 */, -/* 202 */, -/* 203 */, -/* 204 */, -/* 205 */, -/* 206 */, -/* 207 */, -/* 208 */, -/* 209 */, -/* 210 */, -/* 211 */, -/* 212 */, -/* 213 */, -/* 214 */, -/* 215 */, -/* 216 */, -/* 217 */, -/* 218 */, -/* 219 */, -/* 220 */, -/* 221 */, -/* 222 */, -/* 223 */, -/* 224 */, -/* 225 */, -/* 226 */, -/* 227 */, -/* 228 */ -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "websocket", - "type": "primary" - }, - "children": [ - { - "type": "input", - "attr": { - "type": "text", - "placeholder": "please input message to send", - "autofocus": "false", - "value": "" - }, - "classList": [ - "input" - ], - "events": { - "change": "onchange", - "input": "oninput" - }, - "id": "input" - }, - { - "type": "div", - "style": { - "flexDirection": "row", - "justifyContent": "center" - }, - "children": [ - { - "type": "wxc-button", - "attr": { - "value": "connect", - "size": "small", - "type": "primary" - }, - "events": { - "click": "connect" - } - }, - { - "type": "wxc-button", - "attr": { - "value": "send", - "size": "small", - "type": "primary" - }, - "events": { - "click": "send" - }, - "style": { - "marginLeft": 20 - } - }, - { - "type": "wxc-button", - "attr": { - "value": "close", - "size": "small", - "type": "primary" - }, - "events": { - "click": "close" - }, - "style": { - "marginLeft": 20 - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "method = send" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.sendinfo} - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "method = onopen" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.onopeninfo} - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "method = onmessage" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.onmessage} - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "method = onclose" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.oncloseinfo} - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "method = onerror" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.onerrorinfo} - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "method = close" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.closeinfo} - } - } - ] - } - ] - } - ] - } - -/***/ }, -/* 229 */ -/***/ function(module, exports) { - - module.exports = { - "input": { - "fontSize": 40, - "height": 80, - "width": 600 - } - } - -/***/ }, -/* 230 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - var navigator = __weex_require__('@weex-module/navigator'); - var modal = __weex_require__('@weex-module/modal'); - var websocket = __weex_require__('@weex-module/webSocket'); - module.exports = { - data: function () {return { - connectinfo: '', - sendinfo: '', - onopeninfo: '', - onmessage: '', - oncloseinfo: '', - onerrorinfo: '', - closeinfo: '', - txtInput: '', - navBarHeight: 88, - title: 'Navigator', - dir: 'examples', - baseURL: '' - }}, - methods: { - connect: function connect() { - websocket.WebSocket('ws://115.29.193.48:8088', ''); - var self = this; - websocket.onopen = function (e) { - self.onopeninfo = e; - }; - websocket.onmessage = function (e) { - self.onmessage = e.data; - }; - websocket.onerror = function (e) { - self.onerrorinfo = e.data; - }; - websocket.onclose = function (e) { - self.onerrorinfo = e.code; - }; - }, - send: function send(e) { - var input = this.$el('input'); - input.blur(); - websocket.send(this.txtInput); - this.sendinfo = this.txtInput; - }, - oninput: function oninput(event) { - this.txtInput = event.value; - }, - close: function close(e) { - websocket.close(); - } - } - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/calculator.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/calculator.js deleted file mode 100644 index 33b2729c..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/calculator.js +++ /dev/null @@ -1,2506 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(231) - var __weex_style__ = __webpack_require__(232) - var __weex_script__ = __webpack_require__(233) - - __weex_define__('@weex-component/603eadccfc85e9db6c45c597933fe8fe', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/603eadccfc85e9db6c45c597933fe8fe',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - }, - "panel-body": {} - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */, -/* 183 */, -/* 184 */, -/* 185 */, -/* 186 */, -/* 187 */, -/* 188 */, -/* 189 */, -/* 190 */, -/* 191 */, -/* 192 */, -/* 193 */, -/* 194 */, -/* 195 */, -/* 196 */, -/* 197 */, -/* 198 */, -/* 199 */, -/* 200 */, -/* 201 */, -/* 202 */, -/* 203 */, -/* 204 */, -/* 205 */, -/* 206 */, -/* 207 */, -/* 208 */, -/* 209 */, -/* 210 */, -/* 211 */, -/* 212 */, -/* 213 */, -/* 214 */, -/* 215 */, -/* 216 */, -/* 217 */, -/* 218 */, -/* 219 */, -/* 220 */, -/* 221 */, -/* 222 */, -/* 223 */, -/* 224 */, -/* 225 */, -/* 226 */, -/* 227 */, -/* 228 */, -/* 229 */, -/* 230 */, -/* 231 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "padding": 5 - }, - "children": [ - { - "type": "text", - "classList": [ - "result" - ], - "attr": { - "value": function () {return this.result} - } - }, - { - "type": "div", - "classList": [ - "row" - ], - "children": [ - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": "input" - }, - "attr": { - "value": "1" - } - }, - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": "input" - }, - "attr": { - "value": "2" - } - }, - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": "input" - }, - "attr": { - "value": "3" - } - }, - { - "type": "text", - "classList": [ - "btn", - "btn-operator" - ], - "events": { - "click": "input" - }, - "attr": { - "value": "+" - } - } - ] - }, - { - "type": "div", - "classList": [ - "row" - ], - "children": [ - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": "input" - }, - "attr": { - "value": "4" - } - }, - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": "input" - }, - "attr": { - "value": "5" - } - }, - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": "input" - }, - "attr": { - "value": "6" - } - }, - { - "type": "text", - "classList": [ - "btn", - "btn-operator" - ], - "events": { - "click": "input" - }, - "attr": { - "value": "-" - } - } - ] - }, - { - "type": "div", - "classList": [ - "row" - ], - "children": [ - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": "input" - }, - "attr": { - "value": "7" - } - }, - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": "input" - }, - "attr": { - "value": "8" - } - }, - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": "input" - }, - "attr": { - "value": "9" - } - }, - { - "type": "text", - "classList": [ - "btn", - "btn-operator" - ], - "events": { - "click": "input" - }, - "attr": { - "value": "*" - } - } - ] - }, - { - "type": "div", - "classList": [ - "row" - ], - "children": [ - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": "input" - }, - "attr": { - "value": "0" - } - }, - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": "input" - }, - "attr": { - "value": "." - } - }, - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": "clear" - }, - "attr": { - "value": "AC" - } - }, - { - "type": "text", - "classList": [ - "btn", - "btn-operator" - ], - "events": { - "click": "calculate" - }, - "attr": { - "value": "=" - } - } - ] - } - ] - } - -/***/ }, -/* 232 */ -/***/ function(module, exports) { - - module.exports = { - "row": { - "flexDirection": "row" - }, - "result": { - "textAlign": "right", - "backgroundColor": "#666666", - "fontSize": 40, - "color": "#FFFFFF", - "height": 100, - "padding": 30, - "margin": 5 - }, - "btn": { - "flex": 1, - "textAlign": "center", - "backgroundColor": "#eeeeee", - "fontSize": 36, - "height": 100, - "padding": 30, - "margin": 5 - }, - "btn-operator": { - "backgroundColor": "#666699", - "fontSize": 40, - "color": "#FFFFFF" - } - } - -/***/ }, -/* 233 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - var OP = ['+', '-', '*', '/']; - var inputs = []; - module.exports = { - data: function () {return { - result: '' - }}, - methods: { - input: function input(e) { - var value = e.target.attr['value']; - var lastOne = inputs.length ? inputs[inputs.length - 1] : ''; - if (OP.indexOf(lastOne) > -1 && OP.indexOf(value) > -1) { - return; - } - - inputs.push(value); - var buf = [], - char; - for (var i = 0; i < inputs.length; i++) { - char = inputs[i]; - if (OP.indexOf(char) > -1) { - char = ' ' + char + ' '; - } - buf.push(char); - } - this.result = buf.join(''); - }, - calculate: function calculate() { - var result = eval(this.result); - inputs = [result]; - this.result = result; - }, - clear: function clear() { - inputs = []; - this.result = ''; - } - } - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/dropdown/dropdown-demo.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/dropdown/dropdown-demo.js deleted file mode 100644 index f06bb819..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/dropdown/dropdown-demo.js +++ /dev/null @@ -1,638 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(234) - var __weex_template__ = __webpack_require__(238) - var __weex_style__ = __webpack_require__(239) - var __weex_script__ = __webpack_require__(240) - - __weex_define__('@weex-component/f7fd132bdb4ce0ff6745c3887b3163e2', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/f7fd132bdb4ce0ff6745c3887b3163e2',undefined,undefined) - -/***/ }, - -/***/ 34: -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, - -/***/ 189: -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(190), __esModule: true }; - -/***/ }, - -/***/ 190: -/***/ function(module, exports, __webpack_require__) { - - var core = __webpack_require__(34) - , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify}); - module.exports = function stringify(it){ // eslint-disable-line no-unused-vars - return $JSON.stringify.apply($JSON, arguments); - }; - -/***/ }, - -/***/ 234: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(235) - var __weex_style__ = __webpack_require__(236) - var __weex_script__ = __webpack_require__(237) - - __weex_define__('@weex-component/we-dropdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, - -/***/ 235: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "select-container" - ], - "children": [ - { - "type": "div", - "classList": [ - "content" - ], - "children": [ - { - "type": "content" - } - ] - }, - { - "type": "div", - "classList": [ - "mask" - ], - "id": "mask", - "events": { - "click": "switchView" - } - }, - { - "type": "div", - "classList": [ - "options" - ], - "id": "options", - "children": [ - { - "type": "div", - "repeat": function () {return this.status}, - "classList": [ - "cell" - ], - "attr": { - "vid": function () {return this.id} - }, - "events": { - "click": "onItemClick" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['name', this.id==this.statusId?'current':'']}, - "attr": { - "value": function () {return this.name} - } - }, - { - "type": "image", - "classList": [ - "icon-curr-flag" - ], - "attr": { - "src": function () {return this.flagSrc} - }, - "shown": function () {return this.id==this.statusId} - } - ] - } - ] - }, - { - "type": "div", - "classList": [ - "select" - ], - "events": { - "click": "switchView" - }, - "children": [ - { - "type": "text", - "classList": [ - "current-text" - ], - "attr": { - "value": function () {return this.statusName} - } - }, - { - "type": "image", - "classList": [ - "icon-arrow" - ], - "id": "arrow", - "attr": { - "src": function () {return this.arrowSrc} - } - } - ] - } - ] - } - -/***/ }, - -/***/ 236: -/***/ function(module, exports) { - - module.exports = { - "select-container": { - "flexDirection": "column", - "position": "relative", - "zIndex": 1000 - }, - "content": { - "width": 750, - "marginTop": 90 - }, - "mask": { - "position": "absolute", - "top": 0, - "left": 0, - "bottom": 0, - "right": 0, - "flex": 1, - "width": 750, - "backgroundColor": "rgba(0,0,0,0.5)", - "visibility": "hidden" - }, - "select": { - "width": 750, - "height": 90, - "flexDirection": "row", - "alignItems": "center", - "justifyContent": "space-between", - "paddingLeft": 30, - "paddingRight": 30, - "borderBottomWidth": 1, - "borderStyle": "solid", - "borderColor": "#dddddd", - "backgroundColor": "#eeeeee", - "zIndex": 1001, - "position": "absolute", - "top": 0 - }, - "current-text": { - "color": "#333333", - "fontSize": 33, - "flex": 1 - }, - "icon-arrow": { - "width": 27, - "height": 23 - }, - "options": { - "position": "absolute", - "top": -181, - "width": 750, - "backgroundColor": "#ffffff", - "transformOrigin": "center center" - }, - "cell": { - "flexDirection": "row", - "justifyContent": "space-between", - "alignItems": "center", - "width": 750, - "height": 90, - "paddingLeft": 30, - "paddingRight": 30, - "borderBottomWidth": 1, - "borderStyle": "solid", - "borderColor": "#dddddd" - }, - "name": { - "color": "#333333", - "fontSize": 33, - "flex": 1 - }, - "icon-curr-flag": { - "width": 32, - "height": 32 - }, - "current": { - "color": "#0088FB" - } - } - -/***/ }, - -/***/ 237: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var animation = __weex_require__('@weex-module/animation'); - - module.exports = { - data: function () {return { - statusId: '0', - status: [{ id: '0', name: 'All' }, { id: '1', name: 'Doing' }, { id: '2', name: 'Done' }], - flagSrc: 'https://gw.alicdn.com/tps/TB11a2lKFXXXXbVXpXXXXXXXXXX-32-32.png', - arrowSrc: 'https://gw.alicdn.com/tps/TB1O3_aKFXXXXXdXVXXXXXXXXXX-27-23.png' - }}, - computed: { - statusName: { - get: function get() { - var id = this.statusId; - return this.status.filter(function (s) { - return s.id == id; - })[0].name; - } - } - }, - methods: { - switchView: function switchView() { - this.toggleMaskVisible(); - - this.opacity(this._ids.mask.el.ref); - this.collapse(this._ids.options.el.ref); - this.rotate(this._ids.arrow.el.ref); - }, - - onItemClick: function onItemClick(e) { - var vid = e.target.attr.vid; - this.updateStatus(vid); - this.switchView(); - this.$dispatch('statuschange', { - id: this.statusId, - name: this.statusName - }); - }, - - updateStatus: function updateStatus(id) { - this.statusId = id; - }, - - toggleMaskVisible: function toggleMaskVisible() { - this.current_showMask = !this.current_showMask; - var visibility = this.current_showMask ? 'visible' : 'hidden'; - this._ids.mask.el.setClassStyle({ visibility: visibility }); - }, - - collapse: function collapse(ref, callback) { - var platform = this.$getConfig().env.platform; - var translate = 'translate(0, 100%)'; - if (platform == 'iOS') { - translate = 'translate(0, 270)'; - } - this.current_translate = this.current_translate ? '' : translate; - this.anim(ref, { - transform: this.current_translate - }, 'ease', 100, callback); - }, - - opacity: function opacity(ref, callback) { - var self = this; - self.current_opacity = self.current_opacity === 1 ? 0.1 : 1; - self.anim(ref, { - opacity: self.current_opacity - }, 'ease', 100, callback); - }, - - rotate: function rotate(ref, callback) { - var self = this; - if (!self.current_rotate) { - self.current_rotate = 0; - } - self.current_rotate = self.current_rotate + 180; - self.anim(ref, { - transform: 'rotate(' + self.current_rotate + 'deg)' - }, 'linear', 100, callback); - }, - - anim: function anim(ref, styles, timingFunction, duration, callback) { - animation.transition(ref, { - styles: styles, - timingFunction: timingFunction, - duration: duration - }, callback || function () {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 238: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "we-dropdown", - "classList": [ - "dropdown" - ], - "attr": { - "statusId": function () {return this.status} - }, - "children": [ - { - "type": "div", - "style": { - "height": function () {return this.screenHeight} - }, - "children": [ - { - "type": "list", - "classList": [ - "list" - ], - "shown": function () {return this.list.length}, - "children": [ - { - "type": "cell", - "append": "tree", - "repeat": function () {return this.list}, - "classList": [ - "cell" - ], - "attr": { - "vid": function () {return this.vid}, - "index": function () {return this.vid} - }, - "children": [ - { - "type": "text", - "classList": [ - "title" - ], - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": [ - "info" - ], - "children": [ - { - "type": "text", - "classList": function () {return ['txt', 'status', 'status-' + (this.questionStatus)]}, - "attr": { - "value": function () {return this.questionStatusValue} - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "attr": { - "value": function () {return ', id: ' + (this.vid) + ' ,'} - } - }, - { - "type": "text", - "classList": [ - "txt" - ], - "attr": { - "value": function () {return 'time: ' + (this.addTime)} - } - } - ] - } - ] - } - ] - } - ] - } - ] - } - ] - } - -/***/ }, - -/***/ 239: -/***/ function(module, exports) { - - module.exports = { - "dropdown": { - "justifyContent": "center", - "alignContent": "stretch", - "position": "relative", - "zIndex": 100 - }, - "wrapper": { - "justifyContent": "flex-start", - "flexDirection": "column", - "position": "relative" - }, - "list": { - "flex": 1, - "width": 750 - }, - "refresh-view": { - "height": 120, - "width": 750, - "marginTop": 10, - "marginBottom": 10, - "alignItems": "center", - "justifyContent": "center" - }, - "refresh-arrow": { - "fontSize": 30, - "color": "#45b5f0" - }, - "indicator": { - "height": 40, - "width": 40, - "color": "#45b5f0" - }, - "cell": { - "width": 750, - "paddingTop": 15, - "paddingBottom": 5, - "paddingLeft": 20, - "paddingRight": 20, - "borderBottomWidth": 1, - "borderStyle": "solid", - "borderColor": "#999999" - }, - "title": { - "fontSize": 32, - "paddingTop": 5, - "paddingBottom": 5, - "color": "#333333" - }, - "info": { - "flexDirection": "row", - "justifyContent": "flex-start", - "alignItems": "stretch" - }, - "txt": { - "fontSize": 28, - "paddingTop": 5, - "paddingBottom": 5, - "color": "#999999" - }, - "status-1": { - "color": "#009900" - }, - "status-2": { - "color": "#ff0000" - } - } - -/***/ }, - -/***/ 240: -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _stringify = __webpack_require__(189); - - var _stringify2 = _interopRequireDefault(_stringify); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - __webpack_require__(234); - - var initData = '[{\"addTime\":\"2016-07-14\",\"questionStatus\":\"2\",\"questionStatusValue\":\"Closed\",\"title\":\"This is a demo\",\"vid\":\"AW5PMSC\"},{\"addTime\":\"2016-07-14\",\"questionStatus\":\"1\",\"questionStatusValue\":\"Waiting\",\"title\":\"This is a demo\",\"vid\":\"AW5PMSM\"},{\"addTime\":\"2016-07-14\",\"questionStatus\":\"2\",\"questionStatusValue\":\"Confirmed\",\"title\":\"This is a demo\",\"vid\":\"AW5PMSA\"}]'; - - module.exports = { - data: function () {return { - screenHeight: 0, - - status: '1', - list: [] - }}, - ready: function ready() { - this.screenHeight = this.$getConfig().env.deviceHeight; - this.$on('statuschange', function (e) { - var detail = e.detail; - this.toast({ - message: (0, _stringify2.default)(detail) - }); - this.status = detail.id; - this.filter(); - }.bind(this)); - this.filter(); - }, - - methods: { - toast: function toast(params) { - var modal = __weex_require__('@weex-module/modal'); - modal.toast(params); - }, - - filter: function filter() { - var status = this.status; - this.list = []; - var allList = JSON.parse(initData); - if (status == '0') { - this.list = allList; - } else { - this.list = allList.filter(function (item) { - return item.questionStatus == status; - }); - } - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/dropdown/we-dropdown.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/dropdown/we-dropdown.js deleted file mode 100644 index 7b4b48cd..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/dropdown/we-dropdown.js +++ /dev/null @@ -1,357 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(235) - var __weex_style__ = __webpack_require__(236) - var __weex_script__ = __webpack_require__(237) - - __weex_define__('@weex-component/ffbcbcf1bd6120b070f00ceafeb0160e', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/ffbcbcf1bd6120b070f00ceafeb0160e',undefined,undefined) - -/***/ }, - -/***/ 235: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "select-container" - ], - "children": [ - { - "type": "div", - "classList": [ - "content" - ], - "children": [ - { - "type": "content" - } - ] - }, - { - "type": "div", - "classList": [ - "mask" - ], - "id": "mask", - "events": { - "click": "switchView" - } - }, - { - "type": "div", - "classList": [ - "options" - ], - "id": "options", - "children": [ - { - "type": "div", - "repeat": function () {return this.status}, - "classList": [ - "cell" - ], - "attr": { - "vid": function () {return this.id} - }, - "events": { - "click": "onItemClick" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['name', this.id==this.statusId?'current':'']}, - "attr": { - "value": function () {return this.name} - } - }, - { - "type": "image", - "classList": [ - "icon-curr-flag" - ], - "attr": { - "src": function () {return this.flagSrc} - }, - "shown": function () {return this.id==this.statusId} - } - ] - } - ] - }, - { - "type": "div", - "classList": [ - "select" - ], - "events": { - "click": "switchView" - }, - "children": [ - { - "type": "text", - "classList": [ - "current-text" - ], - "attr": { - "value": function () {return this.statusName} - } - }, - { - "type": "image", - "classList": [ - "icon-arrow" - ], - "id": "arrow", - "attr": { - "src": function () {return this.arrowSrc} - } - } - ] - } - ] - } - -/***/ }, - -/***/ 236: -/***/ function(module, exports) { - - module.exports = { - "select-container": { - "flexDirection": "column", - "position": "relative", - "zIndex": 1000 - }, - "content": { - "width": 750, - "marginTop": 90 - }, - "mask": { - "position": "absolute", - "top": 0, - "left": 0, - "bottom": 0, - "right": 0, - "flex": 1, - "width": 750, - "backgroundColor": "rgba(0,0,0,0.5)", - "visibility": "hidden" - }, - "select": { - "width": 750, - "height": 90, - "flexDirection": "row", - "alignItems": "center", - "justifyContent": "space-between", - "paddingLeft": 30, - "paddingRight": 30, - "borderBottomWidth": 1, - "borderStyle": "solid", - "borderColor": "#dddddd", - "backgroundColor": "#eeeeee", - "zIndex": 1001, - "position": "absolute", - "top": 0 - }, - "current-text": { - "color": "#333333", - "fontSize": 33, - "flex": 1 - }, - "icon-arrow": { - "width": 27, - "height": 23 - }, - "options": { - "position": "absolute", - "top": -181, - "width": 750, - "backgroundColor": "#ffffff", - "transformOrigin": "center center" - }, - "cell": { - "flexDirection": "row", - "justifyContent": "space-between", - "alignItems": "center", - "width": 750, - "height": 90, - "paddingLeft": 30, - "paddingRight": 30, - "borderBottomWidth": 1, - "borderStyle": "solid", - "borderColor": "#dddddd" - }, - "name": { - "color": "#333333", - "fontSize": 33, - "flex": 1 - }, - "icon-curr-flag": { - "width": 32, - "height": 32 - }, - "current": { - "color": "#0088FB" - } - } - -/***/ }, - -/***/ 237: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var animation = __weex_require__('@weex-module/animation'); - - module.exports = { - data: function () {return { - statusId: '0', - status: [{ id: '0', name: 'All' }, { id: '1', name: 'Doing' }, { id: '2', name: 'Done' }], - flagSrc: 'https://gw.alicdn.com/tps/TB11a2lKFXXXXbVXpXXXXXXXXXX-32-32.png', - arrowSrc: 'https://gw.alicdn.com/tps/TB1O3_aKFXXXXXdXVXXXXXXXXXX-27-23.png' - }}, - computed: { - statusName: { - get: function get() { - var id = this.statusId; - return this.status.filter(function (s) { - return s.id == id; - })[0].name; - } - } - }, - methods: { - switchView: function switchView() { - this.toggleMaskVisible(); - - this.opacity(this._ids.mask.el.ref); - this.collapse(this._ids.options.el.ref); - this.rotate(this._ids.arrow.el.ref); - }, - - onItemClick: function onItemClick(e) { - var vid = e.target.attr.vid; - this.updateStatus(vid); - this.switchView(); - this.$dispatch('statuschange', { - id: this.statusId, - name: this.statusName - }); - }, - - updateStatus: function updateStatus(id) { - this.statusId = id; - }, - - toggleMaskVisible: function toggleMaskVisible() { - this.current_showMask = !this.current_showMask; - var visibility = this.current_showMask ? 'visible' : 'hidden'; - this._ids.mask.el.setClassStyle({ visibility: visibility }); - }, - - collapse: function collapse(ref, callback) { - var platform = this.$getConfig().env.platform; - var translate = 'translate(0, 100%)'; - if (platform == 'iOS') { - translate = 'translate(0, 270)'; - } - this.current_translate = this.current_translate ? '' : translate; - this.anim(ref, { - transform: this.current_translate - }, 'ease', 100, callback); - }, - - opacity: function opacity(ref, callback) { - var self = this; - self.current_opacity = self.current_opacity === 1 ? 0.1 : 1; - self.anim(ref, { - opacity: self.current_opacity - }, 'ease', 100, callback); - }, - - rotate: function rotate(ref, callback) { - var self = this; - if (!self.current_rotate) { - self.current_rotate = 0; - } - self.current_rotate = self.current_rotate + 180; - self.anim(ref, { - transform: 'rotate(' + self.current_rotate + 'deg)' - }, 'linear', 100, callback); - }, - - anim: function anim(ref, styles, timingFunction, duration, callback) { - animation.transition(ref, { - styles: styles, - timingFunction: timingFunction, - duration: duration - }, callback || function () {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/minesweeper.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/minesweeper.js deleted file mode 100644 index 06fa880c..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/minesweeper.js +++ /dev/null @@ -1,345 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(241) - var __weex_style__ = __webpack_require__(242) - var __weex_script__ = __webpack_require__(243) - - __weex_define__('@weex-component/c0df89e239d226d3a0c6f418314cda04', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/c0df89e239d226d3a0c6f418314cda04',undefined,undefined) - -/***/ }, - -/***/ 241: -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "children": [ - { - "type": "text", - "classList": [ - "btn" - ], - "attr": { - "value": function () {return this.board} - } - }, - { - "type": "container", - "repeat": function () {return this.row}, - "style": { - "flexDirection": "row", - "flex": 1 - }, - "children": [ - { - "type": "container", - "repeat": function () {return this.col}, - "style": { - "flex": 1 - }, - "children": [ - { - "type": "text", - "attr": { - "tid": function () {return this.tid}, - "around": function () {return this.around}, - "value": function () {return this.text} - }, - "events": { - "click": "onclick", - "longpress": "onlongpress" - }, - "classList": function () {return [this.state, 'tile']} - } - ] - } - ] - }, - { - "type": "text", - "events": { - "click": "restart" - }, - "classList": [ - "btn" - ], - "attr": { - "value": "START" - } - } - ] - } - -/***/ }, - -/***/ 242: -/***/ function(module, exports) { - - module.exports = { - "btn": { - "margin": 2, - "backgroundColor": "#e74c3c", - "color": "#ffffff", - "textAlign": "center", - "flex": 1, - "fontSize": 66, - "height": 80 - }, - "normal": { - "backgroundColor": "#95a5a6" - }, - "open": { - "backgroundColor": "#34495e", - "color": "#ffffff" - }, - "flag": { - "backgroundColor": "#95a5a6" - }, - "tile": { - "margin": 2, - "fontSize": 56, - "height": 80, - "paddingTop": 0, - "textAlign": "center" - } - } - -/***/ }, - -/***/ 243: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - module.exports = { - data: function () {return { - size: 9, - max: 10, - board: 0, - row: [], - vector: [[-1, 0], [-1, -1], [0, -1], [1, -1], [1, 0], [1, 1], [0, 1], [-1, 1]], - strings: { - mine: "💣", - flag: "🚩", - win: "YOU WIN!", - lose: "YOU LOSE~" - }, - finished: false - }}, - methods: { - map: function map(x, y, callback) { - for (var i = 0; i < 8; ++i) { - var mx = x + this.vector[i][0]; - var my = y + this.vector[i][1]; - if (mx >= 0 && my >= 0 && mx < this.size && my < this.size) { - callback(this.row[mx].col[my]); - } - } - }, - dfs: function dfs(tile) { - var pos = this.position(tile.tid); - var context = this; - tile.state = "open"; - this.map(pos["x"], pos["y"], function (node) { - if (node.around == 0 && node.state == "normal") { - context.dfs(node); - } else { - context.display(node); - } - }); - }, - random: function random(min, max) { - return parseInt(Math.random() * (max - min) + min); - }, - plant: function plant() { - var count = 0; - while (count < this.max) { - var x = this.random(0, this.size); - var y = this.random(0, this.size); - var tile = this.row[x].col[y]; - if (tile.value == 0) { - ++count; - tile.value = 1; - } - } - }, - calculate: function calculate() { - for (var i = 0; i < this.size; ++i) { - for (var j = 0; j < this.size; ++j) { - var around = 0; - this.map(i, j, function (tile) { - around += tile.value; - }); - this.row[i].col[j].around = around; - } - } - }, - restart: function restart(e) { - var row = []; - var count = 0; - this.board = this.max; - this.finished = false; - for (var i = 0; i < this.size; ++i) { - var col = { "col": [] }; - for (var j = 0; j < this.size; ++j) { - var tid = i * this.size + j; - col["col"][j] = { - tid: "" + tid, - state: "normal", - value: 0, - text: "", - around: 0 - }; - } - row[i] = col; - } - this.row = row; - this.plant(); - this.calculate(); - }, - unfinished: function unfinished() { - var finished = this.finished; - if (this.finished) { - this.restart(); - } - return !finished; - }, - position: function position(tid) { - var row = parseInt(tid / this.size); - var col = tid % this.size; - return { x: row, y: col }; - }, - display: function display(tile) { - tile.state = "open"; - tile.text = tile.around == 0 ? "" : tile.around; - }, - tile: function tile(event) { - var tid = event.target.attr["tid"]; - var pos = this.position(tid); - return this.row[pos["x"]].col[pos["y"]]; - }, - onclick: function onclick(event) { - if (this.unfinished()) { - var tile = this.tile(event); - if (tile.state == "normal") { - if (tile.value == 1) { - this.onfail(); - } else { - this.display(tile); - if (tile.around == 0) { - this.dfs(tile); - } - this.judge(); - } - } - } - }, - onlongpress: function onlongpress(event) { - if (this.unfinished()) { - var tile = this.tile(event); - tile.state = tile.state == "flag" ? "normal" : "flag"; - if (tile.state == "flag") { - --this.board; - tile.text = this.strings.flag; - } else { - ++this.board; - tile.text = ""; - } - this.judge(); - } - }, - foreach: function foreach(callback) { - for (var i = 0; i < this.size; ++i) { - for (var j = 0; j < this.size; ++j) { - callback(this.row[i].col[j]); - } - } - }, - judge: function judge() { - var count = 0; - this.foreach(function (tile) { - if (tile.state == "open" || tile.state == "flag") { - ++count; - } - }); - if (count == this.size * this.size) { - this.finished = true; - this.board = this.strings.win; - } - }, - onfail: function onfail() { - this.board = this.strings.lose; - this.finished = true; - var mine = this.strings.mine; - this.foreach(function (tile) { - if (tile.value == 1) { - tile.text = mine; - } - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/banner.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/banner.js deleted file mode 100644 index 5bbf0d8a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/banner.js +++ /dev/null @@ -1,116 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(244) - var __weex_script__ = __webpack_require__(245) - - __weex_define__('@weex-component/df4a1d587e74e64ad99011cd2bcf06b7', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/df4a1d587e74e64ad99011cd2bcf06b7',undefined,undefined) - -/***/ }, - -/***/ 244: -/***/ function(module, exports) { - - module.exports = { - "type": "image", - "style": { - "width": function () {return this.width}, - "height": function () {return this.height} - }, - "attr": { - "src": function () {return this.src}, - "imageQuality": function () {return this.quality} - }, - "events": { - "click": "_clickHandler" - } - } - -/***/ }, - -/***/ 245: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - quality: 'normal', - width: 0, - height: 0, - src: '', - href: '', - spmc: 0, - spmd: 0 - }}, - methods: { - ready: function ready() {}, - _clickHandler: function _clickHandler() { - this.$call('modal', 'toast', { - message: 'click', - duration: 1 - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/banners.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/banners.js deleted file mode 100644 index 112fb13d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/banners.js +++ /dev/null @@ -1,235 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(246) - var __weex_template__ = __webpack_require__(247) - var __weex_script__ = __webpack_require__(248) - - __weex_define__('@weex-component/a29a28169794adc0c69ea3ddb07ed6a2', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/a29a28169794adc0c69ea3ddb07ed6a2',undefined,undefined) - -/***/ }, - -/***/ 244: -/***/ function(module, exports) { - - module.exports = { - "type": "image", - "style": { - "width": function () {return this.width}, - "height": function () {return this.height} - }, - "attr": { - "src": function () {return this.src}, - "imageQuality": function () {return this.quality} - }, - "events": { - "click": "_clickHandler" - } - } - -/***/ }, - -/***/ 245: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - quality: 'normal', - width: 0, - height: 0, - src: '', - href: '', - spmc: 0, - spmd: 0 - }}, - methods: { - ready: function ready() {}, - _clickHandler: function _clickHandler() { - this.$call('modal', 'toast', { - message: 'click', - duration: 1 - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 246: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(244) - var __weex_script__ = __webpack_require__(245) - - __weex_define__('@weex-component/banner', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - -/***/ }, - -/***/ 247: -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "children": [ - { - "type": "container", - "shown": function () {return this.direction==='row'}, - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "container", - "repeat": function () {return this.ds}, - "style": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "marginLeft": function () {return this.space} - }, - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "src": function () {return this.img}, - "href": function () {return this.url} - } - } - ] - } - ] - }, - { - "type": "container", - "shown": function () {return this.direction==='column'}, - "children": [ - { - "type": "container", - "repeat": function () {return this.ds}, - "style": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "marginTop": function () {return this.space} - }, - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "src": function () {return this.img}, - "href": function () {return this.url} - } - } - ] - } - ] - } - ] - } - -/***/ }, - -/***/ 248: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - space: 0, - width: 0, - height: 0, - spmc: 0, - spmdprefix: '', - ds: [] - }}, - methods: { - ready: function ready() { - var self = this; - var ds = self.ds; - var length = ds.length; - for (var i = 0; i < length; i++) { - var item = ds[i]; - item.index = i; - item.space = i % length === 0 ? 0 : self.space; - } - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/brand.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/brand.js deleted file mode 100644 index 14ec49b0..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/brand.js +++ /dev/null @@ -1,359 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(249) - var __weex_template__ = __webpack_require__(250) - var __weex_style__ = __webpack_require__(251) - var __weex_script__ = __webpack_require__(252) - - __weex_define__('@weex-component/81fdd9b8b8bce1b304791aba10e15462', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/81fdd9b8b8bce1b304791aba10e15462',undefined,undefined) - -/***/ }, - -/***/ 244: -/***/ function(module, exports) { - - module.exports = { - "type": "image", - "style": { - "width": function () {return this.width}, - "height": function () {return this.height} - }, - "attr": { - "src": function () {return this.src}, - "imageQuality": function () {return this.quality} - }, - "events": { - "click": "_clickHandler" - } - } - -/***/ }, - -/***/ 245: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - quality: 'normal', - width: 0, - height: 0, - src: '', - href: '', - spmc: 0, - spmd: 0 - }}, - methods: { - ready: function ready() {}, - _clickHandler: function _clickHandler() { - this.$call('modal', 'toast', { - message: 'click', - duration: 1 - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 246: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(244) - var __weex_script__ = __webpack_require__(245) - - __weex_define__('@weex-component/banner', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - -/***/ }, - -/***/ 247: -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "children": [ - { - "type": "container", - "shown": function () {return this.direction==='row'}, - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "container", - "repeat": function () {return this.ds}, - "style": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "marginLeft": function () {return this.space} - }, - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "src": function () {return this.img}, - "href": function () {return this.url} - } - } - ] - } - ] - }, - { - "type": "container", - "shown": function () {return this.direction==='column'}, - "children": [ - { - "type": "container", - "repeat": function () {return this.ds}, - "style": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "marginTop": function () {return this.space} - }, - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "src": function () {return this.img}, - "href": function () {return this.url} - } - } - ] - } - ] - } - ] - } - -/***/ }, - -/***/ 248: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - space: 0, - width: 0, - height: 0, - spmc: 0, - spmdprefix: '', - ds: [] - }}, - methods: { - ready: function ready() { - var self = this; - var ds = self.ds; - var length = ds.length; - for (var i = 0; i < length; i++) { - var item = ds[i]; - item.index = i; - item.space = i % length === 0 ? 0 : self.space; - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 249: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(246) - var __weex_template__ = __webpack_require__(247) - var __weex_script__ = __webpack_require__(248) - - __weex_define__('@weex-component/banners', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - -/***/ }, - -/***/ 250: -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "classList": [ - "container" - ], - "children": [ - { - "type": "image", - "shown": function () {return this.ds.floorTitle}, - "classList": [ - "title" - ], - "attr": { - "src": function () {return this.ds.floorTitle} - } - }, - { - "type": "container", - "style": { - "marginLeft": 4, - "marginRight": 4 - }, - "children": [ - { - "type": "banners", - "attr": { - "ds": function () {return this.bannerItems}, - "direction": "column", - "width": function () {return this.NUMBER_742}, - "height": function () {return this.NUMBER_230}, - "space": function () {return this.NUMBER_4} - } - } - ] - } - ] - } - -/***/ }, - -/***/ 251: -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "container": { - "marginBottom": 4, - "backgroundColor": "#C0BABC" - } - } - -/***/ }, - -/***/ 252: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - module.exports = { - data: function () {return { - NUMBER_742: 742, - NUMBER_230: 230, - NUMBER_4: 4 - }}, - methods: { - ready: function ready() { - var self = this; - self._randomBrand(); - }, - _randomBrand: function _randomBrand() { - var self = this; - var bannerItems = self.ds.bannerItems; - bannerItems = bannerItems.sort(function () { - return Math.random() - 0.5; - }); - self.bannerItems = bannerItems.slice(0, 8); - for (var i = 0; i < bannerItems.length; i++) { - var item = bannerItems[i]; - if (i % 2 === 0) { - item.img = item.leftImg; - item.url = item.rightUrl; - } else { - item.img = item.rightImg; - item.url = item.rightUrl; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/category.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/category.js deleted file mode 100644 index a5b54d00..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/category.js +++ /dev/null @@ -1,791 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(246) - var __weex_template__ = __webpack_require__(253) - var __weex_style__ = __webpack_require__(254) - var __weex_script__ = __webpack_require__(255) - - __weex_define__('@weex-component/b33b928e3758831c19b31a06d4f5e634', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/b33b928e3758831c19b31a06d4f5e634',undefined,undefined) - -/***/ }, - -/***/ 244: -/***/ function(module, exports) { - - module.exports = { - "type": "image", - "style": { - "width": function () {return this.width}, - "height": function () {return this.height} - }, - "attr": { - "src": function () {return this.src}, - "imageQuality": function () {return this.quality} - }, - "events": { - "click": "_clickHandler" - } - } - -/***/ }, - -/***/ 245: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - quality: 'normal', - width: 0, - height: 0, - src: '', - href: '', - spmc: 0, - spmd: 0 - }}, - methods: { - ready: function ready() {}, - _clickHandler: function _clickHandler() { - this.$call('modal', 'toast', { - message: 'click', - duration: 1 - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 246: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(244) - var __weex_script__ = __webpack_require__(245) - - __weex_define__('@weex-component/banner', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - -/***/ }, - -/***/ 253: -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "children": [ - { - "type": "image", - "shown": function () {return this.ds.floorTitle}, - "classList": [ - "title" - ], - "attr": { - "src": function () {return this.ds.floorTitle} - } - }, - { - "type": "container", - "classList": [ - "item-container" - ], - "children": [ - { - "type": "container", - "repeat": function () {return this.items}, - "style": { - "width": 750, - "paddingBottom": 14, - "backgroundColor": function () {return this.colour} - }, - "children": [ - { - "type": "container", - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_750}, - "height": function () {return this.NUMBER_237}, - "src": function () {return this.bannerImg}, - "href": function () {return this.bannerUrl} - } - } - ] - }, - { - "type": "container", - "classList": [ - "shop-list" - ], - "children": [ - { - "type": "container", - "repeat": function () {return this.shopList}, - "classList": [ - "shop-img-container" - ], - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_186}, - "height": function () {return this.NUMBER_208}, - "src": function () {return this.picUrl}, - "href": function () {return this.shopUrl} - } - } - ] - } - ] - } - ] - } - ] - }, - { - "type": "container", - "classList": [ - "sub-item-container" - ], - "style": { - "height": function () {return Math.round(this.subItems.length/3)*(241+3)} - }, - "children": [ - { - "type": "container", - "repeat": function () {return this.subItems}, - "classList": [ - "sub-item" - ], - "style": { - "top": function () {return this.top}, - "left": function () {return this.left} - }, - "children": [ - { - "type": "image", - "classList": [ - "sub-item-bg" - ], - "attr": { - "src": function () {return this.subItemBg} - } - }, - { - "type": "container", - "classList": [ - "sub-item-img" - ], - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_248}, - "height": function () {return this.NUMBER_155}, - "src": function () {return this.industryImg}, - "href": function () {return this.industryUrl} - } - } - ] - }, - { - "type": "container", - "classList": [ - "sub-item-title" - ], - "children": [ - { - "type": "text", - "classList": [ - "industry-title" - ], - "attr": { - "href": function () {return this.industryUrl}, - "value": function () {return this.industryTitle} - } - }, - { - "type": "text", - "classList": [ - "industry-benefit" - ], - "attr": { - "href": function () {return this.industryUrl}, - "value": function () {return this.industryBenefit} - } - } - ] - } - ] - } - ] - } - ] - } - -/***/ }, - -/***/ 254: -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "shop-list": { - "flexDirection": "row" - }, - "shop-img-container": { - "marginRight": 2 - }, - "sub-item": { - "position": "absolute", - "width": 248, - "height": 241, - "alignItems": "center", - "backgroundColor": "#ffffff" - }, - "sub-item-bg": { - "width": 248, - "height": 86 - }, - "sub-item-title": { - "position": "absolute", - "left": 0, - "top": 0, - "width": 248, - "textAlign": "center" - }, - "industry-title": { - "fontSize": 28, - "color": "#484848", - "textAlign": "center", - "marginTop": 10, - "height": 34 - }, - "industry-benefit": { - "fontSize": 24, - "color": "#999999", - "textAlign": "center" - } - } - -/***/ }, - -/***/ 255: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - module.exports = { - data: function () {return { - NUMBER_248: 248, - NUMBER_155: 155, - NUMBER_373: 373, - NUMBER_237: 237, - NUMBER_186: 186, - NUMBER_208: 208, - NUMBER_750: 750, - subItemBg: '//gw.alicdn.com/tps/TB1QzUfLVXXXXaOXVXXXXXXXXXX-248-86.jpg', - items: [], - subItems: [] - }}, - methods: { - ready: function ready() { - var self = this; - self._loadData(); - }, - - _loadData: function _loadData() { - var self = this; - var content = { - "main": [{ - "shopList": [{ - "id": "619123122", - "picUrl": "//img.alicdn.com/tps/i1/TB1Cl5MLVXXXXXTaXXXSutbFXXX.jpg", - "finalScore": "0.884765209440857", - "shopUrl": "http://liangpinpuzi.tmall.com/campaign-3735-7.htm", - "entityType": "SHOP", - "brandId": "7724367" - }, { - "id": "880734502", - "picUrl": "//img.alicdn.com/tps/i1/TB1HN2XLVXXXXbkXFXXSutbFXXX.jpg", - "finalScore": "0.8822246866512714", - "shopUrl": "http://sanzhisongshu.tmall.com/campaign-3735-7.htm", - "entityType": "SHOP", - "brandId": "147280915" - }, { - "id": "392147177", - "picUrl": "//img.alicdn.com/tps/i1/TB1yq6dLVXXXXbXXpXXSutbFXXX.jpg", - "finalScore": "0.8805854724243631", - "shopUrl": "http://zhouheiya.tmall.com/campaign-3735-6.htm", - "entityType": "SHOP", - "brandId": "111496" - }, { - "id": "2081058060", - "picUrl": "//img.alicdn.com/tps/i1/TB1w4jxLVXXXXaxXXXXtKXbFXXX.gif", - "finalScore": "0.8640439551049249", - "shopUrl": "http://rongxintang.tmall.com/campaign-3735-6.htm", - "entityType": "SHOP", - "brandId": "8709890" - }], - "finalScore": "4.657333333333334", - "industryUrl": null, - "entityType": "OTHER", - "colour": "#fff5a3", - "industryTitle": null, - "bannerUrl": "//pages.tmall.com/wow/act/15617/newfood?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_12_735362&pos=1", - "leftBannerImg": "http://img.alicdn.com/tps/i1/TB1LHh4MXXXXXbsXpXXeWjm2pXX-750-240.jpg", - "_pos_": "1", - "industryBenefit": null, - "industryId": "12", - "industryImg": null, - "rightBannerImg": "//img.alicdn.com/tps/i4/TB1wshUMXXXXXXaXVXXeWjm2pXX-750-240.jpg" - }, { - "shopList": [{ - "id": "520557274", - "picUrl": "//img.alicdn.com/tps/i1/TB1aMjXLVXXXXbUaXXXSutbFXXX.jpg", - "finalScore": "0.8986382989845325", - "shopUrl": "http://newbalance.tmall.com/campaign-3735-20.htm", - "entityType": "SHOP", - "brandId": "20584" - }, { - "id": "746866993", - "picUrl": "//img.alicdn.com/tps/i1/TB1pXG9LVXXXXaLXFXXSutbFXXX.jpg", - "finalScore": "0.8917855242977327", - "shopUrl": "http://vans.tmall.com/campaign-3735-19.htm", - "entityType": "SHOP", - "brandId": "29529" - }, { - "id": "1612713147", - "picUrl": "//img.alicdn.com/tps/i1/TB1jHfXLVXXXXXPXFXXSutbFXXX.jpg", - "finalScore": "0.8895943606442631", - "shopUrl": "http://dcshoecousa.tmall.com/campaign-3735-8.htm", - "entityType": "SHOP", - "brandId": "3851662" - }, { - "id": "2379251418", - "picUrl": "//img.alicdn.com/tps/i1/TB1sbLlLVXXXXbeXXXXSutbFXXX.jpg", - "finalScore": "0.8881539668874383", - "shopUrl": "http://baijinydhw.tmall.com/campaign-3735-2.htm", - "entityType": "SHOP", - "brandId": "20579" - }], - "finalScore": "4.545333333333334", - "industryUrl": null, - "entityType": "OTHER", - "colour": "#cbdbfe", - "industryTitle": null, - "bannerUrl": "//pages.tmall.com/wow/act/15617/ydhw?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_8_735362&pos=2", - "leftBannerImg": "http://img.alicdn.com/tps/i3/TB1h4kzLVXXXXawXpXXeWjm2pXX-750-240.jpg", - "_pos_": "2", - "industryBenefit": null, - "industryId": "8", - "industryImg": null, - "rightBannerImg": "//img.alicdn.com/tps/i4/TB19VMjLVXXXXaeaXXXeWjm2pXX-750-240.jpg" - }, { - "shopList": [{ - "id": "811383091", - "picUrl": "//img.alicdn.com/tps/i1/TB1q49ZLVXXXXaJXVXXSutbFXXX.jpg", - "finalScore": "0.8723682716749482", - "shopUrl": "http://tongrentangbj.tmall.com/campaign-3735-9.htm", - "entityType": "SHOP", - "brandId": "44652" - }, { - "id": "838914626", - "picUrl": "//img.alicdn.com/tps/i1/TB1GQYbLVXXXXaXXVXXSutbFXXX.jpg", - "finalScore": "0.5027131908086584", - "shopUrl": "http://jouo.tmall.com/campaign-3735-3.htm", - "entityType": "SHOP", - "brandId": "14170081" - }, { - "id": "1077716829", - "picUrl": "//img.alicdn.com/tps/i1/TB1rdW2LVXXXXagapXXSutbFXXX.jpg", - "finalScore": "0.5015387557024262", - "shopUrl": "http://wetcode.tmall.com/campaign-3735-14.htm", - "entityType": "SHOP", - "brandId": "3675642" - }, { - "id": "1664976033", - "picUrl": "//img.alicdn.com/tps/i1/TB1Q.rpLVXXXXXiXpXXSutbFXXX.jpg", - "finalScore": "0.5014897109669442", - "shopUrl": "http://hanhoohzp.tmall.com/campaign-3735-17.htm", - "entityType": "SHOP", - "brandId": "78888695" - }], - "finalScore": "4.526666666666666", - "industryUrl": null, - "entityType": "OTHER", - "colour": "#ffd1b6", - "industryTitle": null, - "bannerUrl": "//pages.tmall.com/wow/act/15617/getbeauty?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_2_735362&pos=3", - "leftBannerImg": "http://img.alicdn.com/tps/i4/TB1Djt9MXXXXXanXXXXeWjm2pXX-750-240.jpg", - "_pos_": "3", - "industryBenefit": null, - "industryId": "2", - "industryImg": null, - "rightBannerImg": "//img.alicdn.com/tps/i3/TB1_gVQMXXXXXX9XVXXeWjm2pXX-750-240.jpg" - }, { - "shopList": [{ - "id": "2153169655", - "picUrl": "//img.alicdn.com/tps/i1/TB1nlK7LVXXXXaRXFXXSutbFXXX.jpg", - "finalScore": "0.8820210808835905", - "shopUrl": "http://ctkicks.tmall.com/campaign-3735-15.htm", - "entityType": "SHOP", - "brandId": "20584" - }, { - "id": "2784101115", - "picUrl": "//img.alicdn.com/tps/i1/TB1RrS.LVXXXXcrXpXXSutbFXXX.jpg", - "finalScore": "0.5930383227012586", - "shopUrl": "http://tomtailor.tmall.com/campaign-3735-0.htm", - "entityType": "SHOP", - "brandId": "213474060" - }, { - "id": "2183813726", - "picUrl": "//img.alicdn.com/tps/i1/TB1kmS_LVXXXXaBaXXXSutbFXXX.jpg", - "finalScore": "0.5882558957771681", - "shopUrl": "http://huaiyuan.tmall.com/campaign-3735-5.htm", - "entityType": "SHOP", - "brandId": "29465" - }, { - "id": "1785908005", - "picUrl": "//img.alicdn.com/tps/i1/TB1dB6zLVXXXXcJXXXXSutbFXXX.jpg", - "finalScore": "0.5694211862124341", - "shopUrl": "http://axonus.tmall.com/campaign-3735-1.htm", - "entityType": "SHOP", - "brandId": "115035841" - }], - "finalScore": "4.413955555555555", - "industryUrl": null, - "entityType": "OTHER", - "colour": "#b9eaf2", - "industryTitle": null, - "bannerUrl": "//pages.tmall.com/wow/act/15617/guojixfs?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_1_735362&pos=4", - "leftBannerImg": "http://img.alicdn.com/tps/i3/TB1_T7ALVXXXXXOXXXXeWjm2pXX-750-240.jpg", - "_pos_": "4", - "industryBenefit": null, - "industryId": "1", - "industryImg": null, - "rightBannerImg": "//img.alicdn.com/tps/i2/TB1s7koLVXXXXafXFXXeWjm2pXX-750-240.jpg" - }, { - "shopList": [{ - "id": "2453054335", - "picUrl": "//img.alicdn.com/tps/i1/TB1RX_vLVXXXXchXpXXSutbFXXX.jpg", - "finalScore": "0.8463447899590267", - "shopUrl": "http://nanshizixing.tmall.com/campaign-3735-2.htm", - "entityType": "SHOP", - "brandId": "844502560" - }, { - "id": "1041773234", - "picUrl": "//img.alicdn.com/tps/i1/TB1Q7jpLVXXXXX8XpXXSutbFXXX.jpg", - "finalScore": "0.560952734503075", - "shopUrl": "http://dapu.tmall.com/campaign-3735-8.htm", - "entityType": "SHOP", - "brandId": "14493763" - }, { - "id": "300031438", - "picUrl": "//img.alicdn.com/tps/i1/TB13VC4LVXXXXarXVXXSutbFXXX.jpg", - "finalScore": "0.5450674634839442", - "shopUrl": "http://kangerxin.tmall.com/campaign-3735-10.htm", - "entityType": "SHOP", - "brandId": "3781905" - }, { - "id": "92042735", - "picUrl": "//img.alicdn.com/tps/i1/TB1PxYcLVXXXXasaXXXSutbFXXX.jpg", - "finalScore": "0.5448023228053981", - "shopUrl": "http://shuixing.tmall.com/campaign-3735-10.htm", - "entityType": "SHOP", - "brandId": "3685660" - }], - "finalScore": "4.13", - "industryUrl": null, - "entityType": "OTHER", - "colour": "#bbffe5", - "industryTitle": null, - "bannerUrl": "//pages.tmall.com/wow/act/15617/jfjs?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_4_735362&pos=5", - "leftBannerImg": "http://img.alicdn.com/tps/i3/TB1jeoCLVXXXXcoXXXXeWjm2pXX-750-240.jpg", - "_pos_": "5", - "industryBenefit": null, - "industryId": "4", - "industryImg": null, - "rightBannerImg": "//img.alicdn.com/tps/i4/TB1C5.fLVXXXXb3aXXXeWjm2pXX-750-240.jpg" - }, { - "shopList": [{ - "id": "822428555", - "picUrl": "//img.alicdn.com/tps/i1/TB1g46aLVXXXXcUXVXXSutbFXXX.jpg", - "finalScore": "0.9183458776971917", - "shopUrl": "http://playboyyd.tmall.com/campaign-3735-11.htm", - "entityType": "SHOP", - "brandId": "29510" - }, { - "id": "196993935", - "picUrl": "//img.alicdn.com/tps/i1/TB1pHG8LVXXXXbraXXXSutbFXXX.jpg", - "finalScore": "0.9105525246667775", - "shopUrl": "https://uniqlo.tmall.com/campaign-3735-56.htm", - "entityType": "SHOP", - "brandId": "29527" - }, { - "id": "505753958", - "picUrl": "//img.alicdn.com/tps/i1/TB1WKYyLVXXXXXHXXXXSutbFXXX.jpg", - "finalScore": "0.90750966370726", - "shopUrl": "http://bonas.tmall.com/campaign-3735-11.htm", - "entityType": "SHOP", - "brandId": "3486580" - }, { - "id": "2113823580", - "picUrl": "//img.alicdn.com/tps/i1/TB1itHkLVXXXXX9XFXXSutbFXXX.jpg", - "finalScore": "0.5900977955635289", - "shopUrl": "http://kafanya.tmall.com/campaign-3735-7.htm", - "entityType": "SHOP", - "brandId": "110684218" - }], - "finalScore": "4.088", - "industryUrl": null, - "entityType": "OTHER", - "colour": "#ffc7c9", - "industryTitle": null, - "bannerUrl": "//pages.tmall.com/wow/act/15617/neiyi328?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_9_735362&pos=6", - "leftBannerImg": "http://img.alicdn.com/tps/i1/TB1tl3tLVXXXXbbXFXXeWjm2pXX-750-240.jpg", - "_pos_": "6", - "industryBenefit": null, - "industryId": "9", - "industryImg": null, - "rightBannerImg": "//img.alicdn.com/tps/i2/TB1AkIyLVXXXXbjXpXXeWjm2pXX-750-240.jpg" - }], - "sub": [{ - "shopList": null, - "finalScore": "4.033333333333333", - "industryUrl": "//pages.tmall.com/wow/act/15617/zbps?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_3_735362&pos=7", - "entityType": "OTHER", - "colour": "#bbffe5", - "industryTitle": "珠宝配饰", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "7", - "industryBenefit": "大牌1折秒杀", - "industryId": "3", - "industryImg": "//img.alicdn.com/tps/i1/TB1s5y.LVXXXXb.aXXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "3.8773333333333335", - "industryUrl": "//pages.tmall.com/wow/act/15617/dqc?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_15_735362&pos=8", - "entityType": "OTHER", - "colour": "#b4ebff", - "industryTitle": "数码", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "8", - "industryBenefit": "疯抢大牌新品", - "industryId": "15", - "industryImg": "//img.alicdn.com/tps/i4/TB1_xG.LVXXXXbWaXXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "3.8359999999999994", - "industryUrl": "//pages.tmall.com/wow/act/15617/man?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_6_735362&pos=9", - "entityType": "OTHER", - "colour": "#cbe9a9", - "industryTitle": "男装", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "9", - "industryBenefit": "新品低至9.9元", - "industryId": "6", - "industryImg": "//img.alicdn.com/tps/i1/TB1mO2qLVXXXXXiXFXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "3.243333333333333", - "industryUrl": "//pages.tmall.com/wow/act/15617/xihu?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_13_735362&pos=10", - "entityType": "OTHER", - "colour": "#cdffa4", - "industryTitle": "洗护", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "10", - "industryBenefit": "爆款1分钱抢", - "industryId": "13", - "industryImg": "//img.alicdn.com/tps/i3/TB1Ft_CLVXXXXX2XXXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "3.1553333333333335", - "industryUrl": "//pages.tmall.com/wow/act/15617/myxfs?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_5_735362&pos=11", - "entityType": "OTHER", - "colour": "#f8e1ff", - "industryTitle": "母婴童装", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "11", - "industryBenefit": "跨店满299减40", - "industryId": "5", - "industryImg": "//img.alicdn.com/tps/i4/TB1c.HvLVXXXXXPXpXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "2.6739999999999995", - "industryUrl": "//pages.tmall.com/wow/act/15617/nvzhuang?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_7_735362&pos=12", - "entityType": "OTHER", - "colour": "#d5cbe8", - "industryTitle": "女装", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "12", - "industryBenefit": "折后用券抢新", - "industryId": "7", - "industryImg": "//img.alicdn.com/tps/i3/TB1JdfsLVXXXXbRXpXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "0.0", - "industryUrl": "//pages.tmall.com/wow/act/15617/mobilephone?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_14_735362&pos=13", - "entityType": "OTHER", - "colour": "#c5ffdf", - "industryTitle": "手机", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "13", - "industryBenefit": "1元抢优惠券", - "industryId": "14", - "industryImg": "//img.alicdn.com/tps/i4/TB1M3zhLVXXXXX4XVXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "0.0", - "industryUrl": "//pages.tmall.com/wow/act/15617/xiangbaohuanxin?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_11_735362&pos=14", - "entityType": "OTHER", - "colour": "#ffccdc", - "industryTitle": "箱包", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "14", - "industryBenefit": "极致焕新尖货", - "industryId": "11", - "industryImg": "//img.alicdn.com/tps/i3/TB1gE6kLVXXXXcrXFXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "0.0", - "industryUrl": "//pages.tmall.com/wow/act/15617/newnv?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_10_735362&pos=15", - "entityType": "OTHER", - "colour": "#fff8ee", - "industryTitle": "鞋履", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "15", - "industryBenefit": "潮品精选鞋履", - "industryId": "10", - "industryImg": "//img.alicdn.com/tps/i3/TB1.qzpLVXXXXX.XFXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }], - "isFormal": "false", - "exposureParam": "//ac.mmstat.com/1.gif?apply=vote&abbucket=_AB-M1011_B14&com=02&acm=03654.1003.1.735362&cod=03654&cache=U5revsTn&aldid=KXPpnvEH&logtype=4&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.735362&ip=", - "id": "03654" - }; - self._processData(content); - }, - _processData: function _processData(content) { - var self = this; - var items = content.main; - var subItems = content.sub; - for (var j = 0; j < items.length; j++) { - var item = items[j]; - item.index = j; - item.bannerImg = j % 2 === 0 ? item.leftBannerImg : item.rightBannerImg; - if (item.shopList) { - for (var n = 0; n < item.shopList.length; n++) { - item.shopList[n].idx = n; - } - } - } - - for (var i = 0; i < subItems.length; i++) { - var subItem = subItems[i]; - subItem.index = i; - subItem.top = (i - i % 3) / 3 * (241 + 3); - subItem.left = i % 3 * (248 + 3); - } - - self.items = items; - self.subItems = subItems; - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/coupon.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/coupon.js deleted file mode 100644 index 4e9aca6b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/coupon.js +++ /dev/null @@ -1,209 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(256) - var __weex_style__ = __webpack_require__(257) - var __weex_script__ = __webpack_require__(258) - - __weex_define__('@weex-component/160152a0a99527e4b8664677a7d4610b', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/160152a0a99527e4b8664677a7d4610b',undefined,undefined) - -/***/ }, - -/***/ 256: -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "children": [ - { - "type": "image", - "shown": function () {return this.ds.floorTitle}, - "classList": [ - "title" - ], - "attr": { - "src": function () {return this.ds.floorTitle} - } - }, - { - "type": "container", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "image", - "classList": [ - "img" - ], - "attr": { - "src": function () {return this.currentStatus} - } - }, - { - "type": "container", - "classList": [ - "my-coupon" - ], - "events": { - "click": "handleClick" - } - }, - { - "type": "container", - "classList": [ - "guides" - ], - "events": { - "click": "handleClick" - } - }, - { - "type": "container", - "classList": [ - "lottery" - ], - "events": { - "click": "handleClick" - } - } - ] - } - ] - } - -/***/ }, - -/***/ 257: -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "wrapper": { - "color": "#FF4550", - "width": 750, - "height": 230 - }, - "my-coupon": { - "width": 180, - "height": 39, - "position": "absolute", - "top": 15, - "right": 149 - }, - "guides": { - "height": 39, - "width": 110, - "position": "absolute", - "top": 15, - "right": 32 - }, - "lottery": { - "width": 348, - "height": 76, - "position": "absolute", - "top": 132, - "right": 70 - }, - "info": { - "fontSize": 18, - "position": "absolute", - "top": 84, - "right": 70 - }, - "img": { - "width": 750, - "height": 230 - } - } - -/***/ }, - -/***/ 258: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var IS_WEB = typeof window !== 'undefined'; - var IS_APP = !IS_WEB || /AliApp\((?:tb|tm)/i.test(navigator.userAgent); - - module.exports = { - data: function () {return { - currentStatus: '//img.alicdn.com/tps/i4/TB1cYBKMXXXXXayaXXXkxHk2pXX-750-228.jpg_q75.jpg' - }}, - methods: { - ready: function ready() {}, - handleClick: function handleClick(e) { - this.$call('modal', 'toast', { - message: 'click', - duration: 1 - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/fashion.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/fashion.js deleted file mode 100644 index e275cf1e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/fashion.js +++ /dev/null @@ -1,361 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(246) - __webpack_require__(249) - var __weex_template__ = __webpack_require__(259) - var __weex_style__ = __webpack_require__(260) - var __weex_script__ = __webpack_require__(261) - - __weex_define__('@weex-component/3a0fc3e27dd7bb14f409fca1ac4baac7', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/3a0fc3e27dd7bb14f409fca1ac4baac7',undefined,undefined) - -/***/ }, - -/***/ 244: -/***/ function(module, exports) { - - module.exports = { - "type": "image", - "style": { - "width": function () {return this.width}, - "height": function () {return this.height} - }, - "attr": { - "src": function () {return this.src}, - "imageQuality": function () {return this.quality} - }, - "events": { - "click": "_clickHandler" - } - } - -/***/ }, - -/***/ 245: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - quality: 'normal', - width: 0, - height: 0, - src: '', - href: '', - spmc: 0, - spmd: 0 - }}, - methods: { - ready: function ready() {}, - _clickHandler: function _clickHandler() { - this.$call('modal', 'toast', { - message: 'click', - duration: 1 - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 246: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(244) - var __weex_script__ = __webpack_require__(245) - - __weex_define__('@weex-component/banner', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - -/***/ }, - -/***/ 247: -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "children": [ - { - "type": "container", - "shown": function () {return this.direction==='row'}, - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "container", - "repeat": function () {return this.ds}, - "style": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "marginLeft": function () {return this.space} - }, - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "src": function () {return this.img}, - "href": function () {return this.url} - } - } - ] - } - ] - }, - { - "type": "container", - "shown": function () {return this.direction==='column'}, - "children": [ - { - "type": "container", - "repeat": function () {return this.ds}, - "style": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "marginTop": function () {return this.space} - }, - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "src": function () {return this.img}, - "href": function () {return this.url} - } - } - ] - } - ] - } - ] - } - -/***/ }, - -/***/ 248: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - space: 0, - width: 0, - height: 0, - spmc: 0, - spmdprefix: '', - ds: [] - }}, - methods: { - ready: function ready() { - var self = this; - var ds = self.ds; - var length = ds.length; - for (var i = 0; i < length; i++) { - var item = ds[i]; - item.index = i; - item.space = i % length === 0 ? 0 : self.space; - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 249: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(246) - var __weex_template__ = __webpack_require__(247) - var __weex_script__ = __webpack_require__(248) - - __weex_define__('@weex-component/banners', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - -/***/ }, - -/***/ 259: -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "shown": function () {return !this.ds.isHide}, - "children": [ - { - "type": "image", - "shown": function () {return this.ds.floorTitle}, - "classList": [ - "title" - ], - "attr": { - "src": function () {return this.ds.floorTitle} - } - }, - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_750}, - "height": function () {return this.NUMBER_262}, - "src": function () {return this.ds.bigBannerImg}, - "href": function () {return this.ds.bigBannerUrl} - } - }, - { - "type": "banners", - "attr": { - "ds": function () {return this.ds.smallBannerItems}, - "width": function () {return this.NUMBER_375}, - "height": function () {return this.NUMBER_262}, - "direction": "row" - } - }, - { - "type": "container", - "shown": function () {return !this.ds.isHideStarBanner}, - "children": [ - { - "type": "banners", - "attr": { - "ds": function () {return this.ds.starBanners}, - "width": function () {return this.NUMBER_250}, - "height": function () {return this.NUMBER_220}, - "direction": "row" - } - } - ] - } - ] - } - -/***/ }, - -/***/ 260: -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - } - } - -/***/ }, - -/***/ 261: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - module.exports = { - data: function () {return { - NUMBER_750: 750, - NUMBER_250: 250, - NUMBER_220: 220, - NUMBER_262: 262, - NUMBER_375: 375 - }}, - methods: { - ready: function ready() { - var self = this; - self._randomStarBanner(); - }, - _randomStarBanner: function _randomStarBanner() { - var self = this; - if (!self.ds || !self.ds.firstStarBannerItems || !self.ds.secondStarBannerItems || !self.ds.thirdStarBannerItems) return; - var starBanners = []; - starBanners.push(self._app.Util.randomItemFromArr(self.ds.firstStarBannerItems)); - starBanners.push(self._app.Util.randomItemFromArr(self.ds.secondStarBannerItems)); - starBanners.push(self._app.Util.randomItemFromArr(self.ds.thirdStarBannerItems)); - self.ds.starBanners = starBanners; - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/goods.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/goods.js deleted file mode 100644 index ad689a0d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/goods.js +++ /dev/null @@ -1,321 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(246) - var __weex_template__ = __webpack_require__(262) - var __weex_style__ = __webpack_require__(263) - var __weex_script__ = __webpack_require__(264) - - __weex_define__('@weex-component/4ee2a41c614b4058c24278d8a41a24eb', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/4ee2a41c614b4058c24278d8a41a24eb',undefined,undefined) - -/***/ }, - -/***/ 244: -/***/ function(module, exports) { - - module.exports = { - "type": "image", - "style": { - "width": function () {return this.width}, - "height": function () {return this.height} - }, - "attr": { - "src": function () {return this.src}, - "imageQuality": function () {return this.quality} - }, - "events": { - "click": "_clickHandler" - } - } - -/***/ }, - -/***/ 245: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - quality: 'normal', - width: 0, - height: 0, - src: '', - href: '', - spmc: 0, - spmd: 0 - }}, - methods: { - ready: function ready() {}, - _clickHandler: function _clickHandler() { - this.$call('modal', 'toast', { - message: 'click', - duration: 1 - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 246: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(244) - var __weex_script__ = __webpack_require__(245) - - __weex_define__('@weex-component/banner', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - -/***/ }, - -/***/ 262: -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "shown": function () {return !this.ds.isHide}, - "children": [ - { - "type": "image", - "shown": function () {return this.ds.floorTitle}, - "classList": [ - "title" - ], - "attr": { - "src": function () {return this.ds.floorTitle} - } - }, - { - "type": "slider", - "classList": [ - "slider" - ], - "attr": { - "showIndicators": "true", - "autoPlay": "true", - "interval": "3000" - }, - "children": [ - { - "type": "container", - "classList": [ - "pannel" - ], - "repeat": function () {return this.ds.bannerItems}, - "children": [ - { - "type": "container", - "children": [ - { - "type": "banner", - "style": { - "marginBottom": 4 - }, - "attr": { - "width": function () {return this.NUMBER_251}, - "height": function () {return this.NUMBER_292}, - "src": function () {return this.img1}, - "href": function () {return this.url1} - } - }, - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_251}, - "height": function () {return this.NUMBER_292}, - "src": function () {return this.img2}, - "href": function () {return this.url2} - } - } - ] - }, - { - "type": "container", - "classList": [ - "middle-col" - ], - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_240}, - "height": function () {return this.NUMBER_588}, - "src": function () {return this.img3}, - "href": function () {return this.url3} - } - } - ] - }, - { - "type": "container", - "children": [ - { - "type": "banner", - "style": { - "marginBottom": 4 - }, - "attr": { - "width": function () {return this.NUMBER_251}, - "height": function () {return this.NUMBER_292}, - "src": function () {return this.img4}, - "href": function () {return this.url4} - } - }, - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_251}, - "height": function () {return this.NUMBER_292}, - "src": function () {return this.img5}, - "href": function () {return this.url5} - } - } - ] - } - ] - }, - { - "type": "indicator", - "style": { - "position": "absolute", - "width": 714, - "height": 200, - "left": 10, - "bottom": -80, - "itemSize": 20, - "itemColor": "#999999", - "itemSelectedColor": "#000000" - } - } - ] - } - ] - } - -/***/ }, - -/***/ 263: -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "slider": { - "height": 652 - }, - "pannel": { - "width": 750, - "height": 592, - "flexDirection": "row" - }, - "middle-col": { - "marginLeft": 4, - "marginRight": 4, - "width": 240, - "height": 588 - } - } - -/***/ }, - -/***/ 264: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - module.exports = { - data: function () {return { - NUMBER_251: 251, - NUMBER_240: 240, - NUMBER_292: 292, - NUMBER_588: 588 - }}, - methods: { - ready: function ready() { - var self = this; - var ds = self.ds; - if (!ds || !ds.bannerItems) return; - var bannerItems = ds.bannerItems; - for (var i = 0; i < bannerItems.length; i++) { - bannerItems[i].index = i; - } - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/headlines.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/headlines.js deleted file mode 100644 index 23f0fac0..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/headlines.js +++ /dev/null @@ -1,479 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(265) - __webpack_require__(249) - var __weex_template__ = __webpack_require__(268) - var __weex_style__ = __webpack_require__(269) - var __weex_script__ = __webpack_require__(270) - - __weex_define__('@weex-component/5efec0a39c4d8f94c5e8f7170c422834', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/5efec0a39c4d8f94c5e8f7170c422834',undefined,undefined) - -/***/ }, - -/***/ 244: -/***/ function(module, exports) { - - module.exports = { - "type": "image", - "style": { - "width": function () {return this.width}, - "height": function () {return this.height} - }, - "attr": { - "src": function () {return this.src}, - "imageQuality": function () {return this.quality} - }, - "events": { - "click": "_clickHandler" - } - } - -/***/ }, - -/***/ 245: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - quality: 'normal', - width: 0, - height: 0, - src: '', - href: '', - spmc: 0, - spmd: 0 - }}, - methods: { - ready: function ready() {}, - _clickHandler: function _clickHandler() { - this.$call('modal', 'toast', { - message: 'click', - duration: 1 - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 246: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(244) - var __weex_script__ = __webpack_require__(245) - - __weex_define__('@weex-component/banner', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - -/***/ }, - -/***/ 247: -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "children": [ - { - "type": "container", - "shown": function () {return this.direction==='row'}, - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "container", - "repeat": function () {return this.ds}, - "style": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "marginLeft": function () {return this.space} - }, - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "src": function () {return this.img}, - "href": function () {return this.url} - } - } - ] - } - ] - }, - { - "type": "container", - "shown": function () {return this.direction==='column'}, - "children": [ - { - "type": "container", - "repeat": function () {return this.ds}, - "style": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "marginTop": function () {return this.space} - }, - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "src": function () {return this.img}, - "href": function () {return this.url} - } - } - ] - } - ] - } - ] - } - -/***/ }, - -/***/ 248: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - space: 0, - width: 0, - height: 0, - spmc: 0, - spmdprefix: '', - ds: [] - }}, - methods: { - ready: function ready() { - var self = this; - var ds = self.ds; - var length = ds.length; - for (var i = 0; i < length; i++) { - var item = ds[i]; - item.index = i; - item.space = i % length === 0 ? 0 : self.space; - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 249: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(246) - var __weex_template__ = __webpack_require__(247) - var __weex_script__ = __webpack_require__(248) - - __weex_define__('@weex-component/banners', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - -/***/ }, - -/***/ 265: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(266) - var __weex_script__ = __webpack_require__(267) - - __weex_define__('@weex-component/link', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - -/***/ }, - -/***/ 266: -/***/ function(module, exports) { - - module.exports = { - "type": "text", - "classList": [ - "link" - ], - "shown": function () {return this.href}, - "events": { - "click": "_clickHandler" - }, - "attr": { - "value": function () {return this.text} - } - } - -/***/ }, - -/***/ 267: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - text: '', - href: '' - }}, - methods: { - _clickHandler: function _clickHandler() { - this.$call('modal', 'toast', { - message: 'click', - duration: 1 - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 268: -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "classList": [ - "container" - ], - "children": [ - { - "type": "image", - "classList": [ - "banner" - ], - "attr": { - "src": function () {return this.ds.topBanner} - } - }, - { - "type": "container", - "classList": [ - "rule-container" - ], - "children": [ - { - "type": "link", - "style": { - "fontSize": 22, - "color": "#ffffff", - "textAlign": "center" - }, - "attr": { - "text": "帮助", - "href": function () {return this.ds.ruleLink} - } - } - ] - }, - { - "type": "container", - "classList": [ - "announce" - ], - "children": [ - { - "type": "image", - "classList": [ - "announce-hd" - ], - "attr": { - "src": function () {return this.ds.announceHdBanner} - } - }, - { - "type": "banners", - "style": { - "marginLeft": 6, - "marginRight": 6 - }, - "attr": { - "ds": function () {return this.ds.bannerItems}, - "direction": "row", - "width": function () {return this.NUMBER_233}, - "height": function () {return this.NUMBER_172}, - "space": function () {return this.NUMBER_3} - } - } - ] - } - ] - } - -/***/ }, - -/***/ 269: -/***/ function(module, exports) { - - module.exports = { - "banner": { - "width": 750, - "height": 782 - }, - "share-container": { - "position": "absolute", - "right": 100, - "top": 15, - "zIndex": 100, - "fontSize": 20, - "color": "#ffffff", - "backgroundColor": "#000000", - "borderRadius": 17, - "width": 110, - "height": 35, - "justifyContent": "center", - "alignItems": "center" - }, - "rule-container": { - "position": "absolute", - "right": 22, - "top": 15, - "zIndex": 100, - "fontSize": 20, - "color": "#ffffff", - "backgroundColor": "#000000", - "borderRadius": 17, - "width": 70, - "height": 35, - "justifyContent": "center" - }, - "announce": { - "backgroundColor": "#f5f3f4", - "width": 716, - "height": 286, - "position": "absolute", - "bottom": 17, - "left": 17, - "borderRadius": 5 - }, - "announce-hd": { - "width": 700, - "height": 90, - "marginTop": 8, - "marginBottom": 8, - "marginLeft": 5, - "marginRight": 5 - } - } - -/***/ }, - -/***/ 270: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - module.exports = { - data: function () {return { - ds: {}, - NUMBER_233: 233, - NUMBER_172: 172, - NUMBER_3: 3 - }}, - methods: { - ready: function ready() { - var self = this; - self.isH5 = self._app.IS_H5; - self.isTM = self._app.IS_TM; - self.isTest = self._app.IS_TEST; - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/index.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/index.js deleted file mode 100644 index cfe73f4b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/index.js +++ /dev/null @@ -1,3139 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(271) - var __weex_style__ = __webpack_require__(272) - var __weex_script__ = __webpack_require__(273) - - __weex_define__('@weex-component/5e0e45b25bc002a471e5967e4452d911', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/5e0e45b25bc002a471e5967e4452d911',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - }, - "panel-body": {} - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - exports.__esModule = true; - - var _iterator = __webpack_require__(111); - - var _iterator2 = _interopRequireDefault(_iterator); - - var _symbol = __webpack_require__(131); - - var _symbol2 = _interopRequireDefault(_symbol); - - var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default ? "symbol" : typeof obj; }; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { - return typeof obj === "undefined" ? "undefined" : _typeof(obj); - } : function (obj) { - return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); - }; - -/***/ }, -/* 111 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(112), __esModule: true }; - -/***/ }, -/* 112 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(113); - __webpack_require__(126); - module.exports = __webpack_require__(130).f('iterator'); - -/***/ }, -/* 113 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var $at = __webpack_require__(114)(true); - - // 21.1.3.27 String.prototype[@@iterator]() - __webpack_require__(115)(String, 'String', function(iterated){ - this._t = String(iterated); // target - this._i = 0; // next index - // 21.1.5.2.1 %StringIteratorPrototype%.next() - }, function(){ - var O = this._t - , index = this._i - , point; - if(index >= O.length)return {value: undefined, done: true}; - point = $at(O, index); - this._i += point.length; - return {value: point, done: false}; - }); - -/***/ }, -/* 114 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , defined = __webpack_require__(54); - // true -> String#at - // false -> String#codePointAt - module.exports = function(TO_STRING){ - return function(that, pos){ - var s = String(defined(that)) - , i = toInteger(pos) - , l = s.length - , a, b; - if(i < 0 || i >= l)return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; - }; - -/***/ }, -/* 115 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var LIBRARY = __webpack_require__(116) - , $export = __webpack_require__(32) - , redefine = __webpack_require__(117) - , hide = __webpack_require__(37) - , has = __webpack_require__(50) - , Iterators = __webpack_require__(118) - , $iterCreate = __webpack_require__(119) - , setToStringTag = __webpack_require__(123) - , getPrototypeOf = __webpack_require__(125) - , ITERATOR = __webpack_require__(124)('iterator') - , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next` - , FF_ITERATOR = '@@iterator' - , KEYS = 'keys' - , VALUES = 'values'; - - var returnThis = function(){ return this; }; - - module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){ - $iterCreate(Constructor, NAME, next); - var getMethod = function(kind){ - if(!BUGGY && kind in proto)return proto[kind]; - switch(kind){ - case KEYS: return function keys(){ return new Constructor(this, kind); }; - case VALUES: return function values(){ return new Constructor(this, kind); }; - } return function entries(){ return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator' - , DEF_VALUES = DEFAULT == VALUES - , VALUES_BUG = false - , proto = Base.prototype - , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT] - , $default = $native || getMethod(DEFAULT) - , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined - , $anyNative = NAME == 'Array' ? proto.entries || $native : $native - , methods, key, IteratorPrototype; - // Fix native - if($anyNative){ - IteratorPrototype = getPrototypeOf($anyNative.call(new Base)); - if(IteratorPrototype !== Object.prototype){ - // Set @@toStringTag to native iterators - setToStringTag(IteratorPrototype, TAG, true); - // fix for some old engines - if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis); - } - } - // fix Array#{values, @@iterator}.name in V8 / FF - if(DEF_VALUES && $native && $native.name !== VALUES){ - VALUES_BUG = true; - $default = function values(){ return $native.call(this); }; - } - // Define iterator - if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){ - hide(proto, ITERATOR, $default); - } - // Plug for library - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if(DEFAULT){ - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if(FORCED)for(key in methods){ - if(!(key in proto))redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; - }; - -/***/ }, -/* 116 */ -/***/ function(module, exports) { - - module.exports = true; - -/***/ }, -/* 117 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(37); - -/***/ }, -/* 118 */ -/***/ function(module, exports) { - - module.exports = {}; - -/***/ }, -/* 119 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var create = __webpack_require__(120) - , descriptor = __webpack_require__(46) - , setToStringTag = __webpack_require__(123) - , IteratorPrototype = {}; - - // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() - __webpack_require__(37)(IteratorPrototype, __webpack_require__(124)('iterator'), function(){ return this; }); - - module.exports = function(Constructor, NAME, next){ - Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)}); - setToStringTag(Constructor, NAME + ' Iterator'); - }; - -/***/ }, -/* 120 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) - var anObject = __webpack_require__(39) - , dPs = __webpack_require__(121) - , enumBugKeys = __webpack_require__(62) - , IE_PROTO = __webpack_require__(59)('IE_PROTO') - , Empty = function(){ /* empty */ } - , PROTOTYPE = 'prototype'; - - // Create object with fake `null` prototype: use iframe Object with cleared prototype - var createDict = function(){ - // Thrash, waste and sodomy: IE GC bug - var iframe = __webpack_require__(44)('iframe') - , i = enumBugKeys.length - , lt = '<' - , gt = '>' - , iframeDocument; - iframe.style.display = 'none'; - __webpack_require__(122).appendChild(iframe); - iframe.src = 'javascript:'; // eslint-disable-line no-script-url - // createDict = iframe.contentWindow.Object; - // html.removeChild(iframe); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - createDict = iframeDocument.F; - while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]]; - return createDict(); - }; - - module.exports = Object.create || function create(O, Properties){ - var result; - if(O !== null){ - Empty[PROTOTYPE] = anObject(O); - result = new Empty; - Empty[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = createDict(); - return Properties === undefined ? result : dPs(result, Properties); - }; - - -/***/ }, -/* 121 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , anObject = __webpack_require__(39) - , getKeys = __webpack_require__(48); - - module.exports = __webpack_require__(42) ? Object.defineProperties : function defineProperties(O, Properties){ - anObject(O); - var keys = getKeys(Properties) - , length = keys.length - , i = 0 - , P; - while(length > i)dP.f(O, P = keys[i++], Properties[P]); - return O; - }; - -/***/ }, -/* 122 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(33).document && document.documentElement; - -/***/ }, -/* 123 */ -/***/ function(module, exports, __webpack_require__) { - - var def = __webpack_require__(38).f - , has = __webpack_require__(50) - , TAG = __webpack_require__(124)('toStringTag'); - - module.exports = function(it, tag, stat){ - if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); - }; - -/***/ }, -/* 124 */ -/***/ function(module, exports, __webpack_require__) { - - var store = __webpack_require__(60)('wks') - , uid = __webpack_require__(61) - , Symbol = __webpack_require__(33).Symbol - , USE_SYMBOL = typeof Symbol == 'function'; - - var $exports = module.exports = function(name){ - return store[name] || (store[name] = - USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); - }; - - $exports.store = store; - -/***/ }, -/* 125 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) - var has = __webpack_require__(50) - , toObject = __webpack_require__(65) - , IE_PROTO = __webpack_require__(59)('IE_PROTO') - , ObjectProto = Object.prototype; - - module.exports = Object.getPrototypeOf || function(O){ - O = toObject(O); - if(has(O, IE_PROTO))return O[IE_PROTO]; - if(typeof O.constructor == 'function' && O instanceof O.constructor){ - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; - }; - -/***/ }, -/* 126 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(127); - var global = __webpack_require__(33) - , hide = __webpack_require__(37) - , Iterators = __webpack_require__(118) - , TO_STRING_TAG = __webpack_require__(124)('toStringTag'); - - for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){ - var NAME = collections[i] - , Collection = global[NAME] - , proto = Collection && Collection.prototype; - if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = Iterators.Array; - } - -/***/ }, -/* 127 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var addToUnscopables = __webpack_require__(128) - , step = __webpack_require__(129) - , Iterators = __webpack_require__(118) - , toIObject = __webpack_require__(51); - - // 22.1.3.4 Array.prototype.entries() - // 22.1.3.13 Array.prototype.keys() - // 22.1.3.29 Array.prototype.values() - // 22.1.3.30 Array.prototype[@@iterator]() - module.exports = __webpack_require__(115)(Array, 'Array', function(iterated, kind){ - this._t = toIObject(iterated); // target - this._i = 0; // next index - this._k = kind; // kind - // 22.1.5.2.1 %ArrayIteratorPrototype%.next() - }, function(){ - var O = this._t - , kind = this._k - , index = this._i++; - if(!O || index >= O.length){ - this._t = undefined; - return step(1); - } - if(kind == 'keys' )return step(0, index); - if(kind == 'values')return step(0, O[index]); - return step(0, [index, O[index]]); - }, 'values'); - - // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) - Iterators.Arguments = Iterators.Array; - - addToUnscopables('keys'); - addToUnscopables('values'); - addToUnscopables('entries'); - -/***/ }, -/* 128 */ -/***/ function(module, exports) { - - module.exports = function(){ /* empty */ }; - -/***/ }, -/* 129 */ -/***/ function(module, exports) { - - module.exports = function(done, value){ - return {value: value, done: !!done}; - }; - -/***/ }, -/* 130 */ -/***/ function(module, exports, __webpack_require__) { - - exports.f = __webpack_require__(124); - -/***/ }, -/* 131 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(132), __esModule: true }; - -/***/ }, -/* 132 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(133); - __webpack_require__(142); - __webpack_require__(143); - __webpack_require__(144); - module.exports = __webpack_require__(34).Symbol; - -/***/ }, -/* 133 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // ECMAScript 6 symbols shim - var global = __webpack_require__(33) - , has = __webpack_require__(50) - , DESCRIPTORS = __webpack_require__(42) - , $export = __webpack_require__(32) - , redefine = __webpack_require__(117) - , META = __webpack_require__(134).KEY - , $fails = __webpack_require__(43) - , shared = __webpack_require__(60) - , setToStringTag = __webpack_require__(123) - , uid = __webpack_require__(61) - , wks = __webpack_require__(124) - , wksExt = __webpack_require__(130) - , wksDefine = __webpack_require__(135) - , keyOf = __webpack_require__(136) - , enumKeys = __webpack_require__(137) - , isArray = __webpack_require__(138) - , anObject = __webpack_require__(39) - , toIObject = __webpack_require__(51) - , toPrimitive = __webpack_require__(45) - , createDesc = __webpack_require__(46) - , _create = __webpack_require__(120) - , gOPNExt = __webpack_require__(139) - , $GOPD = __webpack_require__(141) - , $DP = __webpack_require__(38) - , $keys = __webpack_require__(48) - , gOPD = $GOPD.f - , dP = $DP.f - , gOPN = gOPNExt.f - , $Symbol = global.Symbol - , $JSON = global.JSON - , _stringify = $JSON && $JSON.stringify - , PROTOTYPE = 'prototype' - , HIDDEN = wks('_hidden') - , TO_PRIMITIVE = wks('toPrimitive') - , isEnum = {}.propertyIsEnumerable - , SymbolRegistry = shared('symbol-registry') - , AllSymbols = shared('symbols') - , OPSymbols = shared('op-symbols') - , ObjectProto = Object[PROTOTYPE] - , USE_NATIVE = typeof $Symbol == 'function' - , QObject = global.QObject; - // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 - var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; - - // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 - var setSymbolDesc = DESCRIPTORS && $fails(function(){ - return _create(dP({}, 'a', { - get: function(){ return dP(this, 'a', {value: 7}).a; } - })).a != 7; - }) ? function(it, key, D){ - var protoDesc = gOPD(ObjectProto, key); - if(protoDesc)delete ObjectProto[key]; - dP(it, key, D); - if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc); - } : dP; - - var wrap = function(tag){ - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - sym._k = tag; - return sym; - }; - - var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){ - return typeof it == 'symbol'; - } : function(it){ - return it instanceof $Symbol; - }; - - var $defineProperty = function defineProperty(it, key, D){ - if(it === ObjectProto)$defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - if(has(AllSymbols, key)){ - if(!D.enumerable){ - if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false; - D = _create(D, {enumerable: createDesc(0, false)}); - } return setSymbolDesc(it, key, D); - } return dP(it, key, D); - }; - var $defineProperties = function defineProperties(it, P){ - anObject(it); - var keys = enumKeys(P = toIObject(P)) - , i = 0 - , l = keys.length - , key; - while(l > i)$defineProperty(it, key = keys[i++], P[key]); - return it; - }; - var $create = function create(it, P){ - return P === undefined ? _create(it) : $defineProperties(_create(it), P); - }; - var $propertyIsEnumerable = function propertyIsEnumerable(key){ - var E = isEnum.call(this, key = toPrimitive(key, true)); - if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; - }; - var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){ - it = toIObject(it); - key = toPrimitive(key, true); - if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return; - var D = gOPD(it, key); - if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true; - return D; - }; - var $getOwnPropertyNames = function getOwnPropertyNames(it){ - var names = gOPN(toIObject(it)) - , result = [] - , i = 0 - , key; - while(names.length > i){ - if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key); - } return result; - }; - var $getOwnPropertySymbols = function getOwnPropertySymbols(it){ - var IS_OP = it === ObjectProto - , names = gOPN(IS_OP ? OPSymbols : toIObject(it)) - , result = [] - , i = 0 - , key; - while(names.length > i){ - if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]); - } return result; - }; - - // 19.4.1.1 Symbol([description]) - if(!USE_NATIVE){ - $Symbol = function Symbol(){ - if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - var $set = function(value){ - if(this === ObjectProto)$set.call(OPSymbols, value); - if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set}); - return wrap(tag); - }; - redefine($Symbol[PROTOTYPE], 'toString', function toString(){ - return this._k; - }); - - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __webpack_require__(140).f = gOPNExt.f = $getOwnPropertyNames; - __webpack_require__(64).f = $propertyIsEnumerable; - __webpack_require__(63).f = $getOwnPropertySymbols; - - if(DESCRIPTORS && !__webpack_require__(116)){ - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function(name){ - return wrap(wks(name)); - } - } - - $export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol}); - - for(var symbols = ( - // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' - ).split(','), i = 0; symbols.length > i; )wks(symbols[i++]); - - for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]); - - $export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - // 19.4.2.1 Symbol.for(key) - 'for': function(key){ - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(key){ - if(isSymbol(key))return keyOf(SymbolRegistry, key); - throw TypeError(key + ' is not a symbol!'); - }, - useSetter: function(){ setter = true; }, - useSimple: function(){ setter = false; } - }); - - $export($export.S + $export.F * !USE_NATIVE, 'Object', { - // 19.1.2.2 Object.create(O [, Properties]) - create: $create, - // 19.1.2.4 Object.defineProperty(O, P, Attributes) - defineProperty: $defineProperty, - // 19.1.2.3 Object.defineProperties(O, Properties) - defineProperties: $defineProperties, - // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - // 19.1.2.7 Object.getOwnPropertyNames(O) - getOwnPropertyNames: $getOwnPropertyNames, - // 19.1.2.8 Object.getOwnPropertySymbols(O) - getOwnPropertySymbols: $getOwnPropertySymbols - }); - - // 24.3.2 JSON.stringify(value [, replacer [, space]]) - $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){ - var S = $Symbol(); - // MS Edge converts symbol values to JSON as {} - // WebKit converts symbol values to JSON as null - // V8 throws on boxed symbols - return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}'; - })), 'JSON', { - stringify: function stringify(it){ - if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined - var args = [it] - , i = 1 - , replacer, $replacer; - while(arguments.length > i)args.push(arguments[i++]); - replacer = args[1]; - if(typeof replacer == 'function')$replacer = replacer; - if($replacer || !isArray(replacer))replacer = function(key, value){ - if($replacer)value = $replacer.call(this, key, value); - if(!isSymbol(value))return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } - }); - - // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) - $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(37)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); - // 19.4.3.5 Symbol.prototype[@@toStringTag] - setToStringTag($Symbol, 'Symbol'); - // 20.2.1.9 Math[@@toStringTag] - setToStringTag(Math, 'Math', true); - // 24.3.3 JSON[@@toStringTag] - setToStringTag(global.JSON, 'JSON', true); - -/***/ }, -/* 134 */ -/***/ function(module, exports, __webpack_require__) { - - var META = __webpack_require__(61)('meta') - , isObject = __webpack_require__(40) - , has = __webpack_require__(50) - , setDesc = __webpack_require__(38).f - , id = 0; - var isExtensible = Object.isExtensible || function(){ - return true; - }; - var FREEZE = !__webpack_require__(43)(function(){ - return isExtensible(Object.preventExtensions({})); - }); - var setMeta = function(it){ - setDesc(it, META, {value: { - i: 'O' + ++id, // object ID - w: {} // weak collections IDs - }}); - }; - var fastKey = function(it, create){ - // return primitive with prefix - if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if(!has(it, META)){ - // can't set metadata to uncaught frozen object - if(!isExtensible(it))return 'F'; - // not necessary to add metadata - if(!create)return 'E'; - // add missing metadata - setMeta(it); - // return object ID - } return it[META].i; - }; - var getWeak = function(it, create){ - if(!has(it, META)){ - // can't set metadata to uncaught frozen object - if(!isExtensible(it))return true; - // not necessary to add metadata - if(!create)return false; - // add missing metadata - setMeta(it); - // return hash weak collections IDs - } return it[META].w; - }; - // add metadata on freeze-family methods calling - var onFreeze = function(it){ - if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it); - return it; - }; - var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze - }; - -/***/ }, -/* 135 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , LIBRARY = __webpack_require__(116) - , wksExt = __webpack_require__(130) - , defineProperty = __webpack_require__(38).f; - module.exports = function(name){ - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)}); - }; - -/***/ }, -/* 136 */ -/***/ function(module, exports, __webpack_require__) { - - var getKeys = __webpack_require__(48) - , toIObject = __webpack_require__(51); - module.exports = function(object, el){ - var O = toIObject(object) - , keys = getKeys(O) - , length = keys.length - , index = 0 - , key; - while(length > index)if(O[key = keys[index++]] === el)return key; - }; - -/***/ }, -/* 137 */ -/***/ function(module, exports, __webpack_require__) { - - // all enumerable object keys, includes symbols - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64); - module.exports = function(it){ - var result = getKeys(it) - , getSymbols = gOPS.f; - if(getSymbols){ - var symbols = getSymbols(it) - , isEnum = pIE.f - , i = 0 - , key; - while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key); - } return result; - }; - -/***/ }, -/* 138 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.2.2 IsArray(argument) - var cof = __webpack_require__(53); - module.exports = Array.isArray || function isArray(arg){ - return cof(arg) == 'Array'; - }; - -/***/ }, -/* 139 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window - var toIObject = __webpack_require__(51) - , gOPN = __webpack_require__(140).f - , toString = {}.toString; - - var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - - var getWindowNames = function(it){ - try { - return gOPN(it); - } catch(e){ - return windowNames.slice(); - } - }; - - module.exports.f = function getOwnPropertyNames(it){ - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); - }; - - -/***/ }, -/* 140 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) - var $keys = __webpack_require__(49) - , hiddenKeys = __webpack_require__(62).concat('length', 'prototype'); - - exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){ - return $keys(O, hiddenKeys); - }; - -/***/ }, -/* 141 */ -/***/ function(module, exports, __webpack_require__) { - - var pIE = __webpack_require__(64) - , createDesc = __webpack_require__(46) - , toIObject = __webpack_require__(51) - , toPrimitive = __webpack_require__(45) - , has = __webpack_require__(50) - , IE8_DOM_DEFINE = __webpack_require__(41) - , gOPD = Object.getOwnPropertyDescriptor; - - exports.f = __webpack_require__(42) ? gOPD : function getOwnPropertyDescriptor(O, P){ - O = toIObject(O); - P = toPrimitive(P, true); - if(IE8_DOM_DEFINE)try { - return gOPD(O, P); - } catch(e){ /* empty */ } - if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]); - }; - -/***/ }, -/* 142 */ -/***/ function(module, exports) { - - - -/***/ }, -/* 143 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(135)('asyncIterator'); - -/***/ }, -/* 144 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(135)('observable'); - -/***/ }, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */, -/* 183 */, -/* 184 */, -/* 185 */, -/* 186 */, -/* 187 */, -/* 188 */, -/* 189 */, -/* 190 */, -/* 191 */, -/* 192 */, -/* 193 */, -/* 194 */, -/* 195 */, -/* 196 */, -/* 197 */, -/* 198 */, -/* 199 */, -/* 200 */, -/* 201 */, -/* 202 */, -/* 203 */, -/* 204 */, -/* 205 */, -/* 206 */, -/* 207 */, -/* 208 */, -/* 209 */, -/* 210 */, -/* 211 */, -/* 212 */, -/* 213 */, -/* 214 */, -/* 215 */, -/* 216 */, -/* 217 */, -/* 218 */, -/* 219 */, -/* 220 */, -/* 221 */, -/* 222 */, -/* 223 */, -/* 224 */, -/* 225 */, -/* 226 */, -/* 227 */, -/* 228 */, -/* 229 */, -/* 230 */, -/* 231 */, -/* 232 */, -/* 233 */, -/* 234 */, -/* 235 */, -/* 236 */, -/* 237 */, -/* 238 */, -/* 239 */, -/* 240 */, -/* 241 */, -/* 242 */, -/* 243 */, -/* 244 */, -/* 245 */, -/* 246 */, -/* 247 */, -/* 248 */, -/* 249 */, -/* 250 */, -/* 251 */, -/* 252 */, -/* 253 */, -/* 254 */, -/* 255 */, -/* 256 */, -/* 257 */, -/* 258 */, -/* 259 */, -/* 260 */, -/* 261 */, -/* 262 */, -/* 263 */, -/* 264 */, -/* 265 */, -/* 266 */, -/* 267 */, -/* 268 */, -/* 269 */, -/* 270 */, -/* 271 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "wxc-tabbar", - "classList": [ - "tabbar" - ], - "attr": { - "tabItems": function () {return this.tabItems} - } - } - ] - } - -/***/ }, -/* 272 */ -/***/ function(module, exports) { - - module.exports = { - "content": { - "color": "#353535", - "backgroundColor": "#666666" - }, - "tabbar": { - "backgroundColor": "#ffffff" - } - } - -/***/ }, -/* 273 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _typeof2 = __webpack_require__(110); - - var _typeof3 = _interopRequireDefault(_typeof2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - __webpack_require__(4); - module.exports = { - data: function () {return { - dir: 'examples', - tabItems: [{ - index: 0, - title: "会场", - titleColor: 0x0, - icon: "", - image: "http://gtms01.alicdn.com/tps/i1/TB1qw.hMpXXXXagXXXX9t7RGVXX-46-46.png", - selectedImage: "http://gtms04.alicdn.com/tps/i4/TB16jjPMpXXXXazXVXX9t7RGVXX-46-46.png", - src: "showcase/new-fashion/main.js", - visibility: "visible" - }, { - index: 1, - title: "WEEX", - titleColor: 0x0, - icon: "", - image: "http://gtms03.alicdn.com/tps/i3/TB1LEn9MpXXXXaUXpXX9t7RGVXX-46-46.png", - selectedImage: "http://gtms02.alicdn.com/tps/i2/TB1qysbMpXXXXcnXXXX9t7RGVXX-46-46.png", - src: "component/image-demo.js", - visibility: "hidden" - }, { - index: 2, - title: "列表", - titleColor: 0x0, - icon: "", - image: "http://gtms01.alicdn.com/tps/i1/TB1B0v5MpXXXXcvXpXX9t7RGVXX-46-46.png", - selectedImage: "http://gtms04.alicdn.com/tps/i4/TB1NxY5MpXXXXcrXpXX9t7RGVXX-46-46.png", - src: "component/list/list-demo.js", - visibility: "hidden" - }] - }}, - created: function created() { - var bundleUrl = this.$getConfig().bundleUrl; - var nativeBase; - var isAndroidAssets = bundleUrl.indexOf('file://assets/') >= 0; - var isiOSAssets = bundleUrl.indexOf('file:///') >= 0 && bundleUrl.indexOf('WeexDemo.app') > 0; - if (isAndroidAssets) { - nativeBase = 'file://assets/'; - } else if (isiOSAssets) { - nativeBase = bundleUrl.substring(0, bundleUrl.lastIndexOf('/') + 1); - } else { - var host = 'localhost:12580'; - var matches = /\/\/([^\/]+?)\//.exec(this.$getConfig().bundleUrl); - if (matches && matches.length >= 2) { - host = matches[1]; - } - nativeBase = 'http://' + host + '/' + this.dir + '/build/'; - } - var h5Base = './' + this.dir + '/build/'; - - var base = nativeBase; - if ((typeof window === 'undefined' ? 'undefined' : (0, _typeof3.default)(window)) === 'object') { - base = h5Base; - } - - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - tabItem.src = base + tabItem.src; - } - }, - methods: { - ready: function ready(e) { - var vm = this; - vm.$on('tabBar.onClick', function (e) { - var detail = e.detail; - nativeLog('tabBar.onClick ' + detail.index); - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/link.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/link.js deleted file mode 100644 index 6b1e1f54..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/link.js +++ /dev/null @@ -1,109 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(266) - var __weex_script__ = __webpack_require__(267) - - __weex_define__('@weex-component/4921d4510db0a127687a84f88dda307c', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/4921d4510db0a127687a84f88dda307c',undefined,undefined) - -/***/ }, - -/***/ 266: -/***/ function(module, exports) { - - module.exports = { - "type": "text", - "classList": [ - "link" - ], - "shown": function () {return this.href}, - "events": { - "click": "_clickHandler" - }, - "attr": { - "value": function () {return this.text} - } - } - -/***/ }, - -/***/ 267: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - text: '', - href: '' - }}, - methods: { - _clickHandler: function _clickHandler() { - this.$call('modal', 'toast', { - message: 'click', - duration: 1 - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/main.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/main.js deleted file mode 100644 index ff4ffd43..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/main.js +++ /dev/null @@ -1,6051 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(274) - __webpack_require__(275) - __webpack_require__(276) - __webpack_require__(277) - __webpack_require__(278) - __webpack_require__(282) - __webpack_require__(286) - __webpack_require__(290) - var __weex_template__ = __webpack_require__(291) - var __weex_style__ = __webpack_require__(292) - var __weex_script__ = __webpack_require__(293) - - __weex_define__('@weex-component/7e1771848154855ce84d79183d543f9a', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/7e1771848154855ce84d79183d543f9a',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - }, - "panel-body": {} - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - exports.__esModule = true; - - var _iterator = __webpack_require__(111); - - var _iterator2 = _interopRequireDefault(_iterator); - - var _symbol = __webpack_require__(131); - - var _symbol2 = _interopRequireDefault(_symbol); - - var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default ? "symbol" : typeof obj; }; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { - return typeof obj === "undefined" ? "undefined" : _typeof(obj); - } : function (obj) { - return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); - }; - -/***/ }, -/* 111 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(112), __esModule: true }; - -/***/ }, -/* 112 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(113); - __webpack_require__(126); - module.exports = __webpack_require__(130).f('iterator'); - -/***/ }, -/* 113 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var $at = __webpack_require__(114)(true); - - // 21.1.3.27 String.prototype[@@iterator]() - __webpack_require__(115)(String, 'String', function(iterated){ - this._t = String(iterated); // target - this._i = 0; // next index - // 21.1.5.2.1 %StringIteratorPrototype%.next() - }, function(){ - var O = this._t - , index = this._i - , point; - if(index >= O.length)return {value: undefined, done: true}; - point = $at(O, index); - this._i += point.length; - return {value: point, done: false}; - }); - -/***/ }, -/* 114 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , defined = __webpack_require__(54); - // true -> String#at - // false -> String#codePointAt - module.exports = function(TO_STRING){ - return function(that, pos){ - var s = String(defined(that)) - , i = toInteger(pos) - , l = s.length - , a, b; - if(i < 0 || i >= l)return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; - }; - -/***/ }, -/* 115 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var LIBRARY = __webpack_require__(116) - , $export = __webpack_require__(32) - , redefine = __webpack_require__(117) - , hide = __webpack_require__(37) - , has = __webpack_require__(50) - , Iterators = __webpack_require__(118) - , $iterCreate = __webpack_require__(119) - , setToStringTag = __webpack_require__(123) - , getPrototypeOf = __webpack_require__(125) - , ITERATOR = __webpack_require__(124)('iterator') - , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next` - , FF_ITERATOR = '@@iterator' - , KEYS = 'keys' - , VALUES = 'values'; - - var returnThis = function(){ return this; }; - - module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){ - $iterCreate(Constructor, NAME, next); - var getMethod = function(kind){ - if(!BUGGY && kind in proto)return proto[kind]; - switch(kind){ - case KEYS: return function keys(){ return new Constructor(this, kind); }; - case VALUES: return function values(){ return new Constructor(this, kind); }; - } return function entries(){ return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator' - , DEF_VALUES = DEFAULT == VALUES - , VALUES_BUG = false - , proto = Base.prototype - , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT] - , $default = $native || getMethod(DEFAULT) - , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined - , $anyNative = NAME == 'Array' ? proto.entries || $native : $native - , methods, key, IteratorPrototype; - // Fix native - if($anyNative){ - IteratorPrototype = getPrototypeOf($anyNative.call(new Base)); - if(IteratorPrototype !== Object.prototype){ - // Set @@toStringTag to native iterators - setToStringTag(IteratorPrototype, TAG, true); - // fix for some old engines - if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis); - } - } - // fix Array#{values, @@iterator}.name in V8 / FF - if(DEF_VALUES && $native && $native.name !== VALUES){ - VALUES_BUG = true; - $default = function values(){ return $native.call(this); }; - } - // Define iterator - if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){ - hide(proto, ITERATOR, $default); - } - // Plug for library - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if(DEFAULT){ - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if(FORCED)for(key in methods){ - if(!(key in proto))redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; - }; - -/***/ }, -/* 116 */ -/***/ function(module, exports) { - - module.exports = true; - -/***/ }, -/* 117 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(37); - -/***/ }, -/* 118 */ -/***/ function(module, exports) { - - module.exports = {}; - -/***/ }, -/* 119 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var create = __webpack_require__(120) - , descriptor = __webpack_require__(46) - , setToStringTag = __webpack_require__(123) - , IteratorPrototype = {}; - - // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() - __webpack_require__(37)(IteratorPrototype, __webpack_require__(124)('iterator'), function(){ return this; }); - - module.exports = function(Constructor, NAME, next){ - Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)}); - setToStringTag(Constructor, NAME + ' Iterator'); - }; - -/***/ }, -/* 120 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) - var anObject = __webpack_require__(39) - , dPs = __webpack_require__(121) - , enumBugKeys = __webpack_require__(62) - , IE_PROTO = __webpack_require__(59)('IE_PROTO') - , Empty = function(){ /* empty */ } - , PROTOTYPE = 'prototype'; - - // Create object with fake `null` prototype: use iframe Object with cleared prototype - var createDict = function(){ - // Thrash, waste and sodomy: IE GC bug - var iframe = __webpack_require__(44)('iframe') - , i = enumBugKeys.length - , lt = '<' - , gt = '>' - , iframeDocument; - iframe.style.display = 'none'; - __webpack_require__(122).appendChild(iframe); - iframe.src = 'javascript:'; // eslint-disable-line no-script-url - // createDict = iframe.contentWindow.Object; - // html.removeChild(iframe); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - createDict = iframeDocument.F; - while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]]; - return createDict(); - }; - - module.exports = Object.create || function create(O, Properties){ - var result; - if(O !== null){ - Empty[PROTOTYPE] = anObject(O); - result = new Empty; - Empty[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = createDict(); - return Properties === undefined ? result : dPs(result, Properties); - }; - - -/***/ }, -/* 121 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , anObject = __webpack_require__(39) - , getKeys = __webpack_require__(48); - - module.exports = __webpack_require__(42) ? Object.defineProperties : function defineProperties(O, Properties){ - anObject(O); - var keys = getKeys(Properties) - , length = keys.length - , i = 0 - , P; - while(length > i)dP.f(O, P = keys[i++], Properties[P]); - return O; - }; - -/***/ }, -/* 122 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(33).document && document.documentElement; - -/***/ }, -/* 123 */ -/***/ function(module, exports, __webpack_require__) { - - var def = __webpack_require__(38).f - , has = __webpack_require__(50) - , TAG = __webpack_require__(124)('toStringTag'); - - module.exports = function(it, tag, stat){ - if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); - }; - -/***/ }, -/* 124 */ -/***/ function(module, exports, __webpack_require__) { - - var store = __webpack_require__(60)('wks') - , uid = __webpack_require__(61) - , Symbol = __webpack_require__(33).Symbol - , USE_SYMBOL = typeof Symbol == 'function'; - - var $exports = module.exports = function(name){ - return store[name] || (store[name] = - USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); - }; - - $exports.store = store; - -/***/ }, -/* 125 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) - var has = __webpack_require__(50) - , toObject = __webpack_require__(65) - , IE_PROTO = __webpack_require__(59)('IE_PROTO') - , ObjectProto = Object.prototype; - - module.exports = Object.getPrototypeOf || function(O){ - O = toObject(O); - if(has(O, IE_PROTO))return O[IE_PROTO]; - if(typeof O.constructor == 'function' && O instanceof O.constructor){ - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; - }; - -/***/ }, -/* 126 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(127); - var global = __webpack_require__(33) - , hide = __webpack_require__(37) - , Iterators = __webpack_require__(118) - , TO_STRING_TAG = __webpack_require__(124)('toStringTag'); - - for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){ - var NAME = collections[i] - , Collection = global[NAME] - , proto = Collection && Collection.prototype; - if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = Iterators.Array; - } - -/***/ }, -/* 127 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var addToUnscopables = __webpack_require__(128) - , step = __webpack_require__(129) - , Iterators = __webpack_require__(118) - , toIObject = __webpack_require__(51); - - // 22.1.3.4 Array.prototype.entries() - // 22.1.3.13 Array.prototype.keys() - // 22.1.3.29 Array.prototype.values() - // 22.1.3.30 Array.prototype[@@iterator]() - module.exports = __webpack_require__(115)(Array, 'Array', function(iterated, kind){ - this._t = toIObject(iterated); // target - this._i = 0; // next index - this._k = kind; // kind - // 22.1.5.2.1 %ArrayIteratorPrototype%.next() - }, function(){ - var O = this._t - , kind = this._k - , index = this._i++; - if(!O || index >= O.length){ - this._t = undefined; - return step(1); - } - if(kind == 'keys' )return step(0, index); - if(kind == 'values')return step(0, O[index]); - return step(0, [index, O[index]]); - }, 'values'); - - // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) - Iterators.Arguments = Iterators.Array; - - addToUnscopables('keys'); - addToUnscopables('values'); - addToUnscopables('entries'); - -/***/ }, -/* 128 */ -/***/ function(module, exports) { - - module.exports = function(){ /* empty */ }; - -/***/ }, -/* 129 */ -/***/ function(module, exports) { - - module.exports = function(done, value){ - return {value: value, done: !!done}; - }; - -/***/ }, -/* 130 */ -/***/ function(module, exports, __webpack_require__) { - - exports.f = __webpack_require__(124); - -/***/ }, -/* 131 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(132), __esModule: true }; - -/***/ }, -/* 132 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(133); - __webpack_require__(142); - __webpack_require__(143); - __webpack_require__(144); - module.exports = __webpack_require__(34).Symbol; - -/***/ }, -/* 133 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // ECMAScript 6 symbols shim - var global = __webpack_require__(33) - , has = __webpack_require__(50) - , DESCRIPTORS = __webpack_require__(42) - , $export = __webpack_require__(32) - , redefine = __webpack_require__(117) - , META = __webpack_require__(134).KEY - , $fails = __webpack_require__(43) - , shared = __webpack_require__(60) - , setToStringTag = __webpack_require__(123) - , uid = __webpack_require__(61) - , wks = __webpack_require__(124) - , wksExt = __webpack_require__(130) - , wksDefine = __webpack_require__(135) - , keyOf = __webpack_require__(136) - , enumKeys = __webpack_require__(137) - , isArray = __webpack_require__(138) - , anObject = __webpack_require__(39) - , toIObject = __webpack_require__(51) - , toPrimitive = __webpack_require__(45) - , createDesc = __webpack_require__(46) - , _create = __webpack_require__(120) - , gOPNExt = __webpack_require__(139) - , $GOPD = __webpack_require__(141) - , $DP = __webpack_require__(38) - , $keys = __webpack_require__(48) - , gOPD = $GOPD.f - , dP = $DP.f - , gOPN = gOPNExt.f - , $Symbol = global.Symbol - , $JSON = global.JSON - , _stringify = $JSON && $JSON.stringify - , PROTOTYPE = 'prototype' - , HIDDEN = wks('_hidden') - , TO_PRIMITIVE = wks('toPrimitive') - , isEnum = {}.propertyIsEnumerable - , SymbolRegistry = shared('symbol-registry') - , AllSymbols = shared('symbols') - , OPSymbols = shared('op-symbols') - , ObjectProto = Object[PROTOTYPE] - , USE_NATIVE = typeof $Symbol == 'function' - , QObject = global.QObject; - // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 - var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; - - // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 - var setSymbolDesc = DESCRIPTORS && $fails(function(){ - return _create(dP({}, 'a', { - get: function(){ return dP(this, 'a', {value: 7}).a; } - })).a != 7; - }) ? function(it, key, D){ - var protoDesc = gOPD(ObjectProto, key); - if(protoDesc)delete ObjectProto[key]; - dP(it, key, D); - if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc); - } : dP; - - var wrap = function(tag){ - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - sym._k = tag; - return sym; - }; - - var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){ - return typeof it == 'symbol'; - } : function(it){ - return it instanceof $Symbol; - }; - - var $defineProperty = function defineProperty(it, key, D){ - if(it === ObjectProto)$defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - if(has(AllSymbols, key)){ - if(!D.enumerable){ - if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false; - D = _create(D, {enumerable: createDesc(0, false)}); - } return setSymbolDesc(it, key, D); - } return dP(it, key, D); - }; - var $defineProperties = function defineProperties(it, P){ - anObject(it); - var keys = enumKeys(P = toIObject(P)) - , i = 0 - , l = keys.length - , key; - while(l > i)$defineProperty(it, key = keys[i++], P[key]); - return it; - }; - var $create = function create(it, P){ - return P === undefined ? _create(it) : $defineProperties(_create(it), P); - }; - var $propertyIsEnumerable = function propertyIsEnumerable(key){ - var E = isEnum.call(this, key = toPrimitive(key, true)); - if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; - }; - var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){ - it = toIObject(it); - key = toPrimitive(key, true); - if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return; - var D = gOPD(it, key); - if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true; - return D; - }; - var $getOwnPropertyNames = function getOwnPropertyNames(it){ - var names = gOPN(toIObject(it)) - , result = [] - , i = 0 - , key; - while(names.length > i){ - if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key); - } return result; - }; - var $getOwnPropertySymbols = function getOwnPropertySymbols(it){ - var IS_OP = it === ObjectProto - , names = gOPN(IS_OP ? OPSymbols : toIObject(it)) - , result = [] - , i = 0 - , key; - while(names.length > i){ - if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]); - } return result; - }; - - // 19.4.1.1 Symbol([description]) - if(!USE_NATIVE){ - $Symbol = function Symbol(){ - if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - var $set = function(value){ - if(this === ObjectProto)$set.call(OPSymbols, value); - if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set}); - return wrap(tag); - }; - redefine($Symbol[PROTOTYPE], 'toString', function toString(){ - return this._k; - }); - - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __webpack_require__(140).f = gOPNExt.f = $getOwnPropertyNames; - __webpack_require__(64).f = $propertyIsEnumerable; - __webpack_require__(63).f = $getOwnPropertySymbols; - - if(DESCRIPTORS && !__webpack_require__(116)){ - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function(name){ - return wrap(wks(name)); - } - } - - $export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol}); - - for(var symbols = ( - // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' - ).split(','), i = 0; symbols.length > i; )wks(symbols[i++]); - - for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]); - - $export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - // 19.4.2.1 Symbol.for(key) - 'for': function(key){ - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(key){ - if(isSymbol(key))return keyOf(SymbolRegistry, key); - throw TypeError(key + ' is not a symbol!'); - }, - useSetter: function(){ setter = true; }, - useSimple: function(){ setter = false; } - }); - - $export($export.S + $export.F * !USE_NATIVE, 'Object', { - // 19.1.2.2 Object.create(O [, Properties]) - create: $create, - // 19.1.2.4 Object.defineProperty(O, P, Attributes) - defineProperty: $defineProperty, - // 19.1.2.3 Object.defineProperties(O, Properties) - defineProperties: $defineProperties, - // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - // 19.1.2.7 Object.getOwnPropertyNames(O) - getOwnPropertyNames: $getOwnPropertyNames, - // 19.1.2.8 Object.getOwnPropertySymbols(O) - getOwnPropertySymbols: $getOwnPropertySymbols - }); - - // 24.3.2 JSON.stringify(value [, replacer [, space]]) - $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){ - var S = $Symbol(); - // MS Edge converts symbol values to JSON as {} - // WebKit converts symbol values to JSON as null - // V8 throws on boxed symbols - return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}'; - })), 'JSON', { - stringify: function stringify(it){ - if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined - var args = [it] - , i = 1 - , replacer, $replacer; - while(arguments.length > i)args.push(arguments[i++]); - replacer = args[1]; - if(typeof replacer == 'function')$replacer = replacer; - if($replacer || !isArray(replacer))replacer = function(key, value){ - if($replacer)value = $replacer.call(this, key, value); - if(!isSymbol(value))return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } - }); - - // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) - $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(37)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); - // 19.4.3.5 Symbol.prototype[@@toStringTag] - setToStringTag($Symbol, 'Symbol'); - // 20.2.1.9 Math[@@toStringTag] - setToStringTag(Math, 'Math', true); - // 24.3.3 JSON[@@toStringTag] - setToStringTag(global.JSON, 'JSON', true); - -/***/ }, -/* 134 */ -/***/ function(module, exports, __webpack_require__) { - - var META = __webpack_require__(61)('meta') - , isObject = __webpack_require__(40) - , has = __webpack_require__(50) - , setDesc = __webpack_require__(38).f - , id = 0; - var isExtensible = Object.isExtensible || function(){ - return true; - }; - var FREEZE = !__webpack_require__(43)(function(){ - return isExtensible(Object.preventExtensions({})); - }); - var setMeta = function(it){ - setDesc(it, META, {value: { - i: 'O' + ++id, // object ID - w: {} // weak collections IDs - }}); - }; - var fastKey = function(it, create){ - // return primitive with prefix - if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if(!has(it, META)){ - // can't set metadata to uncaught frozen object - if(!isExtensible(it))return 'F'; - // not necessary to add metadata - if(!create)return 'E'; - // add missing metadata - setMeta(it); - // return object ID - } return it[META].i; - }; - var getWeak = function(it, create){ - if(!has(it, META)){ - // can't set metadata to uncaught frozen object - if(!isExtensible(it))return true; - // not necessary to add metadata - if(!create)return false; - // add missing metadata - setMeta(it); - // return hash weak collections IDs - } return it[META].w; - }; - // add metadata on freeze-family methods calling - var onFreeze = function(it){ - if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it); - return it; - }; - var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze - }; - -/***/ }, -/* 135 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , LIBRARY = __webpack_require__(116) - , wksExt = __webpack_require__(130) - , defineProperty = __webpack_require__(38).f; - module.exports = function(name){ - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)}); - }; - -/***/ }, -/* 136 */ -/***/ function(module, exports, __webpack_require__) { - - var getKeys = __webpack_require__(48) - , toIObject = __webpack_require__(51); - module.exports = function(object, el){ - var O = toIObject(object) - , keys = getKeys(O) - , length = keys.length - , index = 0 - , key; - while(length > index)if(O[key = keys[index++]] === el)return key; - }; - -/***/ }, -/* 137 */ -/***/ function(module, exports, __webpack_require__) { - - // all enumerable object keys, includes symbols - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64); - module.exports = function(it){ - var result = getKeys(it) - , getSymbols = gOPS.f; - if(getSymbols){ - var symbols = getSymbols(it) - , isEnum = pIE.f - , i = 0 - , key; - while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key); - } return result; - }; - -/***/ }, -/* 138 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.2.2 IsArray(argument) - var cof = __webpack_require__(53); - module.exports = Array.isArray || function isArray(arg){ - return cof(arg) == 'Array'; - }; - -/***/ }, -/* 139 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window - var toIObject = __webpack_require__(51) - , gOPN = __webpack_require__(140).f - , toString = {}.toString; - - var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - - var getWindowNames = function(it){ - try { - return gOPN(it); - } catch(e){ - return windowNames.slice(); - } - }; - - module.exports.f = function getOwnPropertyNames(it){ - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); - }; - - -/***/ }, -/* 140 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) - var $keys = __webpack_require__(49) - , hiddenKeys = __webpack_require__(62).concat('length', 'prototype'); - - exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){ - return $keys(O, hiddenKeys); - }; - -/***/ }, -/* 141 */ -/***/ function(module, exports, __webpack_require__) { - - var pIE = __webpack_require__(64) - , createDesc = __webpack_require__(46) - , toIObject = __webpack_require__(51) - , toPrimitive = __webpack_require__(45) - , has = __webpack_require__(50) - , IE8_DOM_DEFINE = __webpack_require__(41) - , gOPD = Object.getOwnPropertyDescriptor; - - exports.f = __webpack_require__(42) ? gOPD : function getOwnPropertyDescriptor(O, P){ - O = toIObject(O); - P = toPrimitive(P, true); - if(IE8_DOM_DEFINE)try { - return gOPD(O, P); - } catch(e){ /* empty */ } - if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]); - }; - -/***/ }, -/* 142 */ -/***/ function(module, exports) { - - - -/***/ }, -/* 143 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(135)('asyncIterator'); - -/***/ }, -/* 144 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(135)('observable'); - -/***/ }, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */, -/* 183 */, -/* 184 */, -/* 185 */, -/* 186 */, -/* 187 */, -/* 188 */, -/* 189 */, -/* 190 */, -/* 191 */, -/* 192 */, -/* 193 */, -/* 194 */, -/* 195 */, -/* 196 */, -/* 197 */, -/* 198 */, -/* 199 */, -/* 200 */, -/* 201 */, -/* 202 */, -/* 203 */, -/* 204 */, -/* 205 */, -/* 206 */, -/* 207 */, -/* 208 */, -/* 209 */, -/* 210 */, -/* 211 */, -/* 212 */, -/* 213 */, -/* 214 */, -/* 215 */, -/* 216 */, -/* 217 */, -/* 218 */, -/* 219 */, -/* 220 */, -/* 221 */, -/* 222 */, -/* 223 */, -/* 224 */, -/* 225 */, -/* 226 */, -/* 227 */, -/* 228 */, -/* 229 */, -/* 230 */, -/* 231 */, -/* 232 */, -/* 233 */, -/* 234 */, -/* 235 */, -/* 236 */, -/* 237 */, -/* 238 */, -/* 239 */, -/* 240 */, -/* 241 */, -/* 242 */, -/* 243 */, -/* 244 */ -/***/ function(module, exports) { - - module.exports = { - "type": "image", - "style": { - "width": function () {return this.width}, - "height": function () {return this.height} - }, - "attr": { - "src": function () {return this.src}, - "imageQuality": function () {return this.quality} - }, - "events": { - "click": "_clickHandler" - } - } - -/***/ }, -/* 245 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - quality: 'normal', - width: 0, - height: 0, - src: '', - href: '', - spmc: 0, - spmd: 0 - }}, - methods: { - ready: function ready() {}, - _clickHandler: function _clickHandler() { - this.$call('modal', 'toast', { - message: 'click', - duration: 1 - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 246 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(244) - var __weex_script__ = __webpack_require__(245) - - __weex_define__('@weex-component/banner', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - -/***/ }, -/* 247 */ -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "children": [ - { - "type": "container", - "shown": function () {return this.direction==='row'}, - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "container", - "repeat": function () {return this.ds}, - "style": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "marginLeft": function () {return this.space} - }, - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "src": function () {return this.img}, - "href": function () {return this.url} - } - } - ] - } - ] - }, - { - "type": "container", - "shown": function () {return this.direction==='column'}, - "children": [ - { - "type": "container", - "repeat": function () {return this.ds}, - "style": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "marginTop": function () {return this.space} - }, - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "src": function () {return this.img}, - "href": function () {return this.url} - } - } - ] - } - ] - } - ] - } - -/***/ }, -/* 248 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - space: 0, - width: 0, - height: 0, - spmc: 0, - spmdprefix: '', - ds: [] - }}, - methods: { - ready: function ready() { - var self = this; - var ds = self.ds; - var length = ds.length; - for (var i = 0; i < length; i++) { - var item = ds[i]; - item.index = i; - item.space = i % length === 0 ? 0 : self.space; - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 249 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(246) - var __weex_template__ = __webpack_require__(247) - var __weex_script__ = __webpack_require__(248) - - __weex_define__('@weex-component/banners', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - -/***/ }, -/* 250 */ -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "classList": [ - "container" - ], - "children": [ - { - "type": "image", - "shown": function () {return this.ds.floorTitle}, - "classList": [ - "title" - ], - "attr": { - "src": function () {return this.ds.floorTitle} - } - }, - { - "type": "container", - "style": { - "marginLeft": 4, - "marginRight": 4 - }, - "children": [ - { - "type": "banners", - "attr": { - "ds": function () {return this.bannerItems}, - "direction": "column", - "width": function () {return this.NUMBER_742}, - "height": function () {return this.NUMBER_230}, - "space": function () {return this.NUMBER_4} - } - } - ] - } - ] - } - -/***/ }, -/* 251 */ -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "container": { - "marginBottom": 4, - "backgroundColor": "#C0BABC" - } - } - -/***/ }, -/* 252 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - module.exports = { - data: function () {return { - NUMBER_742: 742, - NUMBER_230: 230, - NUMBER_4: 4 - }}, - methods: { - ready: function ready() { - var self = this; - self._randomBrand(); - }, - _randomBrand: function _randomBrand() { - var self = this; - var bannerItems = self.ds.bannerItems; - bannerItems = bannerItems.sort(function () { - return Math.random() - 0.5; - }); - self.bannerItems = bannerItems.slice(0, 8); - for (var i = 0; i < bannerItems.length; i++) { - var item = bannerItems[i]; - if (i % 2 === 0) { - item.img = item.leftImg; - item.url = item.rightUrl; - } else { - item.img = item.rightImg; - item.url = item.rightUrl; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 253 */ -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "children": [ - { - "type": "image", - "shown": function () {return this.ds.floorTitle}, - "classList": [ - "title" - ], - "attr": { - "src": function () {return this.ds.floorTitle} - } - }, - { - "type": "container", - "classList": [ - "item-container" - ], - "children": [ - { - "type": "container", - "repeat": function () {return this.items}, - "style": { - "width": 750, - "paddingBottom": 14, - "backgroundColor": function () {return this.colour} - }, - "children": [ - { - "type": "container", - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_750}, - "height": function () {return this.NUMBER_237}, - "src": function () {return this.bannerImg}, - "href": function () {return this.bannerUrl} - } - } - ] - }, - { - "type": "container", - "classList": [ - "shop-list" - ], - "children": [ - { - "type": "container", - "repeat": function () {return this.shopList}, - "classList": [ - "shop-img-container" - ], - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_186}, - "height": function () {return this.NUMBER_208}, - "src": function () {return this.picUrl}, - "href": function () {return this.shopUrl} - } - } - ] - } - ] - } - ] - } - ] - }, - { - "type": "container", - "classList": [ - "sub-item-container" - ], - "style": { - "height": function () {return Math.round(this.subItems.length/3)*(241+3)} - }, - "children": [ - { - "type": "container", - "repeat": function () {return this.subItems}, - "classList": [ - "sub-item" - ], - "style": { - "top": function () {return this.top}, - "left": function () {return this.left} - }, - "children": [ - { - "type": "image", - "classList": [ - "sub-item-bg" - ], - "attr": { - "src": function () {return this.subItemBg} - } - }, - { - "type": "container", - "classList": [ - "sub-item-img" - ], - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_248}, - "height": function () {return this.NUMBER_155}, - "src": function () {return this.industryImg}, - "href": function () {return this.industryUrl} - } - } - ] - }, - { - "type": "container", - "classList": [ - "sub-item-title" - ], - "children": [ - { - "type": "text", - "classList": [ - "industry-title" - ], - "attr": { - "href": function () {return this.industryUrl}, - "value": function () {return this.industryTitle} - } - }, - { - "type": "text", - "classList": [ - "industry-benefit" - ], - "attr": { - "href": function () {return this.industryUrl}, - "value": function () {return this.industryBenefit} - } - } - ] - } - ] - } - ] - } - ] - } - -/***/ }, -/* 254 */ -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "shop-list": { - "flexDirection": "row" - }, - "shop-img-container": { - "marginRight": 2 - }, - "sub-item": { - "position": "absolute", - "width": 248, - "height": 241, - "alignItems": "center", - "backgroundColor": "#ffffff" - }, - "sub-item-bg": { - "width": 248, - "height": 86 - }, - "sub-item-title": { - "position": "absolute", - "left": 0, - "top": 0, - "width": 248, - "textAlign": "center" - }, - "industry-title": { - "fontSize": 28, - "color": "#484848", - "textAlign": "center", - "marginTop": 10, - "height": 34 - }, - "industry-benefit": { - "fontSize": 24, - "color": "#999999", - "textAlign": "center" - } - } - -/***/ }, -/* 255 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - module.exports = { - data: function () {return { - NUMBER_248: 248, - NUMBER_155: 155, - NUMBER_373: 373, - NUMBER_237: 237, - NUMBER_186: 186, - NUMBER_208: 208, - NUMBER_750: 750, - subItemBg: '//gw.alicdn.com/tps/TB1QzUfLVXXXXaOXVXXXXXXXXXX-248-86.jpg', - items: [], - subItems: [] - }}, - methods: { - ready: function ready() { - var self = this; - self._loadData(); - }, - - _loadData: function _loadData() { - var self = this; - var content = { - "main": [{ - "shopList": [{ - "id": "619123122", - "picUrl": "//img.alicdn.com/tps/i1/TB1Cl5MLVXXXXXTaXXXSutbFXXX.jpg", - "finalScore": "0.884765209440857", - "shopUrl": "http://liangpinpuzi.tmall.com/campaign-3735-7.htm", - "entityType": "SHOP", - "brandId": "7724367" - }, { - "id": "880734502", - "picUrl": "//img.alicdn.com/tps/i1/TB1HN2XLVXXXXbkXFXXSutbFXXX.jpg", - "finalScore": "0.8822246866512714", - "shopUrl": "http://sanzhisongshu.tmall.com/campaign-3735-7.htm", - "entityType": "SHOP", - "brandId": "147280915" - }, { - "id": "392147177", - "picUrl": "//img.alicdn.com/tps/i1/TB1yq6dLVXXXXbXXpXXSutbFXXX.jpg", - "finalScore": "0.8805854724243631", - "shopUrl": "http://zhouheiya.tmall.com/campaign-3735-6.htm", - "entityType": "SHOP", - "brandId": "111496" - }, { - "id": "2081058060", - "picUrl": "//img.alicdn.com/tps/i1/TB1w4jxLVXXXXaxXXXXtKXbFXXX.gif", - "finalScore": "0.8640439551049249", - "shopUrl": "http://rongxintang.tmall.com/campaign-3735-6.htm", - "entityType": "SHOP", - "brandId": "8709890" - }], - "finalScore": "4.657333333333334", - "industryUrl": null, - "entityType": "OTHER", - "colour": "#fff5a3", - "industryTitle": null, - "bannerUrl": "//pages.tmall.com/wow/act/15617/newfood?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_12_735362&pos=1", - "leftBannerImg": "http://img.alicdn.com/tps/i1/TB1LHh4MXXXXXbsXpXXeWjm2pXX-750-240.jpg", - "_pos_": "1", - "industryBenefit": null, - "industryId": "12", - "industryImg": null, - "rightBannerImg": "//img.alicdn.com/tps/i4/TB1wshUMXXXXXXaXVXXeWjm2pXX-750-240.jpg" - }, { - "shopList": [{ - "id": "520557274", - "picUrl": "//img.alicdn.com/tps/i1/TB1aMjXLVXXXXbUaXXXSutbFXXX.jpg", - "finalScore": "0.8986382989845325", - "shopUrl": "http://newbalance.tmall.com/campaign-3735-20.htm", - "entityType": "SHOP", - "brandId": "20584" - }, { - "id": "746866993", - "picUrl": "//img.alicdn.com/tps/i1/TB1pXG9LVXXXXaLXFXXSutbFXXX.jpg", - "finalScore": "0.8917855242977327", - "shopUrl": "http://vans.tmall.com/campaign-3735-19.htm", - "entityType": "SHOP", - "brandId": "29529" - }, { - "id": "1612713147", - "picUrl": "//img.alicdn.com/tps/i1/TB1jHfXLVXXXXXPXFXXSutbFXXX.jpg", - "finalScore": "0.8895943606442631", - "shopUrl": "http://dcshoecousa.tmall.com/campaign-3735-8.htm", - "entityType": "SHOP", - "brandId": "3851662" - }, { - "id": "2379251418", - "picUrl": "//img.alicdn.com/tps/i1/TB1sbLlLVXXXXbeXXXXSutbFXXX.jpg", - "finalScore": "0.8881539668874383", - "shopUrl": "http://baijinydhw.tmall.com/campaign-3735-2.htm", - "entityType": "SHOP", - "brandId": "20579" - }], - "finalScore": "4.545333333333334", - "industryUrl": null, - "entityType": "OTHER", - "colour": "#cbdbfe", - "industryTitle": null, - "bannerUrl": "//pages.tmall.com/wow/act/15617/ydhw?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_8_735362&pos=2", - "leftBannerImg": "http://img.alicdn.com/tps/i3/TB1h4kzLVXXXXawXpXXeWjm2pXX-750-240.jpg", - "_pos_": "2", - "industryBenefit": null, - "industryId": "8", - "industryImg": null, - "rightBannerImg": "//img.alicdn.com/tps/i4/TB19VMjLVXXXXaeaXXXeWjm2pXX-750-240.jpg" - }, { - "shopList": [{ - "id": "811383091", - "picUrl": "//img.alicdn.com/tps/i1/TB1q49ZLVXXXXaJXVXXSutbFXXX.jpg", - "finalScore": "0.8723682716749482", - "shopUrl": "http://tongrentangbj.tmall.com/campaign-3735-9.htm", - "entityType": "SHOP", - "brandId": "44652" - }, { - "id": "838914626", - "picUrl": "//img.alicdn.com/tps/i1/TB1GQYbLVXXXXaXXVXXSutbFXXX.jpg", - "finalScore": "0.5027131908086584", - "shopUrl": "http://jouo.tmall.com/campaign-3735-3.htm", - "entityType": "SHOP", - "brandId": "14170081" - }, { - "id": "1077716829", - "picUrl": "//img.alicdn.com/tps/i1/TB1rdW2LVXXXXagapXXSutbFXXX.jpg", - "finalScore": "0.5015387557024262", - "shopUrl": "http://wetcode.tmall.com/campaign-3735-14.htm", - "entityType": "SHOP", - "brandId": "3675642" - }, { - "id": "1664976033", - "picUrl": "//img.alicdn.com/tps/i1/TB1Q.rpLVXXXXXiXpXXSutbFXXX.jpg", - "finalScore": "0.5014897109669442", - "shopUrl": "http://hanhoohzp.tmall.com/campaign-3735-17.htm", - "entityType": "SHOP", - "brandId": "78888695" - }], - "finalScore": "4.526666666666666", - "industryUrl": null, - "entityType": "OTHER", - "colour": "#ffd1b6", - "industryTitle": null, - "bannerUrl": "//pages.tmall.com/wow/act/15617/getbeauty?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_2_735362&pos=3", - "leftBannerImg": "http://img.alicdn.com/tps/i4/TB1Djt9MXXXXXanXXXXeWjm2pXX-750-240.jpg", - "_pos_": "3", - "industryBenefit": null, - "industryId": "2", - "industryImg": null, - "rightBannerImg": "//img.alicdn.com/tps/i3/TB1_gVQMXXXXXX9XVXXeWjm2pXX-750-240.jpg" - }, { - "shopList": [{ - "id": "2153169655", - "picUrl": "//img.alicdn.com/tps/i1/TB1nlK7LVXXXXaRXFXXSutbFXXX.jpg", - "finalScore": "0.8820210808835905", - "shopUrl": "http://ctkicks.tmall.com/campaign-3735-15.htm", - "entityType": "SHOP", - "brandId": "20584" - }, { - "id": "2784101115", - "picUrl": "//img.alicdn.com/tps/i1/TB1RrS.LVXXXXcrXpXXSutbFXXX.jpg", - "finalScore": "0.5930383227012586", - "shopUrl": "http://tomtailor.tmall.com/campaign-3735-0.htm", - "entityType": "SHOP", - "brandId": "213474060" - }, { - "id": "2183813726", - "picUrl": "//img.alicdn.com/tps/i1/TB1kmS_LVXXXXaBaXXXSutbFXXX.jpg", - "finalScore": "0.5882558957771681", - "shopUrl": "http://huaiyuan.tmall.com/campaign-3735-5.htm", - "entityType": "SHOP", - "brandId": "29465" - }, { - "id": "1785908005", - "picUrl": "//img.alicdn.com/tps/i1/TB1dB6zLVXXXXcJXXXXSutbFXXX.jpg", - "finalScore": "0.5694211862124341", - "shopUrl": "http://axonus.tmall.com/campaign-3735-1.htm", - "entityType": "SHOP", - "brandId": "115035841" - }], - "finalScore": "4.413955555555555", - "industryUrl": null, - "entityType": "OTHER", - "colour": "#b9eaf2", - "industryTitle": null, - "bannerUrl": "//pages.tmall.com/wow/act/15617/guojixfs?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_1_735362&pos=4", - "leftBannerImg": "http://img.alicdn.com/tps/i3/TB1_T7ALVXXXXXOXXXXeWjm2pXX-750-240.jpg", - "_pos_": "4", - "industryBenefit": null, - "industryId": "1", - "industryImg": null, - "rightBannerImg": "//img.alicdn.com/tps/i2/TB1s7koLVXXXXafXFXXeWjm2pXX-750-240.jpg" - }, { - "shopList": [{ - "id": "2453054335", - "picUrl": "//img.alicdn.com/tps/i1/TB1RX_vLVXXXXchXpXXSutbFXXX.jpg", - "finalScore": "0.8463447899590267", - "shopUrl": "http://nanshizixing.tmall.com/campaign-3735-2.htm", - "entityType": "SHOP", - "brandId": "844502560" - }, { - "id": "1041773234", - "picUrl": "//img.alicdn.com/tps/i1/TB1Q7jpLVXXXXX8XpXXSutbFXXX.jpg", - "finalScore": "0.560952734503075", - "shopUrl": "http://dapu.tmall.com/campaign-3735-8.htm", - "entityType": "SHOP", - "brandId": "14493763" - }, { - "id": "300031438", - "picUrl": "//img.alicdn.com/tps/i1/TB13VC4LVXXXXarXVXXSutbFXXX.jpg", - "finalScore": "0.5450674634839442", - "shopUrl": "http://kangerxin.tmall.com/campaign-3735-10.htm", - "entityType": "SHOP", - "brandId": "3781905" - }, { - "id": "92042735", - "picUrl": "//img.alicdn.com/tps/i1/TB1PxYcLVXXXXasaXXXSutbFXXX.jpg", - "finalScore": "0.5448023228053981", - "shopUrl": "http://shuixing.tmall.com/campaign-3735-10.htm", - "entityType": "SHOP", - "brandId": "3685660" - }], - "finalScore": "4.13", - "industryUrl": null, - "entityType": "OTHER", - "colour": "#bbffe5", - "industryTitle": null, - "bannerUrl": "//pages.tmall.com/wow/act/15617/jfjs?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_4_735362&pos=5", - "leftBannerImg": "http://img.alicdn.com/tps/i3/TB1jeoCLVXXXXcoXXXXeWjm2pXX-750-240.jpg", - "_pos_": "5", - "industryBenefit": null, - "industryId": "4", - "industryImg": null, - "rightBannerImg": "//img.alicdn.com/tps/i4/TB1C5.fLVXXXXb3aXXXeWjm2pXX-750-240.jpg" - }, { - "shopList": [{ - "id": "822428555", - "picUrl": "//img.alicdn.com/tps/i1/TB1g46aLVXXXXcUXVXXSutbFXXX.jpg", - "finalScore": "0.9183458776971917", - "shopUrl": "http://playboyyd.tmall.com/campaign-3735-11.htm", - "entityType": "SHOP", - "brandId": "29510" - }, { - "id": "196993935", - "picUrl": "//img.alicdn.com/tps/i1/TB1pHG8LVXXXXbraXXXSutbFXXX.jpg", - "finalScore": "0.9105525246667775", - "shopUrl": "https://uniqlo.tmall.com/campaign-3735-56.htm", - "entityType": "SHOP", - "brandId": "29527" - }, { - "id": "505753958", - "picUrl": "//img.alicdn.com/tps/i1/TB1WKYyLVXXXXXHXXXXSutbFXXX.jpg", - "finalScore": "0.90750966370726", - "shopUrl": "http://bonas.tmall.com/campaign-3735-11.htm", - "entityType": "SHOP", - "brandId": "3486580" - }, { - "id": "2113823580", - "picUrl": "//img.alicdn.com/tps/i1/TB1itHkLVXXXXX9XFXXSutbFXXX.jpg", - "finalScore": "0.5900977955635289", - "shopUrl": "http://kafanya.tmall.com/campaign-3735-7.htm", - "entityType": "SHOP", - "brandId": "110684218" - }], - "finalScore": "4.088", - "industryUrl": null, - "entityType": "OTHER", - "colour": "#ffc7c9", - "industryTitle": null, - "bannerUrl": "//pages.tmall.com/wow/act/15617/neiyi328?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_9_735362&pos=6", - "leftBannerImg": "http://img.alicdn.com/tps/i1/TB1tl3tLVXXXXbbXFXXeWjm2pXX-750-240.jpg", - "_pos_": "6", - "industryBenefit": null, - "industryId": "9", - "industryImg": null, - "rightBannerImg": "//img.alicdn.com/tps/i2/TB1AkIyLVXXXXbjXpXXeWjm2pXX-750-240.jpg" - }], - "sub": [{ - "shopList": null, - "finalScore": "4.033333333333333", - "industryUrl": "//pages.tmall.com/wow/act/15617/zbps?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_3_735362&pos=7", - "entityType": "OTHER", - "colour": "#bbffe5", - "industryTitle": "珠宝配饰", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "7", - "industryBenefit": "大牌1折秒杀", - "industryId": "3", - "industryImg": "//img.alicdn.com/tps/i1/TB1s5y.LVXXXXb.aXXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "3.8773333333333335", - "industryUrl": "//pages.tmall.com/wow/act/15617/dqc?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_15_735362&pos=8", - "entityType": "OTHER", - "colour": "#b4ebff", - "industryTitle": "数码", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "8", - "industryBenefit": "疯抢大牌新品", - "industryId": "15", - "industryImg": "//img.alicdn.com/tps/i4/TB1_xG.LVXXXXbWaXXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "3.8359999999999994", - "industryUrl": "//pages.tmall.com/wow/act/15617/man?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_6_735362&pos=9", - "entityType": "OTHER", - "colour": "#cbe9a9", - "industryTitle": "男装", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "9", - "industryBenefit": "新品低至9.9元", - "industryId": "6", - "industryImg": "//img.alicdn.com/tps/i1/TB1mO2qLVXXXXXiXFXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "3.243333333333333", - "industryUrl": "//pages.tmall.com/wow/act/15617/xihu?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_13_735362&pos=10", - "entityType": "OTHER", - "colour": "#cdffa4", - "industryTitle": "洗护", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "10", - "industryBenefit": "爆款1分钱抢", - "industryId": "13", - "industryImg": "//img.alicdn.com/tps/i3/TB1Ft_CLVXXXXX2XXXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "3.1553333333333335", - "industryUrl": "//pages.tmall.com/wow/act/15617/myxfs?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_5_735362&pos=11", - "entityType": "OTHER", - "colour": "#f8e1ff", - "industryTitle": "母婴童装", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "11", - "industryBenefit": "跨店满299减40", - "industryId": "5", - "industryImg": "//img.alicdn.com/tps/i4/TB1c.HvLVXXXXXPXpXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "2.6739999999999995", - "industryUrl": "//pages.tmall.com/wow/act/15617/nvzhuang?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_7_735362&pos=12", - "entityType": "OTHER", - "colour": "#d5cbe8", - "industryTitle": "女装", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "12", - "industryBenefit": "折后用券抢新", - "industryId": "7", - "industryImg": "//img.alicdn.com/tps/i3/TB1JdfsLVXXXXbRXpXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "0.0", - "industryUrl": "//pages.tmall.com/wow/act/15617/mobilephone?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_14_735362&pos=13", - "entityType": "OTHER", - "colour": "#c5ffdf", - "industryTitle": "手机", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "13", - "industryBenefit": "1元抢优惠券", - "industryId": "14", - "industryImg": "//img.alicdn.com/tps/i4/TB1M3zhLVXXXXX4XVXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "0.0", - "industryUrl": "//pages.tmall.com/wow/act/15617/xiangbaohuanxin?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_11_735362&pos=14", - "entityType": "OTHER", - "colour": "#ffccdc", - "industryTitle": "箱包", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "14", - "industryBenefit": "极致焕新尖货", - "industryId": "11", - "industryImg": "//img.alicdn.com/tps/i3/TB1gE6kLVXXXXcrXFXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "0.0", - "industryUrl": "//pages.tmall.com/wow/act/15617/newnv?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_10_735362&pos=15", - "entityType": "OTHER", - "colour": "#fff8ee", - "industryTitle": "鞋履", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "15", - "industryBenefit": "潮品精选鞋履", - "industryId": "10", - "industryImg": "//img.alicdn.com/tps/i3/TB1.qzpLVXXXXX.XFXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }], - "isFormal": "false", - "exposureParam": "//ac.mmstat.com/1.gif?apply=vote&abbucket=_AB-M1011_B14&com=02&acm=03654.1003.1.735362&cod=03654&cache=U5revsTn&aldid=KXPpnvEH&logtype=4&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.735362&ip=", - "id": "03654" - }; - self._processData(content); - }, - _processData: function _processData(content) { - var self = this; - var items = content.main; - var subItems = content.sub; - for (var j = 0; j < items.length; j++) { - var item = items[j]; - item.index = j; - item.bannerImg = j % 2 === 0 ? item.leftBannerImg : item.rightBannerImg; - if (item.shopList) { - for (var n = 0; n < item.shopList.length; n++) { - item.shopList[n].idx = n; - } - } - } - - for (var i = 0; i < subItems.length; i++) { - var subItem = subItems[i]; - subItem.index = i; - subItem.top = (i - i % 3) / 3 * (241 + 3); - subItem.left = i % 3 * (248 + 3); - } - - self.items = items; - self.subItems = subItems; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 256 */ -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "children": [ - { - "type": "image", - "shown": function () {return this.ds.floorTitle}, - "classList": [ - "title" - ], - "attr": { - "src": function () {return this.ds.floorTitle} - } - }, - { - "type": "container", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "image", - "classList": [ - "img" - ], - "attr": { - "src": function () {return this.currentStatus} - } - }, - { - "type": "container", - "classList": [ - "my-coupon" - ], - "events": { - "click": "handleClick" - } - }, - { - "type": "container", - "classList": [ - "guides" - ], - "events": { - "click": "handleClick" - } - }, - { - "type": "container", - "classList": [ - "lottery" - ], - "events": { - "click": "handleClick" - } - } - ] - } - ] - } - -/***/ }, -/* 257 */ -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "wrapper": { - "color": "#FF4550", - "width": 750, - "height": 230 - }, - "my-coupon": { - "width": 180, - "height": 39, - "position": "absolute", - "top": 15, - "right": 149 - }, - "guides": { - "height": 39, - "width": 110, - "position": "absolute", - "top": 15, - "right": 32 - }, - "lottery": { - "width": 348, - "height": 76, - "position": "absolute", - "top": 132, - "right": 70 - }, - "info": { - "fontSize": 18, - "position": "absolute", - "top": 84, - "right": 70 - }, - "img": { - "width": 750, - "height": 230 - } - } - -/***/ }, -/* 258 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var IS_WEB = typeof window !== 'undefined'; - var IS_APP = !IS_WEB || /AliApp\((?:tb|tm)/i.test(navigator.userAgent); - - module.exports = { - data: function () {return { - currentStatus: '//img.alicdn.com/tps/i4/TB1cYBKMXXXXXayaXXXkxHk2pXX-750-228.jpg_q75.jpg' - }}, - methods: { - ready: function ready() {}, - handleClick: function handleClick(e) { - this.$call('modal', 'toast', { - message: 'click', - duration: 1 - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 259 */, -/* 260 */, -/* 261 */, -/* 262 */ -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "shown": function () {return !this.ds.isHide}, - "children": [ - { - "type": "image", - "shown": function () {return this.ds.floorTitle}, - "classList": [ - "title" - ], - "attr": { - "src": function () {return this.ds.floorTitle} - } - }, - { - "type": "slider", - "classList": [ - "slider" - ], - "attr": { - "showIndicators": "true", - "autoPlay": "true", - "interval": "3000" - }, - "children": [ - { - "type": "container", - "classList": [ - "pannel" - ], - "repeat": function () {return this.ds.bannerItems}, - "children": [ - { - "type": "container", - "children": [ - { - "type": "banner", - "style": { - "marginBottom": 4 - }, - "attr": { - "width": function () {return this.NUMBER_251}, - "height": function () {return this.NUMBER_292}, - "src": function () {return this.img1}, - "href": function () {return this.url1} - } - }, - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_251}, - "height": function () {return this.NUMBER_292}, - "src": function () {return this.img2}, - "href": function () {return this.url2} - } - } - ] - }, - { - "type": "container", - "classList": [ - "middle-col" - ], - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_240}, - "height": function () {return this.NUMBER_588}, - "src": function () {return this.img3}, - "href": function () {return this.url3} - } - } - ] - }, - { - "type": "container", - "children": [ - { - "type": "banner", - "style": { - "marginBottom": 4 - }, - "attr": { - "width": function () {return this.NUMBER_251}, - "height": function () {return this.NUMBER_292}, - "src": function () {return this.img4}, - "href": function () {return this.url4} - } - }, - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_251}, - "height": function () {return this.NUMBER_292}, - "src": function () {return this.img5}, - "href": function () {return this.url5} - } - } - ] - } - ] - }, - { - "type": "indicator", - "style": { - "position": "absolute", - "width": 714, - "height": 200, - "left": 10, - "bottom": -80, - "itemSize": 20, - "itemColor": "#999999", - "itemSelectedColor": "#000000" - } - } - ] - } - ] - } - -/***/ }, -/* 263 */ -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "slider": { - "height": 652 - }, - "pannel": { - "width": 750, - "height": 592, - "flexDirection": "row" - }, - "middle-col": { - "marginLeft": 4, - "marginRight": 4, - "width": 240, - "height": 588 - } - } - -/***/ }, -/* 264 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - module.exports = { - data: function () {return { - NUMBER_251: 251, - NUMBER_240: 240, - NUMBER_292: 292, - NUMBER_588: 588 - }}, - methods: { - ready: function ready() { - var self = this; - var ds = self.ds; - if (!ds || !ds.bannerItems) return; - var bannerItems = ds.bannerItems; - for (var i = 0; i < bannerItems.length; i++) { - bannerItems[i].index = i; - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 265 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(266) - var __weex_script__ = __webpack_require__(267) - - __weex_define__('@weex-component/link', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - -/***/ }, -/* 266 */ -/***/ function(module, exports) { - - module.exports = { - "type": "text", - "classList": [ - "link" - ], - "shown": function () {return this.href}, - "events": { - "click": "_clickHandler" - }, - "attr": { - "value": function () {return this.text} - } - } - -/***/ }, -/* 267 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - text: '', - href: '' - }}, - methods: { - _clickHandler: function _clickHandler() { - this.$call('modal', 'toast', { - message: 'click', - duration: 1 - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 268 */ -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "classList": [ - "container" - ], - "children": [ - { - "type": "image", - "classList": [ - "banner" - ], - "attr": { - "src": function () {return this.ds.topBanner} - } - }, - { - "type": "container", - "classList": [ - "rule-container" - ], - "children": [ - { - "type": "link", - "style": { - "fontSize": 22, - "color": "#ffffff", - "textAlign": "center" - }, - "attr": { - "text": "帮助", - "href": function () {return this.ds.ruleLink} - } - } - ] - }, - { - "type": "container", - "classList": [ - "announce" - ], - "children": [ - { - "type": "image", - "classList": [ - "announce-hd" - ], - "attr": { - "src": function () {return this.ds.announceHdBanner} - } - }, - { - "type": "banners", - "style": { - "marginLeft": 6, - "marginRight": 6 - }, - "attr": { - "ds": function () {return this.ds.bannerItems}, - "direction": "row", - "width": function () {return this.NUMBER_233}, - "height": function () {return this.NUMBER_172}, - "space": function () {return this.NUMBER_3} - } - } - ] - } - ] - } - -/***/ }, -/* 269 */ -/***/ function(module, exports) { - - module.exports = { - "banner": { - "width": 750, - "height": 782 - }, - "share-container": { - "position": "absolute", - "right": 100, - "top": 15, - "zIndex": 100, - "fontSize": 20, - "color": "#ffffff", - "backgroundColor": "#000000", - "borderRadius": 17, - "width": 110, - "height": 35, - "justifyContent": "center", - "alignItems": "center" - }, - "rule-container": { - "position": "absolute", - "right": 22, - "top": 15, - "zIndex": 100, - "fontSize": 20, - "color": "#ffffff", - "backgroundColor": "#000000", - "borderRadius": 17, - "width": 70, - "height": 35, - "justifyContent": "center" - }, - "announce": { - "backgroundColor": "#f5f3f4", - "width": 716, - "height": 286, - "position": "absolute", - "bottom": 17, - "left": 17, - "borderRadius": 5 - }, - "announce-hd": { - "width": 700, - "height": 90, - "marginTop": 8, - "marginBottom": 8, - "marginLeft": 5, - "marginRight": 5 - } - } - -/***/ }, -/* 270 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - module.exports = { - data: function () {return { - ds: {}, - NUMBER_233: 233, - NUMBER_172: 172, - NUMBER_3: 3 - }}, - methods: { - ready: function ready() { - var self = this; - self.isH5 = self._app.IS_H5; - self.isTM = self._app.IS_TM; - self.isTest = self._app.IS_TEST; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 271 */, -/* 272 */, -/* 273 */, -/* 274 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(265) - __webpack_require__(249) - var __weex_template__ = __webpack_require__(268) - var __weex_style__ = __webpack_require__(269) - var __weex_script__ = __webpack_require__(270) - - __weex_define__('@weex-component/headlines', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 275 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(246) - var __weex_template__ = __webpack_require__(253) - var __weex_style__ = __webpack_require__(254) - var __weex_script__ = __webpack_require__(255) - - __weex_define__('@weex-component/category', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 276 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(256) - var __weex_style__ = __webpack_require__(257) - var __weex_script__ = __webpack_require__(258) - - __weex_define__('@weex-component/coupon', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 277 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(246) - var __weex_template__ = __webpack_require__(262) - var __weex_style__ = __webpack_require__(263) - var __weex_script__ = __webpack_require__(264) - - __weex_define__('@weex-component/goods', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 278 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(246) - __webpack_require__(249) - var __weex_template__ = __webpack_require__(279) - var __weex_style__ = __webpack_require__(280) - var __weex_script__ = __webpack_require__(281) - - __weex_define__('@weex-component/resource', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 279 */ -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "shown": function () {return !this.ds.isHide}, - "children": [ - { - "type": "container", - "classList": [ - "big-banner-container" - ], - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_750}, - "height": function () {return this.NUMBER_200}, - "src": function () {return this.ds.bigBannerImg}, - "href": function () {return this.ds.bigBannerUrl} - } - } - ] - }, - { - "type": "banners", - "attr": { - "ds": function () {return this.ds.smallBannerItems}, - "width": function () {return this.NUMBER_373}, - "height": function () {return this.NUMBER_224}, - "direction": "row", - "space": function () {return this.NUMBER_4} - } - } - ] - } - -/***/ }, -/* 280 */ -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "big-banner-container": { - "marginBottom": 4 - } - } - -/***/ }, -/* 281 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - module.exports = { - data: function () {return { - NUMBER_750: 750, - NUMBER_200: 200, - NUMBER_373: 373, - NUMBER_224: 224, - NUMBER_4: 4 - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 282 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(246) - var __weex_template__ = __webpack_require__(283) - var __weex_style__ = __webpack_require__(284) - var __weex_script__ = __webpack_require__(285) - - __weex_define__('@weex-component/scene', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 283 */ -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "children": [ - { - "type": "image", - "shown": function () {return this.ds.floorTitle}, - "classList": [ - "title" - ], - "attr": { - "src": function () {return this.ds.floorTitle} - } - }, - { - "type": "container", - "classList": [ - "small-item-container" - ], - "style": { - "height": function () {return Math.round(this.smallItems.length/2)*234} - }, - "children": [ - { - "type": "container", - "repeat": function () {return this.smallItems}, - "classList": [ - "small-item" - ], - "style": { - "top": function () {return this.top}, - "left": function () {return this.left} - }, - "children": [ - { - "type": "container", - "children": [ - { - "type": "image", - "classList": [ - "small-item-bg" - ], - "attr": { - "src": function () {return this.smallItemBg} - } - } - ] - }, - { - "type": "container", - "classList": [ - "small-item-img" - ], - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_186}, - "height": function () {return this.NUMBER_206}, - "src": function () {return this.itemImg}, - "href": function () {return this.sceneUrl} - } - } - ] - }, - { - "type": "container", - "classList": [ - "small-benifit-img" - ], - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_170}, - "height": function () {return this.NUMBER_100}, - "src": function () {return this.benefitImg}, - "href": function () {return this.sceneUrl} - } - } - ] - } - ] - } - ] - } - ] - } - -/***/ }, -/* 284 */ -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "item": { - "width": 750, - "height": 340, - "marginBottom": 4 - }, - "item-img": { - "position": "absolute", - "left": 110, - "top": 20 - }, - "right-item-img": { - "position": "absolute", - "right": 110, - "top": 20 - }, - "benifit-img": { - "position": "absolute", - "right": 5, - "top": 160 - }, - "right-benifit-img": { - "position": "absolute", - "left": 40, - "top": 160 - }, - "small-item-container": { - "width": 750 - }, - "small-item": { - "position": "absolute", - "width": 373, - "height": 230, - "flexDirection": "row" - }, - "small-item-bg": { - "width": 373, - "height": 230 - }, - "small-item-img": { - "position": "absolute", - "left": 12, - "top": 12 - }, - "small-benifit-img": { - "position": "absolute", - "right": 0, - "top": 65 - } - } - -/***/ }, -/* 285 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - NUMBER_186: 186, - NUMBER_206: 206, - NUMBER_373: 373, - NUMBER_230: 230, - NUMBER_170: 170, - NUMBER_100: 100, - NUMBER_750: 750, - NUMBER_300: 300, - NUMBER_340: 340, - smallItemBg: 'https://gw.alicdn.com/tps/TB1oBIeLVXXXXatXpXXXXXXXXXX-373-230.jpg', - items: [], - smallItems: [], - sceneBgs: ['https://gw.alicdn.com/tps/TB1xBT8LVXXXXbYXVXXXXXXXXXX-750-340.jpg', 'https://gw.alicdn.com/tps/TB1RoEkLVXXXXaMXpXXXXXXXXXX-750-340.jpg', 'https://gw.alicdn.com/tps/TB1DiEpLVXXXXa7XXXXXXXXXXXX-750-340.jpg'] - }}, - methods: { - ready: function ready() { - var self = this; - self._loadData(); - }, - - _loadData: function _loadData() { - var self = this; - var content = [{ - "id": "1111", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1392&scm=1003.1.03653.SUB_1111_740603&pos=1", - "_s_": "d", - "itemImg": "https://img.alicdn.com/tps/TB1c7t.MXXXXXchXXXXXXXXXXXX-182-206.jpg", - "sceneCat": "50012010,50012027,50012032,50007003,50008881,50008883,1623,162116,50010850,123216004", - "finalScore": "10000.0", - "_pos_": "1", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/TB1Zgl2MXXXXXaYXFXXXXXXXXXX-170-100.png" - }, { - "id": "1396", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1396&scm=1003.1.03653.SUB_1396_740603&pos=2", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i2/TB1O1VfMXXXXXX0aXXXKofZZpXX-182-206.jpg", - "sceneCat": "50010368,50011892,50011894,50013794,50010792,50010790,50010790,121434025,121396024,50010793,50010789,50010793,121386035,121392037,121458034,121392036,121482027,121392015,121368014,121418013,121392016,50011982,122690003,302910,50012010,122654005,50012019,50012825,50012027,50012042,50011744,50012906,50012907,50008881,50008883,50008882?,50012784?,50022889,50022728,50013228,50013896,50014775,50019578,50014822,50026394,50019694,50019279,50019272,50014079,50014078,50014076,50014077,50017238,121464011,121468014,50019130,50019127,50019126,50019128,50019125,50015984,50014803,50014802,50015980,50014788,50014787,50019526,50014791,50019520,50013932,50014677,50015978,50014786,50014785,50522001,50014493,50023100,121418021,121388027,121424021,121418020,121368020,50012036,50012044,50012043,50010368, 50011892, 50019274,50012044,50012048,50012043,50013228,50013238,50011726,50019279,50015984,50014803,50014802,50019526,50014791,50019520,50013932,50014677,50019526,50013314,50023341,50016752,50016749,50016747,50016744,50016741,50016740,50016739,50016738,50016737,50016769,50016763,50016750,50007003,302910,50012010,50012032,50012033,50011745,50011746,50011894,121458034,121756003,121426033,50011982,50011979,121390006,124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,50010850,50000671,162201,50022566,50007068,50026651,50000852,162104,162116,162205,1623,123216004,162404,162401,50011412,50011411,162402,50008903,50011413,162403,50000697,1629,50011277,121412004,50008897,50008901,50008899,50013194,50008904,50008905,50008898,162103,50008900,50013196,121434004,50005065,162702,162701,162703,1636,1512,123534001,14,50008090,50012341,50132002,50012342,50012343,50012345,50012346,50013189,50010527,121394006,50013618,50010537,50012424,121452038,121484044,50010540,50010548,50024769,121450007,50013697,50010218,50005960,50005962,50012820,50012406,50023620,50023605,50008829,50024064,50023440,50008687,124392001,50023771,50006804,50012410,124482010,121398023,50023789,50011975", - "finalScore": "10000.0", - "_pos_": "2", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i1/TB1cp4sMXXXXXbLXFXX3bpXTXXX-170-100.png" - }, { - "id": "1616", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1616&scm=1003.1.03653.SUB_1616_740603&pos=3", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i4/TB1dlEALVXXXXbxXpXXKofZZpXX-182-206.jpg", - "sceneCat": "50009032,50007003,302910,1512,124688012,124986002,124942005,50023722,50010368,50011892,50011894", - "finalScore": "10000.0", - "_pos_": "3", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i3/TB1fxonLVXXXXXUaXXX3bpXTXXX-170-100.png" - }, { - "id": "16424", - "sceneUrl": "https://brand.tmall.com/mobilestreet/subject.htm?id=16424&acm=03653.1003.1.740603&aldid=VyrSqx06&spm=0.0.0.0.Wv8ion&scm=1003.1.03653.SUB_16424_740603&pos=4", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i4/TB1.i2_LVXXXXbrXpXXKofZZpXX-182-206.jpg", - "sceneCat": "50012043,50012036,50010850,50000671,1622,50000852,162104,50000697,162205,162116,50012027,50012032,50012028,50012033,50012042,50008882,50012772,50006846,50008881,50000436,50011123,3035,50010167,50000557,50010158,50010159,50010402,50010160,50011980,50011993,121390006,50011978,50011977,50011979,121454013,50011745", - "finalScore": "6.729749999999999", - "_pos_": "4", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i2/TB1bhH5LVXXXXapXFXX3bpXTXXX-170-100.png" - }, { - "id": "16425", - "sceneUrl": "https://brand.tmall.com/mobilestreet/subject.htm?id=16360&acm=03653.1003.1.740603&aldid=VyrSqx06&spm=0.0.0.0.MttFEC&scm=1003.1.03653.SUB_16425_740603&pos=5", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i3/TB15ywbLVXXXXcdXXXXKofZZpXX-182-206.jpg", - "sceneCat": "50012043,50012036,50010850,50000671,1622,50000852,162104,50000697,162205,162116,50012027,50012032,50012028,50012033,50012042,50008882,50012772,50006846,50008881,50000436,50011123,3035,50010167,50000557,50010158,50010159,50010402,50010160,50011980,50011993,121390006,50011978,50011977,50011979,121454013,50011745", - "finalScore": "6.729749999999999", - "_pos_": "5", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i1/TB1JBLYLVXXXXXlXVXX3bpXTXXX-170-100.png" - }, { - "id": "1625", - "sceneUrl": "https://pages.tmall.com/wow/fushi/act/gf-chaoliu?acm=03653.1003.1.740603&aldid=VyrSqx06&scm=1003.1.03653.SUB_1625_740603&pos=6", - "_s_": "d", - "itemImg": "//img.alicdn.com/bao/uploaded/i2/TB1Gd21KVXXXXXZXVXXXXXXXXXX_!!0-item_pic.jpg", - "sceneCat": "50012043,50012036,50010850,50000671,1622,50000852,162104,50000697,162205,162116,50012027,50012032,50012028,50012033,50012042,50008882,50012772,50006846,50008881,50000436,50011123,3035,50010167,50000557,50010158,50010159,50010402,50010160,50011980,50011993,121390006,50011978,50011977,50011979,121454013,50011982,50011991,50012906,50011744,50011745,50011743,50012907,50011746,50010815,121460005,50013794,122438001,121398006,121386023,50010808", - "finalScore": "6.729749999999999", - "_pos_": "6", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i3/TB1qxXzMXXXXXcjXFXX3bpXTXXX-170-100.png" - }, { - "id": "1392", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1392&scm=1003.1.03653.SUB_1392_740603&pos=7", - "_s_": "d", - "itemImg": "https://img.alicdn.com/tps/TB1c7t.MXXXXXchXXXXXXXXXXXX-182-206.jpg", - "sceneCat": "50006842,50006840,50008881,50008883,50008882,50008884,50012774,50012775,50012776,50012781,5000888,50012766,50012771,50012772,50010404,50010368, 50011892, 50011894,124688012,124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,50011740,50008882,50008886,50008885,50012777,50012778,50011977,50011978,50011979,50011980,50011982,50011990,50011999,50012000,50011993,50011996,50011997,121366011,121484009,121368010,121390006,121398029,121404030,121404031,121408040,121410035,121412033,121414041,121418013,121454013,121410013,121422013,121484013,50010789,50010790,50010792,50010793,50010794,50010796,50010797,50010798,50010801,50010803,50010805,50010807,50010808,50010815,121410007,121426007,121452004,121460005,50012341,50132002,50012342,50012343,50012345,50012346,50013189,50010527,121394006,50013618,50010537,50012424,121452038,121484044,50010540,50010548,50024769,121366037,121458036,121392038,121420035,121364028,121468026,121472031,121476036,121470042,121418032,121410036,121472032,121420032,121470040,121384032,121460028,121448028,121400030,121424024,121482025,121418031,121402028,121388035,121460029,121400028,121400029,121418030,121476034,121478031,121448029,121480030,121366035,121424025,121426030,121484030,121412031,121384033,121424023,121402027,121408039,121420033,121452028,121466040,121416029,121482028,121420034,121396046,121422052,121370037,121424031,21364043,121472040,121412045,121424032,125054002,125074007,125074008,125104003,125080003,125024006,125080004", - "finalScore": "4.4951428571428576", - "_pos_": "7", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/TB1Zgl2MXXXXXaYXFXXXXXXXXXX-170-100.png" - }, { - "id": "1395", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1395&scm=1003.1.03653.SUB_1395_740603&pos=8", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i2/TB1p4NcMXXXXXbGaXXXKofZZpXX-182-206.jpg", - "sceneCat": "50008881,50008883,50008882,50008884,50012774,50012775,50012776,50012781,50008886,50012766,50012771,50012772,50010850,50000671,162201,50022566,50007068,50026651,50000852,162104,162116,162205,1623,123216004,162404,162401,50011412,50011411,16240,50012773,50006846,50010394,50008888,50008890,50008889,50012784,50012785,50012786,50012787,50008885,50012777,50012778,124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,50011740,50006843,50006842,124942005,50010368,50011892,50011894,50023751,121366037,121458036,121392038,121420035,121364028,121468026,121400029,121418030,121478031,121480030,121366035,121424025,121426030,121484030,121412031,125054002,125074007,125074008,125104003,125080003,125024006,125080004,121400030,121424024,121482025,121418031,121402028,121388035", - "finalScore": "4.465166666666667", - "_pos_": "8", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i1/TB1ySNtMXXXXXamXFXX3bpXTXXX-170-100.png" - }, { - "id": "1394", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1394&scm=1003.1.03653.SUB_1394_740603&pos=9", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i4/TB1Ns8eMXXXXXb1aXXXKofZZpXX-182-206.jpg", - "sceneCat": "50010850,50000671,162201,50022566,50007068,50026651,50000852,162104,162116,162205,1623,123216004,162404,162401,50011412,50011411,162402,50008903,50011413,162403,50000697,1629,50011277,121412004,50008897,50008901,50008899,50013194,50008904,50008905,50008898,162103,50008900,50013196,121434004,50005065,162702,162701,162703,1636,124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,50011740,50006843,50006842,124986002,50010368, 50011892,50011894,121480030,121366035,121424025,121426030,121484030,121412031", - "finalScore": "4.309925925925926", - "_pos_": "9", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i3/TB1ZEXfMXXXXXapaXXX3bpXTXXX-170-100.png" - }, { - "id": "1610", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1610&scm=1003.1.03653.SUB_1610_740603&pos=10", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i3/TB1ONckLVXXXXbJaXXXKofZZpXX-182-206.jpg", - "sceneCat": "121484044,121452038,50012342,50012027,50012032,50006843,50010850,50000671,162104,1623,50011277,162116,123216004,50008898,121366037,121458036,121392038,121420035,121364028,121468026,121472031,121476036,121470042,121418032,121410036,121472032,121420032,121470040,121384032,121460028,121448028,121400030,121424024,121482025,121418031,121402028,121388035,121460029,121400028,121400029,121418030,121476034,121478031,121448029,121480030,121366035,121424025,121426030,121484030,121412031,121384033,121424023,121402027,121408039,121420033,121452028,121466040,121416029,121482028,121420034,121396046,121422052,121370037,121424031,21364043,121472040,121412045,121424032,125054002,125074007,125074008,125104003,125080003,125024006,125080004", - "finalScore": "4.293333333333334", - "_pos_": "10", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i2/TB1RzwFLVXXXXXsXpXX3bpXTXXX-170-100.png" - }, { - "id": "1619", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1619&scm=1003.1.03653.SUB_1619_740603&pos=11", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i3/TB1eagyLVXXXXaiXFXXKofZZpXX-182-206.jpg", - "sceneCat": "124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,122654005,50011740,50009032,124688012,213202,121396029,121476023,121410029,213203,50023326,213205,50022686,50023293,50466023,50024999,50016885,50011894", - "finalScore": "4.23", - "_pos_": "11", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i4/TB1j0AxLVXXXXaRXFXX3bpXTXXX-170-100.png" - }, { - "id": "1613", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1613&scm=1003.1.03653.SUB_1613_740603&pos=12", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i2/TB1WssFLVXXXXXUXpXXKofZZpXX-182-206.jpg", - "sceneCat": "50023108,50022893,50022892,50022890,50013228,50019520,50017120,50019560,50017129,50017128,50017127,50017126,50017125,50017124,50017123,50017122,50017121,50020039,50020038,50017119,50019559,50017110,50017108,50017107,50017097,50017096,50017095,50017094,50017093,50017092,50012036,50012041", - "finalScore": "4.2186666666666675", - "_pos_": "12", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i1/TB1Rg.qLVXXXXbqXVXX3bpXTXXX-170-100.png" - }, { - "id": "1614", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1614&scm=1003.1.03653.SUB_1614_740603&pos=13", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i1/TB1KzUxLVXXXXajXFXXKofZZpXX-182-206.jpg", - "sceneCat": "50013238,50011726,50022893,50022892,50022890,50013228,50017129,50020038,50017119,50019559,50017102,50017110,50017097,50019707,50019555,50016677,50018317,50016675,50016673,50016672,50016671,50016670,50016732,50016669,50016668,50016667,50016666,50016665,50016683,50016682,50016608,50016607,50016637,50016638,50012036,50012043", - "finalScore": "4.216", - "_pos_": "13", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i2/TB1WyouLVXXXXXcXVXX3bpXTXXX-170-100.png" - }, { - "id": "1397", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1397&scm=1003.1.03653.SUB_1397_740603&pos=14", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i4/TB1dCxvMXXXXXc1XpXXKofZZpXX-182-206.jpg", - "sceneCat": "122846004,50020776,50024799,50024801,50024921,50002794,50020778,50002792,50002791,50002793,50003942,50005500,50005497,50001692,50005495,50005496,50005503,50005498,50005499,50005501,50005502,50003455,50003457,122904003,50023091,50020770,50008863,50005507,121414011,50020768,50022701,50008862,121420012,50020766,50020764,121398012,121380011,50020751,50020676,50024945,50020720,50002790,50020730,50001866,50020678,121476008,121458013,50002795,121364011,50005505,121422014,50024943,50000583,50000582,50000584,213002,50005033,50000563,50008607,50006988,50008608,50024601,50024602,50012051,50001871,122854005,121458010,121452006,121416008,50008779,50002777,121394007,121386009,50010825,50013810,121434010,50001865,50008565,50008246,50017192,121404045,121368009,121462014,50019372,50008248,121418011,50008249,50017193,50008252,50008251,50000512,121364047,122846004,50020776,50024799,50024801,50024921,50002794,50020778,50002792,50002791,50002793,50003942,50005500,50005497,50001692,50005495,50005496,50005503,50005498,50005499,50005501,50005502,50003455,50003457,122904003,50023091,50020770,50008863,50005507,121414011,50020768,50022701,50008862,121420012,50020766,50020764,121398012,121380011,50020751,50020676,50024945,50020720,50002790,50020730,50001866,50020678,121476008,121458013,50002795,121364011,50005505,121422014,50024943,50000583,50000582,50000584,213002,50005033,50000563,50008607,50006988,50008608,50024601,50024602,50012051,50020835,50021907,121472021,50021902,50005919,50002045,122724003,122652007,121408025,122688004,50021924,50021923,50000561,50011738,122676005,121396026,121388028,50003338,50021915,50011415,50011416,50003454,50021928,50021930,50021929,50021931,50024939,121384024,121472020,50020902,50020903,50020904,50020905,50021888,50021889,50021890,50023266,122960005,50012001,50011999,50012004,50012000,50012006,121394024,121412033,121394025,121450036,121472007,121480009,121388013,121466009,121484012,121366014,121434014,121422012,121476006,121396013,50011997,121434013,122646001,121458012,121468012,121368013,50011979,121366015,121406016,121456012,121366011,121414010,121460006,121368014,121388016,121396013,121400010,121470011,121474011,121478009,124760009,124768010,124822006,121482009,122430002,121454014,121392016,50001871,122854005,121458010,121452006,121416008,50008779,50002777,121394007,121386009,50010825,50013810,121434010,50001865,50008565,50008246,50017192,121404045,121368009,121462014,50019372,50008248,121418011,50008249,50017193,50008252,50008251,50000512,121364047,122846004,50020776,50024799,50024801,50024921,50002794,50020778,50002792,50002791,50002793,50003942,50005500,50005497,50001692,50005495,50005496,50005503,50005498,50005499,50005501,50005502,50003455,50003457,122904003,50023091,50020770,50008863,50005507,121414011,50020768,50022701,50008862,121420012,50020766,50020764,121398012,121380011,50020751,50020676,50024945,50020720,50002790,50020730,50001866,50020678,121476008,121458013,50002795,121364011,50005505,121422014,50024943,50000583,50000582,50000584,213002,50005033,50000563,50008607,50006988,50008608,50024601,50024602,50012051", - "finalScore": "3.4206666666666665", - "_pos_": "14", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i3/TB1ZARnMXXXXXaGXVXX3bpXTXXX-170-100.png" - }, { - "id": "1608", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1608&scm=1003.1.03653.SUB_1608_740603&pos=15", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i3/TB1xA3jLVXXXXXqapXXKofZZpXX-182-206.jpg", - "sceneCat": "50012010,50012027,50012032,50007003,50008881,50008883,1623,162116,50010850,123216004", - "finalScore": "0.0", - "_pos_": "15", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i2/TB1WvoALVXXXXcdXpXX3bpXTXXX-170-100.png" - }]; - self._processData(content); - }, - _processData: function _processData(content) { - var self = this; - if (!content) return; - var items = content.slice(0, 3); - var smallItems = content.slice(3); - - var sceneBgs = self.sceneBgs; - for (var j = 0; j < items.length; j++) { - var item = items[j]; - item.index = j; - item.bg = sceneBgs[j]; - item.itemImgCls = j % 2 === 0 ? 'item-img' : 'right-item-img'; - item.benifitImgCls = j % 2 === 0 ? 'benifit-img' : 'right-benifit-img'; - } - - for (var i = 0; i < smallItems.length; i++) { - var smallItem = smallItems[i]; - smallItem.index = i; - smallItem.top = (i - i % 2) / 2 * (230 + 4); - smallItem.left = i % 2 * (373 + 4); - } - self.items = items; - self.smallItems = smallItems; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 286 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(246) - var __weex_template__ = __webpack_require__(287) - var __weex_style__ = __webpack_require__(288) - var __weex_script__ = __webpack_require__(289) - - __weex_define__('@weex-component/match', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 287 */ -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "children": [ - { - "type": "image", - "shown": function () {return this.ds.floorTitle}, - "classList": [ - "title" - ], - "attr": { - "src": function () {return this.ds.floorTitle} - } - }, - { - "type": "container", - "classList": [ - "tm-banner" - ], - "shown": function () {return this.ds.isShowTmSpecBanner&&this.ds.tmSpecBanner&&this.isTM}, - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_750}, - "height": function () {return this.NUMBER_200}, - "src": function () {return this.ds.tmSpecBanner.img}, - "href": function () {return this.ds.tmSpecBanner.url} - } - } - ] - }, - { - "type": "container", - "repeat": function () {return this.ds.bannerItems}, - "style": { - "flexDirection": "row", - "marginBottom": function () {return this.NUMBER_4} - }, - "children": [ - { - "type": "container", - "style": { - "marginRight": function () {return this.NUMBER_4} - }, - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_373}, - "height": function () {return this.NUMBER_240}, - "src": function () {return this.leftImg}, - "href": function () {return this.leftUrl} - } - } - ] - }, - { - "type": "container", - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_373}, - "height": function () {return this.NUMBER_240}, - "src": function () {return this.rightImg}, - "href": function () {return this.rightUrl} - } - } - ] - } - ] - } - ] - } - -/***/ }, -/* 288 */ -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "tm-banner": { - "bottom": 4 - } - } - -/***/ }, -/* 289 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - module.exports = { - data: function () {return { - NUMBER_750: 750, - NUMBER_373: 373, - NUMBER_240: 240, - NUMBER_200: 200, - NUMBER_4: 4 - }}, - methods: { - ready: function ready() { - var self = this; - self._initEnv(); - self._addBannerIndex(); - }, - _initEnv: function _initEnv() { - var self = this; - self.isTM = self._app.IS_TM; - }, - _addBannerIndex: function _addBannerIndex() { - var self = this; - var ds = self.ds; - if (!ds || !ds.bannerItems) return; - for (var i = 0; i < ds.bannerItems.length; i++) { - ds.bannerItems[i].index = i; - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 290 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(249) - var __weex_template__ = __webpack_require__(250) - var __weex_style__ = __webpack_require__(251) - var __weex_script__ = __webpack_require__(252) - - __weex_define__('@weex-component/brand', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 291 */ -/***/ function(module, exports) { - - module.exports = { - "type": "wxc-navpage", - "attr": { - "dataRole": "none", - "height": function () {return this.navBarHeight}, - "backgroundColor": "#ff5898", - "title": "新风尚会场", - "titleColor": "white", - "rightItemSrc": "http://gtms02.alicdn.com/tps/i2/TB1ED7iMpXXXXXEXXXXWA_BHXXX-48-48.png" - }, - "children": [ - { - "type": "scroller", - "classList": [ - "content" - ], - "children": [ - { - "type": "refresh", - "classList": [ - "refresh" - ], - "events": { - "refresh": "handleRefresh" - }, - "attr": { - "display": function () {return this.displayRefresh} - }, - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "loading-indicator" - }, - { - "type": "text", - "style": { - "marginLeft": 36, - "color": "#eeeeee" - }, - "attr": { - "value": "下拉刷新..." - } - } - ] - }, - { - "type": "headlines", - "shown": function () {return this.show0}, - "attr": { - "ds": function () {return this.showData.header} - }, - "append": "tree" - }, - { - "type": "category", - "shown": function () {return this.show0}, - "attr": { - "ds": function () {return this.showData.category} - }, - "append": "tree" - }, - { - "type": "coupon", - "shown": function () {return this.show1}, - "attr": { - "ds": function () {return this.showData.coupon} - }, - "append": "tree" - }, - { - "type": "goods", - "shown": function () {return this.show1}, - "attr": { - "ds": function () {return this.showData.goods} - }, - "append": "tree" - }, - { - "type": "resource", - "shown": function () {return this.show1}, - "attr": { - "ds": function () {return this.showData.resource} - }, - "append": "tree" - }, - { - "type": "scene", - "shown": function () {return this.show1}, - "attr": { - "ds": function () {return this.showData.scene} - }, - "append": "tree" - }, - { - "type": "match", - "shown": function () {return this.show2}, - "attr": { - "ds": function () {return this.showData.match} - }, - "append": "tree" - }, - { - "type": "brand", - "shown": function () {return this.show2}, - "attr": { - "ds": function () {return this.showData.brand} - }, - "append": "tree" - }, - { - "type": "loading", - "classList": [ - "loading" - ], - "events": { - "loading": "handleLoading" - }, - "attr": { - "display": function () {return this.displayLoading} - }, - "children": [ - { - "type": "text", - "style": { - "color": "#eeeeee" - }, - "attr": { - "value": "加载更多..." - } - } - ] - } - ] - } - ] - } - -/***/ }, -/* 292 */ -/***/ function(module, exports) { - - module.exports = { - "content": { - "color": "#353535", - "backgroundColor": "#666666", - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "refresh": { - "display": "flex", - "alignItems": "center", - "justifyContent": "center" - }, - "loading": { - "display": "flex", - "alignItems": "center", - "justifyContent": "center" - } - } - -/***/ }, -/* 293 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _typeof2 = __webpack_require__(110); - - var _typeof3 = _interopRequireDefault(_typeof2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - __webpack_require__(4); - module.exports = { - data: function () {return { - navBarHeight: 88, - cnt: 0, - show0: true, - show1: false, - show2: false, - displayRefresh: 'show', - displayLoading: 'show' - }}, - methods: { - ready: function ready() { - var self = this; - self._initData(); - self._initEnv(); - self._initUtil(); - }, - _initData: function _initData() { - var self = this; - self.showData = { - "header": { - "topBanner": "https://gw.alicdn.com/tps/TB1J48kMXXXXXXtapXXXXXXXXXX-750-782.jpg", - "ruleLink": "https://chaoshi.m.tmall.com/", - "isShowShare": true, - "shareInfo": { - "shareTitle": "我是分享标题", - "shareIntro": " 我是分享内容测试", - "allLink": "https://www.tmall.com", - "mobileImage": "https://gw.alicdn.com/tps/TB1J48kMXXXXXXtapXXXXXXXXXX-750-782.jpg", - "pcImage": "https://img.alicdn.com/tps/i4/TB1Dyw1LVXXXXXEapXXSutbFXXX.jpg", - "shareScene": "我是测试业务", - "bizId": "" - }, - "announceHdBanner": "https://gw.alicdn.com/tps/i4/TB1fzclLVXXXXaVaXXXwu0bFXXX.png", - "bannerItems": [{ - "img": "https://img.alicdn.com/tps/TB1U8LHLVXXXXa3XpXXXXXXXXXX-233-172.jpg", - "url": "https://chaoshi.m.tmall.com/" - }, { - "img": "https://img.alicdn.com/tps/TB1U8LHLVXXXXa3XpXXXXXXXXXX-233-172.jpg", - "url": "https://chaoshi.m.tmall.com/" - }, { - "img": "https://img.alicdn.com/tps/TB1U8LHLVXXXXa3XpXXXXXXXXXX-233-172.jpg", - "url": "https://chaoshi.m.tmall.com/" - }] - }, - "fashion": { - "isHide": false, - "floorTitle": "https://gw.alicdn.com/tps/TB1._64LVXXXXatXVXXXXXXXXXX-750-100.jpg", - "bigBannerImg": "https://gw.alicdn.com/tps/TB1tO.aLVXXXXcvXpXXXXXXXXXX-750-262.jpg", - "bigBannerUrl": "https://chaoshi.m.tmall.com/", - "smallBannerItems": [{ - "img": "https://img.alicdn.com/tps/TB1Ff_0LVXXXXXNaXXXXXXXXXXX-375-262.jpg", - "url": "https://chaoshi.m.tmall.com/" - }, { - "img": "https://img.alicdn.com/tps/TB1Ff_0LVXXXXXNaXXXXXXXXXXX-375-262.jpg", - "url": "https://chaoshi.m.tmall.com/" - }], - "isHideStarBanner": false, - "firstStarBannerItems": [{ - "img": "https://gw.alicdn.com/tps/TB1xlIVLVXXXXckXVXXXXXXXXXX-250-220.jpg", - "url": "https://chaoshi.m.tmall.com/" - }, { - "img": "https://gw.alicdn.com/tps/TB1xlIVLVXXXXckXVXXXXXXXXXX-250-220.jpg", - "url": "https://chaoshi.m.tmall.com/" - }], - "secondStarBannerItems": [{ - "img": "https://gw.alicdn.com/tps/TB1xlIVLVXXXXckXVXXXXXXXXXX-250-220.jpg", - "url": "https://chaoshi.m.tmall.com/" - }, { - "img": "https://gw.alicdn.com/tps/TB1xlIVLVXXXXckXVXXXXXXXXXX-250-220.jpg", - "url": "https://chaoshi.m.tmall.com/" - }], - "thirdStarBannerItems": [{ - "img": "https://gw.alicdn.com/tps/TB1xlIVLVXXXXckXVXXXXXXXXXX-250-220.jpg", - "url": "https://chaoshi.m.tmall.com/" - }, { - "img": "https://gw.alicdn.com/tps/TB1xlIVLVXXXXckXVXXXXXXXXXX-250-220.jpg", - "url": "https://chaoshi.m.tmall.com/" - }] - }, - "goods": { - "isHide": false, - "floorTitle": "https://gw.alicdn.com/tps/TB1._64LVXXXXatXVXXXXXXXXXX-750-100.jpg", - "bannerItems": [{ - "img1": "https://gw.alicdn.com/tps/TB1TUzGLVXXXXc1XFXXXXXXXXXX-250-296.jpg", - "url1": "https://chaoshi.m.tmall.com/", - "img2": "https://gw.alicdn.com/tps/TB1TUzGLVXXXXc1XFXXXXXXXXXX-250-296.jpg", - "url2": "https://chaoshi.m.tmall.com/", - "img3": "https://gw.alicdn.com/tps/TB12MPFLVXXXXXnXVXXXXXXXXXX-250-592.jpg", - "url3": "https://chaoshi.m.tmall.com/", - "img4": "https://gw.alicdn.com/tps/TB1TUzGLVXXXXc1XFXXXXXXXXXX-250-296.jpg", - "url4": "https://chaoshi.m.tmall.com/", - "img5": "https://gw.alicdn.com/tps/TB1TUzGLVXXXXc1XFXXXXXXXXXX-250-296.jpg", - "url5": "https://chaoshi.m.tmall.com/" - }, { - "img1": "https://gw.alicdn.com/tps/TB1TUzGLVXXXXc1XFXXXXXXXXXX-250-296.jpg", - "url1": "https://chaoshi.m.tmall.com/", - "img2": "https://gw.alicdn.com/tps/TB1TUzGLVXXXXc1XFXXXXXXXXXX-250-296.jpg", - "url2": "https://chaoshi.m.tmall.com/", - "img3": "https://gw.alicdn.com/tps/TB12MPFLVXXXXXnXVXXXXXXXXXX-250-592.jpg", - "url3": "https://chaoshi.m.tmall.com/", - "img4": "https://gw.alicdn.com/tps/TB1TUzGLVXXXXc1XFXXXXXXXXXX-250-296.jpg", - "url4": "https://chaoshi.m.tmall.com/", - "img5": "https://gw.alicdn.com/tps/TB1TUzGLVXXXXc1XFXXXXXXXXXX-250-296.jpg", - "url5": "https://chaoshi.m.tmall.com/" - }] - }, - "coupon": { - "floorTitle": "https://gw.alicdn.com/tps/TB1._64LVXXXXatXVXXXXXXXXXX-750-100.jpg" - }, - "scene": { - "floorTitle": "https://gw.alicdn.com/tps/TB1._64LVXXXXatXVXXXXXXXXXX-750-100.jpg", - "_backup": { - "id": "03653", - "data": [{ - "id": "1395", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1395&scm=1003.1.03653.MAIN_1395_710531&pos=1", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i2/TB1n6bVLVXXXXcCXVXXTCU0QpXX-300-300.jpg", - "sceneCat": "50008881,50008883,50008882,50008884,50012774,50012775,50012776,50012781,50008886,50012766,50012771,50012772,50010850,50000671,162201,50022566,50007068,50026651,50000852,162104,162116,162205,1623,123216004,162404,162401,50011412,50011411,16240,50012773,50006846,50010394,50008888,50008890,50008889,50012784,50012785,50012786,50012787,50008885,50012777,50012778,124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,50011740,50006843,50006842,124942005,50010368,50011892,50011894,50023751,121366037,121458036,121392038,121420035,121364028,121468026,121400029,121418030,121478031,121480030,121366035,121424025,121426030,121484030,121412031,125054002,125074007,125074008,125104003,125080003,125024006,125080004,121400030,121424024,121482025,121418031,121402028,121388035", - "finalScore": "77.26011111111112", - "_pos_": 1, - "entityType": "MAIN", - "benefitImg": "//img.alicdn.com/tps/i3/TB1Onr9LVXXXXbiXpXXB8gAQpXX-300-100.png" - }, { - "id": "1394", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1394&scm=1003.1.03653.MAIN_1394_710531&pos=2", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i1/TB13mj1LVXXXXa.XFXXTCU0QpXX-300-300.jpg", - "sceneCat": "50010850,50000671,162201,50022566,50007068,50026651,50000852,162104,162116,162205,1623,123216004,162404,162401,50011412,50011411,162402,50008903,50011413,162403,50000697,1629,50011277,121412004,50008897,50008901,50008899,50013194,50008904,50008905,50008898,162103,50008900,50013196,121434004,50005065,162702,162701,162703,1636,124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,50011740,50006843,50006842,124986002,50010368, 50011892,50011894,121480030,121366035,121424025,121426030,121484030,121412031", - "finalScore": "77.06103999999999", - "_pos_": 2, - "entityType": "MAIN", - "benefitImg": "//img.alicdn.com/tps/i2/TB17kvVLVXXXXaTXVXXB8gAQpXX-300-100.png" - }, { - "id": "1396", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1396&scm=1003.1.03653.MAIN_1396_710531&pos=3", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i2/TB1ZOAXLVXXXXa0XXXXTCU0QpXX-300-300.jpg", - "sceneCat": "50010368,50011892,50011894,50013794,50010792,50010790,50010790,121434025,121396024,50010793,50010789,50010793,121386035,121392037,121458034,121392036,121482027,121392015,121368014,121418013,121392016,50011982,122690003,302910,50012010,122654005,50012019,50012825,50012027,50012042,50011744,50012906,50012907,50008881,50008883,50008882?,50012784?,50022889,50022728,50013228,50013896,50014775,50019578,50014822,50026394,50019694,50019279,50019272,50014079,50014078,50014076,50014077,50017238,121464011,121468014,50019130,50019127,50019126,50019128,50019125,50015984,50014803,50014802,50015980,50014788,50014787,50019526,50014791,50019520,50013932,50014677,50015978,50014786,50014785,50522001,50014493,50023100,121418021,121388027,121424021,121418020,121368020,50012036,50012044,50012043,50010368, 50011892, 50019274,50012044,50012048,50012043,50013228,50013238,50011726,50019279,50015984,50014803,50014802,50019526,50014791,50019520,50013932,50014677,50019526,50013314,50023341,50016752,50016749,50016747,50016744,50016741,50016740,50016739,50016738,50016737,50016769,50016763,50016750,50007003,302910,50012010,50012032,50012033,50011745,50011746,50011894,121458034,121756003,121426033,50011982,50011979,121390006,124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,50010850,50000671,162201,50022566,50007068,50026651,50000852,162104,162116,162205,1623,123216004,162404,162401,50011412,50011411,162402,50008903,50011413,162403,50000697,1629,50011277,121412004,50008897,50008901,50008899,50013194,50008904,50008905,50008898,162103,50008900,50013196,121434004,50005065,162702,162701,162703,1636,1512,123534001,14,50008090,50012341,50132002,50012342,50012343,50012345,50012346,50013189,50010527,121394006,50013618,50010537,50012424,121452038,121484044,50010540,50010548,50024769,121450007,50013697,50010218,50005960,50005962,50012820,50012406,50023620,50023605,50008829,50024064,50023440,50008687,124392001,50023771,50006804,50012410,124482010,121398023,50023789,50011975", - "finalScore": "76.76379487179486", - "_pos_": 3, - "entityType": "MAIN", - "benefitImg": "//img.alicdn.com/tps/i3/TB1Usn.LVXXXXaoXpXXB8gAQpXX-300-100.png" - }, { - "id": "1619", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1619&scm=1003.1.03653.SUB_1619_710531&pos=4", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i2/TB1MpoBLVXXXXbxXpXXKofZZpXX-182-206.jpg", - "sceneCat": "124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,122654005,50011740,50009032,124688012,213202,121396029,121476023,121410029,213203,50023326,213205,50022686,50023293,50466023,50024999,50016885,50011894", - "finalScore": "75.88480000000001", - "_pos_": 4, - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i4/TB1j0AxLVXXXXaRXFXX3bpXTXXX-170-100.png" - }, { - "id": "1612", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1612&scm=1003.1.03653.SUB_1612_710531&pos=5", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i3/TB1NNwyLVXXXXaEXVXXKofZZpXX-182-206.jpg", - "sceneCat": "50010850,50000671,162104,162116,123216004", - "finalScore": "75.23733333333334", - "_pos_": 5, - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i1/TB1PsoBLVXXXXbQXpXX3bpXTXXX-170-100.png" - }, { - "id": "1610", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1610&scm=1003.1.03653.SUB_1610_710531&pos=6", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i4/TB1EkczLVXXXXcVXpXXKofZZpXX-182-206.jpg", - "sceneCat": "121484044,121452038,50012342,50012027,50012032,50006843,50010850,50000671,162104,1623,50011277,162116,123216004,50008898,121366037,121458036,121392038,121420035,121364028,121468026,121472031,121476036,121470042,121418032,121410036,121472032,121420032,121470040,121384032,121460028,121448028,121400030,121424024,121482025,121418031,121402028,121388035,121460029,121400028,121400029,121418030,121476034,121478031,121448029,121480030,121366035,121424025,121426030,121484030,121412031,121384033,121424023,121402027,121408039,121420033,121452028,121466040,121416029,121482028,121420034,121396046,121422052,121370037,121424031,21364043,121472040,121412045,121424032,125054002,125074007,125074008,125104003,125080003,125024006,125080004", - "finalScore": "75.00533333333334", - "_pos_": 6, - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i2/TB1RzwFLVXXXXXsXpXX3bpXTXXX-170-100.png" - }, { - "id": "1620", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1620&scm=1003.1.03653.SUB_1620_710531&pos=7", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i1/TB1IJsILVXXXXbGXXXXKofZZpXX-182-206.jpg", - "sceneCat": "50010789,50010790,50010792,50010793,50010794,50010796,50010797,50010798,50010801,50010803,50010805,50010807,50010808,50010813,50010814,50010815,50013794,121382014,121386023,121388007,121388008,121398004,121364007,121398006,121410007,121426007,121452004,50012010,50012027,50012032,124688012, 124986002, 124942005,50010850,50000671,162104,162201,50022566,162116,1623,50011277,50008897,162401,162402", - "finalScore": "74.72522222222223", - "_pos_": 7, - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i1/TB16A.yLVXXXXX8XFXX3bpXTXXX-170-100.png" - }, { - "id": "1608", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1608&scm=1003.1.03653.SUB_1608_710531&pos=8", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i3/TB1xA3jLVXXXXXqapXXKofZZpXX-182-206.jpg", - "sceneCat": "50012010,50012027,50012032,50007003,50008881,50008883,1623,162116,50010850,123216004", - "finalScore": "74.626", - "_pos_": 8, - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i2/TB1WvoALVXXXXcdXpXX3bpXTXXX-170-100.png" - }, { - "id": "1615", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1615&scm=1003.1.03653.SUB_1615_710531&pos=9", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i1/TB1PVctLVXXXXchXFXXKofZZpXX-182-206.jpg", - "sceneCat": "50011978,50011979,50011980,50011993,50011996,50011997,121390006,121408011,121474010,50010789,50010790,50010792,50010793,50010803,50013794,121398004,121410007,213205,121470030,50024980,121408030", - "finalScore": "74.02799999999999", - "_pos_": 9, - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i4/TB1yKwBLVXXXXa4XpXX3bpXTXXX-170-100.png" - }, { - "id": "1618", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1618&scm=1003.1.03653.SUB_1618_710531&pos=10", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i1/TB1vn3sLVXXXXX5XVXXKofZZpXX-182-206.jpg", - "sceneCat": "50008886,50012766,50012771,50012772,50012773,50008090,111219,50012100,50012082,50012478,50012475,213202,50018977,121396029,121476023,50018994,121410029,213203,50023326,50003820,213205,50022686,50012481,50013976?,50001871,122854005,121458010,121452006,121416008,50008779,50002777,121394007,121386009,50010825,50013810,121434010,50001865,50008565,50008246,50017192,121404045,121368009,121462014,50019372,50008248,121418011,50008249,50017193,50008252,50008251,50000512,121364047", - "finalScore": "73.94212121212121", - "_pos_": 10, - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i4/TB1kSkpLVXXXXbTXVXX3bpXTXXX-170-100.png" - }, { - "id": "1617", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1617&scm=1003.1.03653.SUB_1617_710531&pos=11", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i1/TB1ELwrLVXXXXaNXVXXKofZZpXX-182-206.jpg", - "sceneCat": "50013189,50010527,121394006,50013618,50010537,50012424,121452038,121484044,50010540,50010548,50024769,50012341,50132002,50012342,50012343,50012345,50012346,50012341,50132002,50012342,50012343,50012345,50012346", - "finalScore": "73.78883333333334", - "_pos_": 11, - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i3/TB1CtsuLVXXXXcJXFXX3bpXTXXX-170-100.png" - }], - "exposureParam": "//ac.mmstat.com/1.gif?apply=vote&abbucket=_AB-M1001_B5&com=02&acm=03653.1003.1.710531&cod=03653&cache=jWl8FJsb&aldid=TPMkJDIw&logtype=4&abtest=_AB-LR1001-PR1001&scm=1003.1.03653.710531&ip=42.120.74.104", - "serverTime": 1458296110334 - } - }, - "resource": { - "isHide": false, - "bigBannerImg": "https://gw.alicdn.com/tps/TB1tO.aLVXXXXcvXpXXXXXXXXXX-750-262.jpg", - "bigBannerUrl": "https://chaoshi.m.tmall.com/", - "smallBannerItems": [{ - "img": "https://img.alicdn.com/tps/TB1Ff_0LVXXXXXNaXXXXXXXXXXX-375-262.jpg", - "url": "https://chaoshi.m.tmall.com/" - }, { - "img": "https://img.alicdn.com/tps/TB1Ff_0LVXXXXXNaXXXXXXXXXXX-375-262.jpg", - "url": "https://chaoshi.m.tmall.com/" - }] - }, - "category": { - "floorTitle": "https://gw.alicdn.com/tps/TB1._64LVXXXXatXVXXXXXXXXXX-750-100.jpg", - "_backup": { - "main": [], - "sub": [{ - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/dqc?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_15_735362&pos=1", - "entityType": "OTHER", - "colour": "b4ebff", - "industryTitle": "数码", - "_pos_": 1, - "industryBenefit": "疯抢大牌新品", - "industryId": "15", - "industryImg": "//img.alicdn.com/tps/i4/TB1_xG.LVXXXXbWaXXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/xihu?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_13_735362&pos=2", - "entityType": "OTHER", - "colour": "cdffa4", - "industryTitle": "洗护", - "_pos_": 2, - "industryBenefit": "爆款1分钱抢", - "industryId": "13", - "industryImg": "//img.alicdn.com/tps/i3/TB1Ft_CLVXXXXX2XXXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/mobilephone?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_14_735362&pos=3", - "entityType": "OTHER", - "colour": "c5ffdf", - "industryTitle": "手机", - "_pos_": 3, - "industryBenefit": "1元抢优惠券", - "industryId": "14", - "industryImg": "//img.alicdn.com/tps/i3/TB1mJjuLVXXXXc.XXXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/xiangbaohuanxin?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_11_735362&pos=4", - "entityType": "OTHER", - "colour": "ffccdc", - "industryTitle": "箱包", - "_pos_": 4, - "industryBenefit": "极致焕新尖货", - "industryId": "11", - "industryImg": "//img.alicdn.com/tps/i2/TB1_5P9KVXXXXayaXXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/newfood?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_12_735362&pos=5", - "entityType": "OTHER", - "colour": "fff5a3", - "industryTitle": "食品", - "_pos_": 5, - "industryBenefit": "新品1分试吃", - "industryId": "12", - "industryImg": "//img.alicdn.com/tps/i2/TB1HfLzLVXXXXb_XXXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/zbps?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_3_735362&pos=6", - "entityType": "OTHER", - "colour": "bbffe5", - "industryTitle": "珠宝配饰", - "_pos_": 6, - "industryBenefit": "大牌1折秒杀", - "industryId": "3", - "industryImg": "//img.alicdn.com/tps/i1/TB1s5y.LVXXXXb.aXXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/getbeauty?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_2_735362&pos=7", - "entityType": "OTHER", - "colour": "ffd1b6", - "industryTitle": "美妆", - "_pos_": 7, - "industryBenefit": "即刻预约美丽", - "industryId": "2", - "industryImg": "//img.alicdn.com/tps/i1/TB1lNvoLVXXXXaoXFXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/guojixfs?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_1_735362&pos=8", - "entityType": "OTHER", - "colour": "b9eaf2", - "industryTitle": "天猫国际", - "_pos_": 8, - "industryBenefit": "唤醒全球潮流", - "industryId": "1", - "industryImg": "//img.alicdn.com/tps/i4/TB1JHbkLVXXXXblXFXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/newnv?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_10_735362&pos=9", - "entityType": "OTHER", - "colour": "fff8ee", - "industryTitle": "鞋履", - "_pos_": 9, - "industryBenefit": "潮品精选鞋履", - "industryId": "10", - "industryImg": "//img.alicdn.com/tps/i2/TB1RovwLVXXXXXnXpXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/nvzhuang?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_7_735362&pos=10", - "entityType": "OTHER", - "colour": "d5cbe8", - "industryTitle": "女装", - "_pos_": 10, - "industryBenefit": "折后用券抢新", - "industryId": "7", - "industryImg": "//img.alicdn.com/tps/i1/TB1BOncLVXXXXXSaXXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/man?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_6_735362&pos=11", - "entityType": "OTHER", - "colour": "cbe9a9", - "industryTitle": "男装", - "_pos_": 11, - "industryBenefit": "新品低至9.9元", - "industryId": "6", - "industryImg": "//img.alicdn.com/tps/i4/TB1t9TmLVXXXXbkXFXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/myxfs?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_5_735362&pos=12", - "entityType": "OTHER", - "colour": "f8e1ff", - "industryTitle": "母婴童装", - "_pos_": 12, - "industryBenefit": "跨店满299减40", - "industryId": "5", - "industryImg": "//img.alicdn.com/tps/i3/TB1kpziLVXXXXabXVXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/jfjs?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_4_735362&pos=13", - "entityType": "OTHER", - "colour": "bbffe5", - "industryTitle": "家纺家饰", - "_pos_": 13, - "industryBenefit": "全场低至9.9元", - "industryId": "4", - "industryImg": "//img.alicdn.com/tps/i1/TB1lUjzLVXXXXbAXXXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/neiyi328?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_9_735362&pos=14", - "entityType": "OTHER", - "colour": "ffc7c9", - "industryTitle": "内衣", - "_pos_": 14, - "industryBenefit": "新品3折起", - "industryId": "9", - "industryImg": "//img.alicdn.com/tps/i1/TB1S7PuLVXXXXcVXXXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/ydhw?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_8_735362&pos=15", - "entityType": "OTHER", - "colour": "cbdbfe", - "industryTitle": "运动户外", - "_pos_": 15, - "industryBenefit": "大牌新品抢券", - "industryId": "8", - "industryImg": "//img.alicdn.com/tps/i2/TB1mQDALVXXXXbdXXXXrdvGIFXX-248-155.jpg" - }], - "isFormal": false, - "exposureParam": "//ac.mmstat.com/1.gif?apply=vote&abbucket=_AB-M1011_B5&com=02&acm=03654.1003.1.735362&cod=03654&cache=CG5ZB02B&aldid=e5zPEI6R&logtype=4&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.735362&ip=42.120.74.159", - "id": "03654" - } - }, - "brand": { - "floorTitle": "https://gw.alicdn.com/tps/TB1._64LVXXXXatXVXXXXXXXXXX-750-100.jpg", - "bannerItems": [{ - "leftImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }, { - "leftImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }, { - "leftImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }, { - "leftImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }, { - "leftImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }, { - "leftImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }, { - "leftImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }, { - "leftImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }, { - "leftImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }] - }, - "match": { - "floorTitle": "https://gw.alicdn.com/tps/TB1._64LVXXXXatXVXXXXXXXXXX-750-100.jpg", - "isShowTmSpecBanner": true, - "tmSpecBanner": { - "img": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "url": "https://chaoshi.m.tmall.com/" - }, - "bannerItems": [{ - "leftImg": "https://gw.alicdn.com/tps/TB1OUnILVXXXXcoXFXXXXXXXXXX-374-416.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1OUnILVXXXXcoXFXXXXXXXXXX-374-416.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }, { - "leftImg": "https://gw.alicdn.com/tps/TB1OUnILVXXXXcoXFXXXXXXXXXX-374-416.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1OUnILVXXXXcoXFXXXXXXXXXX-374-416.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }] - } - }; - self.simLoadingData(this.cnt++); - }, - _initEnv: function _initEnv() { - var self = this; - var config = self.$getConfig(function () {}) || {}; - self._app.IS_H5 = (typeof window === 'undefined' ? 'undefined' : (0, _typeof3.default)(window)) === 'object'; - self._app.IS_TEST = config.bundleUrl ? config.bundleUrl.indexOf('wh_test') > -1 : false; - self._app.OS = config.os; - self._app.PLATFORM = config.platform; - var title = '新风尚主会场'; - self._app.config = { - title: title, - pageName: '2016-xfs-main' - }; - }, - _initUtil: function _initUtil() { - var self = this; - var app = self._app || {}; - app.Util = { - randomInt: function randomInt(min, max) { - return Math.round(Math.random() * (max - min)) + min; - }, - randomItemFromArr: function randomItemFromArr(arr) { - if (!arr) return; - return arr[self._app.Util.randomInt(0, arr.length - 1)]; - }, - httpurl: function httpurl(url) { - var params = {}; - - Object.defineProperty(this, 'params', { - set: function set(v) { - if ((typeof v === 'undefined' ? 'undefined' : (0, _typeof3.default)(v)) === 'object') { - for (var p in params) { - delete params[p]; - } - for (var p in v) { - params[p] = v[p]; - } - } - }, - get: function get() { - return params; - }, - enumerable: true - }); - - Object.defineProperty(this, 'search', { - set: function set(v) { - if (typeof v === 'string') { - if (v.indexOf('?') === 0) { - v = v.substr(1); - } - var search = v.split('&'); - for (var p in params) { - delete params[p]; - } - for (var i = 0; i < search.length; i++) { - var pair = search[i].split('='); - if (pair[0]) { - try { - params[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1] || ''); - } catch (e) { - params[pair[0]] = pair[1] || ''; - } - } - } - } - }, - get: function get() { - var search = []; - for (var p in params) { - if (params[p]) { - try { - search.push(encodeURIComponent(p) + '=' + encodeURIComponent(params[p])); - } catch (e) { - search.push(p + '=' + params[p]); - } - } else { - try { - search.push(encodeURIComponent(p)); - } catch (e) { - search.push(p); - } - } - } - if (search.length) { - return '?' + search.join('&'); - } else { - return ''; - } - }, - enumerable: true - }); - - var hash; - Object.defineProperty(this, 'hash', { - set: function set(v) { - if (typeof v === 'string') { - if (v && v.indexOf('#') < 0) { - v = '#' + v; - } - hash = v || ''; - } - }, - get: function get() { - return hash; - }, - enumerable: true - }); - - this.set = function (v) { - var matchArr; - if (matchArr = v.match(new RegExp('^([a-z0-9-]+\:)?' + '[/]{2}' + '(?:([^@/:\?]+)(?::([^@/:]+))?@)?' + '([^:/?#]+)' + '(?:[:]([0-9]+))?' + '([/][^?#;]*)?' + '(?:[?]([^?#]*))?' + '(#[^#]*)?$', 'i'))) { - this.protocol = matchArr[1] || ''; - this.username = matchArr[2] || ''; - this.password = matchArr[3] || ''; - this.hostname = this.host = matchArr[4]; - this.port = matchArr[5] || ''; - this.pathname = matchArr[6] || '/'; - this.search = matchArr[7] || ''; - this.hash = matchArr[8] || ''; - this.origin = this.protocol + '//' + this.hostname; - } else { - throw new Error('Wrong uri scheme.'); - } - }; - - this.toString = function () { - var string = this.protocol + '//'; - if (this.username) { - string += this.username; - if (this.password) { - string += ':' + this.password; - } - string += '@'; - } - string += this.host; - if (this.port && this.port !== '80') { - string += ':' + this.port; - } - if (this.pathname) { - string += this.pathname; - } - if (this.search) { - string += this.search; - } - if (this.hash) { - string += this.hash; - } - return string; - }; - - this.set(url.toString()); - } - - }; - }, - handleRefresh: function handleRefresh(e) { - var vm = this; - vm.displayRefresh = 'show'; - setTimeout(function () { - vm.displayRefresh = 'hide'; - }, 2000); - }, - handleLoading: function handleLoading(e) { - var vm = this; - vm.displayLoading = 'show'; - this.$call('modal', 'toast', { - message: 'loading.' - }); - setTimeout(function () { - vm.simLoadingData(vm.cnt++); - vm.displayLoading = 'hide'; - }, 2000); - }, - simLoadingData: function simLoadingData(num) { - if (num >= 3) { - this.$call('modal', 'toast', { - message: '已到底部' - }); - return; - } - this['show' + num] = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/match.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/match.js deleted file mode 100644 index 96976e41..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/match.js +++ /dev/null @@ -1,273 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(246) - var __weex_template__ = __webpack_require__(287) - var __weex_style__ = __webpack_require__(288) - var __weex_script__ = __webpack_require__(289) - - __weex_define__('@weex-component/e4f94096a035d75578fa1eb2d8967b5f', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/e4f94096a035d75578fa1eb2d8967b5f',undefined,undefined) - -/***/ }, - -/***/ 244: -/***/ function(module, exports) { - - module.exports = { - "type": "image", - "style": { - "width": function () {return this.width}, - "height": function () {return this.height} - }, - "attr": { - "src": function () {return this.src}, - "imageQuality": function () {return this.quality} - }, - "events": { - "click": "_clickHandler" - } - } - -/***/ }, - -/***/ 245: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - quality: 'normal', - width: 0, - height: 0, - src: '', - href: '', - spmc: 0, - spmd: 0 - }}, - methods: { - ready: function ready() {}, - _clickHandler: function _clickHandler() { - this.$call('modal', 'toast', { - message: 'click', - duration: 1 - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 246: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(244) - var __weex_script__ = __webpack_require__(245) - - __weex_define__('@weex-component/banner', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - -/***/ }, - -/***/ 287: -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "children": [ - { - "type": "image", - "shown": function () {return this.ds.floorTitle}, - "classList": [ - "title" - ], - "attr": { - "src": function () {return this.ds.floorTitle} - } - }, - { - "type": "container", - "classList": [ - "tm-banner" - ], - "shown": function () {return this.ds.isShowTmSpecBanner&&this.ds.tmSpecBanner&&this.isTM}, - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_750}, - "height": function () {return this.NUMBER_200}, - "src": function () {return this.ds.tmSpecBanner.img}, - "href": function () {return this.ds.tmSpecBanner.url} - } - } - ] - }, - { - "type": "container", - "repeat": function () {return this.ds.bannerItems}, - "style": { - "flexDirection": "row", - "marginBottom": function () {return this.NUMBER_4} - }, - "children": [ - { - "type": "container", - "style": { - "marginRight": function () {return this.NUMBER_4} - }, - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_373}, - "height": function () {return this.NUMBER_240}, - "src": function () {return this.leftImg}, - "href": function () {return this.leftUrl} - } - } - ] - }, - { - "type": "container", - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_373}, - "height": function () {return this.NUMBER_240}, - "src": function () {return this.rightImg}, - "href": function () {return this.rightUrl} - } - } - ] - } - ] - } - ] - } - -/***/ }, - -/***/ 288: -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "tm-banner": { - "bottom": 4 - } - } - -/***/ }, - -/***/ 289: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - module.exports = { - data: function () {return { - NUMBER_750: 750, - NUMBER_373: 373, - NUMBER_240: 240, - NUMBER_200: 200, - NUMBER_4: 4 - }}, - methods: { - ready: function ready() { - var self = this; - self._initEnv(); - self._addBannerIndex(); - }, - _initEnv: function _initEnv() { - var self = this; - self.isTM = self._app.IS_TM; - }, - _addBannerIndex: function _addBannerIndex() { - var self = this; - var ds = self.ds; - if (!ds || !ds.bannerItems) return; - for (var i = 0; i < ds.bannerItems.length; i++) { - ds.bannerItems[i].index = i; - } - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/resource.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/resource.js deleted file mode 100644 index b08afa9d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/resource.js +++ /dev/null @@ -1,333 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(246) - __webpack_require__(249) - var __weex_template__ = __webpack_require__(279) - var __weex_style__ = __webpack_require__(280) - var __weex_script__ = __webpack_require__(281) - - __weex_define__('@weex-component/898d20378eee87156b93aef1be724cdb', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/898d20378eee87156b93aef1be724cdb',undefined,undefined) - -/***/ }, - -/***/ 244: -/***/ function(module, exports) { - - module.exports = { - "type": "image", - "style": { - "width": function () {return this.width}, - "height": function () {return this.height} - }, - "attr": { - "src": function () {return this.src}, - "imageQuality": function () {return this.quality} - }, - "events": { - "click": "_clickHandler" - } - } - -/***/ }, - -/***/ 245: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - quality: 'normal', - width: 0, - height: 0, - src: '', - href: '', - spmc: 0, - spmd: 0 - }}, - methods: { - ready: function ready() {}, - _clickHandler: function _clickHandler() { - this.$call('modal', 'toast', { - message: 'click', - duration: 1 - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 246: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(244) - var __weex_script__ = __webpack_require__(245) - - __weex_define__('@weex-component/banner', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - -/***/ }, - -/***/ 247: -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "children": [ - { - "type": "container", - "shown": function () {return this.direction==='row'}, - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "container", - "repeat": function () {return this.ds}, - "style": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "marginLeft": function () {return this.space} - }, - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "src": function () {return this.img}, - "href": function () {return this.url} - } - } - ] - } - ] - }, - { - "type": "container", - "shown": function () {return this.direction==='column'}, - "children": [ - { - "type": "container", - "repeat": function () {return this.ds}, - "style": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "marginTop": function () {return this.space} - }, - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.width}, - "height": function () {return this.height}, - "src": function () {return this.img}, - "href": function () {return this.url} - } - } - ] - } - ] - } - ] - } - -/***/ }, - -/***/ 248: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - space: 0, - width: 0, - height: 0, - spmc: 0, - spmdprefix: '', - ds: [] - }}, - methods: { - ready: function ready() { - var self = this; - var ds = self.ds; - var length = ds.length; - for (var i = 0; i < length; i++) { - var item = ds[i]; - item.index = i; - item.space = i % length === 0 ? 0 : self.space; - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 249: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(246) - var __weex_template__ = __webpack_require__(247) - var __weex_script__ = __webpack_require__(248) - - __weex_define__('@weex-component/banners', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - -/***/ }, - -/***/ 279: -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "shown": function () {return !this.ds.isHide}, - "children": [ - { - "type": "container", - "classList": [ - "big-banner-container" - ], - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_750}, - "height": function () {return this.NUMBER_200}, - "src": function () {return this.ds.bigBannerImg}, - "href": function () {return this.ds.bigBannerUrl} - } - } - ] - }, - { - "type": "banners", - "attr": { - "ds": function () {return this.ds.smallBannerItems}, - "width": function () {return this.NUMBER_373}, - "height": function () {return this.NUMBER_224}, - "direction": "row", - "space": function () {return this.NUMBER_4} - } - } - ] - } - -/***/ }, - -/***/ 280: -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "big-banner-container": { - "marginBottom": 4 - } - } - -/***/ }, - -/***/ 281: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - module.exports = { - data: function () {return { - NUMBER_750: 750, - NUMBER_200: 200, - NUMBER_373: 373, - NUMBER_224: 224, - NUMBER_4: 4 - }} - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/scene.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/scene.js deleted file mode 100644 index a30842aa..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/new-fashion/scene.js +++ /dev/null @@ -1,506 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(246) - var __weex_template__ = __webpack_require__(283) - var __weex_style__ = __webpack_require__(284) - var __weex_script__ = __webpack_require__(285) - - __weex_define__('@weex-component/18e03f6e7e4b9d87e4b470dfec07a573', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/18e03f6e7e4b9d87e4b470dfec07a573',undefined,undefined) - -/***/ }, - -/***/ 244: -/***/ function(module, exports) { - - module.exports = { - "type": "image", - "style": { - "width": function () {return this.width}, - "height": function () {return this.height} - }, - "attr": { - "src": function () {return this.src}, - "imageQuality": function () {return this.quality} - }, - "events": { - "click": "_clickHandler" - } - } - -/***/ }, - -/***/ 245: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - quality: 'normal', - width: 0, - height: 0, - src: '', - href: '', - spmc: 0, - spmd: 0 - }}, - methods: { - ready: function ready() {}, - _clickHandler: function _clickHandler() { - this.$call('modal', 'toast', { - message: 'click', - duration: 1 - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 246: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(244) - var __weex_script__ = __webpack_require__(245) - - __weex_define__('@weex-component/banner', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - -/***/ }, - -/***/ 283: -/***/ function(module, exports) { - - module.exports = { - "type": "container", - "children": [ - { - "type": "image", - "shown": function () {return this.ds.floorTitle}, - "classList": [ - "title" - ], - "attr": { - "src": function () {return this.ds.floorTitle} - } - }, - { - "type": "container", - "classList": [ - "small-item-container" - ], - "style": { - "height": function () {return Math.round(this.smallItems.length/2)*234} - }, - "children": [ - { - "type": "container", - "repeat": function () {return this.smallItems}, - "classList": [ - "small-item" - ], - "style": { - "top": function () {return this.top}, - "left": function () {return this.left} - }, - "children": [ - { - "type": "container", - "children": [ - { - "type": "image", - "classList": [ - "small-item-bg" - ], - "attr": { - "src": function () {return this.smallItemBg} - } - } - ] - }, - { - "type": "container", - "classList": [ - "small-item-img" - ], - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_186}, - "height": function () {return this.NUMBER_206}, - "src": function () {return this.itemImg}, - "href": function () {return this.sceneUrl} - } - } - ] - }, - { - "type": "container", - "classList": [ - "small-benifit-img" - ], - "children": [ - { - "type": "banner", - "attr": { - "width": function () {return this.NUMBER_170}, - "height": function () {return this.NUMBER_100}, - "src": function () {return this.benefitImg}, - "href": function () {return this.sceneUrl} - } - } - ] - } - ] - } - ] - } - ] - } - -/***/ }, - -/***/ 284: -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "item": { - "width": 750, - "height": 340, - "marginBottom": 4 - }, - "item-img": { - "position": "absolute", - "left": 110, - "top": 20 - }, - "right-item-img": { - "position": "absolute", - "right": 110, - "top": 20 - }, - "benifit-img": { - "position": "absolute", - "right": 5, - "top": 160 - }, - "right-benifit-img": { - "position": "absolute", - "left": 40, - "top": 160 - }, - "small-item-container": { - "width": 750 - }, - "small-item": { - "position": "absolute", - "width": 373, - "height": 230, - "flexDirection": "row" - }, - "small-item-bg": { - "width": 373, - "height": 230 - }, - "small-item-img": { - "position": "absolute", - "left": 12, - "top": 12 - }, - "small-benifit-img": { - "position": "absolute", - "right": 0, - "top": 65 - } - } - -/***/ }, - -/***/ 285: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - NUMBER_186: 186, - NUMBER_206: 206, - NUMBER_373: 373, - NUMBER_230: 230, - NUMBER_170: 170, - NUMBER_100: 100, - NUMBER_750: 750, - NUMBER_300: 300, - NUMBER_340: 340, - smallItemBg: 'https://gw.alicdn.com/tps/TB1oBIeLVXXXXatXpXXXXXXXXXX-373-230.jpg', - items: [], - smallItems: [], - sceneBgs: ['https://gw.alicdn.com/tps/TB1xBT8LVXXXXbYXVXXXXXXXXXX-750-340.jpg', 'https://gw.alicdn.com/tps/TB1RoEkLVXXXXaMXpXXXXXXXXXX-750-340.jpg', 'https://gw.alicdn.com/tps/TB1DiEpLVXXXXa7XXXXXXXXXXXX-750-340.jpg'] - }}, - methods: { - ready: function ready() { - var self = this; - self._loadData(); - }, - - _loadData: function _loadData() { - var self = this; - var content = [{ - "id": "1111", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1392&scm=1003.1.03653.SUB_1111_740603&pos=1", - "_s_": "d", - "itemImg": "https://img.alicdn.com/tps/TB1c7t.MXXXXXchXXXXXXXXXXXX-182-206.jpg", - "sceneCat": "50012010,50012027,50012032,50007003,50008881,50008883,1623,162116,50010850,123216004", - "finalScore": "10000.0", - "_pos_": "1", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/TB1Zgl2MXXXXXaYXFXXXXXXXXXX-170-100.png" - }, { - "id": "1396", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1396&scm=1003.1.03653.SUB_1396_740603&pos=2", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i2/TB1O1VfMXXXXXX0aXXXKofZZpXX-182-206.jpg", - "sceneCat": "50010368,50011892,50011894,50013794,50010792,50010790,50010790,121434025,121396024,50010793,50010789,50010793,121386035,121392037,121458034,121392036,121482027,121392015,121368014,121418013,121392016,50011982,122690003,302910,50012010,122654005,50012019,50012825,50012027,50012042,50011744,50012906,50012907,50008881,50008883,50008882?,50012784?,50022889,50022728,50013228,50013896,50014775,50019578,50014822,50026394,50019694,50019279,50019272,50014079,50014078,50014076,50014077,50017238,121464011,121468014,50019130,50019127,50019126,50019128,50019125,50015984,50014803,50014802,50015980,50014788,50014787,50019526,50014791,50019520,50013932,50014677,50015978,50014786,50014785,50522001,50014493,50023100,121418021,121388027,121424021,121418020,121368020,50012036,50012044,50012043,50010368, 50011892, 50019274,50012044,50012048,50012043,50013228,50013238,50011726,50019279,50015984,50014803,50014802,50019526,50014791,50019520,50013932,50014677,50019526,50013314,50023341,50016752,50016749,50016747,50016744,50016741,50016740,50016739,50016738,50016737,50016769,50016763,50016750,50007003,302910,50012010,50012032,50012033,50011745,50011746,50011894,121458034,121756003,121426033,50011982,50011979,121390006,124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,50010850,50000671,162201,50022566,50007068,50026651,50000852,162104,162116,162205,1623,123216004,162404,162401,50011412,50011411,162402,50008903,50011413,162403,50000697,1629,50011277,121412004,50008897,50008901,50008899,50013194,50008904,50008905,50008898,162103,50008900,50013196,121434004,50005065,162702,162701,162703,1636,1512,123534001,14,50008090,50012341,50132002,50012342,50012343,50012345,50012346,50013189,50010527,121394006,50013618,50010537,50012424,121452038,121484044,50010540,50010548,50024769,121450007,50013697,50010218,50005960,50005962,50012820,50012406,50023620,50023605,50008829,50024064,50023440,50008687,124392001,50023771,50006804,50012410,124482010,121398023,50023789,50011975", - "finalScore": "10000.0", - "_pos_": "2", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i1/TB1cp4sMXXXXXbLXFXX3bpXTXXX-170-100.png" - }, { - "id": "1616", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1616&scm=1003.1.03653.SUB_1616_740603&pos=3", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i4/TB1dlEALVXXXXbxXpXXKofZZpXX-182-206.jpg", - "sceneCat": "50009032,50007003,302910,1512,124688012,124986002,124942005,50023722,50010368,50011892,50011894", - "finalScore": "10000.0", - "_pos_": "3", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i3/TB1fxonLVXXXXXUaXXX3bpXTXXX-170-100.png" - }, { - "id": "16424", - "sceneUrl": "https://brand.tmall.com/mobilestreet/subject.htm?id=16424&acm=03653.1003.1.740603&aldid=VyrSqx06&spm=0.0.0.0.Wv8ion&scm=1003.1.03653.SUB_16424_740603&pos=4", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i4/TB1.i2_LVXXXXbrXpXXKofZZpXX-182-206.jpg", - "sceneCat": "50012043,50012036,50010850,50000671,1622,50000852,162104,50000697,162205,162116,50012027,50012032,50012028,50012033,50012042,50008882,50012772,50006846,50008881,50000436,50011123,3035,50010167,50000557,50010158,50010159,50010402,50010160,50011980,50011993,121390006,50011978,50011977,50011979,121454013,50011745", - "finalScore": "6.729749999999999", - "_pos_": "4", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i2/TB1bhH5LVXXXXapXFXX3bpXTXXX-170-100.png" - }, { - "id": "16425", - "sceneUrl": "https://brand.tmall.com/mobilestreet/subject.htm?id=16360&acm=03653.1003.1.740603&aldid=VyrSqx06&spm=0.0.0.0.MttFEC&scm=1003.1.03653.SUB_16425_740603&pos=5", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i3/TB15ywbLVXXXXcdXXXXKofZZpXX-182-206.jpg", - "sceneCat": "50012043,50012036,50010850,50000671,1622,50000852,162104,50000697,162205,162116,50012027,50012032,50012028,50012033,50012042,50008882,50012772,50006846,50008881,50000436,50011123,3035,50010167,50000557,50010158,50010159,50010402,50010160,50011980,50011993,121390006,50011978,50011977,50011979,121454013,50011745", - "finalScore": "6.729749999999999", - "_pos_": "5", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i1/TB1JBLYLVXXXXXlXVXX3bpXTXXX-170-100.png" - }, { - "id": "1625", - "sceneUrl": "https://pages.tmall.com/wow/fushi/act/gf-chaoliu?acm=03653.1003.1.740603&aldid=VyrSqx06&scm=1003.1.03653.SUB_1625_740603&pos=6", - "_s_": "d", - "itemImg": "//img.alicdn.com/bao/uploaded/i2/TB1Gd21KVXXXXXZXVXXXXXXXXXX_!!0-item_pic.jpg", - "sceneCat": "50012043,50012036,50010850,50000671,1622,50000852,162104,50000697,162205,162116,50012027,50012032,50012028,50012033,50012042,50008882,50012772,50006846,50008881,50000436,50011123,3035,50010167,50000557,50010158,50010159,50010402,50010160,50011980,50011993,121390006,50011978,50011977,50011979,121454013,50011982,50011991,50012906,50011744,50011745,50011743,50012907,50011746,50010815,121460005,50013794,122438001,121398006,121386023,50010808", - "finalScore": "6.729749999999999", - "_pos_": "6", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i3/TB1qxXzMXXXXXcjXFXX3bpXTXXX-170-100.png" - }, { - "id": "1392", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1392&scm=1003.1.03653.SUB_1392_740603&pos=7", - "_s_": "d", - "itemImg": "https://img.alicdn.com/tps/TB1c7t.MXXXXXchXXXXXXXXXXXX-182-206.jpg", - "sceneCat": "50006842,50006840,50008881,50008883,50008882,50008884,50012774,50012775,50012776,50012781,5000888,50012766,50012771,50012772,50010404,50010368, 50011892, 50011894,124688012,124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,50011740,50008882,50008886,50008885,50012777,50012778,50011977,50011978,50011979,50011980,50011982,50011990,50011999,50012000,50011993,50011996,50011997,121366011,121484009,121368010,121390006,121398029,121404030,121404031,121408040,121410035,121412033,121414041,121418013,121454013,121410013,121422013,121484013,50010789,50010790,50010792,50010793,50010794,50010796,50010797,50010798,50010801,50010803,50010805,50010807,50010808,50010815,121410007,121426007,121452004,121460005,50012341,50132002,50012342,50012343,50012345,50012346,50013189,50010527,121394006,50013618,50010537,50012424,121452038,121484044,50010540,50010548,50024769,121366037,121458036,121392038,121420035,121364028,121468026,121472031,121476036,121470042,121418032,121410036,121472032,121420032,121470040,121384032,121460028,121448028,121400030,121424024,121482025,121418031,121402028,121388035,121460029,121400028,121400029,121418030,121476034,121478031,121448029,121480030,121366035,121424025,121426030,121484030,121412031,121384033,121424023,121402027,121408039,121420033,121452028,121466040,121416029,121482028,121420034,121396046,121422052,121370037,121424031,21364043,121472040,121412045,121424032,125054002,125074007,125074008,125104003,125080003,125024006,125080004", - "finalScore": "4.4951428571428576", - "_pos_": "7", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/TB1Zgl2MXXXXXaYXFXXXXXXXXXX-170-100.png" - }, { - "id": "1395", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1395&scm=1003.1.03653.SUB_1395_740603&pos=8", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i2/TB1p4NcMXXXXXbGaXXXKofZZpXX-182-206.jpg", - "sceneCat": "50008881,50008883,50008882,50008884,50012774,50012775,50012776,50012781,50008886,50012766,50012771,50012772,50010850,50000671,162201,50022566,50007068,50026651,50000852,162104,162116,162205,1623,123216004,162404,162401,50011412,50011411,16240,50012773,50006846,50010394,50008888,50008890,50008889,50012784,50012785,50012786,50012787,50008885,50012777,50012778,124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,50011740,50006843,50006842,124942005,50010368,50011892,50011894,50023751,121366037,121458036,121392038,121420035,121364028,121468026,121400029,121418030,121478031,121480030,121366035,121424025,121426030,121484030,121412031,125054002,125074007,125074008,125104003,125080003,125024006,125080004,121400030,121424024,121482025,121418031,121402028,121388035", - "finalScore": "4.465166666666667", - "_pos_": "8", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i1/TB1ySNtMXXXXXamXFXX3bpXTXXX-170-100.png" - }, { - "id": "1394", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1394&scm=1003.1.03653.SUB_1394_740603&pos=9", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i4/TB1Ns8eMXXXXXb1aXXXKofZZpXX-182-206.jpg", - "sceneCat": "50010850,50000671,162201,50022566,50007068,50026651,50000852,162104,162116,162205,1623,123216004,162404,162401,50011412,50011411,162402,50008903,50011413,162403,50000697,1629,50011277,121412004,50008897,50008901,50008899,50013194,50008904,50008905,50008898,162103,50008900,50013196,121434004,50005065,162702,162701,162703,1636,124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,50011740,50006843,50006842,124986002,50010368, 50011892,50011894,121480030,121366035,121424025,121426030,121484030,121412031", - "finalScore": "4.309925925925926", - "_pos_": "9", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i3/TB1ZEXfMXXXXXapaXXX3bpXTXXX-170-100.png" - }, { - "id": "1610", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1610&scm=1003.1.03653.SUB_1610_740603&pos=10", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i3/TB1ONckLVXXXXbJaXXXKofZZpXX-182-206.jpg", - "sceneCat": "121484044,121452038,50012342,50012027,50012032,50006843,50010850,50000671,162104,1623,50011277,162116,123216004,50008898,121366037,121458036,121392038,121420035,121364028,121468026,121472031,121476036,121470042,121418032,121410036,121472032,121420032,121470040,121384032,121460028,121448028,121400030,121424024,121482025,121418031,121402028,121388035,121460029,121400028,121400029,121418030,121476034,121478031,121448029,121480030,121366035,121424025,121426030,121484030,121412031,121384033,121424023,121402027,121408039,121420033,121452028,121466040,121416029,121482028,121420034,121396046,121422052,121370037,121424031,21364043,121472040,121412045,121424032,125054002,125074007,125074008,125104003,125080003,125024006,125080004", - "finalScore": "4.293333333333334", - "_pos_": "10", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i2/TB1RzwFLVXXXXXsXpXX3bpXTXXX-170-100.png" - }, { - "id": "1619", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1619&scm=1003.1.03653.SUB_1619_740603&pos=11", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i3/TB1eagyLVXXXXaiXFXXKofZZpXX-182-206.jpg", - "sceneCat": "124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,122654005,50011740,50009032,124688012,213202,121396029,121476023,121410029,213203,50023326,213205,50022686,50023293,50466023,50024999,50016885,50011894", - "finalScore": "4.23", - "_pos_": "11", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i4/TB1j0AxLVXXXXaRXFXX3bpXTXXX-170-100.png" - }, { - "id": "1613", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1613&scm=1003.1.03653.SUB_1613_740603&pos=12", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i2/TB1WssFLVXXXXXUXpXXKofZZpXX-182-206.jpg", - "sceneCat": "50023108,50022893,50022892,50022890,50013228,50019520,50017120,50019560,50017129,50017128,50017127,50017126,50017125,50017124,50017123,50017122,50017121,50020039,50020038,50017119,50019559,50017110,50017108,50017107,50017097,50017096,50017095,50017094,50017093,50017092,50012036,50012041", - "finalScore": "4.2186666666666675", - "_pos_": "12", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i1/TB1Rg.qLVXXXXbqXVXX3bpXTXXX-170-100.png" - }, { - "id": "1614", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1614&scm=1003.1.03653.SUB_1614_740603&pos=13", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i1/TB1KzUxLVXXXXajXFXXKofZZpXX-182-206.jpg", - "sceneCat": "50013238,50011726,50022893,50022892,50022890,50013228,50017129,50020038,50017119,50019559,50017102,50017110,50017097,50019707,50019555,50016677,50018317,50016675,50016673,50016672,50016671,50016670,50016732,50016669,50016668,50016667,50016666,50016665,50016683,50016682,50016608,50016607,50016637,50016638,50012036,50012043", - "finalScore": "4.216", - "_pos_": "13", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i2/TB1WyouLVXXXXXcXVXX3bpXTXXX-170-100.png" - }, { - "id": "1397", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1397&scm=1003.1.03653.SUB_1397_740603&pos=14", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i4/TB1dCxvMXXXXXc1XpXXKofZZpXX-182-206.jpg", - "sceneCat": "122846004,50020776,50024799,50024801,50024921,50002794,50020778,50002792,50002791,50002793,50003942,50005500,50005497,50001692,50005495,50005496,50005503,50005498,50005499,50005501,50005502,50003455,50003457,122904003,50023091,50020770,50008863,50005507,121414011,50020768,50022701,50008862,121420012,50020766,50020764,121398012,121380011,50020751,50020676,50024945,50020720,50002790,50020730,50001866,50020678,121476008,121458013,50002795,121364011,50005505,121422014,50024943,50000583,50000582,50000584,213002,50005033,50000563,50008607,50006988,50008608,50024601,50024602,50012051,50001871,122854005,121458010,121452006,121416008,50008779,50002777,121394007,121386009,50010825,50013810,121434010,50001865,50008565,50008246,50017192,121404045,121368009,121462014,50019372,50008248,121418011,50008249,50017193,50008252,50008251,50000512,121364047,122846004,50020776,50024799,50024801,50024921,50002794,50020778,50002792,50002791,50002793,50003942,50005500,50005497,50001692,50005495,50005496,50005503,50005498,50005499,50005501,50005502,50003455,50003457,122904003,50023091,50020770,50008863,50005507,121414011,50020768,50022701,50008862,121420012,50020766,50020764,121398012,121380011,50020751,50020676,50024945,50020720,50002790,50020730,50001866,50020678,121476008,121458013,50002795,121364011,50005505,121422014,50024943,50000583,50000582,50000584,213002,50005033,50000563,50008607,50006988,50008608,50024601,50024602,50012051,50020835,50021907,121472021,50021902,50005919,50002045,122724003,122652007,121408025,122688004,50021924,50021923,50000561,50011738,122676005,121396026,121388028,50003338,50021915,50011415,50011416,50003454,50021928,50021930,50021929,50021931,50024939,121384024,121472020,50020902,50020903,50020904,50020905,50021888,50021889,50021890,50023266,122960005,50012001,50011999,50012004,50012000,50012006,121394024,121412033,121394025,121450036,121472007,121480009,121388013,121466009,121484012,121366014,121434014,121422012,121476006,121396013,50011997,121434013,122646001,121458012,121468012,121368013,50011979,121366015,121406016,121456012,121366011,121414010,121460006,121368014,121388016,121396013,121400010,121470011,121474011,121478009,124760009,124768010,124822006,121482009,122430002,121454014,121392016,50001871,122854005,121458010,121452006,121416008,50008779,50002777,121394007,121386009,50010825,50013810,121434010,50001865,50008565,50008246,50017192,121404045,121368009,121462014,50019372,50008248,121418011,50008249,50017193,50008252,50008251,50000512,121364047,122846004,50020776,50024799,50024801,50024921,50002794,50020778,50002792,50002791,50002793,50003942,50005500,50005497,50001692,50005495,50005496,50005503,50005498,50005499,50005501,50005502,50003455,50003457,122904003,50023091,50020770,50008863,50005507,121414011,50020768,50022701,50008862,121420012,50020766,50020764,121398012,121380011,50020751,50020676,50024945,50020720,50002790,50020730,50001866,50020678,121476008,121458013,50002795,121364011,50005505,121422014,50024943,50000583,50000582,50000584,213002,50005033,50000563,50008607,50006988,50008608,50024601,50024602,50012051", - "finalScore": "3.4206666666666665", - "_pos_": "14", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i3/TB1ZARnMXXXXXaGXVXX3bpXTXXX-170-100.png" - }, { - "id": "1608", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1608&scm=1003.1.03653.SUB_1608_740603&pos=15", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i3/TB1xA3jLVXXXXXqapXXKofZZpXX-182-206.jpg", - "sceneCat": "50012010,50012027,50012032,50007003,50008881,50008883,1623,162116,50010850,123216004", - "finalScore": "0.0", - "_pos_": "15", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i2/TB1WvoALVXXXXcdXpXX3bpXTXXX-170-100.png" - }]; - self._processData(content); - }, - _processData: function _processData(content) { - var self = this; - if (!content) return; - var items = content.slice(0, 3); - var smallItems = content.slice(3); - - var sceneBgs = self.sceneBgs; - for (var j = 0; j < items.length; j++) { - var item = items[j]; - item.index = j; - item.bg = sceneBgs[j]; - item.itemImgCls = j % 2 === 0 ? 'item-img' : 'right-item-img'; - item.benifitImgCls = j % 2 === 0 ? 'benifit-img' : 'right-benifit-img'; - } - - for (var i = 0; i < smallItems.length; i++) { - var smallItem = smallItems[i]; - smallItem.index = i; - smallItem.top = (i - i % 2) / 2 * (230 + 4); - smallItem.left = i % 2 * (373 + 4); - } - self.items = items; - self.smallItems = smallItems; - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/pseudo-class.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/pseudo-class.js deleted file mode 100644 index 59a8b523..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/pseudo-class.js +++ /dev/null @@ -1,2425 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(294) - var __weex_style__ = __webpack_require__(295) - var __weex_script__ = __webpack_require__(296) - - __weex_define__('@weex-component/07aaf1221ad656e37ebe37291f40d193', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/07aaf1221ad656e37ebe37291f40d193',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - }, - "panel-body": {} - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */, -/* 183 */, -/* 184 */, -/* 185 */, -/* 186 */, -/* 187 */, -/* 188 */, -/* 189 */, -/* 190 */, -/* 191 */, -/* 192 */, -/* 193 */, -/* 194 */, -/* 195 */, -/* 196 */, -/* 197 */, -/* 198 */, -/* 199 */, -/* 200 */, -/* 201 */, -/* 202 */, -/* 203 */, -/* 204 */, -/* 205 */, -/* 206 */, -/* 207 */, -/* 208 */, -/* 209 */, -/* 210 */, -/* 211 */, -/* 212 */, -/* 213 */, -/* 214 */, -/* 215 */, -/* 216 */, -/* 217 */, -/* 218 */, -/* 219 */, -/* 220 */, -/* 221 */, -/* 222 */, -/* 223 */, -/* 224 */, -/* 225 */, -/* 226 */, -/* 227 */, -/* 228 */, -/* 229 */, -/* 230 */, -/* 231 */, -/* 232 */, -/* 233 */, -/* 234 */, -/* 235 */, -/* 236 */, -/* 237 */, -/* 238 */, -/* 239 */, -/* 240 */, -/* 241 */, -/* 242 */, -/* 243 */, -/* 244 */, -/* 245 */, -/* 246 */, -/* 247 */, -/* 248 */, -/* 249 */, -/* 250 */, -/* 251 */, -/* 252 */, -/* 253 */, -/* 254 */, -/* 255 */, -/* 256 */, -/* 257 */, -/* 258 */, -/* 259 */, -/* 260 */, -/* 261 */, -/* 262 */, -/* 263 */, -/* 264 */, -/* 265 */, -/* 266 */, -/* 267 */, -/* 268 */, -/* 269 */, -/* 270 */, -/* 271 */, -/* 272 */, -/* 273 */, -/* 274 */, -/* 275 */, -/* 276 */, -/* 277 */, -/* 278 */, -/* 279 */, -/* 280 */, -/* 281 */, -/* 282 */, -/* 283 */, -/* 284 */, -/* 285 */, -/* 286 */, -/* 287 */, -/* 288 */, -/* 289 */, -/* 290 */, -/* 291 */, -/* 292 */, -/* 293 */, -/* 294 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "scroller", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "active", - "type": "primary" - }, - "children": [ - { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "image", - "attr": { - "src": function () {return this.logoUrl} - }, - "classList": [ - "logo" - ] - }, - { - "type": "text", - "classList": [ - "title" - ], - "attr": { - "value": "please click image" - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "focus", - "type": "primary" - }, - "children": [ - { - "type": "input", - "attr": { - "type": "text", - "placeholder": "Input Text", - "autofocus": function () {return this.autofocus}, - "value": "test active" - }, - "classList": [ - "focusinput" - ], - "events": { - "change": "onchange", - "input": "oninput" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "enabled", - "type": "primary" - }, - "children": [ - { - "type": "input", - "attr": { - "type": "text", - "placeholder": "Input Text", - "autofocus": function () {return this.autofocus}, - "value": "test active" - }, - "classList": [ - "enabledinput" - ], - "events": { - "change": "onchange", - "input": "oninput" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "disabled", - "type": "primary" - }, - "children": [ - { - "type": "input", - "attr": { - "type": "text", - "placeholder": "Input Text", - "autofocus": function () {return this.autofocus}, - "value": "test active", - "disabled": "true" - }, - "classList": [ - "disabledinput" - ], - "events": { - "change": "onchange", - "input": "oninput" - } - } - ] - } - ] - } - ] - } - -/***/ }, -/* 295 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "alignItems": "center", - "marginTop": 20 - }, - "title": { - "fontSize": 24 - }, - "logo": { - "width": 360, - "height": 82, - "backgroundColor": "#008000", - "width:active": 180, - "height:active": 82, - "backgroundColor:active": "#FF0000" - }, - "focusinput": { - "fontSize": 60, - "height": 80, - "width": 700, - "color:focus": "#008000", - "backgroundColor:focus": "#FF0000" - }, - "enabledinput": { - "fontSize": 60, - "height": 80, - "width": 700, - "color:enabled": "#FFFF00", - "backgroundColor:enabled": "#0000FF" - }, - "disabledinput": { - "fontSize": 60, - "height": 80, - "width": 700, - "color:disabled": "#FFFFFF", - "backgroundColor:disabled": "#808080" - } - } - -/***/ }, -/* 296 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - module.exports = { - data: function () {return { - logoUrl: 'https://alibaba.github.io/weex/img/weex_logo_blue@3x.png', - autofocus: false - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/ui.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/ui.js deleted file mode 100644 index fb73cebe..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/showcase/ui.js +++ /dev/null @@ -1,2441 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(297) - var __weex_style__ = __webpack_require__(298) - var __weex_script__ = __webpack_require__(299) - - __weex_define__('@weex-component/045f40e22d4b6e9c9f36354367812ecd', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/045f40e22d4b6e9c9f36354367812ecd',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - }, - "panel-body": {} - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */, -/* 183 */, -/* 184 */, -/* 185 */, -/* 186 */, -/* 187 */, -/* 188 */, -/* 189 */, -/* 190 */, -/* 191 */, -/* 192 */, -/* 193 */, -/* 194 */, -/* 195 */, -/* 196 */, -/* 197 */, -/* 198 */, -/* 199 */, -/* 200 */, -/* 201 */, -/* 202 */, -/* 203 */, -/* 204 */, -/* 205 */, -/* 206 */, -/* 207 */, -/* 208 */, -/* 209 */, -/* 210 */, -/* 211 */, -/* 212 */, -/* 213 */, -/* 214 */, -/* 215 */, -/* 216 */, -/* 217 */, -/* 218 */, -/* 219 */, -/* 220 */, -/* 221 */, -/* 222 */, -/* 223 */, -/* 224 */, -/* 225 */, -/* 226 */, -/* 227 */, -/* 228 */, -/* 229 */, -/* 230 */, -/* 231 */, -/* 232 */, -/* 233 */, -/* 234 */, -/* 235 */, -/* 236 */, -/* 237 */, -/* 238 */, -/* 239 */, -/* 240 */, -/* 241 */, -/* 242 */, -/* 243 */, -/* 244 */, -/* 245 */, -/* 246 */, -/* 247 */, -/* 248 */, -/* 249 */, -/* 250 */, -/* 251 */, -/* 252 */, -/* 253 */, -/* 254 */, -/* 255 */, -/* 256 */, -/* 257 */, -/* 258 */, -/* 259 */, -/* 260 */, -/* 261 */, -/* 262 */, -/* 263 */, -/* 264 */, -/* 265 */, -/* 266 */, -/* 267 */, -/* 268 */, -/* 269 */, -/* 270 */, -/* 271 */, -/* 272 */, -/* 273 */, -/* 274 */, -/* 275 */, -/* 276 */, -/* 277 */, -/* 278 */, -/* 279 */, -/* 280 */, -/* 281 */, -/* 282 */, -/* 283 */, -/* 284 */, -/* 285 */, -/* 286 */, -/* 287 */, -/* 288 */, -/* 289 */, -/* 290 */, -/* 291 */, -/* 292 */, -/* 293 */, -/* 294 */, -/* 295 */, -/* 296 */, -/* 297 */ -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "Title Levels", - "type": "primary" - }, - "children": [ - { - "type": "wxc-hn", - "repeat": function () {return this.levels}, - "attr": { - "level": function () {return this.level}, - "value": function () {return 'H' + (this.level) + ', Level ' + (this.level)} - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "Buttons", - "type": "primary" - }, - "append": "tree", - "children": [ - { - "type": "div", - "style": { - "flexDirection": "row", - "marginTop": 12 - }, - "repeat": function () {return this.buttons}, - "children": [ - { - "type": "wxc-button", - "attr": { - "type": function () {return this.type}, - "size": "large", - "value": function () {return this.type} - }, - "events": { - "click": "clicked" - } - }, - { - "type": "wxc-button", - "attr": { - "type": function () {return this.type}, - "size": "middle", - "value": function () {return this.type} - }, - "events": { - "click": "clicked" - }, - "style": { - "marginLeft": 5, - "width": 210 - } - }, - { - "type": "wxc-button", - "attr": { - "type": function () {return this.type}, - "size": "small", - "value": function () {return this.type} - }, - "events": { - "click": "clicked" - }, - "style": { - "marginLeft": 5 - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "Panels", - "type": "primary" - }, - "children": [ - { - "type": "wxc-panel", - "repeat": function () {return this.panels}, - "attr": { - "title": function () {return 'Panels-' + (this.type)}, - "type": function () {return this.type}, - "border": "1" - }, - "style": { - "marginLeft": 12, - "marginRight": 12 - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return 'Panels ' + (this.type) + ' content. Panels ' + (this.type) + ' content. Panels ' + (this.type) + ' content.'} - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "List", - "type": "primary" - }, - "children": [ - { - "type": "wxc-list-item", - "repeat": function () {return this.tips}, - "events": { - "click": "clicked" - }, - "children": [ - { - "type": "text", - "classList": [ - "item-txt" - ], - "attr": { - "value": function () {return this.type} - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "Tips", - "type": "primary" - }, - "children": [ - { - "type": "wxc-tip", - "repeat": function () {return this.tips}, - "style": { - "marginBottom": 20 - }, - "attr": { - "value": function () {return 'Panels ' + (this.type) + ' content. Panels ' + (this.type) + ' content. Panels ' + (this.type) + ' content.'} - } - } - ] - } - ] - } - -/***/ }, -/* 298 */ -/***/ function(module, exports) { - - module.exports = { - "item-txt": { - "fontSize": 48, - "color": "#555555" - } - } - -/***/ }, -/* 299 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - - module.exports = { - data: function () {return { - levels: [{ level: 1 }, { level: 2 }, { level: 3 }], - buttons: [{ type: 'default' }, { type: 'primary' }, { type: 'success' }, { type: 'info' }, { type: 'warning' }, { type: 'danger' }, { type: 'link' }], - panels: [{ type: 'default' }, { type: 'primary' }, { type: 'success' }, { type: 'info' }, { type: 'warning' }, { type: 'danger' }], - tips: [{ type: 'success' }, { type: 'info' }, { type: 'warning' }, { type: 'danger' }] - }}, - methods: { - clicked: function clicked() { - var $modal = __weex_require__('@weex-module/modal'); - $modal.toast({ 'message': 'clicked!', duration: 0.5 }); - } - } - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/style/index.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/style/index.js deleted file mode 100644 index 3bccccfa..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/style/index.js +++ /dev/null @@ -1,3496 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(300) - __webpack_require__(308) - __webpack_require__(301) - var __weex_template__ = __webpack_require__(312) - var __weex_style__ = __webpack_require__(313) - var __weex_script__ = __webpack_require__(314) - - __weex_define__('@weex-component/2bb97ed0198ea3308e26ee13c0047c9c', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/2bb97ed0198ea3308e26ee13c0047c9c',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - }, - "panel-body": {} - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */, -/* 183 */, -/* 184 */, -/* 185 */, -/* 186 */, -/* 187 */, -/* 188 */, -/* 189 */, -/* 190 */, -/* 191 */, -/* 192 */, -/* 193 */, -/* 194 */, -/* 195 */, -/* 196 */, -/* 197 */, -/* 198 */, -/* 199 */, -/* 200 */, -/* 201 */, -/* 202 */, -/* 203 */, -/* 204 */, -/* 205 */, -/* 206 */, -/* 207 */, -/* 208 */, -/* 209 */, -/* 210 */, -/* 211 */, -/* 212 */, -/* 213 */, -/* 214 */, -/* 215 */, -/* 216 */, -/* 217 */, -/* 218 */, -/* 219 */, -/* 220 */, -/* 221 */, -/* 222 */, -/* 223 */, -/* 224 */, -/* 225 */, -/* 226 */, -/* 227 */, -/* 228 */, -/* 229 */, -/* 230 */, -/* 231 */, -/* 232 */, -/* 233 */, -/* 234 */, -/* 235 */, -/* 236 */, -/* 237 */, -/* 238 */, -/* 239 */, -/* 240 */, -/* 241 */, -/* 242 */, -/* 243 */, -/* 244 */, -/* 245 */, -/* 246 */, -/* 247 */, -/* 248 */, -/* 249 */, -/* 250 */, -/* 251 */, -/* 252 */, -/* 253 */, -/* 254 */, -/* 255 */, -/* 256 */, -/* 257 */, -/* 258 */, -/* 259 */, -/* 260 */, -/* 261 */, -/* 262 */, -/* 263 */, -/* 264 */, -/* 265 */, -/* 266 */, -/* 267 */, -/* 268 */, -/* 269 */, -/* 270 */, -/* 271 */, -/* 272 */, -/* 273 */, -/* 274 */, -/* 275 */, -/* 276 */, -/* 277 */, -/* 278 */, -/* 279 */, -/* 280 */, -/* 281 */, -/* 282 */, -/* 283 */, -/* 284 */, -/* 285 */, -/* 286 */, -/* 287 */, -/* 288 */, -/* 289 */, -/* 290 */, -/* 291 */, -/* 292 */, -/* 293 */, -/* 294 */, -/* 295 */, -/* 296 */, -/* 297 */, -/* 298 */, -/* 299 */, -/* 300 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(301) - var __weex_template__ = __webpack_require__(305) - var __weex_style__ = __webpack_require__(306) - var __weex_script__ = __webpack_require__(307) - - __weex_define__('@weex-component/style-box', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 301 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(302) - var __weex_style__ = __webpack_require__(303) - var __weex_script__ = __webpack_require__(304) - - __weex_define__('@weex-component/style-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 302 */ -/***/ function(module, exports) { - - module.exports = { - "type": "text", - "classList": [ - "item", - "txt" - ], - "attr": { - "value": function () {return this.value} - }, - "style": { - "backgroundColor": function () {return this.bgColor()} - } - } - -/***/ }, -/* 303 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "marginRight": 10, - "width": 160, - "height": 75, - "paddingLeft": 8, - "paddingRight": 8, - "paddingTop": 8, - "paddingBottom": 8 - }, - "txt": { - "color": "#eeeeee" - } - } - -/***/ }, -/* 304 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - value: '', - type: '0' }}, - methods: { - bgColor: function bgColor() { - return this.type == '1' ? '#7BA3A8' : '#BEAD92'; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 305 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "Box Model", - "paddingBody": "0", - "type": "primary" - }, - "children": [ - { - "type": "text", - "classList": [ - "box" - ], - "attr": { - "value": "Box" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "border", - "type": "primary" - }, - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "border-width", - "type": "" - }, - "children": [ - { - "type": "div", - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "style-item", - "style": { - "borderStyle": "solid", - "borderWidth": 2, - "borderColor": "#333333" - }, - "attr": { - "value": "" - } - }, - { - "type": "style-item", - "style": { - "borderStyle": "solid", - "borderWidth": 10, - "borderColor": "#333333" - }, - "attr": { - "value": "" - } - }, - { - "type": "style-item", - "style": { - "borderStyle": "solid", - "borderLeftWidth": 4, - "borderColor": "#333333" - }, - "attr": { - "value": "" - } - }, - { - "type": "style-item", - "style": { - "borderStyle": "solid", - "borderBottomWidth": 4, - "borderColor": "#333333" - }, - "attr": { - "value": "" - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "border-color", - "type": "" - }, - "children": [ - { - "type": "div", - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "style-item", - "style": { - "borderStyle": "solid", - "borderWidth": 4, - "borderColor": "#333333" - }, - "attr": { - "value": "" - } - }, - { - "type": "style-item", - "style": { - "borderStyle": "solid", - "borderWidth": 4, - "borderColor": "#dddddd" - }, - "attr": { - "value": "" - } - }, - { - "type": "style-item", - "style": { - "borderStyle": "solid", - "borderWidth": 4, - "borderColor": "#FF0000" - }, - "attr": { - "value": "" - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "border-style", - "type": "" - }, - "children": [ - { - "type": "wxc-tip", - "attr": { - "type": "warning", - "value": "just support four edges" - }, - "style": { - "marginBottom": 10 - } - }, - { - "type": "div", - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "style-item", - "style": { - "borderStyle": "solid", - "borderWidth": 4, - "borderColor": "#333333" - }, - "attr": { - "value": "" - } - }, - { - "type": "style-item", - "style": { - "borderStyle": "dashed", - "borderWidth": 4, - "borderColor": "#333333" - }, - "attr": { - "value": "", - "type": "" - } - }, - { - "type": "style-item", - "style": { - "borderStyle": "dotted", - "borderWidth": 4, - "borderColor": "#333333" - }, - "attr": { - "value": "" - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "border-radius", - "type": "" - }, - "children": [ - { - "type": "div", - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "style-item", - "style": { - "width": 75, - "borderRadius": 38 - }, - "attr": { - "value": "" - } - }, - { - "type": "style-item", - "style": { - "borderRadius": 20 - }, - "attr": { - "value": "" - } - }, - { - "type": "style-item", - "style": { - "borderTopLeftRadius": 20, - "borderTopRightRadius": 20 - }, - "attr": { - "value": "" - } - }, - { - "type": "style-item", - "style": { - "borderBottomLeftRadius": 20, - "borderBottomRightRadius": 20 - }, - "attr": { - "value": "" - } - } - ] - } - ] - } - ] - } - ] - } - -/***/ }, -/* 306 */ -/***/ function(module, exports) { - - module.exports = { - "box": { - "backgroundColor": "#f5f5f5", - "width": 260, - "height": 260, - "paddingLeft": 40, - "paddingTop": 40, - "paddingRight": 40, - "paddingBottom": 40, - "marginLeft": 40, - "marginTop": 40, - "marginRight": 40, - "marginBottom": 40, - "borderWidth": 40, - "borderColor": "#333333", - "borderStyle": "solid" - } - } - -/***/ }, -/* 307 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - module.exports = { - data: function () {return { - size: 40 - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 308 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(301) - var __weex_template__ = __webpack_require__(309) - var __weex_style__ = __webpack_require__(310) - var __weex_script__ = __webpack_require__(311) - - __weex_define__('@weex-component/style-flex', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 309 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "flex-direction", - "type": "primary" - }, - "children": [ - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "style-item", - "attr": { - "value": "row" - }, - "style": { - "marginRight": 0 - } - }, - { - "type": "style-item", - "attr": { - "type": "1" - } - } - ] - }, - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "flexDirection": "column" - }, - "children": [ - { - "type": "style-item", - "attr": { - "value": "column" - } - }, - { - "type": "style-item", - "attr": { - "type": "1" - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "justify-content", - "type": "primary" - }, - "children": [ - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "justifyContent": "flex-start" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0 - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "type": "1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - } - } - ] - }, - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "justifyContent": "flex-end" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0 - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "type": "1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - } - } - ] - }, - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0 - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "type": "1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - } - } - ] - }, - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "justifyContent": "space-between" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0 - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "type": "1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "align-items", - "type": "primary" - }, - "children": [ - { - "type": "div", - "classList": [ - "row", - "row-align" - ], - "style": { - "alignItems": "flex-start" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0 - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "type": "1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - } - } - ] - }, - { - "type": "div", - "classList": [ - "row", - "row-align" - ], - "style": { - "alignItems": "flex-end" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0 - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "type": "1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - } - } - ] - }, - { - "type": "div", - "classList": [ - "row", - "row-align" - ], - "style": { - "alignItems": "center" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0 - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "type": "1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - } - } - ] - }, - { - "type": "div", - "classList": [ - "row", - "row-align" - ], - "style": { - "alignItems": "stretch" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0 - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "type": "1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "flex", - "type": "primary" - }, - "children": [ - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "alignItems": "flex-start" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "value": "no flex" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "value": "no flex", - "type": "1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "value": "no flex" - } - } - ] - }, - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "alignItems": "flex-start" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "value": "no flex" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0, - "flex": 1 - }, - "attr": { - "type": "1", - "value": "flex:1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0, - "flex": 2 - }, - "attr": { - "value": "flex:2" - } - } - ] - }, - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "alignItems": "flex-start" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0, - "flex": 1 - }, - "attr": { - "value": "flex:1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0, - "flex": 1 - }, - "attr": { - "type": "1", - "value": "flex:1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0, - "flex": 1 - }, - "attr": { - "value": "flex:1" - } - } - ] - }, - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "alignItems": "flex-start" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0, - "flex": 1 - }, - "attr": { - "value": "flex:1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0, - "flex": 2 - }, - "attr": { - "type": "1", - "value": "flex:2" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0, - "flex": 3 - }, - "attr": { - "value": "flex:3" - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "flex-wrap", - "type": "primary" - }, - "children": [ - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "flexWrap": "wrap", - "backgroundColor": "#808080", - "padding": 10 - }, - "children": [ - { - "type": "style-item", - "attr": { - "value": "1:wrap" - } - }, - { - "type": "style-item", - "attr": { - "value": "2:wrap" - } - }, - { - "type": "style-item", - "attr": { - "value": "3:wrap" - } - }, - { - "type": "style-item", - "attr": { - "value": "4:wrap" - } - }, - { - "type": "style-item", - "attr": { - "value": "5:wrap" - } - }, - { - "type": "style-item", - "attr": { - "value": "6:wrap" - } - } - ] - }, - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "flexWrap": "nowrap", - "backgroundColor": "#808080", - "padding": 10 - }, - "children": [ - { - "type": "style-item", - "attr": { - "value": "1:nowrap" - } - }, - { - "type": "style-item", - "attr": { - "value": "2:nowrap" - } - }, - { - "type": "style-item", - "attr": { - "value": "3:nowrap" - } - }, - { - "type": "style-item", - "attr": { - "value": "4:nowrap" - } - }, - { - "type": "style-item", - "attr": { - "value": "5:nowrap" - } - }, - { - "type": "style-item", - "attr": { - "value": "6:nowrap" - } - } - ] - } - ] - } - ] - } - -/***/ }, -/* 310 */ -/***/ function(module, exports) { - - module.exports = { - "row": { - "flexDirection": "row", - "marginBottom": 10 - }, - "row-align": { - "height": 160, - "borderWidth": 3, - "borderColor": "#dddddd", - "borderStyle": "solid" - } - } - -/***/ }, -/* 311 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4);} - /* generated by weex-loader */ - - -/***/ }, -/* 312 */ -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "children": [ - { - "type": "style-box" - }, - { - "type": "style-flex" - }, - { - "type": "wxc-panel", - "attr": { - "title": "opacity", - "type": "primary" - }, - "children": [ - { - "type": "div", - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "style-item", - "style": { - "opacity": 1 - }, - "attr": { - "value": "1" - } - }, - { - "type": "style-item", - "style": { - "opacity": 0.9 - }, - "attr": { - "value": "0.9" - } - }, - { - "type": "style-item", - "style": { - "opacity": 0.5 - }, - "attr": { - "value": "0.5" - } - }, - { - "type": "style-item", - "style": { - "opacity": 0.2 - }, - "attr": { - "value": "0.2" - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "background-color", - "type": "primary" - }, - "children": [ - { - "type": "div", - "children": [ - { - "type": "style-item", - "classList": [ - "bg-item" - ], - "style": { - "backgroundColor": "#333333" - }, - "attr": { - "value": "#333" - } - }, - { - "type": "style-item", - "classList": [ - "bg-item" - ], - "style": { - "backgroundColor": "#333333" - }, - "attr": { - "value": "#333333" - } - }, - { - "type": "style-item", - "classList": [ - "bg-item" - ], - "style": { - "backgroundColor": "rgb(238,162,54)" - }, - "attr": { - "value": "rgb()" - } - }, - { - "type": "style-item", - "classList": [ - "bg-item" - ], - "style": { - "backgroundColor": "rgba(238,162,54,0.5)" - }, - "attr": { - "value": "rgba()" - } - }, - { - "type": "style-item", - "classList": [ - "bg-item" - ], - "style": { - "backgroundColor": "#FF0000" - }, - "attr": { - "value": "red" - } - } - ] - } - ] - } - ] - } - -/***/ }, -/* 313 */ -/***/ function(module, exports) { - - module.exports = { - "bg-item": { - "width": 690, - "marginBottom": 10 - } - } - -/***/ }, -/* 314 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - module.exports = { - data: function () {return {}} - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/style/style-box.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/style/style-box.js deleted file mode 100644 index 21eb15bf..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/style/style-box.js +++ /dev/null @@ -1,2629 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(301) - var __weex_template__ = __webpack_require__(305) - var __weex_style__ = __webpack_require__(306) - var __weex_script__ = __webpack_require__(307) - - __weex_define__('@weex-component/1cc382dbc23ca75e8dd34af712ba54f1', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/1cc382dbc23ca75e8dd34af712ba54f1',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - }, - "panel-body": {} - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */, -/* 183 */, -/* 184 */, -/* 185 */, -/* 186 */, -/* 187 */, -/* 188 */, -/* 189 */, -/* 190 */, -/* 191 */, -/* 192 */, -/* 193 */, -/* 194 */, -/* 195 */, -/* 196 */, -/* 197 */, -/* 198 */, -/* 199 */, -/* 200 */, -/* 201 */, -/* 202 */, -/* 203 */, -/* 204 */, -/* 205 */, -/* 206 */, -/* 207 */, -/* 208 */, -/* 209 */, -/* 210 */, -/* 211 */, -/* 212 */, -/* 213 */, -/* 214 */, -/* 215 */, -/* 216 */, -/* 217 */, -/* 218 */, -/* 219 */, -/* 220 */, -/* 221 */, -/* 222 */, -/* 223 */, -/* 224 */, -/* 225 */, -/* 226 */, -/* 227 */, -/* 228 */, -/* 229 */, -/* 230 */, -/* 231 */, -/* 232 */, -/* 233 */, -/* 234 */, -/* 235 */, -/* 236 */, -/* 237 */, -/* 238 */, -/* 239 */, -/* 240 */, -/* 241 */, -/* 242 */, -/* 243 */, -/* 244 */, -/* 245 */, -/* 246 */, -/* 247 */, -/* 248 */, -/* 249 */, -/* 250 */, -/* 251 */, -/* 252 */, -/* 253 */, -/* 254 */, -/* 255 */, -/* 256 */, -/* 257 */, -/* 258 */, -/* 259 */, -/* 260 */, -/* 261 */, -/* 262 */, -/* 263 */, -/* 264 */, -/* 265 */, -/* 266 */, -/* 267 */, -/* 268 */, -/* 269 */, -/* 270 */, -/* 271 */, -/* 272 */, -/* 273 */, -/* 274 */, -/* 275 */, -/* 276 */, -/* 277 */, -/* 278 */, -/* 279 */, -/* 280 */, -/* 281 */, -/* 282 */, -/* 283 */, -/* 284 */, -/* 285 */, -/* 286 */, -/* 287 */, -/* 288 */, -/* 289 */, -/* 290 */, -/* 291 */, -/* 292 */, -/* 293 */, -/* 294 */, -/* 295 */, -/* 296 */, -/* 297 */, -/* 298 */, -/* 299 */, -/* 300 */, -/* 301 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(302) - var __weex_style__ = __webpack_require__(303) - var __weex_script__ = __webpack_require__(304) - - __weex_define__('@weex-component/style-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 302 */ -/***/ function(module, exports) { - - module.exports = { - "type": "text", - "classList": [ - "item", - "txt" - ], - "attr": { - "value": function () {return this.value} - }, - "style": { - "backgroundColor": function () {return this.bgColor()} - } - } - -/***/ }, -/* 303 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "marginRight": 10, - "width": 160, - "height": 75, - "paddingLeft": 8, - "paddingRight": 8, - "paddingTop": 8, - "paddingBottom": 8 - }, - "txt": { - "color": "#eeeeee" - } - } - -/***/ }, -/* 304 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - value: '', - type: '0' }}, - methods: { - bgColor: function bgColor() { - return this.type == '1' ? '#7BA3A8' : '#BEAD92'; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 305 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "Box Model", - "paddingBody": "0", - "type": "primary" - }, - "children": [ - { - "type": "text", - "classList": [ - "box" - ], - "attr": { - "value": "Box" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "border", - "type": "primary" - }, - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "border-width", - "type": "" - }, - "children": [ - { - "type": "div", - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "style-item", - "style": { - "borderStyle": "solid", - "borderWidth": 2, - "borderColor": "#333333" - }, - "attr": { - "value": "" - } - }, - { - "type": "style-item", - "style": { - "borderStyle": "solid", - "borderWidth": 10, - "borderColor": "#333333" - }, - "attr": { - "value": "" - } - }, - { - "type": "style-item", - "style": { - "borderStyle": "solid", - "borderLeftWidth": 4, - "borderColor": "#333333" - }, - "attr": { - "value": "" - } - }, - { - "type": "style-item", - "style": { - "borderStyle": "solid", - "borderBottomWidth": 4, - "borderColor": "#333333" - }, - "attr": { - "value": "" - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "border-color", - "type": "" - }, - "children": [ - { - "type": "div", - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "style-item", - "style": { - "borderStyle": "solid", - "borderWidth": 4, - "borderColor": "#333333" - }, - "attr": { - "value": "" - } - }, - { - "type": "style-item", - "style": { - "borderStyle": "solid", - "borderWidth": 4, - "borderColor": "#dddddd" - }, - "attr": { - "value": "" - } - }, - { - "type": "style-item", - "style": { - "borderStyle": "solid", - "borderWidth": 4, - "borderColor": "#FF0000" - }, - "attr": { - "value": "" - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "border-style", - "type": "" - }, - "children": [ - { - "type": "wxc-tip", - "attr": { - "type": "warning", - "value": "just support four edges" - }, - "style": { - "marginBottom": 10 - } - }, - { - "type": "div", - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "style-item", - "style": { - "borderStyle": "solid", - "borderWidth": 4, - "borderColor": "#333333" - }, - "attr": { - "value": "" - } - }, - { - "type": "style-item", - "style": { - "borderStyle": "dashed", - "borderWidth": 4, - "borderColor": "#333333" - }, - "attr": { - "value": "", - "type": "" - } - }, - { - "type": "style-item", - "style": { - "borderStyle": "dotted", - "borderWidth": 4, - "borderColor": "#333333" - }, - "attr": { - "value": "" - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "border-radius", - "type": "" - }, - "children": [ - { - "type": "div", - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "style-item", - "style": { - "width": 75, - "borderRadius": 38 - }, - "attr": { - "value": "" - } - }, - { - "type": "style-item", - "style": { - "borderRadius": 20 - }, - "attr": { - "value": "" - } - }, - { - "type": "style-item", - "style": { - "borderTopLeftRadius": 20, - "borderTopRightRadius": 20 - }, - "attr": { - "value": "" - } - }, - { - "type": "style-item", - "style": { - "borderBottomLeftRadius": 20, - "borderBottomRightRadius": 20 - }, - "attr": { - "value": "" - } - } - ] - } - ] - } - ] - } - ] - } - -/***/ }, -/* 306 */ -/***/ function(module, exports) { - - module.exports = { - "box": { - "backgroundColor": "#f5f5f5", - "width": 260, - "height": 260, - "paddingLeft": 40, - "paddingTop": 40, - "paddingRight": 40, - "paddingBottom": 40, - "marginLeft": 40, - "marginTop": 40, - "marginRight": 40, - "marginBottom": 40, - "borderWidth": 40, - "borderColor": "#333333", - "borderStyle": "solid" - } - } - -/***/ }, -/* 307 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - module.exports = { - data: function () {return { - size: 40 - }} - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/style/style-flex.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/style/style-flex.js deleted file mode 100644 index a19e84a5..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/style/style-flex.js +++ /dev/null @@ -1,2982 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(301) - var __weex_template__ = __webpack_require__(309) - var __weex_style__ = __webpack_require__(310) - var __weex_script__ = __webpack_require__(311) - - __weex_define__('@weex-component/601bcbb157cb7b89fd0d4cc63178b528', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/601bcbb157cb7b89fd0d4cc63178b528',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - }, - "panel-body": {} - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */, -/* 111 */, -/* 112 */, -/* 113 */, -/* 114 */, -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */, -/* 132 */, -/* 133 */, -/* 134 */, -/* 135 */, -/* 136 */, -/* 137 */, -/* 138 */, -/* 139 */, -/* 140 */, -/* 141 */, -/* 142 */, -/* 143 */, -/* 144 */, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */, -/* 183 */, -/* 184 */, -/* 185 */, -/* 186 */, -/* 187 */, -/* 188 */, -/* 189 */, -/* 190 */, -/* 191 */, -/* 192 */, -/* 193 */, -/* 194 */, -/* 195 */, -/* 196 */, -/* 197 */, -/* 198 */, -/* 199 */, -/* 200 */, -/* 201 */, -/* 202 */, -/* 203 */, -/* 204 */, -/* 205 */, -/* 206 */, -/* 207 */, -/* 208 */, -/* 209 */, -/* 210 */, -/* 211 */, -/* 212 */, -/* 213 */, -/* 214 */, -/* 215 */, -/* 216 */, -/* 217 */, -/* 218 */, -/* 219 */, -/* 220 */, -/* 221 */, -/* 222 */, -/* 223 */, -/* 224 */, -/* 225 */, -/* 226 */, -/* 227 */, -/* 228 */, -/* 229 */, -/* 230 */, -/* 231 */, -/* 232 */, -/* 233 */, -/* 234 */, -/* 235 */, -/* 236 */, -/* 237 */, -/* 238 */, -/* 239 */, -/* 240 */, -/* 241 */, -/* 242 */, -/* 243 */, -/* 244 */, -/* 245 */, -/* 246 */, -/* 247 */, -/* 248 */, -/* 249 */, -/* 250 */, -/* 251 */, -/* 252 */, -/* 253 */, -/* 254 */, -/* 255 */, -/* 256 */, -/* 257 */, -/* 258 */, -/* 259 */, -/* 260 */, -/* 261 */, -/* 262 */, -/* 263 */, -/* 264 */, -/* 265 */, -/* 266 */, -/* 267 */, -/* 268 */, -/* 269 */, -/* 270 */, -/* 271 */, -/* 272 */, -/* 273 */, -/* 274 */, -/* 275 */, -/* 276 */, -/* 277 */, -/* 278 */, -/* 279 */, -/* 280 */, -/* 281 */, -/* 282 */, -/* 283 */, -/* 284 */, -/* 285 */, -/* 286 */, -/* 287 */, -/* 288 */, -/* 289 */, -/* 290 */, -/* 291 */, -/* 292 */, -/* 293 */, -/* 294 */, -/* 295 */, -/* 296 */, -/* 297 */, -/* 298 */, -/* 299 */, -/* 300 */, -/* 301 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(302) - var __weex_style__ = __webpack_require__(303) - var __weex_script__ = __webpack_require__(304) - - __weex_define__('@weex-component/style-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 302 */ -/***/ function(module, exports) { - - module.exports = { - "type": "text", - "classList": [ - "item", - "txt" - ], - "attr": { - "value": function () {return this.value} - }, - "style": { - "backgroundColor": function () {return this.bgColor()} - } - } - -/***/ }, -/* 303 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "marginRight": 10, - "width": 160, - "height": 75, - "paddingLeft": 8, - "paddingRight": 8, - "paddingTop": 8, - "paddingBottom": 8 - }, - "txt": { - "color": "#eeeeee" - } - } - -/***/ }, -/* 304 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - value: '', - type: '0' }}, - methods: { - bgColor: function bgColor() { - return this.type == '1' ? '#7BA3A8' : '#BEAD92'; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 305 */, -/* 306 */, -/* 307 */, -/* 308 */, -/* 309 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "flex-direction", - "type": "primary" - }, - "children": [ - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "flexDirection": "row" - }, - "children": [ - { - "type": "style-item", - "attr": { - "value": "row" - }, - "style": { - "marginRight": 0 - } - }, - { - "type": "style-item", - "attr": { - "type": "1" - } - } - ] - }, - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "flexDirection": "column" - }, - "children": [ - { - "type": "style-item", - "attr": { - "value": "column" - } - }, - { - "type": "style-item", - "attr": { - "type": "1" - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "justify-content", - "type": "primary" - }, - "children": [ - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "justifyContent": "flex-start" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0 - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "type": "1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - } - } - ] - }, - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "justifyContent": "flex-end" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0 - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "type": "1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - } - } - ] - }, - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0 - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "type": "1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - } - } - ] - }, - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "justifyContent": "space-between" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0 - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "type": "1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "align-items", - "type": "primary" - }, - "children": [ - { - "type": "div", - "classList": [ - "row", - "row-align" - ], - "style": { - "alignItems": "flex-start" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0 - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "type": "1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - } - } - ] - }, - { - "type": "div", - "classList": [ - "row", - "row-align" - ], - "style": { - "alignItems": "flex-end" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0 - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "type": "1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - } - } - ] - }, - { - "type": "div", - "classList": [ - "row", - "row-align" - ], - "style": { - "alignItems": "center" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0 - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "type": "1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - } - } - ] - }, - { - "type": "div", - "classList": [ - "row", - "row-align" - ], - "style": { - "alignItems": "stretch" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0 - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "type": "1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "flex", - "type": "primary" - }, - "children": [ - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "alignItems": "flex-start" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "value": "no flex" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "value": "no flex", - "type": "1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "value": "no flex" - } - } - ] - }, - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "alignItems": "flex-start" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0 - }, - "attr": { - "value": "no flex" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0, - "flex": 1 - }, - "attr": { - "type": "1", - "value": "flex:1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0, - "flex": 2 - }, - "attr": { - "value": "flex:2" - } - } - ] - }, - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "alignItems": "flex-start" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0, - "flex": 1 - }, - "attr": { - "value": "flex:1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0, - "flex": 1 - }, - "attr": { - "type": "1", - "value": "flex:1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0, - "flex": 1 - }, - "attr": { - "value": "flex:1" - } - } - ] - }, - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "alignItems": "flex-start" - }, - "children": [ - { - "type": "style-item", - "style": { - "marginRight": 0, - "flex": 1 - }, - "attr": { - "value": "flex:1" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0, - "flex": 2 - }, - "attr": { - "type": "1", - "value": "flex:2" - } - }, - { - "type": "style-item", - "style": { - "marginRight": 0, - "flex": 3 - }, - "attr": { - "value": "flex:3" - } - } - ] - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "flex-wrap", - "type": "primary" - }, - "children": [ - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "flexWrap": "wrap", - "backgroundColor": "#808080", - "padding": 10 - }, - "children": [ - { - "type": "style-item", - "attr": { - "value": "1:wrap" - } - }, - { - "type": "style-item", - "attr": { - "value": "2:wrap" - } - }, - { - "type": "style-item", - "attr": { - "value": "3:wrap" - } - }, - { - "type": "style-item", - "attr": { - "value": "4:wrap" - } - }, - { - "type": "style-item", - "attr": { - "value": "5:wrap" - } - }, - { - "type": "style-item", - "attr": { - "value": "6:wrap" - } - } - ] - }, - { - "type": "div", - "classList": [ - "row" - ], - "style": { - "flexWrap": "nowrap", - "backgroundColor": "#808080", - "padding": 10 - }, - "children": [ - { - "type": "style-item", - "attr": { - "value": "1:nowrap" - } - }, - { - "type": "style-item", - "attr": { - "value": "2:nowrap" - } - }, - { - "type": "style-item", - "attr": { - "value": "3:nowrap" - } - }, - { - "type": "style-item", - "attr": { - "value": "4:nowrap" - } - }, - { - "type": "style-item", - "attr": { - "value": "5:nowrap" - } - }, - { - "type": "style-item", - "attr": { - "value": "6:nowrap" - } - } - ] - } - ] - } - ] - } - -/***/ }, -/* 310 */ -/***/ function(module, exports) { - - module.exports = { - "row": { - "flexDirection": "row", - "marginBottom": 10 - }, - "row-align": { - "height": 160, - "borderWidth": 3, - "borderColor": "#dddddd", - "borderStyle": "solid" - } - } - -/***/ }, -/* 311 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4);} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/style/style-item.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/style/style-item.js deleted file mode 100644 index 7282a864..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/style/style-item.js +++ /dev/null @@ -1,128 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(302) - var __weex_style__ = __webpack_require__(303) - var __weex_script__ = __webpack_require__(304) - - __weex_define__('@weex-component/db2a20e3c65e67c0f449e29c05c9d644', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/db2a20e3c65e67c0f449e29c05c9d644',undefined,undefined) - -/***/ }, - -/***/ 302: -/***/ function(module, exports) { - - module.exports = { - "type": "text", - "classList": [ - "item", - "txt" - ], - "attr": { - "value": function () {return this.value} - }, - "style": { - "backgroundColor": function () {return this.bgColor()} - } - } - -/***/ }, - -/***/ 303: -/***/ function(module, exports) { - - module.exports = { - "item": { - "marginRight": 10, - "width": 160, - "height": 75, - "paddingLeft": 8, - "paddingRight": 8, - "paddingTop": 8, - "paddingBottom": 8 - }, - "txt": { - "color": "#eeeeee" - } - } - -/***/ }, - -/***/ 304: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - value: '', - type: '0' }}, - methods: { - bgColor: function bgColor() { - return this.type == '1' ? '#7BA3A8' : '#BEAD92'; - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world-1.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world-1.js deleted file mode 100644 index dbdf788f..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world-1.js +++ /dev/null @@ -1,77 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(318) - - __weex_define__('@weex-component/5e6bbced7515fc4165499153f5d8276a', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/5e6bbced7515fc4165499153f5d8276a',undefined,undefined) - -/***/ }, - -/***/ 318: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "text", - "attr": { - "value": "Hello World" - } - } - ] - } - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world-2.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world-2.js deleted file mode 100644 index ef0a76f0..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world-2.js +++ /dev/null @@ -1,94 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(319) - - __weex_define__('@weex-component/25608f094c039b891a20c8161b9c650b', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/25608f094c039b891a20c8161b9c650b',undefined,undefined) - -/***/ }, - -/***/ 319: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "alignItems": "center", - "marginTop": 120 - }, - "children": [ - { - "type": "image", - "attr": { - "src": "https://alibaba.github.io/weex/img/weex_logo_blue@3x.png" - }, - "style": { - "width": 360, - "height": 82 - } - }, - { - "type": "text", - "style": { - "fontSize": 48 - }, - "attr": { - "value": "Hello World" - } - } - ] - } - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world-3.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world-3.js deleted file mode 100644 index 373dd3b7..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world-3.js +++ /dev/null @@ -1,114 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(320) - var __weex_style__ = __webpack_require__(321) - - __weex_define__('@weex-component/695862caffb746fa67bb70cbd1bb819e', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/695862caffb746fa67bb70cbd1bb819e',undefined,undefined) - -/***/ }, - -/***/ 320: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "image", - "attr": { - "src": "https://alibaba.github.io/weex/img/weex_logo_blue@3x.png" - }, - "classList": [ - "logo" - ] - }, - { - "type": "text", - "classList": [ - "title" - ], - "attr": { - "value": "Hello World" - } - } - ] - } - -/***/ }, - -/***/ 321: -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "alignItems": "center", - "marginTop": 120 - }, - "title": { - "fontSize": 48 - }, - "logo": { - "width": 360, - "height": 82 - } - } - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world-4.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world-4.js deleted file mode 100644 index 101f04e7..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world-4.js +++ /dev/null @@ -1,136 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(322) - var __weex_style__ = __webpack_require__(323) - var __weex_script__ = __webpack_require__(324) - - __weex_define__('@weex-component/efbfb8ecf417c1cf14746fdf4099343d', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/efbfb8ecf417c1cf14746fdf4099343d',undefined,undefined) - -/***/ }, - -/***/ 322: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "image", - "attr": { - "src": function () {return this.logoUrl} - }, - "classList": [ - "logo" - ] - }, - { - "type": "text", - "classList": [ - "title" - ], - "attr": { - "value": function () {return 'Hello ' + (this.target)} - } - } - ] - } - -/***/ }, - -/***/ 323: -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "alignItems": "center", - "marginTop": 120 - }, - "title": { - "fontSize": 48 - }, - "logo": { - "width": 360, - "height": 82 - } - } - -/***/ }, - -/***/ 324: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - logoUrl: 'https://alibaba.github.io/weex/img/weex_logo_blue@3x.png', - target: 'World' - }} - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world-5.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world-5.js deleted file mode 100644 index c49f915f..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world-5.js +++ /dev/null @@ -1,144 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(325) - var __weex_style__ = __webpack_require__(326) - var __weex_script__ = __webpack_require__(327) - - __weex_define__('@weex-component/06cb3b1cf32d7e68eb4f41a491128601', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/06cb3b1cf32d7e68eb4f41a491128601',undefined,undefined) - -/***/ }, - -/***/ 325: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "events": { - "click": "update" - }, - "children": [ - { - "type": "image", - "attr": { - "src": function () {return this.logoUrl} - }, - "classList": [ - "logo" - ] - }, - { - "type": "text", - "classList": [ - "title" - ], - "attr": { - "value": function () {return 'Hello ' + (this.target)} - } - } - ] - } - -/***/ }, - -/***/ 326: -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "alignItems": "center", - "marginTop": 120 - }, - "title": { - "fontSize": 48 - }, - "logo": { - "width": 360, - "height": 82 - } - } - -/***/ }, - -/***/ 327: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - logoUrl: 'https://alibaba.github.io/weex/img/weex_logo_blue@3x.png', - target: 'World' - }}, - methods: { - update: function update(e) { - this.target = 'Weex'; - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world.js deleted file mode 100644 index e4603754..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/hello-world.js +++ /dev/null @@ -1,144 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(315) - var __weex_style__ = __webpack_require__(316) - var __weex_script__ = __webpack_require__(317) - - __weex_define__('@weex-component/ca86dd7272942388d48952706d37e8a7', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/ca86dd7272942388d48952706d37e8a7',undefined,undefined) - -/***/ }, - -/***/ 315: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "events": { - "click": "update" - }, - "children": [ - { - "type": "image", - "attr": { - "src": function () {return this.logoUrl} - }, - "classList": [ - "logo" - ] - }, - { - "type": "text", - "classList": [ - "title" - ], - "attr": { - "value": function () {return 'Hello ' + (this.target)} - } - } - ] - } - -/***/ }, - -/***/ 316: -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "alignItems": "center", - "marginTop": 120 - }, - "title": { - "fontSize": 48 - }, - "logo": { - "width": 360, - "height": 82 - } - } - -/***/ }, - -/***/ 317: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - logoUrl: 'https://alibaba.github.io/weex/img/weex_logo_blue@3x.png', - target: 'World' - }}, - methods: { - update: function update(e) { - this.target = 'Weex'; - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/index.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/index.js deleted file mode 100644 index 18c01bfd..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/index.js +++ /dev/null @@ -1,3285 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(328) - var __weex_script__ = __webpack_require__(329) - - __weex_define__('@weex-component/7c0aa0b76c7fe063e27065c721bee1a0', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/7c0aa0b76c7fe063e27065c721bee1a0',undefined,undefined) - -/***/ }, -/* 1 */, -/* 2 */, -/* 3 */, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 6 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 7 */ -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, -/* 8 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 9 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 10 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 11 */ -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, -/* 12 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 13 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 14 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 15 */ -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, -/* 16 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 17 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 18 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 19 */ -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - }, - "panel-body": {} - } - -/***/ }, -/* 20 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 21 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 22 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, -/* 23 */ -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, -/* 24 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 25 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 26 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, -/* 27 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, -/* 28 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 29 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, -/* 30 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, -/* 31 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, -/* 32 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, -/* 33 */ -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, -/* 34 */ -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, -/* 35 */ -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, -/* 36 */ -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, -/* 37 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, -/* 38 */ -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, -/* 39 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, -/* 40 */ -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, -/* 43 */ -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, -/* 45 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, -/* 46 */ -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, -/* 48 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, -/* 49 */ -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, -/* 50 */ -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, -/* 51 */ -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, -/* 52 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, -/* 53 */ -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, -/* 54 */ -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, -/* 55 */ -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, -/* 57 */ -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, -/* 58 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, -/* 59 */ -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, -/* 60 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, -/* 61 */ -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, -/* 62 */ -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, -/* 63 */ -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, -/* 64 */ -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, -/* 65 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, -/* 66 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 67 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 68 */ -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, -/* 69 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 71 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 72 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, -/* 73 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 74 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 75 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, -/* 76 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, -/* 77 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, -/* 78 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 79 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 80 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 81 */ -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, -/* 82 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 83 */ -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, -/* 84 */ -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, -/* 85 */ -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 86 */, -/* 87 */, -/* 88 */, -/* 89 */, -/* 90 */, -/* 91 */, -/* 92 */, -/* 93 */, -/* 94 */, -/* 95 */, -/* 96 */, -/* 97 */, -/* 98 */, -/* 99 */, -/* 100 */, -/* 101 */, -/* 102 */, -/* 103 */, -/* 104 */, -/* 105 */, -/* 106 */, -/* 107 */, -/* 108 */, -/* 109 */, -/* 110 */ -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - exports.__esModule = true; - - var _iterator = __webpack_require__(111); - - var _iterator2 = _interopRequireDefault(_iterator); - - var _symbol = __webpack_require__(131); - - var _symbol2 = _interopRequireDefault(_symbol); - - var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default ? "symbol" : typeof obj; }; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { - return typeof obj === "undefined" ? "undefined" : _typeof(obj); - } : function (obj) { - return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); - }; - -/***/ }, -/* 111 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(112), __esModule: true }; - -/***/ }, -/* 112 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(113); - __webpack_require__(126); - module.exports = __webpack_require__(130).f('iterator'); - -/***/ }, -/* 113 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var $at = __webpack_require__(114)(true); - - // 21.1.3.27 String.prototype[@@iterator]() - __webpack_require__(115)(String, 'String', function(iterated){ - this._t = String(iterated); // target - this._i = 0; // next index - // 21.1.5.2.1 %StringIteratorPrototype%.next() - }, function(){ - var O = this._t - , index = this._i - , point; - if(index >= O.length)return {value: undefined, done: true}; - point = $at(O, index); - this._i += point.length; - return {value: point, done: false}; - }); - -/***/ }, -/* 114 */ -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , defined = __webpack_require__(54); - // true -> String#at - // false -> String#codePointAt - module.exports = function(TO_STRING){ - return function(that, pos){ - var s = String(defined(that)) - , i = toInteger(pos) - , l = s.length - , a, b; - if(i < 0 || i >= l)return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; - }; - -/***/ }, -/* 115 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var LIBRARY = __webpack_require__(116) - , $export = __webpack_require__(32) - , redefine = __webpack_require__(117) - , hide = __webpack_require__(37) - , has = __webpack_require__(50) - , Iterators = __webpack_require__(118) - , $iterCreate = __webpack_require__(119) - , setToStringTag = __webpack_require__(123) - , getPrototypeOf = __webpack_require__(125) - , ITERATOR = __webpack_require__(124)('iterator') - , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next` - , FF_ITERATOR = '@@iterator' - , KEYS = 'keys' - , VALUES = 'values'; - - var returnThis = function(){ return this; }; - - module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){ - $iterCreate(Constructor, NAME, next); - var getMethod = function(kind){ - if(!BUGGY && kind in proto)return proto[kind]; - switch(kind){ - case KEYS: return function keys(){ return new Constructor(this, kind); }; - case VALUES: return function values(){ return new Constructor(this, kind); }; - } return function entries(){ return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator' - , DEF_VALUES = DEFAULT == VALUES - , VALUES_BUG = false - , proto = Base.prototype - , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT] - , $default = $native || getMethod(DEFAULT) - , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined - , $anyNative = NAME == 'Array' ? proto.entries || $native : $native - , methods, key, IteratorPrototype; - // Fix native - if($anyNative){ - IteratorPrototype = getPrototypeOf($anyNative.call(new Base)); - if(IteratorPrototype !== Object.prototype){ - // Set @@toStringTag to native iterators - setToStringTag(IteratorPrototype, TAG, true); - // fix for some old engines - if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis); - } - } - // fix Array#{values, @@iterator}.name in V8 / FF - if(DEF_VALUES && $native && $native.name !== VALUES){ - VALUES_BUG = true; - $default = function values(){ return $native.call(this); }; - } - // Define iterator - if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){ - hide(proto, ITERATOR, $default); - } - // Plug for library - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if(DEFAULT){ - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if(FORCED)for(key in methods){ - if(!(key in proto))redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; - }; - -/***/ }, -/* 116 */ -/***/ function(module, exports) { - - module.exports = true; - -/***/ }, -/* 117 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(37); - -/***/ }, -/* 118 */ -/***/ function(module, exports) { - - module.exports = {}; - -/***/ }, -/* 119 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var create = __webpack_require__(120) - , descriptor = __webpack_require__(46) - , setToStringTag = __webpack_require__(123) - , IteratorPrototype = {}; - - // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() - __webpack_require__(37)(IteratorPrototype, __webpack_require__(124)('iterator'), function(){ return this; }); - - module.exports = function(Constructor, NAME, next){ - Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)}); - setToStringTag(Constructor, NAME + ' Iterator'); - }; - -/***/ }, -/* 120 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) - var anObject = __webpack_require__(39) - , dPs = __webpack_require__(121) - , enumBugKeys = __webpack_require__(62) - , IE_PROTO = __webpack_require__(59)('IE_PROTO') - , Empty = function(){ /* empty */ } - , PROTOTYPE = 'prototype'; - - // Create object with fake `null` prototype: use iframe Object with cleared prototype - var createDict = function(){ - // Thrash, waste and sodomy: IE GC bug - var iframe = __webpack_require__(44)('iframe') - , i = enumBugKeys.length - , lt = '<' - , gt = '>' - , iframeDocument; - iframe.style.display = 'none'; - __webpack_require__(122).appendChild(iframe); - iframe.src = 'javascript:'; // eslint-disable-line no-script-url - // createDict = iframe.contentWindow.Object; - // html.removeChild(iframe); - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - createDict = iframeDocument.F; - while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]]; - return createDict(); - }; - - module.exports = Object.create || function create(O, Properties){ - var result; - if(O !== null){ - Empty[PROTOTYPE] = anObject(O); - result = new Empty; - Empty[PROTOTYPE] = null; - // add "__proto__" for Object.getPrototypeOf polyfill - result[IE_PROTO] = O; - } else result = createDict(); - return Properties === undefined ? result : dPs(result, Properties); - }; - - -/***/ }, -/* 121 */ -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , anObject = __webpack_require__(39) - , getKeys = __webpack_require__(48); - - module.exports = __webpack_require__(42) ? Object.defineProperties : function defineProperties(O, Properties){ - anObject(O); - var keys = getKeys(Properties) - , length = keys.length - , i = 0 - , P; - while(length > i)dP.f(O, P = keys[i++], Properties[P]); - return O; - }; - -/***/ }, -/* 122 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = __webpack_require__(33).document && document.documentElement; - -/***/ }, -/* 123 */ -/***/ function(module, exports, __webpack_require__) { - - var def = __webpack_require__(38).f - , has = __webpack_require__(50) - , TAG = __webpack_require__(124)('toStringTag'); - - module.exports = function(it, tag, stat){ - if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); - }; - -/***/ }, -/* 124 */ -/***/ function(module, exports, __webpack_require__) { - - var store = __webpack_require__(60)('wks') - , uid = __webpack_require__(61) - , Symbol = __webpack_require__(33).Symbol - , USE_SYMBOL = typeof Symbol == 'function'; - - var $exports = module.exports = function(name){ - return store[name] || (store[name] = - USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); - }; - - $exports.store = store; - -/***/ }, -/* 125 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) - var has = __webpack_require__(50) - , toObject = __webpack_require__(65) - , IE_PROTO = __webpack_require__(59)('IE_PROTO') - , ObjectProto = Object.prototype; - - module.exports = Object.getPrototypeOf || function(O){ - O = toObject(O); - if(has(O, IE_PROTO))return O[IE_PROTO]; - if(typeof O.constructor == 'function' && O instanceof O.constructor){ - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; - }; - -/***/ }, -/* 126 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(127); - var global = __webpack_require__(33) - , hide = __webpack_require__(37) - , Iterators = __webpack_require__(118) - , TO_STRING_TAG = __webpack_require__(124)('toStringTag'); - - for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){ - var NAME = collections[i] - , Collection = global[NAME] - , proto = Collection && Collection.prototype; - if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = Iterators.Array; - } - -/***/ }, -/* 127 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - var addToUnscopables = __webpack_require__(128) - , step = __webpack_require__(129) - , Iterators = __webpack_require__(118) - , toIObject = __webpack_require__(51); - - // 22.1.3.4 Array.prototype.entries() - // 22.1.3.13 Array.prototype.keys() - // 22.1.3.29 Array.prototype.values() - // 22.1.3.30 Array.prototype[@@iterator]() - module.exports = __webpack_require__(115)(Array, 'Array', function(iterated, kind){ - this._t = toIObject(iterated); // target - this._i = 0; // next index - this._k = kind; // kind - // 22.1.5.2.1 %ArrayIteratorPrototype%.next() - }, function(){ - var O = this._t - , kind = this._k - , index = this._i++; - if(!O || index >= O.length){ - this._t = undefined; - return step(1); - } - if(kind == 'keys' )return step(0, index); - if(kind == 'values')return step(0, O[index]); - return step(0, [index, O[index]]); - }, 'values'); - - // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) - Iterators.Arguments = Iterators.Array; - - addToUnscopables('keys'); - addToUnscopables('values'); - addToUnscopables('entries'); - -/***/ }, -/* 128 */ -/***/ function(module, exports) { - - module.exports = function(){ /* empty */ }; - -/***/ }, -/* 129 */ -/***/ function(module, exports) { - - module.exports = function(done, value){ - return {value: value, done: !!done}; - }; - -/***/ }, -/* 130 */ -/***/ function(module, exports, __webpack_require__) { - - exports.f = __webpack_require__(124); - -/***/ }, -/* 131 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(132), __esModule: true }; - -/***/ }, -/* 132 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(133); - __webpack_require__(142); - __webpack_require__(143); - __webpack_require__(144); - module.exports = __webpack_require__(34).Symbol; - -/***/ }, -/* 133 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // ECMAScript 6 symbols shim - var global = __webpack_require__(33) - , has = __webpack_require__(50) - , DESCRIPTORS = __webpack_require__(42) - , $export = __webpack_require__(32) - , redefine = __webpack_require__(117) - , META = __webpack_require__(134).KEY - , $fails = __webpack_require__(43) - , shared = __webpack_require__(60) - , setToStringTag = __webpack_require__(123) - , uid = __webpack_require__(61) - , wks = __webpack_require__(124) - , wksExt = __webpack_require__(130) - , wksDefine = __webpack_require__(135) - , keyOf = __webpack_require__(136) - , enumKeys = __webpack_require__(137) - , isArray = __webpack_require__(138) - , anObject = __webpack_require__(39) - , toIObject = __webpack_require__(51) - , toPrimitive = __webpack_require__(45) - , createDesc = __webpack_require__(46) - , _create = __webpack_require__(120) - , gOPNExt = __webpack_require__(139) - , $GOPD = __webpack_require__(141) - , $DP = __webpack_require__(38) - , $keys = __webpack_require__(48) - , gOPD = $GOPD.f - , dP = $DP.f - , gOPN = gOPNExt.f - , $Symbol = global.Symbol - , $JSON = global.JSON - , _stringify = $JSON && $JSON.stringify - , PROTOTYPE = 'prototype' - , HIDDEN = wks('_hidden') - , TO_PRIMITIVE = wks('toPrimitive') - , isEnum = {}.propertyIsEnumerable - , SymbolRegistry = shared('symbol-registry') - , AllSymbols = shared('symbols') - , OPSymbols = shared('op-symbols') - , ObjectProto = Object[PROTOTYPE] - , USE_NATIVE = typeof $Symbol == 'function' - , QObject = global.QObject; - // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 - var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; - - // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 - var setSymbolDesc = DESCRIPTORS && $fails(function(){ - return _create(dP({}, 'a', { - get: function(){ return dP(this, 'a', {value: 7}).a; } - })).a != 7; - }) ? function(it, key, D){ - var protoDesc = gOPD(ObjectProto, key); - if(protoDesc)delete ObjectProto[key]; - dP(it, key, D); - if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc); - } : dP; - - var wrap = function(tag){ - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - sym._k = tag; - return sym; - }; - - var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){ - return typeof it == 'symbol'; - } : function(it){ - return it instanceof $Symbol; - }; - - var $defineProperty = function defineProperty(it, key, D){ - if(it === ObjectProto)$defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - if(has(AllSymbols, key)){ - if(!D.enumerable){ - if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false; - D = _create(D, {enumerable: createDesc(0, false)}); - } return setSymbolDesc(it, key, D); - } return dP(it, key, D); - }; - var $defineProperties = function defineProperties(it, P){ - anObject(it); - var keys = enumKeys(P = toIObject(P)) - , i = 0 - , l = keys.length - , key; - while(l > i)$defineProperty(it, key = keys[i++], P[key]); - return it; - }; - var $create = function create(it, P){ - return P === undefined ? _create(it) : $defineProperties(_create(it), P); - }; - var $propertyIsEnumerable = function propertyIsEnumerable(key){ - var E = isEnum.call(this, key = toPrimitive(key, true)); - if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; - }; - var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){ - it = toIObject(it); - key = toPrimitive(key, true); - if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return; - var D = gOPD(it, key); - if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true; - return D; - }; - var $getOwnPropertyNames = function getOwnPropertyNames(it){ - var names = gOPN(toIObject(it)) - , result = [] - , i = 0 - , key; - while(names.length > i){ - if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key); - } return result; - }; - var $getOwnPropertySymbols = function getOwnPropertySymbols(it){ - var IS_OP = it === ObjectProto - , names = gOPN(IS_OP ? OPSymbols : toIObject(it)) - , result = [] - , i = 0 - , key; - while(names.length > i){ - if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]); - } return result; - }; - - // 19.4.1.1 Symbol([description]) - if(!USE_NATIVE){ - $Symbol = function Symbol(){ - if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - var $set = function(value){ - if(this === ObjectProto)$set.call(OPSymbols, value); - if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set}); - return wrap(tag); - }; - redefine($Symbol[PROTOTYPE], 'toString', function toString(){ - return this._k; - }); - - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __webpack_require__(140).f = gOPNExt.f = $getOwnPropertyNames; - __webpack_require__(64).f = $propertyIsEnumerable; - __webpack_require__(63).f = $getOwnPropertySymbols; - - if(DESCRIPTORS && !__webpack_require__(116)){ - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function(name){ - return wrap(wks(name)); - } - } - - $export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol}); - - for(var symbols = ( - // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' - ).split(','), i = 0; symbols.length > i; )wks(symbols[i++]); - - for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]); - - $export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - // 19.4.2.1 Symbol.for(key) - 'for': function(key){ - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(key){ - if(isSymbol(key))return keyOf(SymbolRegistry, key); - throw TypeError(key + ' is not a symbol!'); - }, - useSetter: function(){ setter = true; }, - useSimple: function(){ setter = false; } - }); - - $export($export.S + $export.F * !USE_NATIVE, 'Object', { - // 19.1.2.2 Object.create(O [, Properties]) - create: $create, - // 19.1.2.4 Object.defineProperty(O, P, Attributes) - defineProperty: $defineProperty, - // 19.1.2.3 Object.defineProperties(O, Properties) - defineProperties: $defineProperties, - // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - // 19.1.2.7 Object.getOwnPropertyNames(O) - getOwnPropertyNames: $getOwnPropertyNames, - // 19.1.2.8 Object.getOwnPropertySymbols(O) - getOwnPropertySymbols: $getOwnPropertySymbols - }); - - // 24.3.2 JSON.stringify(value [, replacer [, space]]) - $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){ - var S = $Symbol(); - // MS Edge converts symbol values to JSON as {} - // WebKit converts symbol values to JSON as null - // V8 throws on boxed symbols - return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}'; - })), 'JSON', { - stringify: function stringify(it){ - if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined - var args = [it] - , i = 1 - , replacer, $replacer; - while(arguments.length > i)args.push(arguments[i++]); - replacer = args[1]; - if(typeof replacer == 'function')$replacer = replacer; - if($replacer || !isArray(replacer))replacer = function(key, value){ - if($replacer)value = $replacer.call(this, key, value); - if(!isSymbol(value))return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } - }); - - // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) - $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(37)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); - // 19.4.3.5 Symbol.prototype[@@toStringTag] - setToStringTag($Symbol, 'Symbol'); - // 20.2.1.9 Math[@@toStringTag] - setToStringTag(Math, 'Math', true); - // 24.3.3 JSON[@@toStringTag] - setToStringTag(global.JSON, 'JSON', true); - -/***/ }, -/* 134 */ -/***/ function(module, exports, __webpack_require__) { - - var META = __webpack_require__(61)('meta') - , isObject = __webpack_require__(40) - , has = __webpack_require__(50) - , setDesc = __webpack_require__(38).f - , id = 0; - var isExtensible = Object.isExtensible || function(){ - return true; - }; - var FREEZE = !__webpack_require__(43)(function(){ - return isExtensible(Object.preventExtensions({})); - }); - var setMeta = function(it){ - setDesc(it, META, {value: { - i: 'O' + ++id, // object ID - w: {} // weak collections IDs - }}); - }; - var fastKey = function(it, create){ - // return primitive with prefix - if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if(!has(it, META)){ - // can't set metadata to uncaught frozen object - if(!isExtensible(it))return 'F'; - // not necessary to add metadata - if(!create)return 'E'; - // add missing metadata - setMeta(it); - // return object ID - } return it[META].i; - }; - var getWeak = function(it, create){ - if(!has(it, META)){ - // can't set metadata to uncaught frozen object - if(!isExtensible(it))return true; - // not necessary to add metadata - if(!create)return false; - // add missing metadata - setMeta(it); - // return hash weak collections IDs - } return it[META].w; - }; - // add metadata on freeze-family methods calling - var onFreeze = function(it){ - if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it); - return it; - }; - var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze - }; - -/***/ }, -/* 135 */ -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , LIBRARY = __webpack_require__(116) - , wksExt = __webpack_require__(130) - , defineProperty = __webpack_require__(38).f; - module.exports = function(name){ - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)}); - }; - -/***/ }, -/* 136 */ -/***/ function(module, exports, __webpack_require__) { - - var getKeys = __webpack_require__(48) - , toIObject = __webpack_require__(51); - module.exports = function(object, el){ - var O = toIObject(object) - , keys = getKeys(O) - , length = keys.length - , index = 0 - , key; - while(length > index)if(O[key = keys[index++]] === el)return key; - }; - -/***/ }, -/* 137 */ -/***/ function(module, exports, __webpack_require__) { - - // all enumerable object keys, includes symbols - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64); - module.exports = function(it){ - var result = getKeys(it) - , getSymbols = gOPS.f; - if(getSymbols){ - var symbols = getSymbols(it) - , isEnum = pIE.f - , i = 0 - , key; - while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key); - } return result; - }; - -/***/ }, -/* 138 */ -/***/ function(module, exports, __webpack_require__) { - - // 7.2.2 IsArray(argument) - var cof = __webpack_require__(53); - module.exports = Array.isArray || function isArray(arg){ - return cof(arg) == 'Array'; - }; - -/***/ }, -/* 139 */ -/***/ function(module, exports, __webpack_require__) { - - // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window - var toIObject = __webpack_require__(51) - , gOPN = __webpack_require__(140).f - , toString = {}.toString; - - var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - - var getWindowNames = function(it){ - try { - return gOPN(it); - } catch(e){ - return windowNames.slice(); - } - }; - - module.exports.f = function getOwnPropertyNames(it){ - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); - }; - - -/***/ }, -/* 140 */ -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) - var $keys = __webpack_require__(49) - , hiddenKeys = __webpack_require__(62).concat('length', 'prototype'); - - exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){ - return $keys(O, hiddenKeys); - }; - -/***/ }, -/* 141 */ -/***/ function(module, exports, __webpack_require__) { - - var pIE = __webpack_require__(64) - , createDesc = __webpack_require__(46) - , toIObject = __webpack_require__(51) - , toPrimitive = __webpack_require__(45) - , has = __webpack_require__(50) - , IE8_DOM_DEFINE = __webpack_require__(41) - , gOPD = Object.getOwnPropertyDescriptor; - - exports.f = __webpack_require__(42) ? gOPD : function getOwnPropertyDescriptor(O, P){ - O = toIObject(O); - P = toPrimitive(P, true); - if(IE8_DOM_DEFINE)try { - return gOPD(O, P); - } catch(e){ /* empty */ } - if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]); - }; - -/***/ }, -/* 142 */ -/***/ function(module, exports) { - - - -/***/ }, -/* 143 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(135)('asyncIterator'); - -/***/ }, -/* 144 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(135)('observable'); - -/***/ }, -/* 145 */, -/* 146 */, -/* 147 */, -/* 148 */, -/* 149 */, -/* 150 */, -/* 151 */, -/* 152 */, -/* 153 */, -/* 154 */, -/* 155 */, -/* 156 */, -/* 157 */, -/* 158 */, -/* 159 */, -/* 160 */, -/* 161 */, -/* 162 */, -/* 163 */, -/* 164 */, -/* 165 */, -/* 166 */, -/* 167 */, -/* 168 */, -/* 169 */, -/* 170 */, -/* 171 */, -/* 172 */, -/* 173 */, -/* 174 */, -/* 175 */, -/* 176 */, -/* 177 */, -/* 178 */, -/* 179 */, -/* 180 */, -/* 181 */, -/* 182 */, -/* 183 */, -/* 184 */, -/* 185 */, -/* 186 */, -/* 187 */, -/* 188 */, -/* 189 */, -/* 190 */, -/* 191 */, -/* 192 */, -/* 193 */, -/* 194 */, -/* 195 */, -/* 196 */, -/* 197 */ -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(198) - var __weex_template__ = __webpack_require__(202) - var __weex_style__ = __webpack_require__(203) - var __weex_script__ = __webpack_require__(204) - - __weex_define__('@weex-component/example-list', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 198 */ -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(199) - var __weex_style__ = __webpack_require__(200) - var __weex_script__ = __webpack_require__(201) - - __weex_define__('@weex-component/example-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, -/* 199 */ -/***/ function(module, exports) { - - module.exports = { - "type": "wxc-list-item", - "events": { - "click": "redirect" - }, - "children": [ - { - "type": "text", - "classList": [ - "item-txt" - ], - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, -/* 200 */ -/***/ function(module, exports) { - - module.exports = { - "item-txt": { - "fontSize": 48, - "color": "#555555" - } - } - -/***/ }, -/* 201 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - module.exports = { - data: function () {return { - title: '', - url: '' - }}, - methods: { - redirect: function redirect() { - this.$openURL(this.url); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 202 */ -/***/ function(module, exports) { - - module.exports = { - "type": "list", - "children": [ - { - "type": "cell", - "append": "tree", - "repeat": function () {return this.items}, - "children": [ - { - "type": "example-list-item", - "attr": { - "title": function () {return this.title}, - "url": function () {return this.url} - } - } - ] - } - ] - } - -/***/ }, -/* 203 */ -/***/ function(module, exports) { - - module.exports = {} - -/***/ }, -/* 204 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _typeof2 = __webpack_require__(110); - - var _typeof3 = _interopRequireDefault(_typeof2); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - __webpack_require__(4); - module.exports = { - data: function () {return { - root: '', - items: [{ name: 'hello', title: 'Hello World', url: '' }] - }}, - created: function created() { - var bundleUrl = this.$getConfig().bundleUrl; - console.log('hit', bundleUrl); - var dirs = this.root.split('/'); - dirs.forEach(function (dir, index) { - if (!dir) dirs.splice(index, 1); - }); - var root = dirs.length > 0 ? dirs[0] : ''; - var subRoot = dirs.length > 1 ? dirs.slice(1).join('/') + '/' : ''; - - var nativeBase; - var isAndroidAssets = bundleUrl.indexOf('your_current_IP') >= 0 || bundleUrl.indexOf('file://assets/') >= 0; - var isiOSAssets = bundleUrl.indexOf('file:///') >= 0 && bundleUrl.indexOf('WeexDemo.app') > 0; - if (isAndroidAssets) { - nativeBase = 'file://assets/'; - } else if (isiOSAssets) { - nativeBase = bundleUrl.substring(0, bundleUrl.lastIndexOf('/') + 1); - } else { - var host = 'localhost:12580'; - var matches = /\/\/([^\/]+?)\//.exec(this.$getConfig().bundleUrl); - if (matches && matches.length >= 2) { - host = matches[1]; - } - nativeBase = '//' + host + '/' + root + '/build/' + subRoot; - } - var h5Base = './index.html?page=./' + root + '/build/' + subRoot; - - var base = nativeBase; - if ((typeof window === 'undefined' ? 'undefined' : (0, _typeof3.default)(window)) === 'object') { - base = h5Base; - } - - for (var i in this.items) { - var item = this.items[i]; - if (!item.url) { - item.url = base + item.name + '.js'; - } - } - - if (this.items.length) console.log('hit', this.items[0].url); - } - };} - /* generated by weex-loader */ - - -/***/ }, -/* 205 */, -/* 206 */, -/* 207 */, -/* 208 */, -/* 209 */, -/* 210 */, -/* 211 */, -/* 212 */, -/* 213 */, -/* 214 */, -/* 215 */, -/* 216 */, -/* 217 */, -/* 218 */, -/* 219 */, -/* 220 */, -/* 221 */, -/* 222 */, -/* 223 */, -/* 224 */, -/* 225 */, -/* 226 */, -/* 227 */, -/* 228 */, -/* 229 */, -/* 230 */, -/* 231 */, -/* 232 */, -/* 233 */, -/* 234 */, -/* 235 */, -/* 236 */, -/* 237 */, -/* 238 */, -/* 239 */, -/* 240 */, -/* 241 */, -/* 242 */, -/* 243 */, -/* 244 */, -/* 245 */, -/* 246 */, -/* 247 */, -/* 248 */, -/* 249 */, -/* 250 */, -/* 251 */, -/* 252 */, -/* 253 */, -/* 254 */, -/* 255 */, -/* 256 */, -/* 257 */, -/* 258 */, -/* 259 */, -/* 260 */, -/* 261 */, -/* 262 */, -/* 263 */, -/* 264 */, -/* 265 */, -/* 266 */, -/* 267 */, -/* 268 */, -/* 269 */, -/* 270 */, -/* 271 */, -/* 272 */, -/* 273 */, -/* 274 */, -/* 275 */, -/* 276 */, -/* 277 */, -/* 278 */, -/* 279 */, -/* 280 */, -/* 281 */, -/* 282 */, -/* 283 */, -/* 284 */, -/* 285 */, -/* 286 */, -/* 287 */, -/* 288 */, -/* 289 */, -/* 290 */, -/* 291 */, -/* 292 */, -/* 293 */, -/* 294 */, -/* 295 */, -/* 296 */, -/* 297 */, -/* 298 */, -/* 299 */, -/* 300 */, -/* 301 */, -/* 302 */, -/* 303 */, -/* 304 */, -/* 305 */, -/* 306 */, -/* 307 */, -/* 308 */, -/* 309 */, -/* 310 */, -/* 311 */, -/* 312 */, -/* 313 */, -/* 314 */, -/* 315 */, -/* 316 */, -/* 317 */, -/* 318 */, -/* 319 */, -/* 320 */, -/* 321 */, -/* 322 */, -/* 323 */, -/* 324 */, -/* 325 */, -/* 326 */, -/* 327 */, -/* 328 */ -/***/ function(module, exports) { - - module.exports = { - "type": "example-list", - "attr": { - "items": function () {return this.items}, - "root": function () {return this.root} - } - } - -/***/ }, -/* 329 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(197); - module.exports = { - data: function () {return { - root: 'examples', - items: [{ name: 'syntax/hello-world', title: 'Hello World' }, { name: 'syntax/hello-world-1', title: 'Hello World 1' }, { name: 'syntax/hello-world-2', title: 'Hello World 2' }, { name: 'syntax/hello-world-3', title: 'Hello World 3' }, { name: 'syntax/hello-world-4', title: 'Hello World 4' }, { name: 'syntax/hello-world-5', title: 'Hello World 5' }, { name: 'syntax/script-component', title: 'Script Component' }, { name: 'syntax/script-data', title: 'Script Data' }, { name: 'syntax/script-events', title: 'Script Event' }, { name: 'syntax/script-instance', title: 'Script Instance' }, { name: 'syntax/script-lifecycle', title: 'Script Lifecycle' }, { name: 'syntax/script-module', title: 'Script Module' }, { name: 'syntax/script-options', title: 'Script Option' }, { name: 'syntax/template-class', title: 'Template Class' }, { name: 'syntax/template-content', title: 'Template Content' }, { name: 'syntax/template-event', title: 'Template Event' }, { name: 'syntax/template-if', title: 'Template IF' }, { name: 'syntax/template-repeat', title: 'Template Repeat' }, { name: 'syntax/template-repeat-update', title: 'Template Repeat Update' }, { name: 'syntax/template-style', title: 'Template Style' }] - }} - };} - /* generated by weex-loader */ - - -/***/ } -/******/ ]); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-component.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-component.js deleted file mode 100644 index 69c5cde6..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-component.js +++ /dev/null @@ -1,180 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(330) - var __weex_script__ = __webpack_require__(331) - - __weex_define__('@weex-component/2a5ba7e55afcba45accf15b3179f0016', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/2a5ba7e55afcba45accf15b3179f0016',undefined,undefined) - -/***/ }, - -/***/ 330: -/***/ function(module, exports) { - - module.exports = { - "type": "list", - "children": [ - { - "type": "cell", - "append": "tree", - "repeat": { - "expression": function () {return this.items}, - "value": "item" - }, - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.item.title} - } - }, - { - "type": "sub", - "attr": { - "title": "a" - } - } - ] - } - ] - } - -/***/ }, - -/***/ 331: -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(332); - module.exports = { - data: function () {return { - items: [{ title: 'A', url: 'a' }, { title: 'B', url: 'b' }, { title: 'C', url: 'c' }] - }} - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 332: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(333) - var __weex_style__ = __webpack_require__(334) - var __weex_script__ = __webpack_require__(335) - - __weex_define__('@weex-component/sub', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, - -/***/ 333: -/***/ function(module, exports) { - - module.exports = { - "type": "text", - "classList": [ - "item-txt" - ], - "attr": { - "value": function () {return this.title} - } - } - -/***/ }, - -/***/ 334: -/***/ function(module, exports) { - - module.exports = { - "item-txt": { - "fontSize": 48, - "color": "#555555" - } - } - -/***/ }, - -/***/ 335: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - title: '' - }} - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-data.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-data.js deleted file mode 100644 index b41c2fbf..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-data.js +++ /dev/null @@ -1,165 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(336) - var __weex_style__ = __webpack_require__(337) - var __weex_script__ = __webpack_require__(338) - - __weex_define__('@weex-component/2267e3020f57f77e5d733a60b4ea145b', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/2267e3020f57f77e5d733a60b4ea145b',undefined,undefined) - -/***/ }, - -/***/ 336: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "events": { - "click": "update" - }, - "children": [ - { - "type": "text", - "classList": [ - "title" - ], - "attr": { - "value": function () {return this.firstName} - } - }, - { - "type": "text", - "classList": [ - "title" - ], - "attr": { - "value": function () {return this.lastName} - } - }, - { - "type": "text", - "classList": [ - "title" - ], - "attr": { - "value": function () {return this.fullName} - } - }, - { - "type": "text", - "classList": [ - "title" - ], - "attr": { - "value": function () {return this.today} - } - } - ] - } - -/***/ }, - -/***/ 337: -/***/ function(module, exports) { - - module.exports = { - "title": { - "fontSize": 48 - } - } - -/***/ }, - -/***/ 338: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - firstName: 'John', - lastName: 'Smith', - date: Date.now() - }}, - methods: { - update: function update() { - this.today = '2016-01-01'; - } - }, - computed: { - fullName: function fullName() { - return this.firstName + ' ' + this.lastName; - }, - today: { - get: function get() { - return new Date(this.date).toDateString(); - }, - set: function set(v) { - this.date = Date.parse(v); - } - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-events.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-events.js deleted file mode 100644 index 4c5b691c..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-events.js +++ /dev/null @@ -1,176 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(339) - var __weex_style__ = __webpack_require__(340) - var __weex_script__ = __webpack_require__(341) - - __weex_define__('@weex-component/491ca7f339a97e2fe3e130536e8fb536', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/491ca7f339a97e2fe3e130536e8fb536',undefined,undefined) - -/***/ }, - -/***/ 34: -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, - -/***/ 189: -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(190), __esModule: true }; - -/***/ }, - -/***/ 190: -/***/ function(module, exports, __webpack_require__) { - - var core = __webpack_require__(34) - , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify}); - module.exports = function stringify(it){ // eslint-disable-line no-unused-vars - return $JSON.stringify.apply($JSON, arguments); - }; - -/***/ }, - -/***/ 339: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "text", - "classList": [ - "title" - ], - "repeat": { - "expression": function () {return this.list}, - "value": "value" - }, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, - -/***/ 340: -/***/ function(module, exports) { - - module.exports = { - "title": { - "fontSize": 48 - } - } - -/***/ }, - -/***/ 341: -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _stringify = __webpack_require__(189); - - var _stringify2 = _interopRequireDefault(_stringify); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - list: [] - }}, - events: { - custom: function custom(e) { - this.list.push('custom: ' + (0, _stringify2.default)(e.detail)); - } - }, - ready: function ready() { - function custom2(e) { - this.list.push('custom2: ' + (0, _stringify2.default)(e.detail)); - } - - this.$on('custom2', custom2); - - this.$emit('custom', { x: 1 }); - this.$emit('custom2', { x: 1 }); - - this.$off('custom2', custom2); - - this.$emit('custom', { x: 2 }); - this.$emit('custom2', { x: 2 }); - - this.$off('custom'); - - this.$emit('custom', { x: 3 }); - this.$emit('custom2', { x: 3 }); - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-instance.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-instance.js deleted file mode 100644 index 95ef8bb4..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-instance.js +++ /dev/null @@ -1,145 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(342) - var __weex_style__ = __webpack_require__(343) - var __weex_script__ = __webpack_require__(344) - - __weex_define__('@weex-component/e463d05fb45b7117577286bed2b723ab', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/e463d05fb45b7117577286bed2b723ab',undefined,undefined) - -/***/ }, - -/***/ 342: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "text", - "id": "title", - "classList": [ - "title" - ], - "attr": { - "value": "Please check out the source code." - } - } - ] - } - -/***/ }, - -/***/ 343: -/***/ function(module, exports) { - - module.exports = { - "title": { - "fontSize": 48 - } - } - -/***/ }, - -/***/ 344: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - x: 1, - y: 2 - }}, - methods: { - foo: function foo() { - console.log('foo'); - }, - test: function test() { - console.log(this.x); - - console.log(this.z); - - this.foo(); - - console.log(this.$getConfig()); - - this.$emit('custom'); - this.$dispatch('custom'); - this.$broadcast('custom'); - this.$on('custom', this.foo); - this.$off('custom', this.foo); - } - }, - computed: { - z: function z() { - return this.x + this.y; - } - }, - ready: function ready() { - this.test(); - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-lifecycle.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-lifecycle.js deleted file mode 100644 index 5ce18356..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-lifecycle.js +++ /dev/null @@ -1,130 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(345) - var __weex_style__ = __webpack_require__(346) - var __weex_script__ = __webpack_require__(347) - - __weex_define__('@weex-component/bc7273b0d417cff1bb0a2e09e3cd1c92', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/bc7273b0d417cff1bb0a2e09e3cd1c92',undefined,undefined) - -/***/ }, - -/***/ 345: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "text", - "classList": [ - "title" - ], - "repeat": { - "expression": function () {return this.list}, - "value": "value" - }, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, - -/***/ 346: -/***/ function(module, exports) { - - module.exports = { - "title": { - "fontSize": 48 - } - } - -/***/ }, - -/***/ 347: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var initMessage; - module.exports = { - data: function () {return { - list: ['Lifecycle List'] - }}, - init: function init() { - initMessage = 'component init: nothing more happen even the data initialization'; - }, - created: function created() { - this.list.push(initMessage); - this.list.push('component created: data init and observed'); - }, - ready: function ready() { - this.list.push('component ready: virtual dom generated'); - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-module.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-module.js deleted file mode 100644 index 658505f8..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-module.js +++ /dev/null @@ -1,129 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(348) - var __weex_style__ = __webpack_require__(349) - var __weex_script__ = __webpack_require__(350) - - __weex_define__('@weex-component/0c363fe819262ec8f8baf1e516e1d694', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/0c363fe819262ec8f8baf1e516e1d694',undefined,undefined) - -/***/ }, - -/***/ 348: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": "test" - }, - "attr": { - "value": "Toast!" - } - } - ] - } - -/***/ }, - -/***/ 349: -/***/ function(module, exports) { - - module.exports = { - "btn": { - "fontSize": 36, - "textAlign": "center", - "color": "#FFFFFF", - "backgroundColor": "#808080", - "padding": 20, - "borderRadius": 5 - } - } - -/***/ }, - -/***/ 350: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var modal = __weex_require__('@weex-module/modal'); - module.exports = { - methods: { - test: function test() { - modal.toast({ - message: 'Toast!', - duration: 3 - }); - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-options.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-options.js deleted file mode 100644 index 38ca1251..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/script-options.js +++ /dev/null @@ -1,139 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(351) - var __weex_style__ = __webpack_require__(352) - var __weex_script__ = __webpack_require__(353) - - __weex_define__('@weex-component/d8cdc8a8832b252e92de2e6e8a50dd36', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/d8cdc8a8832b252e92de2e6e8a50dd36',undefined,undefined) - -/***/ }, - -/***/ 351: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "text", - "classList": [ - "title" - ], - "attr": { - "value": "Please check out the source code." - } - } - ] - } - -/***/ }, - -/***/ 352: -/***/ function(module, exports) { - - module.exports = { - "title": { - "fontSize": 48 - } - } - -/***/ }, - -/***/ 353: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - x: 1, - y: 2 - }}, - - - methods: { - foo: function foo() { - console.log('foo'); - } - }, - - computed: { - z: function z() { - return this.x + this.y; - } - }, - - events: { - custom: function custom(e) { - console.log(e); - } - }, - - init: function init() {}, - created: function created() {}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-class.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-class.js deleted file mode 100644 index d866656a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-class.js +++ /dev/null @@ -1,142 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(354) - var __weex_style__ = __webpack_require__(355) - var __weex_script__ = __webpack_require__(356) - - __weex_define__('@weex-component/14c303543be596aa2a969ac47565db7c', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/14c303543be596aa2a969ac47565db7c',undefined,undefined) - -/***/ }, - -/***/ 354: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "events": { - "click": "update" - }, - "children": [ - { - "type": "text", - "classList": [ - "a" - ], - "attr": { - "value": "Hello" - } - }, - { - "type": "text", - "classList": [ - "b" - ], - "attr": { - "value": "Hello" - } - }, - { - "type": "text", - "classList": function () {return ['a', this.x]}, - "attr": { - "value": "Hello" - } - } - ] - } - -/***/ }, - -/***/ 355: -/***/ function(module, exports) { - - module.exports = { - "a": { - "fontSize": 48 - }, - "b": { - "color": "#ff0000" - } - } - -/***/ }, - -/***/ 356: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - x: '' - }}, - methods: { - update: function update(e) { - this.x = 'b'; - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-content.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-content.js deleted file mode 100644 index c2834374..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-content.js +++ /dev/null @@ -1,149 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(357) - var __weex_script__ = __webpack_require__(358) - - __weex_define__('@weex-component/2b26a2ba0096277f201ca0b657282838', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/2b26a2ba0096277f201ca0b657282838',undefined,undefined) - -/***/ }, - -/***/ 357: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "btn", - "children": [ - { - "type": "text", - "attr": { - "value": "Click!" - } - } - ] - } - ] - } - -/***/ }, - -/***/ 358: -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(359);} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 359: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(360) - var __weex_style__ = __webpack_require__(361) - - __weex_define__('@weex-component/btn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, - -/***/ 360: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "btn" - ], - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, - -/***/ 361: -/***/ function(module, exports) { - - module.exports = { - "btn": { - "fontSize": 36, - "textAlign": "center", - "color": "#FFFFFF", - "backgroundColor": "#808080", - "padding": 20, - "borderRadius": 5 - } - } - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-event.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-event.js deleted file mode 100644 index 183d5347..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-event.js +++ /dev/null @@ -1,195 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(362) - var __weex_style__ = __webpack_require__(363) - var __weex_script__ = __webpack_require__(364) - - __weex_define__('@weex-component/40a248d5d833060161447365b18603fa', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/40a248d5d833060161447365b18603fa',undefined,undefined) - -/***/ }, - -/***/ 362: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "text", - "classList": [ - "title" - ], - "attr": { - "value": function () {return 'Hello ' + (this.name)} - } - }, - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": "update" - }, - "attr": { - "value": "Update 1" - } - }, - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": "update" - }, - "attr": { - "value": "Update 1" - } - }, - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": function ($event) {this.update($event)} - }, - "attr": { - "value": "Update 1" - } - }, - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": function ($event) {this.setName(this.temp,$event)} - }, - "attr": { - "value": "Update 2" - } - }, - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": function ($event) {this.setName('John',$event)} - }, - "attr": { - "value": "Update 3" - } - } - ] - } - -/***/ }, - -/***/ 363: -/***/ function(module, exports) { - - module.exports = { - "title": { - "fontSize": 48 - }, - "subtitle": { - "fontSize": 36 - }, - "btn": { - "fontSize": 36, - "textAlign": "center", - "color": "#FFFFFF", - "backgroundColor": "#808080", - "padding": 20, - "borderRadius": 5 - } - } - -/***/ }, - -/***/ 364: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - name: 'Steve', - temp: 'Mike' - }}, - methods: { - update: function update(e) { - this.setName('David'); - }, - setName: function setName(value) { - this.name = value; - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-if.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-if.js deleted file mode 100644 index 7bbd6466..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-if.js +++ /dev/null @@ -1,151 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(365) - var __weex_style__ = __webpack_require__(366) - var __weex_script__ = __webpack_require__(367) - - __weex_define__('@weex-component/6019f2874c768d147034c91e003e5ba4', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/6019f2874c768d147034c91e003e5ba4',undefined,undefined) - -/***/ }, - -/***/ 365: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": "toggle" - }, - "attr": { - "value": "Toggle" - } - }, - { - "type": "text", - "shown": function () {return this.flag}, - "classList": [ - "title" - ], - "attr": { - "value": "I'm ON" - } - }, - { - "type": "text", - "shown": function () {return !this.flag}, - "classList": [ - "title" - ], - "attr": { - "value": "I'm Off" - } - } - ] - } - -/***/ }, - -/***/ 366: -/***/ function(module, exports) { - - module.exports = { - "title": { - "fontSize": 48 - }, - "btn": { - "fontSize": 36, - "textAlign": "center", - "color": "#FFFFFF", - "backgroundColor": "#808080", - "padding": 20, - "borderRadius": 5 - } - } - -/***/ }, - -/***/ 367: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){"use strict"; - - module.exports = { - data: function () {return { - flag: true - }}, - methods: { - toggle: function toggle(e) { - this.flag = !this.flag; - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-repeat-update.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-repeat-update.js deleted file mode 100644 index f4eccef4..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-repeat-update.js +++ /dev/null @@ -1,177 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(371) - var __weex_style__ = __webpack_require__(372) - var __weex_script__ = __webpack_require__(373) - - __weex_define__('@weex-component/01700b62cc1ab66f2cbfd893c5c95eaf', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/01700b62cc1ab66f2cbfd893c5c95eaf',undefined,undefined) - -/***/ }, - -/***/ 371: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "text", - "classList": [ - "title" - ], - "attr": { - "value": "Track by" - } - }, - { - "type": "text", - "classList": [ - "subtitle" - ], - "repeat": { - "expression": function () {return this.list}, - "value": "item" - }, - "attr": { - "trackBy": "key", - "value": function () {return (this.$index) + '-' + (this.item.text)} - } - }, - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": "update" - }, - "attr": { - "value": "Update" - } - }, - { - "type": "text", - "classList": [ - "btn" - ], - "events": { - "click": "mutate" - }, - "attr": { - "value": "Mutate" - } - } - ] - } - -/***/ }, - -/***/ 372: -/***/ function(module, exports) { - - module.exports = { - "title": { - "fontSize": 48 - }, - "subtitle": { - "fontSize": 36 - }, - "btn": { - "fontSize": 36, - "textAlign": "center", - "color": "#FFFFFF", - "backgroundColor": "#808080", - "padding": 20, - "borderRadius": 5 - } - } - -/***/ }, - -/***/ 373: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - list: [{ key: 1, text: 'a' }, { key: 2, text: 'a' }, { key: 3, text: 'b' }, { key: 4, text: 'c' }, { key: 5, text: 'a' }], - flag: true - }}, - methods: { - update: function update(e) { - this.list.$set(2, { key: 3, text: 'foo' }); - }, - mutate: function mutate(e) { - if (this.list.length % 2) { - this.list.push({ key: 'x', text: 'bar' }); - } else { - this.list.pop(); - } - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-repeat.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-repeat.js deleted file mode 100644 index dfcc2d04..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-repeat.js +++ /dev/null @@ -1,261 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(368) - var __weex_style__ = __webpack_require__(369) - var __weex_script__ = __webpack_require__(370) - - __weex_define__('@weex-component/19638a010faa9c01b41851f36c4157df', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/19638a010faa9c01b41851f36c4157df',undefined,undefined) - -/***/ }, - -/***/ 368: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "children": [ - { - "type": "text", - "classList": [ - "title" - ], - "attr": { - "value": "Basic" - } - }, - { - "type": "text", - "classList": [ - "subtitle" - ], - "repeat": function () {return this.list2}, - "attr": { - "value": function () {return (this.$index) + '-' + (this.text) + '-' + (this.normal)} - } - }, - { - "type": "text", - "classList": [ - "title" - ], - "attr": { - "value": "Basic" - } - }, - { - "type": "text", - "classList": [ - "subtitle" - ], - "repeat": function () {return this.list2}, - "attr": { - "value": function () {return (this.$index) + '-' + (this.text) + '-' + (this.normal)} - } - }, - { - "type": "text", - "classList": [ - "title" - ], - "attr": { - "value": "Custom item" - } - }, - { - "type": "text", - "classList": [ - "subtitle" - ], - "repeat": { - "expression": function () {return this.list}, - "value": "item" - }, - "attr": { - "value": function () {return (this.$index) + '-' + (this.item) + '-' + (this.normal)} - } - }, - { - "type": "text", - "classList": [ - "title" - ], - "attr": { - "value": "Custom item" - } - }, - { - "type": "text", - "classList": [ - "subtitle" - ], - "repeat": { - "expression": function () {return this.list}, - "value": "item" - }, - "attr": { - "value": function () {return (this.$index) + '-' + (this.item) + '-' + (this.normal)} - } - }, - { - "type": "text", - "classList": [ - "title" - ], - "attr": { - "value": "Custom key and item" - } - }, - { - "type": "text", - "classList": [ - "subtitle" - ], - "repeat": { - "expression": function () {return this.list}, - "key": "i", - "value": "v" - }, - "attr": { - "value": function () {return (this.i) + '-' + (this.v) + '-' + (this.normal)} - } - }, - { - "type": "text", - "classList": [ - "title" - ], - "attr": { - "value": "Custom key and item" - } - }, - { - "type": "text", - "classList": [ - "subtitle" - ], - "repeat": { - "expression": function () {return this.list}, - "key": "i", - "value": "v" - }, - "attr": { - "value": function () {return (this.i) + '-' + (this.v) + '-' + (this.normal)} - } - }, - { - "type": "text", - "classList": [ - "title" - ], - "attr": { - "value": "Array of Object" - } - }, - { - "type": "text", - "classList": [ - "subtitle" - ], - "repeat": { - "expression": function () {return this.list2}, - "value": "item" - }, - "attr": { - "value": function () {return (this.$index) + '-' + (this.item.text) + '-' + (this.normal)} - } - } - ] - } - -/***/ }, - -/***/ 369: -/***/ function(module, exports) { - - module.exports = { - "title": { - "fontSize": 48 - }, - "subtitle": { - "fontSize": 36 - } - } - -/***/ }, - -/***/ 370: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - normal: 'x', - list: ['a', 'b', 'c', 'd', 'e'], - list2: [{ text: 'a' }, { text: 'b' }, { text: 'c' }, { text: 'd' }, { text: 'e' }] - }} - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-style.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-style.js deleted file mode 100644 index 66511580..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/syntax/template-style.js +++ /dev/null @@ -1,121 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(374) - var __weex_script__ = __webpack_require__(375) - - __weex_define__('@weex-component/301fb11cc58bbe739f3ee7ecea123456', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/301fb11cc58bbe739f3ee7ecea123456',undefined,undefined) - -/***/ }, - -/***/ 374: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "events": { - "click": "update" - }, - "children": [ - { - "type": "text", - "style": { - "fontSize": 48, - "color": "#0000ff" - }, - "attr": { - "value": "Hello" - } - }, - { - "type": "text", - "style": { - "fontSize": function () {return this.size}, - "color": function () {return this.color} - }, - "attr": { - "value": "Hello" - } - } - ] - } - -/***/ }, - -/***/ 375: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - size: 32, - color: '#ff0000' - }}, - methods: { - update: function update(e) { - this.size = 48; - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/template.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/template.js deleted file mode 100644 index bde736fd..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/template.js +++ /dev/null @@ -1,2251 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(376) - var __weex_style__ = __webpack_require__(377) - var __weex_script__ = __webpack_require__(378) - - __weex_define__('@weex-component/b40420dfe575cbe06a71dd757f5b9128', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - __weex_bootstrap__('@weex-component/b40420dfe575cbe06a71dd757f5b9128',undefined,undefined) - -/***/ }, - -/***/ 4: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(5); - __webpack_require__(9); - __webpack_require__(13); - __webpack_require__(17); - __webpack_require__(21); - __webpack_require__(25); - __webpack_require__(66); - __webpack_require__(70); - __webpack_require__(74); - __webpack_require__(78); - __webpack_require__(79); - - -/***/ }, - -/***/ 5: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(6) - var __weex_style__ = __webpack_require__(7) - var __weex_script__ = __webpack_require__(8) - - __weex_define__('@weex-component/wxc-button', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, - -/***/ 6: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, - -/***/ 7: -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, - -/***/ 8: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - size: 'large', - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 9: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(10) - var __weex_style__ = __webpack_require__(11) - var __weex_script__ = __webpack_require__(12) - - __weex_define__('@weex-component/wxc-hn', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, - -/***/ 10: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['h' + (this.level)]}, - "style": { - "justifyContent": "center" - }, - "children": [ - { - "type": "text", - "classList": function () {return ['txt-h' + (this.level)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, - -/***/ 11: -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, - -/***/ 12: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - level: 1, - value: '' - }}, - methods: {} - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 13: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(14) - var __weex_style__ = __webpack_require__(15) - var __weex_script__ = __webpack_require__(16) - - __weex_define__('@weex-component/wxc-list-item', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, - -/***/ 14: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "item" - ], - "events": { - "touchstart": "touchstart", - "touchend": "touchend" - }, - "style": { - "backgroundColor": function () {return this.bgColor} - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, - -/***/ 15: -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, - -/***/ 16: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - bgColor: '#ffffff' - }}, - methods: { - touchstart: function touchstart() {}, - touchend: function touchend() {} - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 17: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(18) - var __weex_style__ = __webpack_require__(19) - var __weex_script__ = __webpack_require__(20) - - __weex_define__('@weex-component/wxc-panel', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, - -/***/ 18: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['panel', 'panel-' + (this.type)]}, - "style": { - "borderWidth": function () {return this.border} - }, - "children": [ - { - "type": "text", - "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingHead}, - "paddingBottom": function () {return this.paddingHead}, - "paddingLeft": function () {return this.paddingHead*1.5}, - "paddingRight": function () {return this.paddingHead*1.5} - }, - "attr": { - "value": function () {return this.title} - } - }, - { - "type": "div", - "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]}, - "style": { - "paddingTop": function () {return this.paddingBody}, - "paddingBottom": function () {return this.paddingBody}, - "paddingLeft": function () {return this.paddingBody*1.5}, - "paddingRight": function () {return this.paddingBody*1.5} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, - -/***/ 19: -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - }, - "panel-body": {} - } - -/***/ }, - -/***/ 20: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'default', - title: '', - paddingBody: 20, - paddingHead: 20, - dataClass: '', - border: 0 - }}, - ready: function ready() {} - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 21: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(22) - var __weex_style__ = __webpack_require__(23) - var __weex_script__ = __webpack_require__(24) - - __weex_define__('@weex-component/wxc-tip', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, - -/***/ 22: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": function () {return ['tip', 'tip-' + (this.type)]}, - "children": [ - { - "type": "text", - "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]}, - "attr": { - "value": function () {return this.value} - } - } - ] - } - -/***/ }, - -/***/ 23: -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, - -/***/ 24: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - type: 'success', - value: '' - }} - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 25: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(26) - var __weex_style__ = __webpack_require__(27) - var __weex_script__ = __webpack_require__(28) - - __weex_define__('@weex-component/wxc-countdown', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, - -/***/ 26: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "style": { - "overflow": "hidden", - "flexDirection": "row" - }, - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "content" - } - ] - } - -/***/ }, - -/***/ 27: -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, - -/***/ 28: -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var _assign = __webpack_require__(29); - - var _assign2 = _interopRequireDefault(_assign); - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - module.exports = { - data: function () {return { - now: 0, - remain: 0, - time: { - elapse: 0, - D: '0', - DD: '0', - h: '0', - hh: '00', - H: '0', - HH: '0', - m: '0', - mm: '00', - M: '0', - MM: '0', - s: '0', - ss: '00', - S: '0', - SS: '0' - }, - outofview: false - }}, - ready: function ready() { - if (this.remain <= 0) { - return; - } - - this.now = Date.now(); - this.nextTick(); - }, - methods: { - nextTick: function nextTick() { - if (this.outofview) { - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.time.elapse = parseInt((Date.now() - this.now) / 1000); - - if (this.calc()) { - this.$emit('tick', (0, _assign2.default)({}, this.time)); - setTimeout(this.nextTick.bind(this), 1000); - } else { - this.$emit('alarm', (0, _assign2.default)({}, this.time)); - } - this._app.updateActions(); - } - }, - format: function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - }, - calc: function calc() { - var remain = this.remain - this.time.elapse; - if (remain < 0) { - remain = 0; - } - this.time.D = String(parseInt(remain / 86400)); - this.time.DD = this.format(this.time.D); - this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600)); - this.time.hh = this.format(this.time.h); - this.time.H = String(parseInt(remain / 3600)); - this.time.HH = this.format(this.time.H); - this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60)); - this.time.mm = this.format(this.time.m); - this.time.M = String(parseInt(remain / 60)); - this.time.MM = this.format(this.time.M); - this.time.s = String(remain - parseInt(this.time.M) * 60); - this.time.ss = this.format(this.time.s); - this.time.S = String(remain); - this.time.SS = this.format(this.time.S); - - return remain > 0; - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 29: -/***/ function(module, exports, __webpack_require__) { - - module.exports = { "default": __webpack_require__(30), __esModule: true }; - -/***/ }, - -/***/ 30: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(31); - module.exports = __webpack_require__(34).Object.assign; - -/***/ }, - -/***/ 31: -/***/ function(module, exports, __webpack_require__) { - - // 19.1.3.1 Object.assign(target, source) - var $export = __webpack_require__(32); - - $export($export.S + $export.F, 'Object', {assign: __webpack_require__(47)}); - -/***/ }, - -/***/ 32: -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , core = __webpack_require__(34) - , ctx = __webpack_require__(35) - , hide = __webpack_require__(37) - , PROTOTYPE = 'prototype'; - - var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } - }; - // type bitmap - $export.F = 1; // forced - $export.G = 2; // global - $export.S = 4; // static - $export.P = 8; // proto - $export.B = 16; // bind - $export.W = 32; // wrap - $export.U = 64; // safe - $export.R = 128; // real proto method for `library` - module.exports = $export; - -/***/ }, - -/***/ 33: -/***/ function(module, exports) { - - // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 - var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); - if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef - -/***/ }, - -/***/ 34: -/***/ function(module, exports) { - - var core = module.exports = {version: '2.4.0'}; - if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef - -/***/ }, - -/***/ 35: -/***/ function(module, exports, __webpack_require__) { - - // optional / simple context binding - var aFunction = __webpack_require__(36); - module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; - }; - -/***/ }, - -/***/ 36: -/***/ function(module, exports) { - - module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; - }; - -/***/ }, - -/***/ 37: -/***/ function(module, exports, __webpack_require__) { - - var dP = __webpack_require__(38) - , createDesc = __webpack_require__(46); - module.exports = __webpack_require__(42) ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); - } : function(object, key, value){ - object[key] = value; - return object; - }; - -/***/ }, - -/***/ 38: -/***/ function(module, exports, __webpack_require__) { - - var anObject = __webpack_require__(39) - , IE8_DOM_DEFINE = __webpack_require__(41) - , toPrimitive = __webpack_require__(45) - , dP = Object.defineProperty; - - exports.f = __webpack_require__(42) ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; - }; - -/***/ }, - -/***/ 39: -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40); - module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; - }; - -/***/ }, - -/***/ 40: -/***/ function(module, exports) { - - module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; - }; - -/***/ }, - -/***/ 41: -/***/ function(module, exports, __webpack_require__) { - - module.exports = !__webpack_require__(42) && !__webpack_require__(43)(function(){ - return Object.defineProperty(__webpack_require__(44)('div'), 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, - -/***/ 42: -/***/ function(module, exports, __webpack_require__) { - - // Thank's IE8 for his funny defineProperty - module.exports = !__webpack_require__(43)(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; - }); - -/***/ }, - -/***/ 43: -/***/ function(module, exports) { - - module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } - }; - -/***/ }, - -/***/ 44: -/***/ function(module, exports, __webpack_require__) { - - var isObject = __webpack_require__(40) - , document = __webpack_require__(33).document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); - module.exports = function(it){ - return is ? document.createElement(it) : {}; - }; - -/***/ }, - -/***/ 45: -/***/ function(module, exports, __webpack_require__) { - - // 7.1.1 ToPrimitive(input [, PreferredType]) - var isObject = __webpack_require__(40); - // instead of the ES6 spec version, we didn't implement @@toPrimitive case - // and the second argument - flag - preferred type is a string - module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); - }; - -/***/ }, - -/***/ 46: -/***/ function(module, exports) { - - module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; - }; - -/***/ }, - -/***/ 47: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - // 19.1.2.1 Object.assign(target, source, ...) - var getKeys = __webpack_require__(48) - , gOPS = __webpack_require__(63) - , pIE = __webpack_require__(64) - , toObject = __webpack_require__(65) - , IObject = __webpack_require__(52) - , $assign = Object.assign; - - // should work with symbols and should have deterministic property order (V8 bug) - module.exports = !$assign || __webpack_require__(43)(function(){ - var A = {} - , B = {} - , S = Symbol() - , K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function(k){ B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; - }) ? function assign(target, source){ // eslint-disable-line no-unused-vars - var T = toObject(target) - , aLen = arguments.length - , index = 1 - , getSymbols = gOPS.f - , isEnum = pIE.f; - while(aLen > index){ - var S = IObject(arguments[index++]) - , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) - , length = keys.length - , j = 0 - , key; - while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; - } return T; - } : $assign; - -/***/ }, - -/***/ 48: -/***/ function(module, exports, __webpack_require__) { - - // 19.1.2.14 / 15.2.3.14 Object.keys(O) - var $keys = __webpack_require__(49) - , enumBugKeys = __webpack_require__(62); - - module.exports = Object.keys || function keys(O){ - return $keys(O, enumBugKeys); - }; - -/***/ }, - -/***/ 49: -/***/ function(module, exports, __webpack_require__) { - - var has = __webpack_require__(50) - , toIObject = __webpack_require__(51) - , arrayIndexOf = __webpack_require__(55)(false) - , IE_PROTO = __webpack_require__(59)('IE_PROTO'); - - module.exports = function(object, names){ - var O = toIObject(object) - , i = 0 - , result = [] - , key; - for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); - // Don't enum bug & hidden keys - while(names.length > i)if(has(O, key = names[i++])){ - ~arrayIndexOf(result, key) || result.push(key); - } - return result; - }; - -/***/ }, - -/***/ 50: -/***/ function(module, exports) { - - var hasOwnProperty = {}.hasOwnProperty; - module.exports = function(it, key){ - return hasOwnProperty.call(it, key); - }; - -/***/ }, - -/***/ 51: -/***/ function(module, exports, __webpack_require__) { - - // to indexed object, toObject with fallback for non-array-like ES3 strings - var IObject = __webpack_require__(52) - , defined = __webpack_require__(54); - module.exports = function(it){ - return IObject(defined(it)); - }; - -/***/ }, - -/***/ 52: -/***/ function(module, exports, __webpack_require__) { - - // fallback for non-array-like ES3 and non-enumerable old V8 strings - var cof = __webpack_require__(53); - module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); - }; - -/***/ }, - -/***/ 53: -/***/ function(module, exports) { - - var toString = {}.toString; - - module.exports = function(it){ - return toString.call(it).slice(8, -1); - }; - -/***/ }, - -/***/ 54: -/***/ function(module, exports) { - - // 7.2.1 RequireObjectCoercible(argument) - module.exports = function(it){ - if(it == undefined)throw TypeError("Can't call method on " + it); - return it; - }; - -/***/ }, - -/***/ 55: -/***/ function(module, exports, __webpack_require__) { - - // false -> Array#indexOf - // true -> Array#includes - var toIObject = __webpack_require__(51) - , toLength = __webpack_require__(56) - , toIndex = __webpack_require__(58); - module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; - }; - -/***/ }, - -/***/ 56: -/***/ function(module, exports, __webpack_require__) { - - // 7.1.15 ToLength - var toInteger = __webpack_require__(57) - , min = Math.min; - module.exports = function(it){ - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 - }; - -/***/ }, - -/***/ 57: -/***/ function(module, exports) { - - // 7.1.4 ToInteger - var ceil = Math.ceil - , floor = Math.floor; - module.exports = function(it){ - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); - }; - -/***/ }, - -/***/ 58: -/***/ function(module, exports, __webpack_require__) { - - var toInteger = __webpack_require__(57) - , max = Math.max - , min = Math.min; - module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); - }; - -/***/ }, - -/***/ 59: -/***/ function(module, exports, __webpack_require__) { - - var shared = __webpack_require__(60)('keys') - , uid = __webpack_require__(61); - module.exports = function(key){ - return shared[key] || (shared[key] = uid(key)); - }; - -/***/ }, - -/***/ 60: -/***/ function(module, exports, __webpack_require__) { - - var global = __webpack_require__(33) - , SHARED = '__core-js_shared__' - , store = global[SHARED] || (global[SHARED] = {}); - module.exports = function(key){ - return store[key] || (store[key] = {}); - }; - -/***/ }, - -/***/ 61: -/***/ function(module, exports) { - - var id = 0 - , px = Math.random(); - module.exports = function(key){ - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); - }; - -/***/ }, - -/***/ 62: -/***/ function(module, exports) { - - // IE 8- don't enum bug keys - module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' - ).split(','); - -/***/ }, - -/***/ 63: -/***/ function(module, exports) { - - exports.f = Object.getOwnPropertySymbols; - -/***/ }, - -/***/ 64: -/***/ function(module, exports) { - - exports.f = {}.propertyIsEnumerable; - -/***/ }, - -/***/ 65: -/***/ function(module, exports, __webpack_require__) { - - // 7.1.13 ToObject(argument) - var defined = __webpack_require__(54); - module.exports = function(it){ - return Object(defined(it)); - }; - -/***/ }, - -/***/ 66: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(67) - var __weex_style__ = __webpack_require__(68) - var __weex_script__ = __webpack_require__(69) - - __weex_define__('@weex-component/wxc-marquee', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, - -/***/ 67: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrap" - ], - "events": { - "appear": "appeared", - "disappear": "disappeared" - }, - "children": [ - { - "type": "div", - "id": "anim", - "classList": [ - "anim" - ], - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, - -/***/ 68: -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, - -/***/ 69: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - step: 0, - count: 0, - index: 1, - duration: 0, - interval: 0, - outofview: false - }}, - ready: function ready() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.nextTick(); - } - }, - methods: { - nextTick: function nextTick() { - var self = this; - if (this.outofview) { - setTimeout(self.nextTick.bind(self), self.interval); - } else { - setTimeout(function () { - self.animation(self.nextTick.bind(self)); - }, self.interval); - } - }, - animation: function animation(cb) { - var self = this; - var offset = -self.step * self.index; - var $animation = __weex_require__('@weex-module/animation'); - $animation.transition(this.$el('anim'), { - styles: { - transform: 'translateY(' + String(offset) + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: self.duration - }, function () { - self.index = (self.index + 1) % self.count; - self.$emit('change', { - index: self.index, - count: self.count - }); - cb && cb(); - }); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 70: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(71) - var __weex_style__ = __webpack_require__(72) - var __weex_script__ = __webpack_require__(73) - - __weex_define__('@weex-component/wxc-navbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, - -/***/ 71: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor} - }, - "attr": { - "dataRole": function () {return this.dataRole} - }, - "children": [ - { - "type": "text", - "classList": [ - "right-text" - ], - "style": { - "color": function () {return this.rightItemColor} - }, - "attr": { - "naviItemPosition": "right", - "value": function () {return this.rightItemTitle} - }, - "shown": function () {return !this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "image", - "classList": [ - "right-image" - ], - "attr": { - "naviItemPosition": "right", - "src": function () {return this.rightItemSrc} - }, - "shown": function () {return this.rightItemSrc}, - "events": { - "click": "onclickrightitem" - } - }, - { - "type": "text", - "classList": [ - "left-text" - ], - "style": { - "color": function () {return this.leftItemColor} - }, - "attr": { - "naviItemPosition": "left", - "value": function () {return this.leftItemTitle} - }, - "shown": function () {return !this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "image", - "classList": [ - "left-image" - ], - "attr": { - "naviItemPosition": "left", - "src": function () {return this.leftItemSrc} - }, - "shown": function () {return this.leftItemSrc}, - "events": { - "click": "onclickleftitem" - } - }, - { - "type": "text", - "classList": [ - "center-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "naviItemPosition": "center", - "value": function () {return this.title} - } - } - ] - } - -/***/ }, - -/***/ 72: -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, - -/***/ 73: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - - backgroundColor: 'black', - - height: 88, - - title: "", - - titleColor: 'black', - - rightItemSrc: '', - - rightItemTitle: '', - - rightItemColor: 'black', - - leftItemSrc: '', - - leftItemTitle: '', - - leftItemColor: 'black' - }}, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$dispatch('naviBar.rightItem.click', {}); - }, - onclickleftitem: function onclickleftitem(e) { - this.$dispatch('naviBar.leftItem.click', {}); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 74: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(70) - var __weex_template__ = __webpack_require__(75) - var __weex_style__ = __webpack_require__(76) - var __weex_script__ = __webpack_require__(77) - - __weex_define__('@weex-component/wxc-navpage', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, - -/***/ 75: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "wxc-navbar", - "attr": { - "dataRole": function () {return this.dataRole}, - "height": function () {return this.height}, - "backgroundColor": function () {return this.backgroundColor}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor}, - "leftItemSrc": function () {return this.leftItemSrc}, - "leftItemTitle": function () {return this.leftItemTitle}, - "leftItemColor": function () {return this.leftItemColor}, - "rightItemSrc": function () {return this.rightItemSrc}, - "rightItemTitle": function () {return this.rightItemTitle}, - "rightItemColor": function () {return this.rightItemColor} - } - }, - { - "type": "div", - "classList": [ - "wrapper" - ], - "style": { - "marginTop": function () {return this.height} - }, - "children": [ - { - "type": "content" - } - ] - } - ] - } - -/***/ }, - -/***/ 76: -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, - -/***/ 77: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - dataRole: 'navbar', - backgroundColor: 'black', - height: 88, - title: "", - titleColor: 'black', - rightItemSrc: '', - rightItemTitle: '', - rightItemColor: 'black', - leftItemSrc: '', - leftItemTitle: '', - leftItemColor: 'black' - }} - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 78: -/***/ function(module, exports, __webpack_require__) { - - __webpack_require__(79) - var __weex_template__ = __webpack_require__(83) - var __weex_style__ = __webpack_require__(84) - var __weex_script__ = __webpack_require__(85) - - __weex_define__('@weex-component/wxc-tabbar', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, - -/***/ 79: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(80) - var __weex_style__ = __webpack_require__(81) - var __weex_script__ = __webpack_require__(82) - - __weex_define__('@weex-component/wxc-tabitem', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - __weex_module__.exports.style = __weex_style__ - - }) - - -/***/ }, - -/***/ 80: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "container" - ], - "style": { - "backgroundColor": function () {return this.backgroundColor} - }, - "events": { - "click": "onclickitem" - }, - "children": [ - { - "type": "image", - "classList": [ - "top-line" - ], - "attr": { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }, - { - "type": "image", - "classList": [ - "tab-icon" - ], - "attr": { - "src": function () {return this.icon} - } - }, - { - "type": "text", - "classList": [ - "tab-text" - ], - "style": { - "color": function () {return this.titleColor} - }, - "attr": { - "value": function () {return this.title} - } - } - ] - } - -/***/ }, - -/***/ 81: -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, - -/***/ 82: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - index: 0, - title: '', - titleColor: '#000000', - icon: '', - backgroundColor: '#ffffff' - }}, - methods: { - onclickitem: function onclickitem(e) { - var vm = this; - var params = { - index: vm.index - }; - vm.$dispatch('tabItem.onClick', params); - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 83: -/***/ function(module, exports) { - - module.exports = { - "type": "div", - "classList": [ - "wrapper" - ], - "children": [ - { - "type": "embed", - "classList": [ - "content" - ], - "style": { - "visibility": function () {return this.visibility} - }, - "repeat": function () {return this.tabItems}, - "attr": { - "src": function () {return this.src}, - "type": "weex" - } - }, - { - "type": "div", - "classList": [ - "tabbar" - ], - "append": "tree", - "children": [ - { - "type": "wxc-tabitem", - "repeat": function () {return this.tabItems}, - "attr": { - "index": function () {return this.index}, - "icon": function () {return this.icon}, - "title": function () {return this.title}, - "titleColor": function () {return this.titleColor} - } - } - ] - } - ] - } - -/***/ }, - -/***/ 84: -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, - -/***/ 85: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - module.exports = { - data: function () {return { - tabItems: [], - selectedIndex: 0, - selectedColor: '#ff0000', - unselectedColor: '#000000' - }}, - created: function created() { - this.selected(this.selectedIndex); - - this.$on('tabItem.onClick', function (e) { - var detail = e.detail; - this.selectedIndex = detail.index; - this.selected(detail.index); - - var params = { - index: detail.index - }; - this.$dispatch('tabBar.onClick', params); - }); - }, - methods: { - selected: function selected(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - };} - /* generated by weex-loader */ - - -/***/ }, - -/***/ 376: -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "children": [ - { - "type": "wxc-panel", - "attr": { - "title": "Dialog", - "type": "primary" - }, - "children": [ - { - "type": "wxc-tip", - "attr": { - "type": "success", - "value": "It's a weex example template." - }, - "style": { - "marginBottom": 20 - } - }, - { - "type": "wxc-hn", - "attr": { - "level": "1", - "value": "H1" - } - }, - { - "type": "wxc-button", - "attr": { - "type": "primary", - "value": "Toast" - }, - "events": { - "click": "toast" - } - }, - { - "type": "wxc-hn", - "attr": { - "level": "2", - "value": "H3" - } - }, - { - "type": "wxc-button", - "attr": { - "type": "warning", - "value": "Toast" - }, - "events": { - "click": "toast" - } - } - ] - }, - { - "type": "wxc-panel", - "attr": { - "title": "Image", - "type": "primary" - }, - "children": [ - { - "type": "wxc-tip", - "attr": { - "type": "warning", - "value": "Weex screen width is 750" - }, - "style": { - "marginBottom": 20 - } - }, - { - "type": "image", - "classList": [ - "img" - ], - "style": { - "width": 400, - "height": 400 - }, - "attr": { - "src": function () {return this.img} - } - }, - { - "type": "wxc-panel", - "attr": { - "title": "Image", - "type": "default" - }, - "children": [ - { - "type": "text", - "attr": { - "value": "sub info" - } - } - ] - } - ] - } - ] - } - -/***/ }, - -/***/ 377: -/***/ function(module, exports) { - - module.exports = {} - -/***/ }, - -/***/ 378: -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - __webpack_require__(4); - module.exports = { - data: function () {return { - img: '//gw.alicdn.com/tps/i2/TB1DpsmMpXXXXabaXXX20ySQVXX-512-512.png_400x400.jpg' - }}, - methods: { - toast: function toast() { - this.$call('modal', 'toast', { 'message': 'a toast', 'duration': 2 }); - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/test.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/test.js deleted file mode 100644 index b09e4d15..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/test.js +++ /dev/null @@ -1,128 +0,0 @@ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __weex_template__ = __webpack_require__(379) - var __weex_script__ = __webpack_require__(380) - - __weex_define__('@weex-component/9305542c7d16b107fad92f56b2a08dab', [], function(__weex_require__, __weex_exports__, __weex_module__) { - - __weex_script__(__weex_module__, __weex_exports__, __weex_require__) - if (__weex_exports__.__esModule && __weex_exports__.default) { - __weex_module__.exports = __weex_exports__.default - } - - __weex_module__.exports.template = __weex_template__ - - }) - - __weex_bootstrap__('@weex-component/9305542c7d16b107fad92f56b2a08dab',undefined,undefined) - -/***/ }, - -/***/ 379: -/***/ function(module, exports) { - - module.exports = { - "type": "scroller", - "children": [ - { - "type": "div", - "id": "r", - "children": [ - { - "type": "text", - "attr": { - "value": function () {return this.x} - } - }, - { - "type": "div", - "style": { - "height": 2000, - "backgroundColor": "#ff0000" - } - }, - { - "type": "text", - "events": { - "click": "foo" - }, - "attr": { - "value": function () {return this.x} - } - } - ] - } - ] - } - -/***/ }, - -/***/ 380: -/***/ function(module, exports) { - - module.exports = function(module, exports, __weex_require__){'use strict'; - - var dom = __weex_require__('@weex-module/dom'); - module.exports = { - data: function data() { - return { - x: 1 - }; - }, - methods: { - foo: function foo(e) { - dom.scrollToElement(this.$el('r'), { offset: 0 }); - } - } - };} - /* generated by weex-loader */ - - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/animation.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/animation.js deleted file mode 100644 index c6c8b3d0..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/animation.js +++ /dev/null @@ -1,709 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(381) - ) - - /* script */ - __vue_exports__ = __webpack_require__(382) - - /* template */ - var __vue_template__ = __webpack_require__(391) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/animation.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 381: -/***/ function(module, exports) { - - module.exports = { - "block": { - "position": "absolute", - "width": 250, - "height": 250, - "top": 300, - "left": 400, - "backgroundColor": "#F0AD4E", - "alignItems": "center", - "justifyContent": "center" - }, - "block-txt": { - "color": "#FFFFFF", - "fontSize": 70 - } - } - -/***/ }, - -/***/ 382: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var animation = __weex_require_module__('animation'); - module.exports = { - data: function data() { - return { - transformOrigin: 'center center', - current_rotate: 0, - current_scale: 1, - current_color: '#FF0000', - current_opacity: 1, - current_translate: '', - current_transform: '', - isStop: true - }; - }, - components: { - panel: __webpack_require__(383), - button: __webpack_require__(387) - }, - methods: { - anim: function anim(styles, timingFunction, duration, callback) { - animation.transition(this.$refs.block.ref, { - styles: styles, - timingFunction: timingFunction, - duration: duration - }, callback); - }, - rotate: function rotate() { - var self = this; - self.current_rotate += 90; - self.anim({ - transform: 'rotate(' + self.current_rotate + 'deg)' - }, 'ease-in-out', 500, function () { - if (self.current_rotate === 360) { - self.current_rotate = 0; - } else { - self.rotate(); - } - }); - }, - translate: function translate() { - this.current_translate = this.current_translate ? '' : 'translate(50%, 50%)'; - this.anim({ - transform: this.current_translate - }, 'ease-in', 500, function () {}); - }, - scale: function scale() { - var self = this; - self.current_scale = self.current_scale === 2 ? .5 : 2; - self.anim({ - transform: 'scale(' + self.current_scale + ')' - }, 'linear', 500, function () {}); - }, - transform: function transform() { - var self = this; - this.current_transform = this.current_transform ? '' : 'rotate(45deg) scale(1.5)'; - this.anim({ - transform: this.current_transform, - transformOrigin: 'left top' - }, 'ease-out', 500, function () { - if (self.current_transform !== '') { - self.anim({ - transform: 'rotate(-90deg) scale(1.2)', - transformOrigin: 'left top' - }, 'ease-out', 500, function () {}); - } else {} - }); - }, - composite: function composite() { - var self = this; - self.current_transform = self.current_transform ? '' : 'rotate(45deg) scale(1.5) translate(50%, 50%)'; - self.current_color = self.current_color === '#F0AD4E' ? '#D9534F' : '#F0AD4E'; - self.current_opacity = self.current_opacity === 1 ? 0.1 : 1; - this.anim({ - transform: this.current_transform, - transformOrigin: 'left top', - backgroundColor: self.current_color, - opacity: self.current_opacity - }, 'ease-out', 1000, function () {}); - }, - color: function color() { - var self = this; - self.current_color = self.current_color === '#F0AD4E' ? '#D9534F' : '#F0AD4E'; - self.anim({ - backgroundColor: self.current_color - }, 'linear', 500, function () {}); - }, - opacity: function opacity() { - var self = this; - self.current_opacity = self.current_opacity === 1 ? 0.1 : 1; - self.anim({ - opacity: self.current_opacity - }, 'linear', 500, function () {}); - } - } - }; - -/***/ }, - -/***/ 383: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(384) - ) - - /* script */ - __vue_exports__ = __webpack_require__(385) - - /* template */ - var __vue_template__ = __webpack_require__(386) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/panel.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 384: -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, - -/***/ 385: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - title: { default: '' }, - paddingBody: { default: 20 }, - paddingHead: { default: 20 }, - dataClass: { default: '' }, // FIXME transfer class - border: { default: 0 } - } - }; - -/***/ }, - -/***/ 386: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['panel', 'panel-' + _vm.type], - style: { - borderWidth: _vm.border - } - }, [_h('text', { - class: ['panel-header', 'panel-header-' + _vm.type], - style: { - paddingTop: _vm.paddingHead, - paddingBottom: _vm.paddingHead, - paddingLeft: _vm.paddingHead * 1.5, - paddingRight: _vm.paddingHead * 1.5 - } - }, [_vm._s(_vm.title)]), _h('div', { - class: ['panel-body', 'panel-body-' + _vm.type], - style: { - paddingTop: _vm.paddingBody, - paddingBottom: _vm.paddingBody, - paddingLeft: _vm.paddingBody * 1.5, - paddingRight: _vm.paddingBody * 1.5 - } - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 387: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(388) - ) - - /* script */ - __vue_exports__ = __webpack_require__(389) - - /* template */ - var __vue_template__ = __webpack_require__(390) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/button.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 388: -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, - -/***/ 389: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - size: { default: 'large' }, - value: { default: '' } - } - }; - -/***/ }, - -/***/ 390: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['btn', 'btn-' + _vm.type, 'btn-sz-' + _vm.size] - }, [_h('text', { - class: ['btn-txt', 'btn-txt-' + _vm.type, 'btn-txt-sz-' + _vm.size] - }, [_vm._s(_vm.value)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 391: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [_h('panel', { - attrs: { - "title": "Transform", - "type": "primary" - } - }, [_h('button', { - attrs: { - "value": "Rotate", - "type": "primary", - "size": "middle" - }, - nativeOn: { - "click": function($event) { - _vm.rotate($event) - } - } - }), _h('button', { - staticStyle: { - marginTop: "12px" - }, - attrs: { - "value": "Scale", - "type": "primary", - "size": "middle" - }, - nativeOn: { - "click": function($event) { - _vm.scale($event) - } - } - }), _h('button', { - staticStyle: { - marginTop: "12px" - }, - attrs: { - "value": "Translate", - "type": "primary", - "size": "middle" - }, - nativeOn: { - "click": function($event) { - _vm.translate($event) - } - } - }), _h('button', { - staticStyle: { - marginTop: "12px" - }, - attrs: { - "value": "Transform", - "type": "success", - "size": "middle" - }, - nativeOn: { - "click": function($event) { - _vm.transform($event) - } - } - })]), _h('panel', { - attrs: { - "title": "Others", - "type": "primary" - } - }, [_h('button', { - attrs: { - "value": "BgColor", - "type": "primary", - "size": "middle" - }, - nativeOn: { - "click": function($event) { - _vm.color($event) - } - } - }), _h('button', { - staticStyle: { - marginTop: "12px" - }, - attrs: { - "value": "Opacity", - "type": "primary", - "size": "middle" - }, - nativeOn: { - "click": function($event) { - _vm.opacity($event) - } - } - }), _h('button', { - staticStyle: { - marginTop: "12px" - }, - attrs: { - "value": "All", - "type": "success", - "size": "middle" - }, - nativeOn: { - "click": function($event) { - _vm.composite($event) - } - } - })]), _h('div', { - ref: "block", - staticClass: ["block"], - style: { - transformOrigin: _vm.transformOrigin - } - }, [_h('text', { - staticClass: ["block-txt"] - }, ["Anim"])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/a.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/a.js deleted file mode 100644 index 95cc1303..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/a.js +++ /dev/null @@ -1,438 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* script */ - __vue_exports__ = __webpack_require__(392) - - /* template */ - var __vue_template__ = __webpack_require__(397) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/components/a.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 383: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(384) - ) - - /* script */ - __vue_exports__ = __webpack_require__(385) - - /* template */ - var __vue_template__ = __webpack_require__(386) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/panel.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 384: -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, - -/***/ 385: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - title: { default: '' }, - paddingBody: { default: 20 }, - paddingHead: { default: 20 }, - dataClass: { default: '' }, // FIXME transfer class - border: { default: 0 } - } - }; - -/***/ }, - -/***/ 386: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['panel', 'panel-' + _vm.type], - style: { - borderWidth: _vm.border - } - }, [_h('text', { - class: ['panel-header', 'panel-header-' + _vm.type], - style: { - paddingTop: _vm.paddingHead, - paddingBottom: _vm.paddingHead, - paddingLeft: _vm.paddingHead * 1.5, - paddingRight: _vm.paddingHead * 1.5 - } - }, [_vm._s(_vm.title)]), _h('div', { - class: ['panel-body', 'panel-body-' + _vm.type], - style: { - paddingTop: _vm.paddingBody, - paddingBottom: _vm.paddingBody, - paddingLeft: _vm.paddingBody * 1.5, - paddingRight: _vm.paddingBody * 1.5 - } - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 392: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - data: function data() { - return { - img: '//gw.alicdn.com/tps/i2/TB1DpsmMpXXXXabaXXX20ySQVXX-512-512.png_400x400.jpg' - }; - }, - components: { - panel: __webpack_require__(383), - tip: __webpack_require__(393) - } - }; - -/***/ }, - -/***/ 393: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(394) - ) - - /* script */ - __vue_exports__ = __webpack_require__(395) - - /* template */ - var __vue_template__ = __webpack_require__(396) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/tip.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 394: -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, - -/***/ 395: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'success' }, - value: { default: '' } - } - }; - -/***/ }, - -/***/ 396: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['tip', 'tip-' + _vm.type] - }, [_h('text', { - class: ['tip-txt', 'tip-txt-' + _vm.type] - }, [_vm._s(_vm.value)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 397: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('scroller', [_h('panel', { - attrs: { - "title": "Hyperlink", - "type": "primary" - } - }, [_h('a', { - attrs: { - "href": "http://alibaba.github.io/weex/index.html" - } - }, [_h('tip', { - staticStyle: { - marginBottom: "20px" - }, - attrs: { - "type": "info", - "value": "Click me to see how 'A' element opens a new world." - } - })])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/countdown.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/countdown.js deleted file mode 100644 index d4f0f6fb..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/countdown.js +++ /dev/null @@ -1,640 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(398) - ) - - /* script */ - __vue_exports__ = __webpack_require__(399) - - /* template */ - var __vue_template__ = __webpack_require__(404) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/components/countdown.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 383: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(384) - ) - - /* script */ - __vue_exports__ = __webpack_require__(385) - - /* template */ - var __vue_template__ = __webpack_require__(386) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/panel.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 384: -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, - -/***/ 385: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - title: { default: '' }, - paddingBody: { default: 20 }, - paddingHead: { default: 20 }, - dataClass: { default: '' }, // FIXME transfer class - border: { default: 0 } - } - }; - -/***/ }, - -/***/ 386: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['panel', 'panel-' + _vm.type], - style: { - borderWidth: _vm.border - } - }, [_h('text', { - class: ['panel-header', 'panel-header-' + _vm.type], - style: { - paddingTop: _vm.paddingHead, - paddingBottom: _vm.paddingHead, - paddingLeft: _vm.paddingHead * 1.5, - paddingRight: _vm.paddingHead * 1.5 - } - }, [_vm._s(_vm.title)]), _h('div', { - class: ['panel-body', 'panel-body-' + _vm.type], - style: { - paddingTop: _vm.paddingBody, - paddingBottom: _vm.paddingBody, - paddingLeft: _vm.paddingBody * 1.5, - paddingRight: _vm.paddingBody * 1.5 - } - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 398: -/***/ function(module, exports) { - - module.exports = { - "ctno1": { - "borderRadius": 8, - "paddingTop": 6, - "paddingBottom": 6, - "paddingRight": 4, - "paddingLeft": 4, - "marginLeft": 2, - "marginRight": 2, - "backgroundColor": "rgb(242,222,222)", - "color": "rgb(169,68,66)" - }, - "ctno2": { - "borderRadius": 8, - "paddingTop": 30, - "paddingBottom": 30, - "paddingLeft": 16, - "paddingRight": 16, - "backgroundColor": "rgb(217,237,247)", - "color": "rgb(49,112,143)", - "textAlign": "center", - "fontSize": 40 - } - } - -/***/ }, - -/***/ 399: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - data: function data() { - return { - countdown1: { - remain: 5000, - time: { - D: '0', - hh: '00', - mm: '00', - ss: '00' - } - }, - countdown2: { - remain: 5000, - time: { - MM: '0', - ss: '0' - } - } - }; - }, - components: { - panel: __webpack_require__(383), - countdown: __webpack_require__(400) - }, - methods: { - tick: function tick(e, k) { - this[k].time = JSON.parse(JSON.stringify(e)); - } - } - }; - -/***/ }, - -/***/ 400: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(401) - ) - - /* script */ - __vue_exports__ = __webpack_require__(402) - - /* template */ - var __vue_template__ = __webpack_require__(403) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/countdown.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 401: -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden" - } - } - -/***/ }, - -/***/ 402: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - function format(str) { - if (str.length >= 2) { - return str; - } else { - return '0' + str; - } - } - - function getTime(target, now) { - var remain = parseInt((target - now) / 1000); - var D = String(parseInt(remain / 86400)); - var DD = format(D); - var h = String(parseInt((remain - parseInt(D) * 86400) / 3600)); - var hh = format(h); - var H = String(parseInt(remain / 3600)); - var HH = format(H); - var m = String(parseInt((remain - parseInt(H) * 3600) / 60)); - var mm = format(m); - var M = String(parseInt(remain / 60)); - var MM = format(M); - var s = String(remain - parseInt(M) * 60); - var ss = format(s); - var S = String(remain); - var SS = format(S); - return { - D: D, DD: DD, - h: h, hh: hh, - H: H, HH: HH, - m: m, mm: mm, - M: M, MM: MM, - s: s, ss: ss, - S: S, SS: SS - }; - } - - module.exports = { - props: { - remain: { - default: 0 - } - }, - data: function data() { - return { - now: 0, - target: 0, - outofview: false - }; - }, - created: function created() { - this.now = Date.now(); - this.target = this.now + this.remain * 1000; - if (this.remain > 0) { - this.run(); - } - }, - methods: { - run: function run() { - if (!this.outofview) { - this.now = Date.now(); - } - var time = getTime(this.target, this.now); - if (this.target >= this.now) { - this.$emit('tick', time); - } else { - this.$emit('alarm', time); - return; - } - setTimeout(this.run.bind(this), 1000); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - }; - -/***/ }, - -/***/ 403: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticStyle: { - overflow: "hidden", - flexDirection: "row" - }, - on: { - "appear": _vm.appeared, - "disappear": _vm.disappeared - } - }, [_vm._t("default")]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 404: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('scroller', [_h('panel', { - attrs: { - "title": "Countdown", - "type": "primary" - } - }, [_h('countdown', { - staticStyle: { - width: "750", - marginTop: "20", - marginBottom: "20" - }, - attrs: { - "remain": _vm.countdown1.remain - }, - on: { - "tick": function($event) { - _vm.tick($event, 'countdown1') - } - } - }, [_h('text', { - staticClass: ["ctno1"] - }, [_vm._s(_vm.countdown1.time.D)]), _h('text', { - staticClass: ["ctno1"], - staticStyle: { - backgroundColor: "#FFFFFF", - color: "#AAAAAA" - } - }, ["day(s)"]), _h('text', { - staticClass: ["ctno1"] - }, [_vm._s(_vm.countdown1.time.hh)]), _h('text', { - staticClass: ["ctno1"], - staticStyle: { - backgroundColor: "#FFFFFF", - color: "#AAAAAA" - } - }, ["hour(s)"]), _h('text', { - staticClass: ["ctno1"] - }, [_vm._s(_vm.countdown1.time.mm)]), _h('text', { - staticClass: ["ctno1"], - staticStyle: { - backgroundColor: "#FFFFFF", - color: "#AAAAAA" - } - }, ["minute(s)"]), _h('text', { - staticClass: ["ctno1"] - }, [_vm._s(_vm.countdown1.time.ss)]), _h('text', { - staticClass: ["ctno1"], - staticStyle: { - backgroundColor: "#FFFFFF", - color: "#AAAAAA" - } - }, ["second(s)"])]), _h('countdown', { - staticStyle: { - width: "600" - }, - attrs: { - "remain": _vm.countdown2.remain - }, - on: { - "tick": function($event) { - _vm.tick($event, 'countdown2') - } - } - }, [_h('text', { - staticClass: ["ctno2"] - }, [_vm._s(_vm.countdown2.time.MM)]), _h('text', { - staticClass: ["ctno2"], - staticStyle: { - backgroundColor: "#FFFFFF", - color: "#AAAAAA" - } - }, [":"]), _h('text', { - staticClass: ["ctno2"] - }, [_vm._s(_vm.countdown2.time.ss)])])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/image.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/image.js deleted file mode 100644 index 975ec978..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/image.js +++ /dev/null @@ -1,641 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(405) - ) - - /* script */ - __vue_exports__ = __webpack_require__(406) - - /* template */ - var __vue_template__ = __webpack_require__(407) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/components/image.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 383: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(384) - ) - - /* script */ - __vue_exports__ = __webpack_require__(385) - - /* template */ - var __vue_template__ = __webpack_require__(386) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/panel.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 384: -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, - -/***/ 385: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - title: { default: '' }, - paddingBody: { default: 20 }, - paddingHead: { default: 20 }, - dataClass: { default: '' }, // FIXME transfer class - border: { default: 0 } - } - }; - -/***/ }, - -/***/ 386: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['panel', 'panel-' + _vm.type], - style: { - borderWidth: _vm.border - } - }, [_h('text', { - class: ['panel-header', 'panel-header-' + _vm.type], - style: { - paddingTop: _vm.paddingHead, - paddingBottom: _vm.paddingHead, - paddingLeft: _vm.paddingHead * 1.5, - paddingRight: _vm.paddingHead * 1.5 - } - }, [_vm._s(_vm.title)]), _h('div', { - class: ['panel-body', 'panel-body-' + _vm.type], - style: { - paddingTop: _vm.paddingBody, - paddingBottom: _vm.paddingBody, - paddingLeft: _vm.paddingBody * 1.5, - paddingRight: _vm.paddingBody * 1.5 - } - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 393: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(394) - ) - - /* script */ - __vue_exports__ = __webpack_require__(395) - - /* template */ - var __vue_template__ = __webpack_require__(396) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/tip.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 394: -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, - -/***/ 395: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'success' }, - value: { default: '' } - } - }; - -/***/ }, - -/***/ 396: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['tip', 'tip-' + _vm.type] - }, [_h('text', { - class: ['tip-txt', 'tip-txt-' + _vm.type] - }, [_vm._s(_vm.value)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 405: -/***/ function(module, exports) { - - module.exports = { - "img": { - "marginBottom": 20 - } - } - -/***/ }, - -/***/ 406: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - data: function data() { - return { - img: '//gw.alicdn.com/tps/i2/TB1DpsmMpXXXXabaXXX20ySQVXX-512-512.png_400x400.jpg' - }; - }, - components: { - panel: __webpack_require__(383), - tip: __webpack_require__(393) - } - }; - -/***/ }, - -/***/ 407: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('scroller', [_h('panel', { - attrs: { - "title": "width x height", - "type": "primary" - } - }, [_h('tip', { - staticStyle: { - marginBottom: "20px" - }, - attrs: { - "type": "warning", - "value": "Weex screen width is 750" - } - }), _h('div', { - staticStyle: { - flexDirection: "row" - } - }, [_h('image', { - staticClass: ["img"], - staticStyle: { - width: "300px", - height: "300px" - }, - attrs: { - "src": _vm.img - } - }), _h('image', { - staticClass: ["img"], - staticStyle: { - width: "200px", - height: "200px" - }, - attrs: { - "src": _vm.img - } - }), _h('image', { - staticClass: ["img"], - staticStyle: { - width: "50px", - height: "50px" - }, - attrs: { - "src": _vm.img - } - })])]), _h('panel', { - attrs: { - "title": "GIF Animation", - "type": "primary" - } - }, [_h('tip', { - staticStyle: { - marginBottom: "20px" - }, - attrs: { - "type": "warning", - "value": "Depanding on Native ImageSDK" - } - }), _h('div', { - staticStyle: { - flexDirection: "row" - } - }, [_h('image', { - staticClass: ["img"], - staticStyle: { - width: "96px", - height: "96px" - }, - attrs: { - "src": "https://gtd.alicdn.com/tps/i4/T1HcvHXd4nXXb6ROYh-48-48.gif" - } - }), _h('image', { - staticClass: ["img"], - staticStyle: { - width: "68px", - height: "68px", - marginLeft: "20px" - }, - attrs: { - "src": "https://gw.alicdn.com/tps/TB1El.mKXXXXXXyapXXXXXXXXXX-34-34.gif" - } - })])]), _h('panel', { - attrs: { - "title": "Base64", - "type": "primary" - } - }, [_h('tip', { - staticStyle: { - marginBottom: "20px" - }, - attrs: { - "type": "warning", - "value": "Depanding on Native ImageSDK" - } - }), _h('div', { - staticStyle: { - flexDirection: "row" - } - }, [_h('image', { - staticClass: ["img"], - staticStyle: { - width: "96px", - height: "96px" - }, - attrs: { - "src": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACEAAAAhCAMAAABgOjJdAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAO1QTFRFhomSb3J8XGBrdnqDgYWNlJefV1tmfoGKU1diT1NfgISNgoWOYmZwio2Vi4+Wc3eAkJObZGhzUlZiaGt2U1djfYCKZGdyhYiQeHyFio6VgYWOVVllbHB6XWFsY2ZxaWx3jZCYXmFsfYCJcnZ/UVVham54V1tng4aPb3N8WV1pX2JtZWl0YWVvVlpmiYyUWVxohomRd3uEdHiBeX2GZ2t1hIeQVFhkf4OMbnJ8fYGKdnqEb3N9kJScY2dycnaAjpKZdHeBjpKajI+Yc3eBhYiRf4KLXmFtio6Wi4+XjZCZkJSbkZScjI+XlJifTlJe+rAZcwAAAZBJREFUeNp0lOeWgjAQhSdUBQRRbFjX7tpW3XUt23tL3v9xNigJIHh/zRk+5iR3ZgIkULWmwgv+A7VWDWWBR/nSt2gLUzIVbLH1lo8RRW1wEfqxPtCKUaKTMUhURuUhTIi6Q07l6LuAEFdpEld6tWNEx00CKKJ3jsR1xSHJcj4bB+LmkpxT49Yj8mqQUVBBciUk8ITepESJ+5AqY1+uwny5IjDPcADoN0BIwjLOsjKZOewtbi/9fvi338a44CetIai2H/cokPLj9tfEj2wVzD4rIWMlfpu+CXc5Pw4qh5X7AUw4gZIswUENGT8lAN1fMBVeAxIIxYR3Nin0imOe52emdxkyP8aY+0S9Y2d63cNoxvACRTaeI70slst+cjYCAnXmuuS1RKKmy1hKBX0hzaC3KOsxsmz2Ir2NzMcEbVCo+cf5oDOWOzNAucpxxoglnZlT1+KzXk4kymKwL4ttN+73dhHeuWV85zLL073Vw3v7MdDuE3a/JRrCmqwFQ2yV8gmvg/d+aPCMH0GLvB//AgwAo1MTpxsaxVoAAAAASUVORK5CYII=" - } - }), _h('image', { - staticClass: ["img"], - staticStyle: { - width: "68px", - height: "68px", - marginLeft: "20px" - }, - attrs: { - "src": "data:image/gif;base64,R0lGODlhIgAiANU7AMvLy83Nzdra2srKysnJyejo6MbGxtzc3M7Ozuzs7NTU1N3d3fz8/NfX1/j4+Ovr6+/v79DQ0Obm5v39/d/f3/f398/Pz9vb2+np6fn5+f7+/tXV1fX19dnZ2erq6tHR0fb29sjIyMfHx+Li4vLy8u7u7ufn5/r6+uPj49bW1tPT09LS0sTExPT09ODg4O3t7eHh4eTk5MXFxd7e3vHx8fPz8/Dw8OXl5djY2P///8zMzP///wAAAAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0Q0QxODlDNENEOEQxMUUzOEIzM0I1ODVGNjU1MjBBQiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0Q0QxODlDNUNEOEQxMUUzOEIzM0I1ODVGNjU1MjBBQiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjRDRDE4OUMyQ0Q4RDExRTM4QjMzQjU4NUY2NTUyMEFCIiBzdFJl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" - } - })])]), _h('panel', { - attrs: { - "title": "resize", - "type": "primary" - } - }, [_h('panel', { - attrs: { - "title": "resize=stretch(default) 600 x 200 " - } - }, [_h('image', { - staticClass: ["img"], - staticStyle: { - width: "600px", - height: "200px", - borderStyle: "solid", - borderWidth: "1px", - borderColor: "#333" - }, - attrs: { - "src": _vm.img, - "resize": "stretch" - } - })]), _h('panel', { - attrs: { - "title": "resize=contain 600 x 200 " - } - }, [_h('image', { - staticClass: ["img"], - staticStyle: { - width: "600px", - height: "200px", - borderStyle: "solid", - borderWidth: "1px", - borderColor: "#333" - }, - attrs: { - "src": _vm.img, - "resize": "contain" - } - })]), _h('panel', { - attrs: { - "title": "resize=cover 600 x 200" - } - }, [_h('image', { - staticClass: ["img"], - staticStyle: { - width: "600px", - height: "200px", - borderStyle: "solid", - borderWidth: "1px", - borderColor: "#333" - }, - attrs: { - "src": _vm.img, - "resize": "cover" - } - })])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/input.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/input.js deleted file mode 100644 index d996ab40..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/input.js +++ /dev/null @@ -1,364 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(408) - ) - - /* script */ - __vue_exports__ = __webpack_require__(409) - - /* template */ - var __vue_template__ = __webpack_require__(410) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/components/input.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 383: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(384) - ) - - /* script */ - __vue_exports__ = __webpack_require__(385) - - /* template */ - var __vue_template__ = __webpack_require__(386) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/panel.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 384: -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, - -/***/ 385: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - title: { default: '' }, - paddingBody: { default: 20 }, - paddingHead: { default: 20 }, - dataClass: { default: '' }, // FIXME transfer class - border: { default: 0 } - } - }; - -/***/ }, - -/***/ 386: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['panel', 'panel-' + _vm.type], - style: { - borderWidth: _vm.border - } - }, [_h('text', { - class: ['panel-header', 'panel-header-' + _vm.type], - style: { - paddingTop: _vm.paddingHead, - paddingBottom: _vm.paddingHead, - paddingLeft: _vm.paddingHead * 1.5, - paddingRight: _vm.paddingHead * 1.5 - } - }, [_vm._s(_vm.title)]), _h('div', { - class: ['panel-body', 'panel-body-' + _vm.type], - style: { - paddingTop: _vm.paddingBody, - paddingBottom: _vm.paddingBody, - paddingLeft: _vm.paddingBody * 1.5, - paddingRight: _vm.paddingBody * 1.5 - } - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 408: -/***/ function(module, exports) { - - module.exports = { - "input": { - "fontSize": 60, - "height": 80, - "width": 400 - } - } - -/***/ }, - -/***/ 409: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var modal = __weex_require_module__('modal'); - module.exports = { - data: function data() { - return { - txtInput: '', - txtChange: '' - }; - }, - components: { - panel: __webpack_require__(383) - }, - methods: { - onchange: function onchange(event) { - this.txtChange = event.value; - modal.toast({ - message: 'onchange: ' + event.value, - duration: 2 - }); - }, - oninput: function oninput(event) { - this.txtInput = event.value; - modal.toast({ - message: 'onitput: ' + event.value, - duration: 1 - }); - } - } - }; - -/***/ }, - -/***/ 410: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('scroller', [_h('panel', { - attrs: { - "title": "input", - "type": "primary" - } - }, [_h('input', { - staticClass: ["input"], - attrs: { - "type": "text", - "placeholder": "Text Input", - "autofocus": "true", - "value": "" - }, - on: { - "change": _vm.onchange, - "input": _vm.oninput - } - }), _h('text', ["oninput: " + _vm._s(_vm.txtInput)]), _h('text', ["onchange: " + _vm._s(_vm.txtChange)])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/list.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/list.js deleted file mode 100644 index e8d18d29..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/list.js +++ /dev/null @@ -1,246 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(411) - ) - - /* script */ - __vue_exports__ = __webpack_require__(412) - - /* template */ - var __vue_template__ = __webpack_require__(413) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/components/list.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 411: -/***/ function(module, exports) { - - module.exports = { - "list": { - "height": 850 - }, - "count": { - "fontSize": 48, - "margin": 10 - }, - "indicator": { - "height": 40, - "width": 40, - "color": "#45b5f0" - }, - "row": { - "width": 750 - }, - "item": { - "justifyContent": "center", - "borderBottomWidth": 2, - "borderBottomColor": "#c0c0c0", - "height": 100, - "padding": 20 - } - } - -/***/ }, - -/***/ 412: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - methods: { - onappear: function onappear(e) { - var appearId = this.rows[e.target.attr.index].id; - nativeLog('+++++', appearId); - var appearIds = this.appearIds; - appearIds.push(appearId); - this.getMinAndMaxIds(appearIds); - }, - ondisappear: function ondisappear(e) { - var disAppearId = this.rows[e.target.attr.index].id; - nativeLog('+++++', disAppearId); - var appearIds = this.appearIds; - var index = appearIds.indexOf(disAppearId); - if (index > -1) { - appearIds.splice(index, 1); - } - this.getMinAndMaxIds(appearIds); - }, - getMinAndMaxIds: function getMinAndMaxIds(appearIds) { - appearIds.sort(function (a, b) { - return a - b; - }); - this.appearIds = appearIds; - this.appearMax = appearIds[appearIds.length - 1]; - this.appearMin = appearIds[0]; - } - }, - data: function data() { - return { - appearMin: 1, - appearMax: 1, - appearIds: [], - rows: [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }, { id: 5 }, { id: 6 }, { id: 7 }, { id: 8 }, { id: 9 }, { id: 10 }, { id: 11 }, { id: 12 }, { id: 13 }, { id: 14 }, { id: 15 }, { id: 16 }, { id: 17 }, { id: 18 }, { id: 19 }, { id: 20 }, { id: 21 }, { id: 22 }, { id: 23 }, { id: 24 }, { id: 25 }, { id: 26 }, { id: 27 }, { id: 28 }, { id: 29 }] - }; - } - }; - -/***/ }, - -/***/ 413: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [_h('list', { - staticClass: ["list"] - }, [_vm._l((_vm.rows), function(v, i) { - return _h('cell', { - staticClass: ["row"], - appendAsTree: true, - attrs: { - "append": "tree", - "index": i - }, - on: { - "appear": _vm.onappear, - "disappear": _vm.ondisappear - } - }, [_h('div', { - staticClass: ["item"] - }, [_h('text', { - staticClass: ["item-title"] - }, ["row " + _vm._s(v.id)])])]) - })]), _h('text', { - staticClass: ["count"], - attrs: { - "value": 'Appear items: ' + _vm.appearMin + ' ~ ' + _vm.appearMax - } - })]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/marquee.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/marquee.js deleted file mode 100644 index 8f71cffc..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/marquee.js +++ /dev/null @@ -1,534 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* script */ - __vue_exports__ = __webpack_require__(414) - - /* template */ - var __vue_template__ = __webpack_require__(419) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/components/marquee.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 383: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(384) - ) - - /* script */ - __vue_exports__ = __webpack_require__(385) - - /* template */ - var __vue_template__ = __webpack_require__(386) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/panel.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 384: -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, - -/***/ 385: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - title: { default: '' }, - paddingBody: { default: 20 }, - paddingHead: { default: 20 }, - dataClass: { default: '' }, // FIXME transfer class - border: { default: 0 } - } - }; - -/***/ }, - -/***/ 386: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['panel', 'panel-' + _vm.type], - style: { - borderWidth: _vm.border - } - }, [_h('text', { - class: ['panel-header', 'panel-header-' + _vm.type], - style: { - paddingTop: _vm.paddingHead, - paddingBottom: _vm.paddingHead, - paddingLeft: _vm.paddingHead * 1.5, - paddingRight: _vm.paddingHead * 1.5 - } - }, [_vm._s(_vm.title)]), _h('div', { - class: ['panel-body', 'panel-body-' + _vm.type], - style: { - paddingTop: _vm.paddingBody, - paddingBottom: _vm.paddingBody, - paddingLeft: _vm.paddingBody * 1.5, - paddingRight: _vm.paddingBody * 1.5 - } - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 414: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - data: function data() { - return { - marquee: { - height: 30, - duration: 1500, - interval: 2000, - list: [{ text: 'Introducing Bots on Messenger' }, { text: 'Capturing 3D 360-Stereo VR Video' }, { text: 'The Future of Video on Facebook' }, { text: 'Announcing Vue.js 2.0' }, { text: 'Not Your Average Virtual-DOM' }, { text: 'Templates, JSX, or Hyperscript?' }] - } - }; - }, - components: { - panel: __webpack_require__(383), - marquee: __webpack_require__(415) - }, - methods: { - marqueeChange: function marqueeChange(e) { - console.log(e); - } - } - }; - -/***/ }, - -/***/ 415: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(416) - ) - - /* script */ - __vue_exports__ = __webpack_require__(417) - - /* template */ - var __vue_template__ = __webpack_require__(418) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/marquee.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 416: -/***/ function(module, exports) { - - module.exports = { - "wrap": { - "overflow": "hidden", - "position": "relative" - }, - "anim": { - "flexDirection": "column", - "position": "absolute", - "transform": "translateY(0) translateZ(0)" - } - } - -/***/ }, - -/***/ 417: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var _animation = __weex_require_module__('animation'); - - module.exports = { - props: { - step: { default: 0 }, - count: { default: 0 }, - index: { default: 1 }, - duration: { default: 0 }, - interval: { default: 0 }, - outofview: { default: false } - }, - created: function created() { - if (this.interval > 0 && this.step > 0 && this.duration > 0) { - this.run(); - } - }, - methods: { - run: function run() { - if (this.outofview) { - setTimeout(this.run.bind(this), this.interval); - } else { - setTimeout(function () { - this.animation(this.run.bind(this)); - }.bind(this), this.interval); - } - }, - animation: function animation(cb) { - var offset = -this.step * this.index; - _animation.transition(this.$refs.anim.ref, { - styles: { - transform: 'translateY(' + offset + 'px) translateZ(0)' - }, - timingFunction: 'ease', - duration: this.duration - }, function () { - this.index = (this.index + 1) % this.count; - this.$emit('change', { - index: this.index, - count: this.count - }); - cb && cb(); - }.bind(this)); - }, - appeared: function appeared() { - this.outofview = false; - }, - disappeared: function disappeared() { - this.outofview = true; - } - } - }; - -/***/ }, - -/***/ 418: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticClass: ["wrap"], - on: { - "appear": _vm.appeared, - "disappear": _vm.disappeared - } - }, [_h('div', { - ref: "anim", - staticClass: ["anim"] - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 419: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('scroller', [_h('panel', { - attrs: { - "title": "Marquee", - "type": "primary" - } - }, [_h('marquee', { - style: { - width: 700, - height: _vm.marquee.height * 2, - backgroundColor: 'rgb(223, 240, 216)', - borderRadius: 8, - paddingLeft: 10, - paddingRight: 10 - }, - attrs: { - "step": _vm.marquee.height * 2, - "count": _vm.marquee.list.length, - "interval": _vm.marquee.interval, - "duration": _vm.marquee.duration - }, - on: { - "change": _vm.marqueeChange - } - }, [_vm._l((_vm.marquee.list), function(item) { - return _h('div', { - style: { - height: _vm.marquee.height * _vm.marquee.length, - paddingTop: _vm.marquee.height * 0.5, - paddingBottom: _vm.marquee.height * 0.5, - overflow: 'hidden' - } - }, [_h('text', { - style: { - height: _vm.marquee.height, - color: 'rgb(60, 118, 61)', - fontSize: 28 - } - }, [_vm._s(item.text)])]) - })])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/navigator.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/navigator.js deleted file mode 100644 index 5fdefce8..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/navigator.js +++ /dev/null @@ -1,1059 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* script */ - __vue_exports__ = __webpack_require__(420) - - /* template */ - var __vue_template__ = __webpack_require__(430) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/components/navigator.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 383: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(384) - ) - - /* script */ - __vue_exports__ = __webpack_require__(385) - - /* template */ - var __vue_template__ = __webpack_require__(386) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/panel.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 384: -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, - -/***/ 385: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - title: { default: '' }, - paddingBody: { default: 20 }, - paddingHead: { default: 20 }, - dataClass: { default: '' }, // FIXME transfer class - border: { default: 0 } - } - }; - -/***/ }, - -/***/ 386: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['panel', 'panel-' + _vm.type], - style: { - borderWidth: _vm.border - } - }, [_h('text', { - class: ['panel-header', 'panel-header-' + _vm.type], - style: { - paddingTop: _vm.paddingHead, - paddingBottom: _vm.paddingHead, - paddingLeft: _vm.paddingHead * 1.5, - paddingRight: _vm.paddingHead * 1.5 - } - }, [_vm._s(_vm.title)]), _h('div', { - class: ['panel-body', 'panel-body-' + _vm.type], - style: { - paddingTop: _vm.paddingBody, - paddingBottom: _vm.paddingBody, - paddingLeft: _vm.paddingBody * 1.5, - paddingRight: _vm.paddingBody * 1.5 - } - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 387: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(388) - ) - - /* script */ - __vue_exports__ = __webpack_require__(389) - - /* template */ - var __vue_template__ = __webpack_require__(390) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/button.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 388: -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, - -/***/ 389: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - size: { default: 'large' }, - value: { default: '' } - } - }; - -/***/ }, - -/***/ 390: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['btn', 'btn-' + _vm.type, 'btn-sz-' + _vm.size] - }, [_h('text', { - class: ['btn-txt', 'btn-txt-' + _vm.type, 'btn-txt-sz-' + _vm.size] - }, [_vm._s(_vm.value)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 420: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var navigator = __weex_require_module__('navigator'); - var getBaseURL = __webpack_require__(421).getBaseURL; - module.exports = { - data: function data() { - return { - navBarHeight: 88, - title: 'Navigator', - dir: 'examples', - baseURL: '' - }; - }, - components: { - panel: __webpack_require__(383), - navpage: __webpack_require__(422), - button: __webpack_require__(387) - }, - created: function created() { - this.$getConfig(function (config) { - var env = config.env; - if (env.platform == 'iOS') { - var scale = env.scale; - var deviceWidth = env.deviceWidth / scale; - this.navBarHeight = 64.0 * 750.0 / deviceWidth; - } - }.bind(this)); - this.baseURL = getBaseURL(this); - }, - methods: { - naviBarLeftItemClick: function naviBarLeftItemClick(e) { - modal.toast({ message: 'naviBarLeftItemClick', duration: 2 }); - }, - naviBarRightItemClick: function naviBarRightItemClick(e) { - modal.toast({ message: 'naviBarRightItemClick', duration: 2 }); - }, - push: function push() { - var params = { - 'url': this.baseURL + 'vue/components/navigator.js?test=1', - 'animated': 'true' - }; - navigator.push(params, function () {}); - }, - pop: function pop() { - var params = { - 'url': this.baseURL + 'vue/components/navigator.js?test=1', - 'animated': 'true' - }; - navigator.pop(params, function () {}); - } - } - }; - -/***/ }, - -/***/ 421: -/***/ function(module, exports) { - - exports.getBaseURL = function (vm) { - var bundleUrl = vm.$getConfig().bundleUrl; - var nativeBase; - var isAndroidAssets = bundleUrl.indexOf('your_current_IP') >= 0 || bundleUrl.indexOf('file://assets/')>=0; - var isiOSAssets = bundleUrl.indexOf('file:///') >= 0 && bundleUrl.indexOf('WeexDemo.app') > 0; - if (isAndroidAssets) { - nativeBase = 'file://assets/'; - } - else if (isiOSAssets) { - // file:///var/mobile/Containers/Bundle/Application/{id}/WeexDemo.app/ - // file:///Users/{user}/Library/Developer/CoreSimulator/Devices/{id}/data/Containers/Bundle/Application/{id}/WeexDemo.app/ - nativeBase = bundleUrl.substring(0, bundleUrl.lastIndexOf('/') + 1); - } - else { - var host = 'localhost:12580'; - var matches = /\/\/([^\/]+?)\//.exec(vm.$getConfig().bundleUrl); - if (matches && matches.length >= 2) { - host = matches[1]; - } - nativeBase = 'http://' + host + '/' + vm.dir + '/build/'; - } - var h5Base = './index.html?page=./' + vm.dir + '/build/'; - // in Native - var base = nativeBase; - if (typeof window === 'object') { - // in Browser or WebView - base = h5Base; - } - return base - } - - -/***/ }, - -/***/ 422: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(423) - ) - - /* script */ - __vue_exports__ = __webpack_require__(424) - - /* template */ - var __vue_template__ = __webpack_require__(429) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/navpage.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 423: -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "width": 750 - } - } - -/***/ }, - -/***/ 424: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - components: { - navbar: __webpack_require__(425) - }, - props: { - dataRole: { default: 'navbar' }, - backgroundColor: { default: 'black' }, - height: { default: 88 }, - title: { default: "" }, - titleColor: { default: 'black' }, - rightItemSrc: { default: '' }, - rightItemTitle: { default: '' }, - rightItemColor: { default: 'black' }, - leftItemSrc: { default: '' }, - leftItemTitle: { default: '' }, - leftItemColor: { default: 'black' } - }, - methods: { - naviBarRightItemClick: function naviBarRightItemClick(e) { - this.$emit('naviBarRightItemClick', e); - }, - naviBarLeftItemClick: function naviBarLeftItemClick(e) { - this.$emit('naviBarLeftItemClick', e); - } - } - }; - -/***/ }, - -/***/ 425: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(426) - ) - - /* script */ - __vue_exports__ = __webpack_require__(427) - - /* template */ - var __vue_template__ = __webpack_require__(428) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/navbar.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 426: -/***/ function(module, exports) { - - module.exports = { - "container": { - "flexDirection": "row", - "position": "fixed", - "top": 0, - "left": 0, - "right": 0, - "width": 750 - }, - "right-text": { - "position": "absolute", - "bottom": 28, - "right": 32, - "textAlign": "right", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "left-text": { - "position": "absolute", - "bottom": 28, - "left": 32, - "textAlign": "left", - "fontSize": 32, - "fontFamily": "'Open Sans', sans-serif" - }, - "center-text": { - "position": "absolute", - "bottom": 25, - "left": 172, - "right": 172, - "textAlign": "center", - "fontSize": 36, - "fontWeight": "bold" - }, - "left-image": { - "position": "absolute", - "bottom": 20, - "left": 28, - "width": 50, - "height": 50 - }, - "right-image": { - "position": "absolute", - "bottom": 20, - "right": 28, - "width": 50, - "height": 50 - } - } - -/***/ }, - -/***/ 427: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - dataRole: { default: 'navbar' }, - //导航条背景色 - backgroundColor: { default: 'black' }, - //导航条高度 - height: { default: 88 }, - //导航条标题 - title: { default: '' }, - //导航条标题颜色 - titleColor: { default: 'black' }, - //右侧按钮图片 - rightItemSrc: { default: '' }, - //右侧按钮标题 - rightItemTitle: { default: '' }, - //右侧按钮标题颜色 - rightItemColor: { default: 'black' }, - //左侧按钮图片 - leftItemSrc: { default: '' }, - //左侧按钮标题 - leftItemTitle: { default: '' }, - //左侧按钮颜色 - leftItemColor: { default: 'black' } - }, - methods: { - onclickrightitem: function onclickrightitem(e) { - this.$emit('naviBarRightItemClick'); - }, - onclickleftitem: function onclickleftitem(e) { - this.$emit('naviBarLeftItemClick'); - } - } - }; - -/***/ }, - -/***/ 428: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticClass: ["container"], - style: { - height: _vm.height, - backgroundColor: _vm.backgroundColor - }, - attrs: { - "dataRole": _vm.dataRole - } - }, [(!_vm.rightItemSrc) ? _h('text', { - staticClass: ["right-text"], - style: { - color: _vm.rightItemColor - }, - attrs: { - "naviItemPosition": "right" - }, - on: { - "click": _vm.onclickrightitem - } - }, [_vm._s(_vm.rightItemTitle)]) : _vm._e(), (_vm.rightItemSrc) ? _h('image', { - staticClass: ["right-image"], - attrs: { - "naviItemPosition": "right", - "src": _vm.rightItemSrc - }, - on: { - "click": _vm.onclickrightitem - } - }) : _vm._e(), (!_vm.leftItemSrc) ? _h('text', { - staticClass: ["left-text"], - style: { - color: _vm.leftItemColor - }, - attrs: { - "naviItemPosition": "left" - }, - on: { - "click": _vm.onclickleftitem - } - }, [_vm._s(_vm.leftItemTitle)]) : _vm._e(), (_vm.leftItemSrc) ? _h('image', { - staticClass: ["left-image"], - attrs: { - "naviItemPosition": "left", - "src": _vm.leftItemSrc - }, - on: { - "click": _vm.onclickleftitem - } - }) : _vm._e(), _h('text', { - staticClass: ["center-text"], - style: { - color: _vm.titleColor - }, - attrs: { - "naviItemPosition": "center" - } - }, [_vm._s(_vm.title)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 429: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticClass: ["wrapper"] - }, [_h('navbar', { - attrs: { - "dataRole": _vm.dataRole, - "height": _vm.height, - "backgroundColor": _vm.backgroundColor, - "title": _vm.title, - "titleColor": _vm.titleColor, - "leftItemSrc": _vm.leftItemSrc, - "leftItemTitle": _vm.leftItemTitle, - "leftItemColor": _vm.leftItemColor, - "rightItemSrc": _vm.rightItemSrc, - "rightItemTitle": _vm.rightItemTitle, - "rightItemColor": _vm.rightItemColor - }, - on: { - "naviBarRightItemClick": _vm.naviBarRightItemClick, - "naviBarLeftItemClick": _vm.naviBarLeftItemClick - } - }), _h('div', { - staticClass: ["wrapper"], - style: { - marginTop: _vm.height - } - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 430: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('navpage', { - attrs: { - "dataRole": "none", - "height": _vm.navBarHeight, - "title": _vm.title, - "backgroundColor": "#ff5898", - "titleColor": "white", - "leftItemTitle": "More", - "leftItemColor": "white", - "rightItemSrc": "http://gtms02.alicdn.com/tps/i2/TB1ED7iMpXXXXXEXXXXWA_BHXXX-48-48.png" - }, - on: { - "naviBarLeftItemClick": _vm.naviBarLeftItemClick, - "naviBarRightItemClick": _vm.naviBarRightItemClick - } - }, [_h('panel', { - attrs: { - "title": "push a new page" - } - }, [_h('button', { - attrs: { - "type": "primary", - "size": "small", - "value": "push" - }, - nativeOn: { - "click": function($event) { - _vm.push($event) - } - } - })]), _h('panel', { - attrs: { - "title": "pop to the last page" - } - }, [_h('button', { - attrs: { - "type": "success", - "size": "small", - "value": "pop" - }, - nativeOn: { - "click": function($event) { - _vm.pop($event) - } - } - })])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/scroller.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/scroller.js deleted file mode 100644 index 922f338d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/scroller.js +++ /dev/null @@ -1,304 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(431) - ) - - /* script */ - __vue_exports__ = __webpack_require__(432) - - /* template */ - var __vue_template__ = __webpack_require__(433) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/components/scroller.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 431: -/***/ function(module, exports) { - - module.exports = { - "refresh-view": { - "height": 120, - "width": 750, - "display": "flex", - "MsFlexAlign": "center", - "WebkitAlignItems": "center", - "WebkitBoxAlign": "center", - "alignItems": "center" - }, - "refresh-arrow": { - "fontSize": 30, - "color": "#45b5f0" - }, - "loading-view": { - "height": 80, - "width": 750, - "justifyContent": "center", - "alignItems": "center" - }, - "indicator": { - "height": 40, - "width": 40, - "color": "#45b5f0" - }, - "header": { - "backgroundColor": "#45b5f0", - "padding": 20, - "height": 88, - "justifyContent": "center" - }, - "header-title": { - "color": "#FFFFFF", - "fontWeight": "bold" - }, - "item": { - "justifyContent": "center", - "borderBottomWidth": 2, - "borderBottomColor": "#c0c0c0", - "height": 100, - "padding": 20 - } - } - -/***/ }, - -/***/ 432: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - methods: { - onrefresh: function onrefresh(e) { - var self = this; - self.refresh_display = 'show'; - setTimeout(function () { - self.refresh_display = 'hide'; - }, 1000); - }, - onloading: function onloading(e) { - var self = this; - self.loading_display = 'show'; - setTimeout(function () { - self.loading_display = 'hide'; - }, 1000); - } - }, - data: function data() { - return { - refresh_display: 'hide', - loading_display: 'hide', - sections: [{ - title: 'Header 1', - items: [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }, { id: 5 }] - }, { - title: 'Header 2', - items: [{ id: 6 }, { id: 7 }, { id: 8 }, { id: 9 }, { id: 10 }, { id: 11 }] - }], - moreSections: [{ - title: 'Header 3', - items: [{ id: 12 }, { id: 13 }, { id: 14 }, { id: 15 }, { id: 16 }, { id: 17 }, { id: 18 }] - }, { - title: 'Header 4', - items: [{ id: 19 }, { id: 20 }, { id: 21 }, { id: 22 }] - }, { - title: 'Header 5', - items: [{ id: 23 }, { id: 24 }, { id: 25 }, { id: 26 }, { id: 27 }] - }, { - title: 'Header 6', - items: [{ id: 28 }, { id: 29 }, { id: 30 }, { id: 31 }, { id: 32 }] - }] - }; - } - }; - -/***/ }, - -/***/ 433: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('scroller', { - staticClass: ["list"], - appendAsTree: true, - attrs: { - "append": "tree" - } - }, [_vm._l((_vm.sections), function(sec) { - return _h('div', { - staticClass: ["section"] - }, [_h('div', { - staticClass: ["header"] - }, [_h('text', { - staticClass: ["header-title"] - }, [_vm._s(sec.title)])]), _vm._l((sec.items), function(item) { - return _h('div', { - staticClass: ["item"] - }, [_h('text', { - staticClass: ["item-title"] - }, ["row " + _vm._s(item.id)])]) - })]) - }), _h('loading', { - staticClass: ["loading-view"], - attrs: { - "display": _vm.loading_display, - "onloading": "onloading" - } - }, [_h('loading-indicator', { - staticStyle: { - height: "60", - width: "60" - } - })])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/slider.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/slider.js deleted file mode 100644 index c67c4826..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/slider.js +++ /dev/null @@ -1,898 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(434) - ) - - /* script */ - __vue_exports__ = __webpack_require__(435) - - /* template */ - var __vue_template__ = __webpack_require__(444) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/components/slider.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 383: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(384) - ) - - /* script */ - __vue_exports__ = __webpack_require__(385) - - /* template */ - var __vue_template__ = __webpack_require__(386) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/panel.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 384: -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, - -/***/ 385: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - title: { default: '' }, - paddingBody: { default: 20 }, - paddingHead: { default: 20 }, - dataClass: { default: '' }, // FIXME transfer class - border: { default: 0 } - } - }; - -/***/ }, - -/***/ 386: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['panel', 'panel-' + _vm.type], - style: { - borderWidth: _vm.border - } - }, [_h('text', { - class: ['panel-header', 'panel-header-' + _vm.type], - style: { - paddingTop: _vm.paddingHead, - paddingBottom: _vm.paddingHead, - paddingLeft: _vm.paddingHead * 1.5, - paddingRight: _vm.paddingHead * 1.5 - } - }, [_vm._s(_vm.title)]), _h('div', { - class: ['panel-body', 'panel-body-' + _vm.type], - style: { - paddingTop: _vm.paddingBody, - paddingBottom: _vm.paddingBody, - paddingLeft: _vm.paddingBody * 1.5, - paddingRight: _vm.paddingBody * 1.5 - } - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 434: -/***/ function(module, exports) { - - module.exports = { - "body": { - "backgroundColor": "#ffffff" - }, - "slider": { - "flexDirection": "row", - "width": 690, - "height": 360 - }, - "indicator": { - "position": "absolute", - "width": 690, - "height": 420, - "top": 140, - "left": 240, - "itemColor": "#dddddd", - "itemSelectedColor": "rgb(40, 96, 144)" - } - } - -/***/ }, - -/***/ 435: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var img0 = '//gw.alicdn.com/tps/i2/TB1DpsmMpXXXXabaXXX20ySQVXX-512-512.png_400x400.jpg'; - var img1 = '//gw.alicdn.com/tps/i1/TB1M3sQMpXXXXakXXXXApNeJVXX-360-360.png'; - module.exports = { - data: function data() { - return { - eventCnt: 0, - togglePlayMsg: 'pause', - sliders: [{ - interval: 1000, - autoPlay: true, - sliderPages: [{ - items: [{ - image: img0, - link: '//h5.m.taobao.com/1' - }, { - image: img0, - link: '//h5.m.taobao.com/1' - }] - }, { - items: [{ - image: img1, - link: '//h5.m.taobao.com/1' - }, { - image: img1, - link: '//h5.m.taobao.com/1' - }] - }, { - items: [{ - image: img0, - link: '//h5.m.taobao.com/1' - }, { - image: img1, - link: '//h5.m.taobao.com/1' - }] - }] - }, { - interval: 3000, - autoPlay: true, - sliderPages: [{ - items: [{ - image: img0, - link: '//h5.m.taobao.com/1' - }, { - image: img0, - link: '//h5.m.taobao.com/1' - }] - }, { - items: [{ - image: img1, - link: '//h5.m.taobao.com/1' - }, { - image: img1, - link: '//h5.m.taobao.com/1' - }] - }, { - items: [{ - image: img0, - link: '//h5.m.taobao.com/1' - }, { - image: img1, - link: '//h5.m.taobao.com/1' - }] - }] - }, { - interval: 5000, - autoPlay: true, - sliderPages: [{ - items: [{ - image: img0, - link: '//h5.m.taobao.com/1' - }, { - image: img0, - link: '//h5.m.taobao.com/1' - }] - }, { - items: [{ - image: img1, - link: '//h5.m.taobao.com/1' - }, { - image: img1, - link: '//h5.m.taobao.com/1' - }] - }, { - items: [{ - image: img0, - link: '//h5.m.taobao.com/1' - }, { - image: img1, - link: '//h5.m.taobao.com/1' - }] - }] - }] - }; - }, - components: { - panel: __webpack_require__(383), - sliderPage: __webpack_require__(436) - }, - methods: { - togglePlay: function togglePlay() { - var autoPlay = this.sliders[0].autoPlay; - autoPlay = !autoPlay; - this.sliders[0].autoPlay = autoPlay; - this.togglePlayMsg = autoPlay ? 'pause' : 'play'; - }, - handleSliderChange: function handleSliderChange() { - var nowCnt = this.eventCnt + 1; - this.eventCnt = nowCnt; - }, - setInterval1: function setInterval1() { - this.sliders[0].interval = 1000; - }, - setInterval3: function setInterval3() { - this.sliders[0].interval = 3000; - }, - setInterval5: function setInterval5() { - this.sliders[0].interval = 5000; - } - } - }; - -/***/ }, - -/***/ 436: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(437) - ) - - /* script */ - __vue_exports__ = __webpack_require__(438) - - /* template */ - var __vue_template__ = __webpack_require__(443) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/slider-page.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 437: -/***/ function(module, exports) { - - module.exports = { - "slider-page": { - "flexDirection": "row", - "justifyContent": "space-between", - "width": 714, - "height": 420 - } - } - -/***/ }, - -/***/ 438: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - items: { default: [] } - }, - components: { - sliderItem: __webpack_require__(439) - } - }; - -/***/ }, - -/***/ 439: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(440) - ) - - /* script */ - __vue_exports__ = __webpack_require__(441) - - /* template */ - var __vue_template__ = __webpack_require__(442) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/slider-item.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 440: -/***/ function(module, exports) { - - module.exports = { - "slider-item": { - "width": 348, - "height": 400 - } - } - -/***/ }, - -/***/ 441: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - - module.exports = { - props: { - image: { default: '' }, - link: { default: '' } - } - }; - -/***/ }, - -/***/ 442: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('image', { - staticClass: ["slider-item"], - attrs: { - "src": _vm.image - } - }) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 443: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticClass: ["slider-page"] - }, [_vm._l((_vm.items), function(v) { - return _h('slider-item', { - attrs: { - "image": v.image, - "link": v.link - } - }) - })]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 444: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('scroller', { - staticClass: ["body"] - }, [_h('panel', { - attrs: { - "title": "auto-play", - "type": "primary" - } - }, [_h('panel', { - attrs: { - "title": "auto-play = false", - "padding-body": "0" - } - }, [_h('slider', { - staticClass: ["slider"], - appendAsTree: true, - attrs: { - "append": "tree", - "interval": _vm.sliders[1].interval, - "autoPlay": "false" - } - }, [_h('indicator', { - staticClass: ["indicator"] - }), _vm._l((_vm.sliders[1].sliderPages), function(v) { - return _h('slider-page', { - attrs: { - "items": v.items - } - }) - })])]), _h('panel', { - attrs: { - "title": "auto-play = true", - "padding-body": "0" - } - }, [_h('slider', { - staticClass: ["slider"], - appendAsTree: true, - attrs: { - "append": "tree", - "interval": _vm.sliders[0].interval, - "autoPlay": _vm.sliders[0].autoPlay - } - }, [_h('indicator', { - staticClass: ["indicator"] - }), _vm._l((_vm.sliders[0].sliderPages), function(v) { - return _h('slider-page', { - attrs: { - "items": v.items - } - }) - })])])]), _h('panel', { - attrs: { - "title": 'Event, ' + _vm.eventCnt + ' change', - "type": "primary" - } - }, [_h('slider', { - staticClass: ["slider"], - appendAsTree: true, - attrs: { - "append": "tree", - "interval": _vm.sliders[0].interval, - "autoPlay": _vm.sliders[0].autoPlay - }, - on: { - "change": _vm.handleSliderChange - } - }, [_h('indicator', { - staticClass: ["indicator"] - }), _vm._l((_vm.sliders[0].sliderPages), function(v) { - return _h('slider-page', { - attrs: { - "items": v.items - } - }) - })])]), _h('panel', { - attrs: { - "title": "Indicator", - "type": "primary" - } - }, [_h('panel', { - attrs: { - "title": "default style", - "padding-body": "0" - } - }, [_h('slider', { - staticClass: ["slider"], - appendAsTree: true, - attrs: { - "append": "tree", - "interval": _vm.sliders[0].interval, - "autoPlay": _vm.sliders[0].autoPlay - }, - on: { - "change": _vm.handleSliderChange - } - }, [_h('indicator', { - staticClass: ["indicator"] - }), _vm._l((_vm.sliders[0].sliderPages), function(v) { - return _h('slider-page', { - attrs: { - "items": v.items - } - }) - })])]), _h('panel', { - attrs: { - "title": "width & height", - "padding-body": "0" - } - }, [_h('slider', { - staticClass: ["slider"], - appendAsTree: true, - attrs: { - "append": "tree", - "interval": _vm.sliders[0].interval, - "autoPlay": _vm.sliders[0].autoPlay - } - }, [_h('indicator', { - staticStyle: { - itemColor: "#dddddd", - width: "714", - height: "460" - } - }), _vm._l((_vm.sliders[0].sliderPages), function(v) { - return _h('slider-page', { - attrs: { - "items": v.items - } - }) - })])]), _h('panel', { - attrs: { - "title": "left & top", - "padding-body": "0" - } - }, [_h('slider', { - staticClass: ["slider"], - appendAsTree: true, - attrs: { - "append": "tree", - "interval": _vm.sliders[1].interval, - "autoPlay": _vm.sliders[1].autoPlay - } - }, [_h('indicator', { - staticClass: ["indicator"], - staticStyle: { - top: "-140", - left: "-240" - } - }), _vm._l((_vm.sliders[1].sliderPages), function(v) { - return _h('slider-page', { - attrs: { - "items": v.items - } - }) - })])]), _h('panel', { - attrs: { - "title": "itemColor & itemSelectedColor", - "padding-body": "0" - } - }, [_h('slider', { - staticClass: ["slider"], - appendAsTree: true, - attrs: { - "append": "tree", - "interval": _vm.sliders[2].interval, - "autoPlay": _vm.sliders[2].autoPlay - } - }, [_h('indicator', { - staticClass: ["indicator"], - staticStyle: { - itemSelectedColor: "rgb(217, 83, 79)" - } - }), _vm._l((_vm.sliders[2].sliderPages), function(v) { - return _h('slider-page', { - attrs: { - "items": v.items - } - }) - })])]), _h('panel', { - attrs: { - "title": "itemSize", - "padding-body": "0" - } - }, [_h('slider', { - staticClass: ["slider"], - appendAsTree: true, - attrs: { - "append": "tree", - "interval": _vm.sliders[1].interval, - "autoPlay": _vm.sliders[1].autoPlay - } - }, [_h('indicator', { - staticStyle: { - itemColor: "#dddddd", - itemSize: "40", - top: "140", - left: "180", - width: "700", - height: "380" - } - }), _vm._l((_vm.sliders[1].sliderPages), function(v) { - return _h('slider-page', { - attrs: { - "items": v.items - } - }) - })])])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/tabbar.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/tabbar.js deleted file mode 100644 index 85d581a4..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/tabbar.js +++ /dev/null @@ -1,599 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* script */ - __vue_exports__ = __webpack_require__(445) - - /* template */ - var __vue_template__ = __webpack_require__(454) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/components/tabbar.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 421: -/***/ function(module, exports) { - - exports.getBaseURL = function (vm) { - var bundleUrl = vm.$getConfig().bundleUrl; - var nativeBase; - var isAndroidAssets = bundleUrl.indexOf('your_current_IP') >= 0 || bundleUrl.indexOf('file://assets/')>=0; - var isiOSAssets = bundleUrl.indexOf('file:///') >= 0 && bundleUrl.indexOf('WeexDemo.app') > 0; - if (isAndroidAssets) { - nativeBase = 'file://assets/'; - } - else if (isiOSAssets) { - // file:///var/mobile/Containers/Bundle/Application/{id}/WeexDemo.app/ - // file:///Users/{user}/Library/Developer/CoreSimulator/Devices/{id}/data/Containers/Bundle/Application/{id}/WeexDemo.app/ - nativeBase = bundleUrl.substring(0, bundleUrl.lastIndexOf('/') + 1); - } - else { - var host = 'localhost:12580'; - var matches = /\/\/([^\/]+?)\//.exec(vm.$getConfig().bundleUrl); - if (matches && matches.length >= 2) { - host = matches[1]; - } - nativeBase = 'http://' + host + '/' + vm.dir + '/build/'; - } - var h5Base = './index.html?page=./' + vm.dir + '/build/'; - // in Native - var base = nativeBase; - if (typeof window === 'object') { - // in Browser or WebView - base = h5Base; - } - return base - } - - -/***/ }, - -/***/ 445: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - - var getBaseURL = __webpack_require__(421).getBaseURL; - module.exports = { - data: function data() { - return { - dir: 'examples', - tabItems: [{ - index: 0, - title: 'tab1', - titleColor: '#000000', - icon: '', - image: 'http://gtms01.alicdn.com/tps/i1/TB1qw.hMpXXXXagXXXX9t7RGVXX-46-46.png', - selectedImage: 'http://gtms04.alicdn.com/tps/i4/TB16jjPMpXXXXazXVXX9t7RGVXX-46-46.png', - src: 'component/tabbar/tabbar-item.js?itemId=tab1', - visibility: 'visible' - }, { - index: 1, - title: 'tab2', - titleColor: '#000000', - icon: '', - image: 'http://gtms03.alicdn.com/tps/i3/TB1LEn9MpXXXXaUXpXX9t7RGVXX-46-46.png', - selectedImage: 'http://gtms02.alicdn.com/tps/i2/TB1qysbMpXXXXcnXXXX9t7RGVXX-46-46.png', - src: 'component/tabbar/tabbar-item.js?itemId=tab2', - visibility: 'hidden' - }, { - index: 2, - title: 'tab3', - titleColor: '#000000', - icon: '', - image: 'http://gtms01.alicdn.com/tps/i1/TB1B0v5MpXXXXcvXpXX9t7RGVXX-46-46.png', - selectedImage: 'http://gtms04.alicdn.com/tps/i4/TB1NxY5MpXXXXcrXpXX9t7RGVXX-46-46.png', - src: 'component/tabbar/tabbar-item.js?itemId=tab3', - visibility: 'hidden' - }] - }; - }, - components: { - tabbar: __webpack_require__(446) - }, - created: function created() { - var baseURL = getBaseURL(this); - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - tabItem.src = baseURL + tabItem.src; - } - }, - methods: { - tabBarOnClick: function tabBarOnClick(e) { - console.log('tabBarOnClick', e.index); - } - } - }; - -/***/ }, - -/***/ 446: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(447) - ) - - /* script */ - __vue_exports__ = __webpack_require__(448) - - /* template */ - var __vue_template__ = __webpack_require__(453) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/tabbar.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 447: -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 88 - }, - "tabbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 88 - } - } - -/***/ }, - -/***/ 448: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - tabItems: { default: [] }, - selectedColor: { default: '#ff0000' }, - unselectedColor: { default: '#000000' } - }, - data: function data() { - return { - selectedIndex: 0 - }; - }, - components: { - tabitem: __webpack_require__(449) - }, - created: function created() { - this.select(this.selectedIndex); - }, - methods: { - tabItemOnClick: function tabItemOnClick(e) { - this.selectedIndex = e.index; - this.select(e.index); - this.$emit('tabBarOnClick', e); - }, - select: function select(index) { - for (var i = 0; i < this.tabItems.length; i++) { - var tabItem = this.tabItems[i]; - if (i == index) { - tabItem.icon = tabItem.selectedImage; - tabItem.titleColor = this.selectedColor; - tabItem.visibility = 'visible'; - } else { - tabItem.icon = tabItem.image; - tabItem.titleColor = this.unselectedColor; - tabItem.visibility = 'hidden'; - } - } - } - } - }; - -/***/ }, - -/***/ 449: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(450) - ) - - /* script */ - __vue_exports__ = __webpack_require__(451) - - /* template */ - var __vue_template__ = __webpack_require__(452) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/tabitem.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 450: -/***/ function(module, exports) { - - module.exports = { - "container": { - "flex": 1, - "flexDirection": "column", - "alignItems": "center", - "justifyContent": "center", - "height": 88 - }, - "top-line": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "height": 2 - }, - "tab-icon": { - "marginTop": 5, - "width": 40, - "height": 40 - }, - "tab-text": { - "marginTop": 5, - "textAlign": "center", - "fontSize": 20 - } - } - -/***/ }, - -/***/ 451: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - index: { default: 0 }, - title: { default: '' }, - titleColor: { default: '#000000' }, - icon: { default: '' }, - backgroundColor: { default: '#ffffff' } - }, - methods: { - onclickitem: function onclickitem(e) { - var params = { - index: this.index - }; - this.$emit('tabItemOnClick', params); - } - } - }; - -/***/ }, - -/***/ 452: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticClass: ["container"], - style: { - backgroundColor: _vm.backgroundColor - }, - on: { - "click": _vm.onclickitem - } - }, [_h('image', { - staticClass: ["top-line"], - attrs: { - "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png" - } - }), _h('image', { - staticClass: ["tab-icon"], - attrs: { - "src": _vm.icon - } - }), _h('text', { - staticClass: ["tab-text"], - style: { - color: _vm.titleColor - } - }, [_vm._s(_vm.title)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 453: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticClass: ["wrapper"] - }, [_vm._l((_vm.tabItems), function(item) { - return _h('embed', { - staticClass: ["content"], - style: { - visibility: item.visibility - }, - attrs: { - "src": item.src, - "type": "weex" - } - }) - }), _h('div', { - staticClass: ["tabbar"], - appendAsTree: true, - attrs: { - "append": "tree" - } - }, [_vm._l((_vm.tabItems), function(item) { - return _h('tabitem', { - attrs: { - "index": item.index, - "icon": item.icon, - "title": item.title, - "titleColor": item.titleColor - }, - on: { - "tabItemOnClick": _vm.tabItemOnClick - } - }) - })])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 454: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticStyle: { - flexDirection: "column" - } - }, [_h('tabbar', { - attrs: { - "tabItems": _vm.tabItems - }, - on: { - "tabBarOnClick": _vm.tabBarOnClick - } - })]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/text.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/text.js deleted file mode 100644 index 4b3ff9af..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/text.js +++ /dev/null @@ -1,513 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(455) - ) - - /* script */ - __vue_exports__ = __webpack_require__(456) - - /* template */ - var __vue_template__ = __webpack_require__(457) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/components/text.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 383: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(384) - ) - - /* script */ - __vue_exports__ = __webpack_require__(385) - - /* template */ - var __vue_template__ = __webpack_require__(386) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/panel.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 384: -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, - -/***/ 385: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - title: { default: '' }, - paddingBody: { default: 20 }, - paddingHead: { default: 20 }, - dataClass: { default: '' }, // FIXME transfer class - border: { default: 0 } - } - }; - -/***/ }, - -/***/ 386: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['panel', 'panel-' + _vm.type], - style: { - borderWidth: _vm.border - } - }, [_h('text', { - class: ['panel-header', 'panel-header-' + _vm.type], - style: { - paddingTop: _vm.paddingHead, - paddingBottom: _vm.paddingHead, - paddingLeft: _vm.paddingHead * 1.5, - paddingRight: _vm.paddingHead * 1.5 - } - }, [_vm._s(_vm.title)]), _h('div', { - class: ['panel-body', 'panel-body-' + _vm.type], - style: { - paddingTop: _vm.paddingBody, - paddingBottom: _vm.paddingBody, - paddingLeft: _vm.paddingBody * 1.5, - paddingRight: _vm.paddingBody * 1.5 - } - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 455: -/***/ function(module, exports) { - - module.exports = { - "txt": { - "marginBottom": 12, - "fontSize": 40 - } - } - -/***/ }, - -/***/ 456: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - components: { - panel: __webpack_require__(383) - } - }; - -/***/ }, - -/***/ 457: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('scroller', [_h('panel', { - attrs: { - "title": "color", - "type": "primary" - } - }, [_h('text', { - staticClass: ["txt"] - }, ["default is black"]), _h('text', { - staticClass: ["txt"], - staticStyle: { - color: "#286090" - } - }, ["#286090"]), _h('text', { - staticClass: ["txt"], - staticStyle: { - color: "#0f0" - } - }, ["#0f0"]), _h('text', { - staticClass: ["txt"], - staticStyle: { - color: "red" - } - }, ["keyword"]), _h('text', { - staticClass: ["txt"], - staticStyle: { - color: "rgb(238, 162, 54)" - } - }, ["rgb(238, 162, 54)"]), _h('text', { - staticClass: ["txt"], - staticStyle: { - color: "rgba(238, 162, 54, 0.5)" - } - }, ["rgba(238, 162, 54, 0.5)"])]), _h('panel', { - attrs: { - "title": "font-size", - "type": "primary" - } - }, [_h('text', { - staticClass: ["txt"], - staticStyle: { - fontSize: "32px" - } - }, ["32"]), _h('text', { - staticClass: ["txt"], - staticStyle: { - fontSize: "64px" - } - }, ["64"]), _h('text', { - staticClass: ["txt"], - staticStyle: { - fontSize: "100px" - } - }, ["100"])]), _h('panel', { - attrs: { - "title": "font-style", - "type": "primary" - } - }, [_h('text', { - staticClass: ["txt"], - staticStyle: { - fontStyle: "normal" - } - }, ["normal"]), _h('text', { - staticClass: ["txt"], - staticStyle: { - fontStyle: "italic" - } - }, ["italic"])]), _h('panel', { - attrs: { - "title": "font-weight", - "type": "primary" - } - }, [_h('text', { - staticClass: ["txt"], - staticStyle: { - fontWeight: "normal" - } - }, ["normal"]), _h('text', { - staticClass: ["txt"], - staticStyle: { - fontWeight: "bold" - } - }, ["bold"])]), _h('panel', { - attrs: { - "title": "text-decoration", - "type": "primary" - } - }, [_h('text', { - staticClass: ["txt"], - staticStyle: { - textDecoration: "none" - } - }, ["none"]), _h('text', { - staticClass: ["txt"], - staticStyle: { - textDecoration: "underline" - } - }, ["underline"]), _h('text', { - staticClass: ["txt"], - staticStyle: { - textDecoration: "line-through" - } - }, ["line-through"])]), _h('panel', { - attrs: { - "title": "text-align", - "type": "primary" - } - }, [_h('text', { - staticClass: ["txt"], - staticStyle: { - textAlign: "left" - } - }, ["left"]), _h('text', { - staticClass: ["txt"], - staticStyle: { - textAlign: "center" - } - }, ["center"]), _h('text', { - staticClass: ["txt"], - staticStyle: { - textAlign: "right" - } - }, ["right"])]), _h('panel', { - attrs: { - "title": "text-overflow", - "type": "primary" - } - }, [_h('text', { - staticClass: ["txt"], - staticStyle: { - lines: "1" - } - }, ["no text-overflow, no text-overflow"]), _h('text', { - staticClass: ["txt"], - staticStyle: { - textOverflow: "clip", - width: "450px", - lines: "1" - } - }, ["text-overflow: clip, text-overflow: clip"]), _h('text', { - staticClass: ["txt"], - staticStyle: { - textOverflow: "ellipsis", - width: "450px", - lines: "1" - } - }, ["text-overflow: ellipsis, text-overflow: ellipsis"])]), _h('panel', { - attrs: { - "title": "line-height", - "type": "primary" - } - }, [_h('text', { - staticClass: ["txt"] - }, ["no lineheight setting"]), _h('text', { - staticClass: ["txt"], - staticStyle: { - lineHeight: "50" - } - }, ["lineheight 50"]), _h('text', { - staticClass: ["txt"], - staticStyle: { - lineHeight: "80" - } - }, [" lineheight 80"])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/video.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/video.js deleted file mode 100644 index 17b11653..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/video.js +++ /dev/null @@ -1,396 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(458) - ) - - /* script */ - __vue_exports__ = __webpack_require__(459) - - /* template */ - var __vue_template__ = __webpack_require__(460) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/components/video.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 387: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(388) - ) - - /* script */ - __vue_exports__ = __webpack_require__(389) - - /* template */ - var __vue_template__ = __webpack_require__(390) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/button.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 388: -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, - -/***/ 389: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - size: { default: 'large' }, - value: { default: '' } - } - }; - -/***/ }, - -/***/ 390: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['btn', 'btn-' + _vm.type, 'btn-sz-' + _vm.size] - }, [_h('text', { - class: ['btn-txt', 'btn-txt-' + _vm.type, 'btn-txt-sz-' + _vm.size] - }, [_vm._s(_vm.value)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 458: -/***/ function(module, exports) { - - module.exports = { - "video": { - "width": 750, - "height": 460, - "marginBottom": 80 - } - } - -/***/ }, - -/***/ 459: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var modal = __weex_require_module__('modal'); - module.exports = { - data: function data() { - return { - playStatus: 'play' - }; - }, - components: { - button: __webpack_require__(387) - }, - methods: { - pause: function pause() { - this.playStatus = 'pause'; - modal.toast({ 'message': 'click pause' }); - }, - play: function play() { - this.playStatus = 'play'; - modal.toast({ 'message': 'click play' }); - }, - onpause: function onpause(e) { - this.playStatus = e.playStatus; - modal.toast({ 'message': 'video pause' }); - }, - onstart: function onstart(e) { - this.playStatus = e.playStatus; - modal.toast({ 'message': 'video start' }); - }, - onfinish: function onfinish(e) { - this.playStatus = e.playStatus; - modal.toast({ 'message': 'video finish' }); - }, - onfail: function onfail(e) { - this.playStatus = e.playStatus; - modal.toast({ 'message': 'video fail' }); - } - } - }; - -/***/ }, - -/***/ 460: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('scroller', [_h('video', { - staticClass: ["video"], - attrs: { - "onpause": "onpause", - "onstart": "onstart", - "onfinish": "onfinish", - "onfail": "onfail", - "src": "http://g.tbcdn.cn/ali-wireless-h5/res/0.0.6/toy.mp4", - "auto-play": "true", - "playStatus": _vm.playStatus - } - }), _h('div', { - staticStyle: { - flexDirection: "row", - justifyContent: "center" - } - }, [_h('button', { - attrs: { - "value": "Pause" - }, - nativeOn: { - "click": function($event) { - _vm.pause($event) - } - } - }), _h('button', { - staticStyle: { - marginLeft: "20px" - }, - attrs: { - "value": "Play", - "type": "primary" - }, - nativeOn: { - "click": function($event) { - _vm.play($event) - } - } - })])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/web.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/web.js deleted file mode 100644 index 01c46803..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/components/web.js +++ /dev/null @@ -1,459 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(461) - ) - - /* script */ - __vue_exports__ = __webpack_require__(462) - - /* template */ - var __vue_template__ = __webpack_require__(463) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/components/web.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 387: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(388) - ) - - /* script */ - __vue_exports__ = __webpack_require__(389) - - /* template */ - var __vue_template__ = __webpack_require__(390) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/button.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 388: -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, - -/***/ 389: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - size: { default: 'large' }, - value: { default: '' } - } - }; - -/***/ }, - -/***/ 390: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['btn', 'btn-' + _vm.type, 'btn-sz-' + _vm.size] - }, [_h('text', { - class: ['btn-txt', 'btn-txt-' + _vm.type, 'btn-txt-sz-' + _vm.size] - }, [_vm._s(_vm.value)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 461: -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "width": 750, - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "content": { - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0, - "marginTop": 0, - "marginBottom": 70 - }, - "toolbar": { - "flexDirection": "row", - "position": "fixed", - "bottom": 0, - "left": 0, - "right": 0, - "height": 70 - } - } - -/***/ }, - -/***/ 462: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var webview = __weex_require_module__('webview'); - module.exports = { - components: { - button: __webpack_require__(387) - }, - methods: { - goback: function goback() { - var el = this.$refs.webview; - webview.goBack(el); - }, - goforward: function goforward() { - var el = this.$refs.webview; - webview.goForward(el); - }, - refresh: function refresh() { - var el = this.$refs.webview; - webview.reload(el); - }, - startload: function startload(e) {}, - finishload: function finishload(e) {}, - failload: function failload(e) {} - } - }; - -/***/ }, - -/***/ 463: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticClass: ["wrapper"] - }, [_h('div', { - staticClass: ["toolbar"], - appendAsTree: true, - attrs: { - "append": "tree" - } - }, [_h('button', { - staticStyle: { - marginLeft: "30px", - width: "210px", - marginTop: "5px", - marginBottom: "5px" - }, - attrs: { - "type": "primary", - "size": "small", - "value": "back" - }, - nativeOn: { - "click": function($event) { - _vm.goback($event) - } - } - }), _h('button', { - staticStyle: { - marginLeft: "30px", - width: "210px", - marginTop: "5px", - marginBottom: "5px" - }, - attrs: { - "type": "primary", - "size": "small", - "value": "forward" - }, - nativeOn: { - "click": function($event) { - _vm.goforward($event) - } - } - }), _h('button', { - staticStyle: { - marginLeft: "30px", - width: "210px", - marginTop: "5px", - marginBottom: "5px" - }, - attrs: { - "type": "primary", - "size": "small", - "value": "refresh" - }, - nativeOn: { - "click": function($event) { - _vm.refresh($event) - } - } - })]), _h('web', { - ref: "webview", - staticClass: ["content"], - attrs: { - "src": "http://alibaba.github.io/weex/index.html" - }, - on: { - "pagestart": _vm.startload, - "pagefinish": _vm.finishload, - "error": _vm.failload - } - })]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/hello.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/hello.js deleted file mode 100644 index 6f21da13..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/hello.js +++ /dev/null @@ -1,99 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* template */ - var __vue_template__ = __webpack_require__(464) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/hello.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 464: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _vm._m(0) - },staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [_h('text', { - staticStyle: { - fontSize: "100px" - } - }, ["Hello World."])]) - }]} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/iconfont.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/iconfont.js deleted file mode 100644 index 30ceb051..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/iconfont.js +++ /dev/null @@ -1,204 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(465) - ) - - /* script */ - __vue_exports__ = __webpack_require__(466) - - /* template */ - var __vue_template__ = __webpack_require__(467) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/iconfont.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 465: -/***/ function(module, exports) { - - module.exports = { - "title1": { - "color": "#FF0000", - "fontSize": 36, - "fontFamily": "iconfont1" - }, - "title2": { - "color": "#FF0000", - "fontSize": 36, - "fontFamily": "iconfont2" - }, - "title3": { - "color": "#FF0000", - "fontSize": 36, - "fontFamily": "iconfont3" - }, - "title4": { - "color": "#FF0000", - "fontSize": 36, - "fontFamily": "iconfont4" - } - } - -/***/ }, - -/***/ 466: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var domModule = __weex_require_module__('dom'); - module.exports = { - created: function created() { - //目前支持ttf、woff文件,不支持svg、eot类型 - domModule.addRule('font-face', { - 'font-family': "iconfont1", - 'src': "url('iconfont.ttf')" - }); - domModule.addRule('font-face', { - 'font-family': "iconfont2", - 'src': "url('http://at.alicdn.com/t/font_1469606063_76593.ttf')" - }); - domModule.addRule('font-face', { - 'font-family': "iconfont3", - 'src': "url('http://at.alicdn.com/t/font_1469606522_9417143.woff')" - }); - domModule.addRule('font-face', { - 'font-family': "iconfont4", - 'src': "url('file:///storage/emulated/0/Android/data/com.alibaba.weex/cache/http:__at.alicdn.com_t_font_1469606063_76593.ttf')" - }); - } - }; - -/***/ }, - -/***/ 467: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _vm._m(0) - },staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [_h('text', { - staticClass: ["title1"] - }, ["Assets: "]), _h('text', { - staticClass: ["title2"] - }, ["http ttf: "]), _h('text', { - staticClass: ["title3"] - }, ["http woff: "]), _h('text', { - staticClass: ["title4"] - }, ["file: "])]) - }]} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/index.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/index.js deleted file mode 100644 index 2270e822..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/index.js +++ /dev/null @@ -1,496 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* script */ - __vue_exports__ = __webpack_require__(468) - - /* template */ - var __vue_template__ = __webpack_require__(480) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/index.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 421: -/***/ function(module, exports) { - - exports.getBaseURL = function (vm) { - var bundleUrl = vm.$getConfig().bundleUrl; - var nativeBase; - var isAndroidAssets = bundleUrl.indexOf('your_current_IP') >= 0 || bundleUrl.indexOf('file://assets/')>=0; - var isiOSAssets = bundleUrl.indexOf('file:///') >= 0 && bundleUrl.indexOf('WeexDemo.app') > 0; - if (isAndroidAssets) { - nativeBase = 'file://assets/'; - } - else if (isiOSAssets) { - // file:///var/mobile/Containers/Bundle/Application/{id}/WeexDemo.app/ - // file:///Users/{user}/Library/Developer/CoreSimulator/Devices/{id}/data/Containers/Bundle/Application/{id}/WeexDemo.app/ - nativeBase = bundleUrl.substring(0, bundleUrl.lastIndexOf('/') + 1); - } - else { - var host = 'localhost:12580'; - var matches = /\/\/([^\/]+?)\//.exec(vm.$getConfig().bundleUrl); - if (matches && matches.length >= 2) { - host = matches[1]; - } - nativeBase = 'http://' + host + '/' + vm.dir + '/build/'; - } - var h5Base = './index.html?page=./' + vm.dir + '/build/'; - // in Native - var base = nativeBase; - if (typeof window === 'object') { - // in Browser or WebView - base = h5Base; - } - return base - } - - -/***/ }, - -/***/ 468: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - - module.exports = { - data: function data() { - return { - items: [ - // common - { name: 'vue/syntax/hello-world', title: 'Hello World' }, { name: 'vue/style/index', title: 'Common Style' }, { name: 'vue/animation', title: 'Animation' }, - - // component - { name: 'vue/components/text', title: 'Text' }, { name: 'vue/components/image', title: 'Image' }, { name: 'vue/components/input', title: 'Input' }, { name: 'vue/components/scroller', title: 'Scroller' }, { name: 'vue/components/list', title: 'List' }, { name: 'vue/components/slider', title: 'Slider' }, { name: 'vue/components/a', title: 'A' }, { name: 'vue/components/video', title: 'Video' }, { name: 'vue/components/countdown', title: 'Countdown' }, { name: 'vue/components/marquee', title: 'Marquee' }, { name: 'vue/components/web', title: 'Web' }, { name: 'vue/components/navigator', title: 'Navigator' }, { name: 'vue/components/tabbar', title: 'Tabbar' }, - - // module - { name: 'vue/modules/instance-api', title: 'Instance API' }, { name: 'vue/modules/modal', title: 'Modal' }, { name: 'vue/modules/stream', title: 'Stream' }, { name: 'vue/modules/storage', title: 'Storage' }, - // {name: 'module/clipboard', title: 'Clipboard'}, // 0.8 , developing - - // showcase - { name: 'vue/showcase/progress', title: 'Progress Bar' }, { name: 'vue/showcase/itemlist', title: 'List (Advanced)' }, { name: 'vue/showcase/calculator', title: 'Calculator' }] - }; - }, - components: { - exampleList: __webpack_require__(469) - } - }; - -/***/ }, - -/***/ 469: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* script */ - __vue_exports__ = __webpack_require__(470) - - /* template */ - var __vue_template__ = __webpack_require__(479) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/example-list.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 470: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - - var getBaseURL = __webpack_require__(421).getBaseURL; - module.exports = { - props: { - dir: { - default: 'examples' - }, // examples, test ... - items: { - default: [{ name: 'hello', title: 'Hello World', url: '' }] - } - }, - components: { - exampleListItem: __webpack_require__(471) - }, - created: function created() { - var base = getBaseURL(this); - for (var i in this.items) { - var item = this.items[i]; - if (!item.url) { - item.url = base + item.name + '.js'; - } - } - } - }; - -/***/ }, - -/***/ 471: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(472) - ) - - /* script */ - __vue_exports__ = __webpack_require__(473) - - /* template */ - var __vue_template__ = __webpack_require__(478) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/example-list-item.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 472: -/***/ function(module, exports) { - - module.exports = { - "item-txt": { - "fontSize": 48, - "color": "#555555" - } - } - -/***/ }, - -/***/ 473: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - - var event = __weex_require_module__('event'); - module.exports = { - props: { - title: { default: '456' }, - url: { default: '' } - }, - components: { - listItem: __webpack_require__(474) - }, - methods: { - redirect: function redirect() { - event.openURL(this.url); - } - } - }; - -/***/ }, - -/***/ 474: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(475) - ) - - /* script */ - __vue_exports__ = __webpack_require__(476) - - /* template */ - var __vue_template__ = __webpack_require__(477) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/list-item.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 475: -/***/ function(module, exports) { - - module.exports = { - "item": { - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 35, - "paddingRight": 35, - "height": 160, - "justifyContent": "center", - "borderBottomWidth": 1, - "borderColor": "#dddddd" - } - } - -/***/ }, - -/***/ 476: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - bgColor: { default: '#ffffff' } - }, - methods: { - click: function click() { - this.$emit('click'); - }, - touchstart: function touchstart() { - // FIXME android touch - // TODO adaptive opposite bgColor - // this.bgColor = '#e6e6e6'; - }, - touchend: function touchend() { - // FIXME android touchend not triggered - // this.bgColor = '#ffffff'; - } - } - }; - -/***/ }, - -/***/ 477: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticClass: ["item"], - style: { - backgroundColor: _vm.bgColor - }, - on: { - "click": _vm.click, - "touchstart": _vm.touchstart, - "touchend": _vm.touchend - } - }, [_vm._t("default")]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 478: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('list-item', { - on: { - "click": _vm.redirect - } - }, [_h('text', { - staticClass: ["item-txt"] - }, [_vm._s(_vm.title)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 479: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('list', [_vm._l((_vm.items), function(item) { - return _h('cell', { - appendAsTree: true, - attrs: { - "append": "tree" - } - }, [_h('example-list-item', { - attrs: { - "title": item.title, - "url": item.url - } - })]) - })]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 480: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('example-list', { - attrs: { - "items": _vm.items, - "dir": "examples" - } - }) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/modules/clipboard.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/modules/clipboard.js deleted file mode 100644 index ea4f9072..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/modules/clipboard.js +++ /dev/null @@ -1,691 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* script */ - __vue_exports__ = __webpack_require__(481) - - /* template */ - var __vue_template__ = __webpack_require__(482) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/modules/clipboard.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 383: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(384) - ) - - /* script */ - __vue_exports__ = __webpack_require__(385) - - /* template */ - var __vue_template__ = __webpack_require__(386) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/panel.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 384: -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, - -/***/ 385: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - title: { default: '' }, - paddingBody: { default: 20 }, - paddingHead: { default: 20 }, - dataClass: { default: '' }, // FIXME transfer class - border: { default: 0 } - } - }; - -/***/ }, - -/***/ 386: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['panel', 'panel-' + _vm.type], - style: { - borderWidth: _vm.border - } - }, [_h('text', { - class: ['panel-header', 'panel-header-' + _vm.type], - style: { - paddingTop: _vm.paddingHead, - paddingBottom: _vm.paddingHead, - paddingLeft: _vm.paddingHead * 1.5, - paddingRight: _vm.paddingHead * 1.5 - } - }, [_vm._s(_vm.title)]), _h('div', { - class: ['panel-body', 'panel-body-' + _vm.type], - style: { - paddingTop: _vm.paddingBody, - paddingBottom: _vm.paddingBody, - paddingLeft: _vm.paddingBody * 1.5, - paddingRight: _vm.paddingBody * 1.5 - } - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 387: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(388) - ) - - /* script */ - __vue_exports__ = __webpack_require__(389) - - /* template */ - var __vue_template__ = __webpack_require__(390) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/button.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 388: -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, - -/***/ 389: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - size: { default: 'large' }, - value: { default: '' } - } - }; - -/***/ }, - -/***/ 390: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['btn', 'btn-' + _vm.type, 'btn-sz-' + _vm.size] - }, [_h('text', { - class: ['btn-txt', 'btn-txt-' + _vm.type, 'btn-txt-sz-' + _vm.size] - }, [_vm._s(_vm.value)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 393: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(394) - ) - - /* script */ - __vue_exports__ = __webpack_require__(395) - - /* template */ - var __vue_template__ = __webpack_require__(396) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/tip.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 394: -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, - -/***/ 395: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'success' }, - value: { default: '' } - } - }; - -/***/ }, - -/***/ 396: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['tip', 'tip-' + _vm.type] - }, [_h('text', { - class: ['tip-txt', 'tip-txt-' + _vm.type] - }, [_vm._s(_vm.value)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 481: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var modal = __weex_require_module__('modal'); - var clipboard = __weex_require_module__('clipboard'); - module.exports = { - data: function data() { - return { - textToCopy: '', - textFromPaste: '', - tips: '' - }; - }, - components: { - panel: __webpack_require__(383), - tip: __webpack_require__(393), - button: __webpack_require__(387) - }, - mounted: function mounted() { - this.tips = "1. Just click COPY button. It will auto generate a string with random text, and copy to system clipboard. \n 2. do copy in another app, then come back and click PASTE button."; - }, - methods: { - doCopy: function doCopy() { - modal.toast({ 'message': 'doCopy!', duration: 0.5 }); - textToCopy = "autoGenerateTextToCopy" + Math.random(); - clipboard.setString(textToCopy); - this.textToCopy = textToCopy; - this.tips = "copy done. Now system clipboard has string of '" + textToCopy + "', try PASTE button, or paste in another app."; - }, - doPaste: function doPaste() { - var me = this; - modal.toast({ 'message': 'doPaste!', duration: 0.5 }); - clipboard.getString(function (ret) { - console.log("paste result is " + JSON.stringify(ret)); - me.textFromPaste = ret.data; - me.tips = "Paste done. Only support native(Android/iOS) NOW. according to security reason, paste in html5 is not supported."; - }); - } - } - }; - -/***/ }, - -/***/ 482: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('scroller', [_h('panel', { - attrs: { - "title": "Clipboard", - "type": "primary" - } - }, [_h('panel', { - attrs: { - "title": "Copy to clipboard5" - } - }, [_h('text', { - staticStyle: { - lineHeight: "40px", - fontSize: "28px" - } - }, [_vm._s(_vm.textToCopy)]), _h('button', { - attrs: { - "type": "info", - "size": "middle", - "value": "Copy" - }, - nativeOn: { - "click": function($event) { - _vm.doCopy($event) - } - } - })]), _h('panel', { - attrs: { - "title": "Paste from clipboard" - } - }, [_h('text', { - staticStyle: { - lineHeight: "40px", - fontSize: "28px" - } - }, [_vm._s(_vm.textFromPaste)]), _h('button', { - attrs: { - "type": "info", - "size": "middle", - "value": "Paste" - }, - nativeOn: { - "click": function($event) { - _vm.doPaste($event) - } - } - })]), _h('panel', { - attrs: { - "title": "Result" - } - }, [_h('tip', { - staticStyle: { - marginBottom: "20px" - }, - attrs: { - "value": _vm.tips - } - })])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/modules/instance-api.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/modules/instance-api.js deleted file mode 100644 index 9cff9347..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/modules/instance-api.js +++ /dev/null @@ -1,304 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* script */ - __vue_exports__ = __webpack_require__(483) - - /* template */ - var __vue_template__ = __webpack_require__(484) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/modules/instance-api.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 383: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(384) - ) - - /* script */ - __vue_exports__ = __webpack_require__(385) - - /* template */ - var __vue_template__ = __webpack_require__(386) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/panel.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 384: -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, - -/***/ 385: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - title: { default: '' }, - paddingBody: { default: 20 }, - paddingHead: { default: 20 }, - dataClass: { default: '' }, // FIXME transfer class - border: { default: 0 } - } - }; - -/***/ }, - -/***/ 386: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['panel', 'panel-' + _vm.type], - style: { - borderWidth: _vm.border - } - }, [_h('text', { - class: ['panel-header', 'panel-header-' + _vm.type], - style: { - paddingTop: _vm.paddingHead, - paddingBottom: _vm.paddingHead, - paddingLeft: _vm.paddingHead * 1.5, - paddingRight: _vm.paddingHead * 1.5 - } - }, [_vm._s(_vm.title)]), _h('div', { - class: ['panel-body', 'panel-body-' + _vm.type], - style: { - paddingTop: _vm.paddingBody, - paddingBottom: _vm.paddingBody, - paddingLeft: _vm.paddingBody * 1.5, - paddingRight: _vm.paddingBody * 1.5 - } - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 483: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - - module.exports = { - data: function data() { - return { - config: '' - }; - }, - components: { - panel: __webpack_require__(383) - }, - created: function created() { - var config = this.$getConfig(); - console.log('config', JSON.stringify(config)); - this.config = JSON.stringify(config, null, 2); - } - }; - -/***/ }, - -/***/ 484: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('scroller', [_h('panel', { - attrs: { - "title": "$getConfig()", - "type": "primary" - } - }, [_h('text', [_vm._s(_vm.config)])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/modules/modal.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/modules/modal.js deleted file mode 100644 index 5b8805f2..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/modules/modal.js +++ /dev/null @@ -1,581 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* script */ - __vue_exports__ = __webpack_require__(485) - - /* template */ - var __vue_template__ = __webpack_require__(486) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/modules/modal.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 383: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(384) - ) - - /* script */ - __vue_exports__ = __webpack_require__(385) - - /* template */ - var __vue_template__ = __webpack_require__(386) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/panel.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 384: -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, - -/***/ 385: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - title: { default: '' }, - paddingBody: { default: 20 }, - paddingHead: { default: 20 }, - dataClass: { default: '' }, // FIXME transfer class - border: { default: 0 } - } - }; - -/***/ }, - -/***/ 386: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['panel', 'panel-' + _vm.type], - style: { - borderWidth: _vm.border - } - }, [_h('text', { - class: ['panel-header', 'panel-header-' + _vm.type], - style: { - paddingTop: _vm.paddingHead, - paddingBottom: _vm.paddingHead, - paddingLeft: _vm.paddingHead * 1.5, - paddingRight: _vm.paddingHead * 1.5 - } - }, [_vm._s(_vm.title)]), _h('div', { - class: ['panel-body', 'panel-body-' + _vm.type], - style: { - paddingTop: _vm.paddingBody, - paddingBottom: _vm.paddingBody, - paddingLeft: _vm.paddingBody * 1.5, - paddingRight: _vm.paddingBody * 1.5 - } - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 387: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(388) - ) - - /* script */ - __vue_exports__ = __webpack_require__(389) - - /* template */ - var __vue_template__ = __webpack_require__(390) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/button.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 388: -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, - -/***/ 389: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - size: { default: 'large' }, - value: { default: '' } - } - }; - -/***/ }, - -/***/ 390: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['btn', 'btn-' + _vm.type, 'btn-sz-' + _vm.size] - }, [_h('text', { - class: ['btn-txt', 'btn-txt-' + _vm.type, 'btn-txt-sz-' + _vm.size] - }, [_vm._s(_vm.value)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 485: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var modal = __weex_require_module__('modal'); - module.exports = { - data: function data() { - return {}; - }, - components: { - panel: __webpack_require__(383), - button: __webpack_require__(387) - }, - methods: { - toast: function toast(msg, duration) { - if (!msg || typeof msg !== 'string') { - msg = 'I am Toast show!'; - } - duration = duration || 2; - modal.toast({ - 'message': msg, - 'duration': duration - }); - }, - alert: function alert(msg, okTitle, cancelTitle) { - if (!msg || typeof msg !== 'string') { - msg = "I am Alert!"; - } - modal.alert({ - 'message': msg, - 'okTitle': okTitle, - 'cancelTitle': cancelTitle - }, function () { - modal.toast({ message: "Click Alert OK Bnt!!" }); - }); - }, - confirm: function confirm(msg, okTitle, cancelTitle) { - if (!msg || typeof msg !== 'string') { - msg = "I am Confirm!"; - } - okTitle = okTitle || "OK"; - cancelTitle = cancelTitle || "Cancel"; - modal.confirm({ - 'message': msg, - 'okTitle': okTitle, - 'cancelTitle': cancelTitle - }, function (result) { - modal.toast({ message: "Click Confirm " + JSON.stringify(result) }); - }); - }, - prompt: function prompt() { - modal.prompt({ - 'message': 'I am Prompt!', - 'okTitle': 'ok', - 'cancelTitle': 'cancel' - }, function (result) { - modal.toast({ message: "Click Prompt " + JSON.stringify(result) }); - }); - } - } - }; - -/***/ }, - -/***/ 486: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('scroller', [_h('panel', { - attrs: { - "title": "Toast", - "type": "primary" - } - }, [_h('button', { - attrs: { - "type": "primary", - "value": "Toast" - }, - nativeOn: { - "click": function($event) { - _vm.toast($event) - } - } - })]), _h('panel', { - attrs: { - "title": "Dialog", - "type": "primary" - } - }, [_h('button', { - staticStyle: { - marginBottom: "20px" - }, - attrs: { - "type": "success", - "value": "Alert" - }, - nativeOn: { - "click": function($event) { - _vm.alert($event) - } - } - }), _h('button', { - staticStyle: { - marginBottom: "20px" - }, - attrs: { - "type": "primary", - "value": "Confirm" - }, - nativeOn: { - "click": function($event) { - _vm.confirm($event) - } - } - }), _h('button', { - attrs: { - "type": "warning", - "value": "Prompt" - }, - nativeOn: { - "click": function($event) { - _vm.prompt($event) - } - } - })])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/modules/storage.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/modules/storage.js deleted file mode 100644 index 13a3d93e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/modules/storage.js +++ /dev/null @@ -1,381 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* script */ - __vue_exports__ = __webpack_require__(487) - - /* template */ - var __vue_template__ = __webpack_require__(488) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/modules/storage.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 383: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(384) - ) - - /* script */ - __vue_exports__ = __webpack_require__(385) - - /* template */ - var __vue_template__ = __webpack_require__(386) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/panel.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 384: -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, - -/***/ 385: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - title: { default: '' }, - paddingBody: { default: 20 }, - paddingHead: { default: 20 }, - dataClass: { default: '' }, // FIXME transfer class - border: { default: 0 } - } - }; - -/***/ }, - -/***/ 386: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['panel', 'panel-' + _vm.type], - style: { - borderWidth: _vm.border - } - }, [_h('text', { - class: ['panel-header', 'panel-header-' + _vm.type], - style: { - paddingTop: _vm.paddingHead, - paddingBottom: _vm.paddingHead, - paddingLeft: _vm.paddingHead * 1.5, - paddingRight: _vm.paddingHead * 1.5 - } - }, [_vm._s(_vm.title)]), _h('div', { - class: ['panel-body', 'panel-body-' + _vm.type], - style: { - paddingTop: _vm.paddingBody, - paddingBottom: _vm.paddingBody, - paddingLeft: _vm.paddingBody * 1.5, - paddingRight: _vm.paddingBody * 1.5 - } - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 487: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var storage = __weex_require_module__('storage'); - module.exports = { - data: function data() { - return { - setItemResult: 'loading', - getItemResult: 'loading', - removeItemResult: 'loading', - lengthResult: 'loading', - getAllKeysResult: 'loading' - }; - }, - components: { - panel: __webpack_require__(383) - }, - created: function created() { - var me = this; - - //setItem - storage.setItem('foo', 'foo-value', function (e) { - console.log('set [foo<->foo-value]:' + JSON.stringify(e)); - me.setItemResult = 'foo:' + JSON.stringify(e) + '\n'; - }); - storage.setItem('bar', 'bar-value', function (e) { - console.log('set [bar<->bar-value]:' + JSON.stringify(e)); - me.setItemResult = me.setItemResult + 'bar:' + JSON.stringify(e); - }); - - //getItem - storage.getItem('foo', function (e) { - console.log('get foo result:' + JSON.stringify(e)); - me.getItemResult = 'get foo,value is ' + e.data + '\n'; - }); - storage.getItem('bar', function (e) { - console.log('get bar result:' + JSON.stringify(e)); - me.getItemResult += 'get bar,value is ' + e.data; - }); - - //length - storage.length(function (e) { - console.log('length:' + JSON.stringify(e)); - me.lengthResult = 'current length is ' + e.data; - }); - - //getAllKeys - storage.getAllKeys(function (e) { - console.log('getAllKeys:' + JSON.stringify(e)); - me.getAllKeysResult = '' + e.data; - //me.getAllKeysResult +=' '+ typeof e.data - }); - - //removeItem - storage.removeItem('foo', function (e) { - console.log('remove foo:' + JSON.stringify(e)); - me.removeItemResult = 'remove item foo ' + e.result; - }); - } - }; - -/***/ }, - -/***/ 488: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('scroller', [_h('panel', { - attrs: { - "title": "storage API", - "type": "primary" - } - }, [_h('panel', { - attrs: { - "title": "setItem" - } - }, [_h('text', [_vm._s(_vm.setItemResult)])]), _h('panel', { - attrs: { - "title": "getItem" - } - }, [_h('text', [_vm._s(_vm.getItemResult)])]), _h('panel', { - attrs: { - "title": "length" - } - }, [_h('text', [_vm._s(_vm.lengthResult)])]), _h('panel', { - attrs: { - "title": "getAllKeys" - } - }, [_h('text', [_vm._s(_vm.getAllKeysResult)])]), _h('panel', { - attrs: { - "title": "removeItem" - } - }, [_h('text', [_vm._s(_vm.removeItemResult)])])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/modules/stream.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/modules/stream.js deleted file mode 100644 index 785a8bfc..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/modules/stream.js +++ /dev/null @@ -1,477 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* script */ - __vue_exports__ = __webpack_require__(489) - - /* template */ - var __vue_template__ = __webpack_require__(490) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/modules/stream.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 383: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(384) - ) - - /* script */ - __vue_exports__ = __webpack_require__(385) - - /* template */ - var __vue_template__ = __webpack_require__(386) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/panel.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 384: -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, - -/***/ 385: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - title: { default: '' }, - paddingBody: { default: 20 }, - paddingHead: { default: 20 }, - dataClass: { default: '' }, // FIXME transfer class - border: { default: 0 } - } - }; - -/***/ }, - -/***/ 386: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['panel', 'panel-' + _vm.type], - style: { - borderWidth: _vm.border - } - }, [_h('text', { - class: ['panel-header', 'panel-header-' + _vm.type], - style: { - paddingTop: _vm.paddingHead, - paddingBottom: _vm.paddingHead, - paddingLeft: _vm.paddingHead * 1.5, - paddingRight: _vm.paddingHead * 1.5 - } - }, [_vm._s(_vm.title)]), _h('div', { - class: ['panel-body', 'panel-body-' + _vm.type], - style: { - paddingTop: _vm.paddingBody, - paddingBottom: _vm.paddingBody, - paddingLeft: _vm.paddingBody * 1.5, - paddingRight: _vm.paddingBody * 1.5 - } - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 489: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var stream = __weex_require_module__('stream'); - module.exports = { - data: function data() { - return { - getJsonpResult: 'loading...', - getResult: 'loading...', - postResult: 'loading...', - putResult: 'loading...', - deleteResult: 'loading...', - headResult: 'loading...', - patchResult: 'loading...' - }; - }, - components: { - panel: __webpack_require__(383) - }, - created: function created() { - var me = this; - var GET_URL_JSONP = 'http://jsfiddle.net/echo/jsonp/?callback=anything&result=content_in_response'; - var GET_URL = 'http://httpbin.org/get'; - var POST_URL = 'http://httpbin.org/post'; - var PUT_URL = 'http://httpbin.org/put'; - var DELETE_URL = 'http://httpbin.org/delete'; - var HEAD_URL = 'http://httpbin.org/status/418'; - var PATCH_URL = 'http://httpbin.org/patch'; - - stream.fetch({ - method: 'GET', - url: GET_URL_JSONP, - type: 'jsonp' - }, function (ret) { - if (!ret.ok) { - me.getJsonpResult = "request failed"; - } else { - console.log('get:' + ret); - me.getJsonpResult = JSON.stringify(ret.data); - } - }, function (response) { - console.log('get jsonp in progress:' + response.length); - me.getJsonpResult = "bytes received:" + response.length; - }); - - stream.fetch({ - method: 'GET', - url: GET_URL, - type: 'json' - }, function (ret) { - if (!ret.ok) { - me.getResult = "request failed"; - } else { - console.log('get:' + ret); - me.getResult = JSON.stringify(ret.data); - } - }, function (response) { - console.log('get in progress:' + response.length); - me.getResult = "bytes received:" + response.length; - }); - - stream.fetch({ - method: 'POST', - url: POST_URL, - type: 'json' - }, function (ret) { - if (!ret.ok) { - me.postResult = "request failed"; - } else { - console.log('get:' + JSON.stringify(ret)); - me.postResult = JSON.stringify(ret.data); - } - }, function (response) { - console.log('get in progress:' + response.length); - me.postResult = "bytes received:" + response.length; - }); - - stream.fetch({ - method: 'PUT', - url: PUT_URL, - type: 'json' - }, function (ret) { - if (!ret.ok) { - me.putResult = "request failed"; - } else { - console.log('get:' + JSON.stringify(ret)); - me.putResult = JSON.stringify(ret.data); - } - }, function (response) { - console.log('get in progress:' + response.length); - me.putResult = "bytes received:" + response.length; - }); - - stream.fetch({ - method: 'DELETE', - url: DELETE_URL, - type: 'json' - }, function (ret) { - - if (!ret.ok) { - me.deleteResult = "request failed"; - } else { - console.log('get:' + JSON.stringify(ret)); - me.deleteResult = JSON.stringify(ret.data); - } - }, function (response) { - console.log('get in progress:' + response.length); - me.deleteResult = "bytes received:" + response.length; - }); - - stream.fetch({ - method: 'HEAD', - url: HEAD_URL, - type: 'json' - }, function (ret) { - if (ret.statusText !== 'I\'m a teapot') { - me.headResult = "request failed"; - } else { - console.log('get:' + JSON.stringify(ret)); - me.headResult = ret.statusText; - } - }, function (response) { - console.log('get in progress:' + response.length); - me.headResult = "bytes received:" + response.length; - }); - - stream.fetch({ - method: 'PATCH', - url: PATCH_URL, - type: 'json' - }, function (ret) { - if (!ret.ok) { - me.patchResult = "request failed"; - } else { - console.log('get:' + JSON.stringify(ret)); - me.patchResult = JSON.stringify(ret.data); - } - }, function (response) { - console.log('get in progress:' + response.length); - me.patchResult = "bytes received:" + response.length; - }); - } - }; - -/***/ }, - -/***/ 490: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('scroller', [_h('panel', { - attrs: { - "title": "stream.fetch", - "type": "primary" - } - }, [_h('panel', { - attrs: { - "title": "method = GET" - } - }, [_h('text', [_vm._s(_vm.getResult)])]), _h('panel', { - attrs: { - "title": "method = GET / type = jsonp" - } - }, [_h('text', [_vm._s(_vm.getJsonpResult)])]), _h('panel', { - attrs: { - "title": "method = POST" - } - }, [_h('text', [_vm._s(_vm.postResult)])]), _h('panel', { - attrs: { - "title": "method = PUT" - } - }, [_h('text', [_vm._s(_vm.putResult)])]), _h('panel', { - attrs: { - "title": "method = DELETE" - } - }, [_h('text', [_vm._s(_vm.deleteResult)])]), _h('panel', { - attrs: { - "title": "method = HEAD" - } - }, [_h('text', [_vm._s(_vm.headResult)])]), _h('panel', { - attrs: { - "title": "method = PATCH" - } - }, [_h('text', [_vm._s(_vm.patchResult)])])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/showcase/calculator.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/showcase/calculator.js deleted file mode 100644 index eb5e7c0b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/showcase/calculator.js +++ /dev/null @@ -1,340 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(491) - ) - - /* script */ - __vue_exports__ = __webpack_require__(492) - - /* template */ - var __vue_template__ = __webpack_require__(493) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/showcase/calculator.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 491: -/***/ function(module, exports) { - - module.exports = { - "row": { - "flexDirection": "row" - }, - "result": { - "textAlign": "right", - "backgroundColor": "#666666", - "fontSize": 40, - "color": "#FFFFFF", - "height": 100, - "padding": 30, - "margin": 5 - }, - "btn": { - "flex": 1, - "textAlign": "center", - "backgroundColor": "#eeeeee", - "fontSize": 36, - "height": 100, - "padding": 30, - "margin": 5 - }, - "btn-operator": { - "backgroundColor": "#666699", - "fontSize": 40, - "color": "#FFFFFF" - } - } - -/***/ }, - -/***/ 492: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var OP = ['+', '-', '*', '/']; - var modal = __weex_require_module__('modal'); - module.exports = { - data: function data() { - return { - result: '', - inputs: [] - }; - }, - methods: { - input: function input(e) { - modal.toast({ message: 'input: ' + e.target.attr.value, duration: 1 }); - var value = e.target.attr['value']; - var inputs = this.inputs; - var lastOne = inputs.length ? inputs[inputs.length - 1] : ''; - if (OP.indexOf(lastOne) > -1 && OP.indexOf(value) > -1) { - return; - } - inputs.push(value); - var buf = [], - char; - for (var i = 0; i < inputs.length; i++) { - char = inputs[i]; - if (OP.indexOf(char) > -1) { - char = ' ' + char + ' '; - } - buf.push(char); - } - this.result = buf.join(''); - }, - calculate: function calculate() { - var result = eval(this.result); - this.inputs = [result]; - this.result = result; - }, - clear: function clear() { - this.inputs = []; - this.result = ''; - } - } - }; - -/***/ }, - -/***/ 493: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticStyle: { - padding: "5px" - } - }, [_h('text', { - staticClass: ["result"] - }, [_vm._s(_vm.result)]), _h('div', { - staticClass: ["row"] - }, [_h('text', { - staticClass: ["btn"], - on: { - "click": _vm.input - } - }, ["1"]), _h('text', { - staticClass: ["btn"], - on: { - "click": _vm.input - } - }, ["2"]), _h('text', { - staticClass: ["btn"], - on: { - "click": _vm.input - } - }, ["3"]), _h('text', { - staticClass: ["btn", "btn-operator"], - on: { - "click": _vm.input - } - }, ["+"])]), _h('div', { - staticClass: ["row"] - }, [_h('text', { - staticClass: ["btn"], - on: { - "click": _vm.input - } - }, ["4"]), _h('text', { - staticClass: ["btn"], - on: { - "click": _vm.input - } - }, ["5"]), _h('text', { - staticClass: ["btn"], - on: { - "click": _vm.input - } - }, ["6"]), _h('text', { - staticClass: ["btn", "btn-operator"], - on: { - "click": _vm.input - } - }, ["-"])]), _h('div', { - staticClass: ["row"] - }, [_h('text', { - staticClass: ["btn"], - on: { - "click": _vm.input - } - }, ["7"]), _h('text', { - staticClass: ["btn"], - on: { - "click": _vm.input - } - }, ["8"]), _h('text', { - staticClass: ["btn"], - on: { - "click": _vm.input - } - }, ["9"]), _h('text', { - staticClass: ["btn", "btn-operator"], - on: { - "click": _vm.input - } - }, ["*"])]), _h('div', { - staticClass: ["row"] - }, [_h('text', { - staticClass: ["btn"], - on: { - "click": _vm.input - } - }, ["0"]), _h('text', { - staticClass: ["btn"], - on: { - "click": _vm.input - } - }, ["."]), _h('text', { - staticClass: ["btn"], - on: { - "click": _vm.clear - } - }, ["AC"]), _h('text', { - staticClass: ["btn", "btn-operator"], - on: { - "click": _vm.calculate - } - }, ["="])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/showcase/itemlist.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/showcase/itemlist.js deleted file mode 100644 index 036f7424..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/showcase/itemlist.js +++ /dev/null @@ -1,1062 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(494) - ) - - /* script */ - __vue_exports__ = __webpack_require__(495) - - /* template */ - var __vue_template__ = __webpack_require__(496) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/showcase/itemlist.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 494: -/***/ function(module, exports) { - - module.exports = { - "flexRow": { - "flexDirection": "row" - }, - "flexColumn": { - "flexDirection": "column" - }, - "fixed": { - "position": "fixed", - "bottom": 50, - "left": 50, - "width": 300, - "height": 50, - "alignItems": "center", - "justifyContent": "center" - }, - "shopImg": { - "width": 220, - "height": 220 - }, - "list": { - "flexDirection": "column", - "overflow": "hidden", - "width": 750, - "height": 1200, - "backgroundColor": "#dddddd" - }, - "cell": { - "backgroundColor": "#dddddd", - "flexDirection": "column", - "width": 750 - }, - "shopDiv": { - "flexDirection": "column", - "backgroundColor": "#ffffff", - "margin": 5, - "padding": 10, - "borderWidth": 1, - "borderColor": "#cccccc", - "overflow": "visible" - }, - "shopRowList": { - "flexDirection": "column", - "borderWidth": 1, - "borderColor": "#cccccc", - "overflow": "visible", - "margin": 5, - "padding": 10, - "backgroundColor": "#ffffff" - }, - "shopHeader": { - "flexDirection": "row", - "width": 720 - }, - "shopFooter": { - "flexDirection": "row", - "width": 720 - }, - "smallImg": { - "width": 20, - "height": 20 - } - } - -/***/ }, - -/***/ 495: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var modal = __weex_require_module__('modal'); - module.exports = { - data: function data() { - return { - shopList: [{ - id: 1, - scopeValue: 1, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Mendeleyev', - PersonVisitTime: 'today', - shopDesc: 'Genius only means hard-working all one\'s life', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/bao/uploaded/i2/TB1rtOnHpXXXXXLaXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/bao/uploaded/i4/TB15KrfFVXXXXXJXXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/bao/uploaded/i2/TB1t5YBGVXXXXXcaXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 2, - scopeValue: 2, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Napoleon', - PersonVisitTime: 'yesterday', - shopDesc: 'The man who has made up his mind to win will never say "impossible "', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd1.alicdn.com/imgextra/i1/2655929383/TB2.qITjpXXXXcIXXXXXXXXXXXX_!!2655929383.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd3.alicdn.com/imgextra/i3/2655929383/TB2eWwZjpXXXXbHXXXXXXXXXXXX_!!2655929383.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/imgextra/i2/2655929383/TB2tgQWjpXXXXbZXXXXXXXXXXXX_!!2655929383.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 3, - scopeValue: 3, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Balzac', - PersonVisitTime: 'yesterday', - shopDesc: 'There is no such thing as a great talent without great will - power', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd1.alicdn.com/imgextra/i1/TB1AFz9LXXXXXbrXVXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/imgextra/i2/2557954751/TB2is2njXXXXXatXpXXXXXXXXXX_!!2557954751.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/imgextra/i2/2557954751/TB2PNYGjXXXXXbXXXXXXXXXXXXX_!!2557954751.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 4, - scopeValue: 4, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Thomas Carlyle', - PersonVisitTime: '3 day ago', - shopDesc: 'Cease to struggle and you cease to live', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/imgextra/i4/69426324/TB2zbwdfXXXXXa4XpXXXXXXXXXX_!!69426324.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/imgextra/i4/69426324/TB2L7ZAfXXXXXXOXXXXXXXXXXXX_!!69426324.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/imgextra/i4/69426324/TB2p9wufXXXXXbiXXXXXXXXXXXX_!!69426324.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 5, - scopeValue: 5, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Addison', - PersonVisitTime: 'yesterday', - shopDesc: 'A strong man will struggle with the storms of fate', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd3.alicdn.com/bao/uploaded/i3/TB1MQ8_KVXXXXaLXVXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/imgextra/i2/53218032/TB2bGSqiXXXXXXyXpXXXXXXXXXX_!!53218032.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/bao/uploaded/i2/TB1kP2zKFXXXXbIXXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 6, - scopeValue: 1, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Ruskin', - PersonVisitTime: 'yesterday', - shopDesc: 'Living without an aim is like sailing without a compass', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/bao/uploaded/i4/TB11yFnHXXXXXakaXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/imgextra/i4/32720628/TB2CRJUcXXXXXXwXpXXXXXXXXXX_!!32720628.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/bao/uploaded/i2/TB17LUzHXXXXXcEaXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 7, - scopeValue: 2, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Yiming', - PersonVisitTime: 'today', - shopDesc: 'Live a noble and honest life. Reviving past times in your old age will help you to enjoy your life again', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/bao/uploaded/i4/TB1hvNoJXXXXXaMaXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/imgextra/i4/2058567235/TB2V8iygFXXXXaRXpXXXXXXXXXX_!!2058567235.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/imgextra/i2/2058567235/TB2im1QgFXXXXX8XXXXXXXXXXXX_!!2058567235.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 8, - scopeValue: 3, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'Brown', - PersonVisitTime: 'yesterday', - shopDesc: 'Behind every successful man there\'s a lot u unsuccessful years', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd1.alicdn.com/bao/uploaded/i1/TB18BZ2KFXXXXb8XFXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd1.alicdn.com/imgextra/i1/2775383848/TB2r012jVXXXXXHXpXXXXXXXXXX_!!2775383848.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd3.alicdn.com/imgextra/i3/2775383848/TB2iI9VjVXXXXaoXpXXXXXXXXXX_!!2775383848.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 9, - scopeValue: 4, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'YIMING', - PersonVisitTime: 'today', - shopDesc: 'Enrich your life today,. yesterday is history.tomorrow is mystery', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd1.alicdn.com/bao/uploaded/i1/TB1JB.rLpXXXXXLXXXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd4.alicdn.com/imgextra/i4/2702739128/TB2JdvmjVXXXXXjXXXXXXXXXXXX_!!2702739128.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd2.alicdn.com/imgextra/i2/2702739128/TB2A.e6jVXXXXXGXpXXXXXXXXXX_!!2702739128.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - - }, { - id: 10, - scopeValue: 5, - PersonPhoto: 'https://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_60x60.jpg', - PersonName: 'YIMING', - PersonVisitTime: 'yesterday', - shopDesc: 'The secret of success is constancy to purpose', - shopImgList: [{ - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd3.alicdn.com/bao/uploaded/i3/TB17zXOGXXXXXbEXVXXXXXXXXXX_!!0-item_pic.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd1.alicdn.com/imgextra/i1/2265445951/TB22ACTbFXXXXXBXXXXXXXXXXXX_!!2265445951.jpg_220x220.jpg' - }, { - shopImgWidth: 220, - shopImgHeight: 220, - shopImg: 'https://gd3.alicdn.com/imgextra/i3/2265445951/TB2oXqUbFXXXXXIXXXXXXXXXXXX_!!2265445951.jpg_220x220.jpg' - }], - shopLikeImg: 'https://img.alicdn.com/tps/i1/TB1jTxXIVXXXXb8XXXX07tlTXXX-200-200.png_88x88xz.jpg', - shopLikeText: '6', - shopCommentImg: 'https://img.alicdn.com/tps/i1/TB1kTKyIVXXXXacXFXX07tlTXXX-200-200.png_88x88xz.jpg', - shopCommentText: '97', - shopLookImg: 'https://img.alicdn.com/imgextra/i4/397746073/TB2IseKeFXXXXcVXXXXXXXXXXXX-397746073.png_88x88xz.jpg', - shopLookText: '1003', - shareImg: 'https://cbu01.alicdn.com/cms/upload/2015/930/224/2422039_702806130.png_88x88xz.jpg', - shareText: "10" - }] - }; - }, - methods: { - loadmore: function loadmore(e) { - modal.toast({ - 'message': 'loadmore', - 'duration': 2.0 - }); - }, - oncellclick: function oncellclick(id) { - modal.toast({ - 'message': 'row ' + id + ' clicked', - 'duration': 2.0 - }); - } - } - - }; - -/***/ }, - -/***/ 496: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('list', { - staticClass: ["list"], - attrs: { - "loadmoreoffset": "2000" - }, - on: { - "loadmore": _vm.loadmore - } - }, [_vm._l((_vm.shopList), function(item) { - return _h('cell', { - staticClass: ["cell"], - attrs: { - "scope": item.scopeValue - }, - on: { - "click": function($event) { - _vm.oncellclick(item.id) - } - } - }, [_h('div', { - staticClass: ["shopDiv"] - }, [_h('div', { - staticClass: ["shopHeader"], - staticStyle: { - flexDirection: "row" - } - }, [_h('div', { - staticStyle: { - flex: "2", - flexDirection: "row" - } - }, [_h('div', [_h('image', { - staticStyle: { - width: "60", - height: "60" - }, - attrs: { - "src": item.PersonPhoto - } - })]), _h('div', { - staticStyle: { - flexDirection: "column", - marginLeft: "5" - } - }, [_h('div', { - staticStyle: { - marginTop: "5" - } - }, [_h('text', { - staticStyle: { - fontSize: "20" - } - }, [_vm._s(item.PersonName)])]), _h('div', { - staticStyle: { - marginTop: "5" - } - }, [_h('text', { - staticStyle: { - fontSize: "20", - color: "#cccccc" - } - }, [_vm._s(item.PersonVisitTime)])])])]), _vm._m(0, true)]), _h('div', { - staticClass: ["shopBody"], - staticStyle: { - flexDirection: "column" - } - }, [_h('div', { - staticClass: ["descDiv"], - staticStyle: { - marginTop: "10", - marginLeft: "10" - } - }, [_h('text', { - staticClass: ["shopDesc"], - staticStyle: { - fontSize: "25" - } - }, [_vm._s(item.shopDesc)])]), _h('div', { - staticStyle: { - flexDirection: "row" - } - }, [_vm._l((item.shopImgList), function(img) { - return _h('div', { - staticClass: ["imgDiv"], - staticStyle: { - flex: "1", - flexDirection: "column", - margin: "10" - } - }, [_h('div', [_h('image', { - staticClass: ["shopImg"], - style: { - width: img.shopImgWidth, - height: img.shopImgHeight - }, - attrs: { - "src": img.shopImg - } - })]), _vm._m(1, true)]) - })])]), _h('div', { - staticClass: ["shopFooter"], - staticStyle: { - flexDirection: "row", - marginTop: "10", - marginLeft: "10", - justifyContent: "flex-end" - } - }, [_h('div', { - staticStyle: { - marginRight: "5" - } - }, [_h('image', { - staticClass: ["shopLikeImg", "smallImg"], - attrs: { - "src": item.shopLikeImg - } - })]), _h('div', { - staticStyle: { - marginRight: "15" - } - }, [_h('text', { - staticClass: ["shopLikeText"], - staticStyle: { - fontSize: "20" - } - }, [_vm._s(item.shopLikeText)])]), _h('div', { - staticStyle: { - marginRight: "5" - } - }, [_h('image', { - staticClass: ["shopCommentImg", "smallImg"], - attrs: { - "src": item.shopCommentImg - } - })]), _h('div', { - staticStyle: { - marginRight: "15" - } - }, [_h('text', { - staticClass: ["shopCommentText"], - staticStyle: { - fontSize: "20" - } - }, [_vm._s(item.shopCommentText)])]), _h('div', { - staticStyle: { - marginRight: "5" - } - }, [_h('image', { - staticClass: ["shopLookImg", "smallImg"], - attrs: { - "src": item.shopLookImg - } - })]), _h('div', { - staticStyle: { - marginRight: "15" - } - }, [_h('text', { - staticClass: ["shopLookText"], - staticStyle: { - fontSize: "20" - } - }, [_vm._s(item.shopLookText)])]), _h('div', { - staticStyle: { - marginRight: "5" - } - }, [_h('image', { - staticClass: ["shareImg", "smallImg"], - attrs: { - "src": item.shareImg - } - })]), _h('div', { - staticStyle: { - marginRight: "20" - } - }, [_h('text', { - staticClass: ["shareText"], - staticStyle: { - fontSize: "20" - } - }, [_vm._s(item.shareText)])])])])]) - })]) - },staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticStyle: { - flex: "5", - flexDirection: "row" - } - }, [_h('div', { - staticStyle: { - flexDirection: "row", - marginLeft: "10", - marginTop: "10" - } - }, [_h('div', [_h('image', { - staticStyle: { - width: "20", - height: "20" - }, - attrs: { - "src": "https://img.alicdn.com/tps/i4/TB1zkDeIFXXXXXrXVXX07tlTXXX-200-200.png_88x88xz.jpg" - } - })]), _h('div', [_h('text', { - staticStyle: { - fontSize: "20" - } - }, ["Hope"])])]), _h('div', { - staticStyle: { - position: "absolute", - left: "90", - top: "10", - flexDirection: "row" - } - }, [_h('div', [_h('image', { - staticStyle: { - width: "20", - height: "20" - }, - attrs: { - "src": "https://img.alicdn.com/tps/i2/TB1hRb1IXXXXXX3XVXXXQaP.pXX-87-87.jpeg" - } - })]), _h('div', [_h('text', { - staticStyle: { - fontSize: "20" - } - }, ["Mem"])])]), _h('div', { - staticStyle: { - position: "absolute", - left: "170", - top: "10", - flexDirection: "row" - } - }, [_h('div', [_h('image', { - staticStyle: { - width: "20", - height: "20" - }, - attrs: { - "src": "https://img.alicdn.com/tps/i3/TB1DGkJJFXXXXaZXFXX07tlTXXX-200-200.png" - } - })]), _h('div', [_h('text', { - staticStyle: { - fontSize: "20" - } - }, ["auth"])])]), _h('div', { - staticStyle: { - position: "absolute", - left: "250", - top: "10", - flexDirection: "row" - } - }, [_h('div', [_h('image', { - staticStyle: { - width: "20", - height: "20" - }, - attrs: { - "src": "https://img.alicdn.com/tps/i1/TB1nFvPIXXXXXbUXXXXUAkPJpXX-87-87.png" - } - })]), _h('div', [_h('text', { - staticStyle: { - fontSize: "20" - } - }, ["Friend"])])]), _h('div', { - staticStyle: { - position: "absolute", - left: "330", - top: "10", - flexDirection: "row" - } - }, [_h('div', [_h('image', { - staticStyle: { - width: "20", - height: "20" - }, - attrs: { - "src": "https://img.alicdn.com/tps/i2/TB1CpD7IXXXXXbSXXXXUAkPJpXX-87-87.png" - } - })]), _h('div', [_h('text', { - staticStyle: { - fontSize: "20" - } - }, ["issue"])])]), _h('div', { - staticStyle: { - position: "absolute", - left: "410", - top: "10", - flexDirection: "row" - } - }, [_h('div', [_h('image', { - staticStyle: { - width: "20", - height: "20" - }, - attrs: { - "src": "https://gtms02.alicdn.com/tps/i2/TB11ZZfIVXXXXbMXFXXEDhGGXXX-32-32.png" - } - })]), _h('div', [_h('text', { - staticStyle: { - fontSize: "20" - } - }, ["super"])])])]) - },function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticStyle: { - flex: "1", - marginTop: "10", - flexDirection: "row" - } - }, [_h('div', { - staticStyle: { - flex: "1", - justifyContent: "center", - flexDirection: "row" - } - }, [_h('div', [_h('image', { - staticStyle: { - width: "20", - height: "20" - }, - attrs: { - "src": "https://img.alicdn.com/tps/i1/TB1nFvPIXXXXXbUXXXXUAkPJpXX-87-87.png" - } - })]), _h('div', { - staticStyle: { - marginLeft: "5" - } - }, [_h('text', { - staticStyle: { - fontSize: "20", - textAlign: "center" - } - }, ["Up"])])]), _h('div', { - staticStyle: { - flex: "1", - justifyContent: "center", - flexDirection: "row" - } - }, [_h('div', [_h('image', { - staticStyle: { - width: "20", - height: "20" - }, - attrs: { - "src": "https://img.alicdn.com/tps/i2/TB1CpD7IXXXXXbSXXXXUAkPJpXX-87-87.png" - } - })]), _h('div', { - staticStyle: { - marginLeft: "5" - } - }, [_h('text', { - staticStyle: { - fontSize: "20", - textAlign: "center" - } - }, ["down"])])])]) - }]} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/showcase/new-fashion.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/showcase/new-fashion.js deleted file mode 100644 index 37e25581..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/showcase/new-fashion.js +++ /dev/null @@ -1,3302 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(497) - ) - - /* script */ - __vue_exports__ = __webpack_require__(498) - - /* template */ - var __vue_template__ = __webpack_require__(540) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/showcase/new-fashion.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 497: -/***/ function(module, exports) { - - module.exports = { - "content": { - "color": "#353535", - "backgroundColor": "#666666", - "position": "absolute", - "top": 0, - "left": 0, - "right": 0, - "bottom": 0 - }, - "refresh": { - "alignItems": "center", - "justifyContent": "center" - }, - "loading": { - "alignItems": "center", - "justifyContent": "center" - } - } - -/***/ }, - -/***/ 498: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var modal = __weex_require_module__('modal'); - var timer = __weex_require_module__('timer'); - - module.exports = { - components: { - headlines: __webpack_require__(499), - category: __webpack_require__(512), - coupon: __webpack_require__(516), - goods: __webpack_require__(520), - resource: __webpack_require__(524), - scene: __webpack_require__(528), - match: __webpack_require__(532), - brand: __webpack_require__(536) - }, - data: { - navBarHeight: 88, - cnt: 0, - show0: true, - show1: false, - show2: false, - displayRefresh: 'show', - displayLoading: 'show', - showData: {} - }, - created: function created() { - this.showData = { - "header": { - "topBanner": "https://gw.alicdn.com/tps/TB1J48kMXXXXXXtapXXXXXXXXXX-750-782.jpg", - "ruleLink": "https://chaoshi.m.tmall.com/", - "isShowShare": true, - "shareInfo": { - "shareTitle": "我是分享标题", - "shareIntro": " 我是分享内容测试", - "allLink": "https://www.tmall.com", - "mobileImage": "https://gw.alicdn.com/tps/TB1J48kMXXXXXXtapXXXXXXXXXX-750-782.jpg", - "pcImage": "https://img.alicdn.com/tps/i4/TB1Dyw1LVXXXXXEapXXSutbFXXX.jpg", - "shareScene": "我是测试业务", - "bizId": "" - }, - "announceHdBanner": "https://gw.alicdn.com/tps/i4/TB1fzclLVXXXXaVaXXXwu0bFXXX.png", - "bannerItems": [{ - "img": "https://img.alicdn.com/tps/TB1U8LHLVXXXXa3XpXXXXXXXXXX-233-172.jpg", - "url": "https://chaoshi.m.tmall.com/" - }, { - "img": "https://img.alicdn.com/tps/TB1U8LHLVXXXXa3XpXXXXXXXXXX-233-172.jpg", - "url": "https://chaoshi.m.tmall.com/" - }, { - "img": "https://img.alicdn.com/tps/TB1U8LHLVXXXXa3XpXXXXXXXXXX-233-172.jpg", - "url": "https://chaoshi.m.tmall.com/" - }] - }, - "fashion": { - "isHide": false, - "floorTitle": "https://gw.alicdn.com/tps/TB1._64LVXXXXatXVXXXXXXXXXX-750-100.jpg", - "bigBannerImg": "https://gw.alicdn.com/tps/TB1tO.aLVXXXXcvXpXXXXXXXXXX-750-262.jpg", - "bigBannerUrl": "https://chaoshi.m.tmall.com/", - "smallBannerItems": [{ - "img": "https://img.alicdn.com/tps/TB1Ff_0LVXXXXXNaXXXXXXXXXXX-375-262.jpg", - "url": "https://chaoshi.m.tmall.com/" - }, { - "img": "https://img.alicdn.com/tps/TB1Ff_0LVXXXXXNaXXXXXXXXXXX-375-262.jpg", - "url": "https://chaoshi.m.tmall.com/" - }], - "isHideStarBanner": false, - "firstStarBannerItems": [{ - "img": "https://gw.alicdn.com/tps/TB1xlIVLVXXXXckXVXXXXXXXXXX-250-220.jpg", - "url": "https://chaoshi.m.tmall.com/" - }, { - "img": "https://gw.alicdn.com/tps/TB1xlIVLVXXXXckXVXXXXXXXXXX-250-220.jpg", - "url": "https://chaoshi.m.tmall.com/" - }], - "secondStarBannerItems": [{ - "img": "https://gw.alicdn.com/tps/TB1xlIVLVXXXXckXVXXXXXXXXXX-250-220.jpg", - "url": "https://chaoshi.m.tmall.com/" - }, { - "img": "https://gw.alicdn.com/tps/TB1xlIVLVXXXXckXVXXXXXXXXXX-250-220.jpg", - "url": "https://chaoshi.m.tmall.com/" - }], - "thirdStarBannerItems": [{ - "img": "https://gw.alicdn.com/tps/TB1xlIVLVXXXXckXVXXXXXXXXXX-250-220.jpg", - "url": "https://chaoshi.m.tmall.com/" - }, { - "img": "https://gw.alicdn.com/tps/TB1xlIVLVXXXXckXVXXXXXXXXXX-250-220.jpg", - "url": "https://chaoshi.m.tmall.com/" - }] - }, - "goods": { - "isHide": false, - "floorTitle": "https://gw.alicdn.com/tps/TB1._64LVXXXXatXVXXXXXXXXXX-750-100.jpg", - "bannerItems": [{ - "img1": "https://gw.alicdn.com/tps/TB1TUzGLVXXXXc1XFXXXXXXXXXX-250-296.jpg", - "url1": "https://chaoshi.m.tmall.com/", - "img2": "https://gw.alicdn.com/tps/TB1TUzGLVXXXXc1XFXXXXXXXXXX-250-296.jpg", - "url2": "https://chaoshi.m.tmall.com/", - "img3": "https://gw.alicdn.com/tps/TB12MPFLVXXXXXnXVXXXXXXXXXX-250-592.jpg", - "url3": "https://chaoshi.m.tmall.com/", - "img4": "https://gw.alicdn.com/tps/TB1TUzGLVXXXXc1XFXXXXXXXXXX-250-296.jpg", - "url4": "https://chaoshi.m.tmall.com/", - "img5": "https://gw.alicdn.com/tps/TB1TUzGLVXXXXc1XFXXXXXXXXXX-250-296.jpg", - "url5": "https://chaoshi.m.tmall.com/" - }, { - "img1": "https://gw.alicdn.com/tps/TB1TUzGLVXXXXc1XFXXXXXXXXXX-250-296.jpg", - "url1": "https://chaoshi.m.tmall.com/", - "img2": "https://gw.alicdn.com/tps/TB1TUzGLVXXXXc1XFXXXXXXXXXX-250-296.jpg", - "url2": "https://chaoshi.m.tmall.com/", - "img3": "https://gw.alicdn.com/tps/TB12MPFLVXXXXXnXVXXXXXXXXXX-250-592.jpg", - "url3": "https://chaoshi.m.tmall.com/", - "img4": "https://gw.alicdn.com/tps/TB1TUzGLVXXXXc1XFXXXXXXXXXX-250-296.jpg", - "url4": "https://chaoshi.m.tmall.com/", - "img5": "https://gw.alicdn.com/tps/TB1TUzGLVXXXXc1XFXXXXXXXXXX-250-296.jpg", - "url5": "https://chaoshi.m.tmall.com/" - }] - }, - "coupon": { - "floorTitle": "https://gw.alicdn.com/tps/TB1._64LVXXXXatXVXXXXXXXXXX-750-100.jpg" - }, - "scene": { - "floorTitle": "https://gw.alicdn.com/tps/TB1._64LVXXXXatXVXXXXXXXXXX-750-100.jpg", - "_backup": { - "id": "03653", - "data": [{ - "id": "1395", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1395&scm=1003.1.03653.MAIN_1395_710531&pos=1", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i2/TB1n6bVLVXXXXcCXVXXTCU0QpXX-300-300.jpg", - "sceneCat": "50008881,50008883,50008882,50008884,50012774,50012775,50012776,50012781,50008886,50012766,50012771,50012772,50010850,50000671,162201,50022566,50007068,50026651,50000852,162104,162116,162205,1623,123216004,162404,162401,50011412,50011411,16240,50012773,50006846,50010394,50008888,50008890,50008889,50012784,50012785,50012786,50012787,50008885,50012777,50012778,124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,50011740,50006843,50006842,124942005,50010368,50011892,50011894,50023751,121366037,121458036,121392038,121420035,121364028,121468026,121400029,121418030,121478031,121480030,121366035,121424025,121426030,121484030,121412031,125054002,125074007,125074008,125104003,125080003,125024006,125080004,121400030,121424024,121482025,121418031,121402028,121388035", - "finalScore": "77.26011111111112", - "_pos_": 1, - "entityType": "MAIN", - "benefitImg": "//img.alicdn.com/tps/i3/TB1Onr9LVXXXXbiXpXXB8gAQpXX-300-100.png" - }, { - "id": "1394", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1394&scm=1003.1.03653.MAIN_1394_710531&pos=2", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i1/TB13mj1LVXXXXa.XFXXTCU0QpXX-300-300.jpg", - "sceneCat": "50010850,50000671,162201,50022566,50007068,50026651,50000852,162104,162116,162205,1623,123216004,162404,162401,50011412,50011411,162402,50008903,50011413,162403,50000697,1629,50011277,121412004,50008897,50008901,50008899,50013194,50008904,50008905,50008898,162103,50008900,50013196,121434004,50005065,162702,162701,162703,1636,124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,50011740,50006843,50006842,124986002,50010368, 50011892,50011894,121480030,121366035,121424025,121426030,121484030,121412031", - "finalScore": "77.06103999999999", - "_pos_": 2, - "entityType": "MAIN", - "benefitImg": "//img.alicdn.com/tps/i2/TB17kvVLVXXXXaTXVXXB8gAQpXX-300-100.png" - }, { - "id": "1396", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1396&scm=1003.1.03653.MAIN_1396_710531&pos=3", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i2/TB1ZOAXLVXXXXa0XXXXTCU0QpXX-300-300.jpg", - "sceneCat": "50010368,50011892,50011894,50013794,50010792,50010790,50010790,121434025,121396024,50010793,50010789,50010793,121386035,121392037,121458034,121392036,121482027,121392015,121368014,121418013,121392016,50011982,122690003,302910,50012010,122654005,50012019,50012825,50012027,50012042,50011744,50012906,50012907,50008881,50008883,50008882?,50012784?,50022889,50022728,50013228,50013896,50014775,50019578,50014822,50026394,50019694,50019279,50019272,50014079,50014078,50014076,50014077,50017238,121464011,121468014,50019130,50019127,50019126,50019128,50019125,50015984,50014803,50014802,50015980,50014788,50014787,50019526,50014791,50019520,50013932,50014677,50015978,50014786,50014785,50522001,50014493,50023100,121418021,121388027,121424021,121418020,121368020,50012036,50012044,50012043,50010368, 50011892, 50019274,50012044,50012048,50012043,50013228,50013238,50011726,50019279,50015984,50014803,50014802,50019526,50014791,50019520,50013932,50014677,50019526,50013314,50023341,50016752,50016749,50016747,50016744,50016741,50016740,50016739,50016738,50016737,50016769,50016763,50016750,50007003,302910,50012010,50012032,50012033,50011745,50011746,50011894,121458034,121756003,121426033,50011982,50011979,121390006,124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,50010850,50000671,162201,50022566,50007068,50026651,50000852,162104,162116,162205,1623,123216004,162404,162401,50011412,50011411,162402,50008903,50011413,162403,50000697,1629,50011277,121412004,50008897,50008901,50008899,50013194,50008904,50008905,50008898,162103,50008900,50013196,121434004,50005065,162702,162701,162703,1636,1512,123534001,14,50008090,50012341,50132002,50012342,50012343,50012345,50012346,50013189,50010527,121394006,50013618,50010537,50012424,121452038,121484044,50010540,50010548,50024769,121450007,50013697,50010218,50005960,50005962,50012820,50012406,50023620,50023605,50008829,50024064,50023440,50008687,124392001,50023771,50006804,50012410,124482010,121398023,50023789,50011975", - "finalScore": "76.76379487179486", - "_pos_": 3, - "entityType": "MAIN", - "benefitImg": "//img.alicdn.com/tps/i3/TB1Usn.LVXXXXaoXpXXB8gAQpXX-300-100.png" - }, { - "id": "1619", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1619&scm=1003.1.03653.SUB_1619_710531&pos=4", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i2/TB1MpoBLVXXXXbxXpXXKofZZpXX-182-206.jpg", - "sceneCat": "124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,122654005,50011740,50009032,124688012,213202,121396029,121476023,121410029,213203,50023326,213205,50022686,50023293,50466023,50024999,50016885,50011894", - "finalScore": "75.88480000000001", - "_pos_": 4, - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i4/TB1j0AxLVXXXXaRXFXX3bpXTXXX-170-100.png" - }, { - "id": "1612", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1612&scm=1003.1.03653.SUB_1612_710531&pos=5", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i3/TB1NNwyLVXXXXaEXVXXKofZZpXX-182-206.jpg", - "sceneCat": "50010850,50000671,162104,162116,123216004", - "finalScore": "75.23733333333334", - "_pos_": 5, - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i1/TB1PsoBLVXXXXbQXpXX3bpXTXXX-170-100.png" - }, { - "id": "1610", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1610&scm=1003.1.03653.SUB_1610_710531&pos=6", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i4/TB1EkczLVXXXXcVXpXXKofZZpXX-182-206.jpg", - "sceneCat": "121484044,121452038,50012342,50012027,50012032,50006843,50010850,50000671,162104,1623,50011277,162116,123216004,50008898,121366037,121458036,121392038,121420035,121364028,121468026,121472031,121476036,121470042,121418032,121410036,121472032,121420032,121470040,121384032,121460028,121448028,121400030,121424024,121482025,121418031,121402028,121388035,121460029,121400028,121400029,121418030,121476034,121478031,121448029,121480030,121366035,121424025,121426030,121484030,121412031,121384033,121424023,121402027,121408039,121420033,121452028,121466040,121416029,121482028,121420034,121396046,121422052,121370037,121424031,21364043,121472040,121412045,121424032,125054002,125074007,125074008,125104003,125080003,125024006,125080004", - "finalScore": "75.00533333333334", - "_pos_": 6, - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i2/TB1RzwFLVXXXXXsXpXX3bpXTXXX-170-100.png" - }, { - "id": "1620", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1620&scm=1003.1.03653.SUB_1620_710531&pos=7", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i1/TB1IJsILVXXXXbGXXXXKofZZpXX-182-206.jpg", - "sceneCat": "50010789,50010790,50010792,50010793,50010794,50010796,50010797,50010798,50010801,50010803,50010805,50010807,50010808,50010813,50010814,50010815,50013794,121382014,121386023,121388007,121388008,121398004,121364007,121398006,121410007,121426007,121452004,50012010,50012027,50012032,124688012, 124986002, 124942005,50010850,50000671,162104,162201,50022566,162116,1623,50011277,50008897,162401,162402", - "finalScore": "74.72522222222223", - "_pos_": 7, - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i1/TB16A.yLVXXXXX8XFXX3bpXTXXX-170-100.png" - }, { - "id": "1608", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1608&scm=1003.1.03653.SUB_1608_710531&pos=8", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i3/TB1xA3jLVXXXXXqapXXKofZZpXX-182-206.jpg", - "sceneCat": "50012010,50012027,50012032,50007003,50008881,50008883,1623,162116,50010850,123216004", - "finalScore": "74.626", - "_pos_": 8, - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i2/TB1WvoALVXXXXcdXpXX3bpXTXXX-170-100.png" - }, { - "id": "1615", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1615&scm=1003.1.03653.SUB_1615_710531&pos=9", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i1/TB1PVctLVXXXXchXFXXKofZZpXX-182-206.jpg", - "sceneCat": "50011978,50011979,50011980,50011993,50011996,50011997,121390006,121408011,121474010,50010789,50010790,50010792,50010793,50010803,50013794,121398004,121410007,213205,121470030,50024980,121408030", - "finalScore": "74.02799999999999", - "_pos_": 9, - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i4/TB1yKwBLVXXXXa4XpXX3bpXTXXX-170-100.png" - }, { - "id": "1618", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1618&scm=1003.1.03653.SUB_1618_710531&pos=10", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i1/TB1vn3sLVXXXXX5XVXXKofZZpXX-182-206.jpg", - "sceneCat": "50008886,50012766,50012771,50012772,50012773,50008090,111219,50012100,50012082,50012478,50012475,213202,50018977,121396029,121476023,50018994,121410029,213203,50023326,50003820,213205,50022686,50012481,50013976?,50001871,122854005,121458010,121452006,121416008,50008779,50002777,121394007,121386009,50010825,50013810,121434010,50001865,50008565,50008246,50017192,121404045,121368009,121462014,50019372,50008248,121418011,50008249,50017193,50008252,50008251,50000512,121364047", - "finalScore": "73.94212121212121", - "_pos_": 10, - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i4/TB1kSkpLVXXXXbTXVXX3bpXTXXX-170-100.png" - }, { - "id": "1617", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.710531&aldid=TPMkJDIw&wh_id=1617&scm=1003.1.03653.SUB_1617_710531&pos=11", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i1/TB1ELwrLVXXXXaNXVXXKofZZpXX-182-206.jpg", - "sceneCat": "50013189,50010527,121394006,50013618,50010537,50012424,121452038,121484044,50010540,50010548,50024769,50012341,50132002,50012342,50012343,50012345,50012346,50012341,50132002,50012342,50012343,50012345,50012346", - "finalScore": "73.78883333333334", - "_pos_": 11, - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i3/TB1CtsuLVXXXXcJXFXX3bpXTXXX-170-100.png" - }], - "exposureParam": "//ac.mmstat.com/1.gif?apply=vote&abbucket=_AB-M1001_B5&com=02&acm=03653.1003.1.710531&cod=03653&cache=jWl8FJsb&aldid=TPMkJDIw&logtype=4&abtest=_AB-LR1001-PR1001&scm=1003.1.03653.710531&ip=42.120.74.104", - "serverTime": 1458296110334 - } - }, - "resource": { - "isHide": false, - "bigBannerImg": "https://gw.alicdn.com/tps/TB1tO.aLVXXXXcvXpXXXXXXXXXX-750-262.jpg", - "bigBannerUrl": "https://chaoshi.m.tmall.com/", - "smallBannerItems": [{ - "img": "https://img.alicdn.com/tps/TB1Ff_0LVXXXXXNaXXXXXXXXXXX-375-262.jpg", - "url": "https://chaoshi.m.tmall.com/" - }, { - "img": "https://img.alicdn.com/tps/TB1Ff_0LVXXXXXNaXXXXXXXXXXX-375-262.jpg", - "url": "https://chaoshi.m.tmall.com/" - }] - }, - "category": { - "floorTitle": "https://gw.alicdn.com/tps/TB1._64LVXXXXatXVXXXXXXXXXX-750-100.jpg", - "_backup": { - "main": [], - "sub": [{ - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/dqc?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_15_735362&pos=1", - "entityType": "OTHER", - "colour": "b4ebff", - "industryTitle": "数码", - "_pos_": 1, - "industryBenefit": "疯抢大牌新品", - "industryId": "15", - "industryImg": "//img.alicdn.com/tps/i4/TB1_xG.LVXXXXbWaXXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/xihu?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_13_735362&pos=2", - "entityType": "OTHER", - "colour": "cdffa4", - "industryTitle": "洗护", - "_pos_": 2, - "industryBenefit": "爆款1分钱抢", - "industryId": "13", - "industryImg": "//img.alicdn.com/tps/i3/TB1Ft_CLVXXXXX2XXXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/mobilephone?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_14_735362&pos=3", - "entityType": "OTHER", - "colour": "c5ffdf", - "industryTitle": "手机", - "_pos_": 3, - "industryBenefit": "1元抢优惠券", - "industryId": "14", - "industryImg": "//img.alicdn.com/tps/i3/TB1mJjuLVXXXXc.XXXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/xiangbaohuanxin?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_11_735362&pos=4", - "entityType": "OTHER", - "colour": "ffccdc", - "industryTitle": "箱包", - "_pos_": 4, - "industryBenefit": "极致焕新尖货", - "industryId": "11", - "industryImg": "//img.alicdn.com/tps/i2/TB1_5P9KVXXXXayaXXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/newfood?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_12_735362&pos=5", - "entityType": "OTHER", - "colour": "fff5a3", - "industryTitle": "食品", - "_pos_": 5, - "industryBenefit": "新品1分试吃", - "industryId": "12", - "industryImg": "//img.alicdn.com/tps/i2/TB1HfLzLVXXXXb_XXXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/zbps?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_3_735362&pos=6", - "entityType": "OTHER", - "colour": "bbffe5", - "industryTitle": "珠宝配饰", - "_pos_": 6, - "industryBenefit": "大牌1折秒杀", - "industryId": "3", - "industryImg": "//img.alicdn.com/tps/i1/TB1s5y.LVXXXXb.aXXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/getbeauty?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_2_735362&pos=7", - "entityType": "OTHER", - "colour": "ffd1b6", - "industryTitle": "美妆", - "_pos_": 7, - "industryBenefit": "即刻预约美丽", - "industryId": "2", - "industryImg": "//img.alicdn.com/tps/i1/TB1lNvoLVXXXXaoXFXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/guojixfs?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_1_735362&pos=8", - "entityType": "OTHER", - "colour": "b9eaf2", - "industryTitle": "天猫国际", - "_pos_": 8, - "industryBenefit": "唤醒全球潮流", - "industryId": "1", - "industryImg": "//img.alicdn.com/tps/i4/TB1JHbkLVXXXXblXFXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/newnv?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_10_735362&pos=9", - "entityType": "OTHER", - "colour": "fff8ee", - "industryTitle": "鞋履", - "_pos_": 9, - "industryBenefit": "潮品精选鞋履", - "industryId": "10", - "industryImg": "//img.alicdn.com/tps/i2/TB1RovwLVXXXXXnXpXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/nvzhuang?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_7_735362&pos=10", - "entityType": "OTHER", - "colour": "d5cbe8", - "industryTitle": "女装", - "_pos_": 10, - "industryBenefit": "折后用券抢新", - "industryId": "7", - "industryImg": "//img.alicdn.com/tps/i1/TB1BOncLVXXXXXSaXXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/man?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_6_735362&pos=11", - "entityType": "OTHER", - "colour": "cbe9a9", - "industryTitle": "男装", - "_pos_": 11, - "industryBenefit": "新品低至9.9元", - "industryId": "6", - "industryImg": "//img.alicdn.com/tps/i4/TB1t9TmLVXXXXbkXFXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/myxfs?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_5_735362&pos=12", - "entityType": "OTHER", - "colour": "f8e1ff", - "industryTitle": "母婴童装", - "_pos_": 12, - "industryBenefit": "跨店满299减40", - "industryId": "5", - "industryImg": "//img.alicdn.com/tps/i3/TB1kpziLVXXXXabXVXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/jfjs?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_4_735362&pos=13", - "entityType": "OTHER", - "colour": "bbffe5", - "industryTitle": "家纺家饰", - "_pos_": 13, - "industryBenefit": "全场低至9.9元", - "industryId": "4", - "industryImg": "//img.alicdn.com/tps/i1/TB1lUjzLVXXXXbAXXXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/neiyi328?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_9_735362&pos=14", - "entityType": "OTHER", - "colour": "ffc7c9", - "industryTitle": "内衣", - "_pos_": 14, - "industryBenefit": "新品3折起", - "industryId": "9", - "industryImg": "//img.alicdn.com/tps/i1/TB1S7PuLVXXXXcVXXXXrdvGIFXX-248-155.jpg" - }, { - "finalScore": 0, - "industryUrl": "//pages.tmall.com/wow/act/15617/ydhw?abbucket=_AB-M1011_B5&acm=03654.1003.1.735362&aldid=e5zPEI6R&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_8_735362&pos=15", - "entityType": "OTHER", - "colour": "cbdbfe", - "industryTitle": "运动户外", - "_pos_": 15, - "industryBenefit": "大牌新品抢券", - "industryId": "8", - "industryImg": "//img.alicdn.com/tps/i2/TB1mQDALVXXXXbdXXXXrdvGIFXX-248-155.jpg" - }], - "isFormal": false, - "exposureParam": "//ac.mmstat.com/1.gif?apply=vote&abbucket=_AB-M1011_B5&com=02&acm=03654.1003.1.735362&cod=03654&cache=CG5ZB02B&aldid=e5zPEI6R&logtype=4&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.735362&ip=42.120.74.159", - "id": "03654" - } - }, - "brand": { - "floorTitle": "https://gw.alicdn.com/tps/TB1._64LVXXXXatXVXXXXXXXXXX-750-100.jpg", - "bannerItems": [{ - "leftImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }, { - "leftImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }, { - "leftImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }, { - "leftImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }, { - "leftImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }, { - "leftImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }, { - "leftImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }, { - "leftImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }, { - "leftImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }] - }, - "match": { - "floorTitle": "https://gw.alicdn.com/tps/TB1._64LVXXXXatXVXXXXXXXXXX-750-100.jpg", - "isShowTmSpecBanner": true, - "tmSpecBanner": { - "img": "https://gw.alicdn.com/tps/TB1F2fJLVXXXXccXFXXXXXXXXXX-750-230.jpg", - "url": "https://chaoshi.m.tmall.com/" - }, - "bannerItems": [{ - "leftImg": "https://gw.alicdn.com/tps/TB1OUnILVXXXXcoXFXXXXXXXXXX-374-416.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1OUnILVXXXXcoXFXXXXXXXXXX-374-416.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }, { - "leftImg": "https://gw.alicdn.com/tps/TB1OUnILVXXXXcoXFXXXXXXXXXX-374-416.jpg", - "leftUrl": "https://chaoshi.m.tmall.com/", - "rightImg": "https://gw.alicdn.com/tps/TB1OUnILVXXXXcoXFXXXXXXXXXX-374-416.jpg", - "rightUrl": "https://chaoshi.m.tmall.com/" - }] - } - }; - this.simLoadingData(this.cnt++); - }, - methods: { - handleRefresh: function handleRefresh(e) { - var vm = this; - vm.displayRefresh = 'show'; - if (timer) { - timer.setTimeout(function () { - vm.displayRefresh = 'hide'; - }, 2000); - } else { - modal.alert({ - message: 'refreshing.' - }, function () { - vm.displayRefresh = 'hide'; - }); - } - }, - handleLoading: function handleLoading(e) { - var vm = this; - vm.displayLoading = 'show'; - modal.toast({ - message: 'loading.' - }); - if (timer) { - timer.setTimeout(function () { - vm.simLoadingData(vm.cnt++); - vm.displayLoading = 'hide'; - }, 2000); - } else { - vm.simLoadingData(vm.cnt++); - vm.displayLoading = 'hide'; - } - }, - simLoadingData: function simLoadingData(num) { - if (num >= 3) { - modal.toast({ - message: '已到底部' - }); - return; - } - this['show' + num] = true; - } - } - }; - -/***/ }, - -/***/ 499: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(500) - ) - - /* script */ - __vue_exports__ = __webpack_require__(501) - - /* template */ - var __vue_template__ = __webpack_require__(511) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/showcase/include/headlines.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 500: -/***/ function(module, exports) { - - module.exports = { - "banner": { - "width": 750, - "height": 782 - }, - "share-container": { - "position": "absolute", - "right": 100, - "top": 15, - "zIndex": 100, - "fontSize": 20, - "color": "#ffffff", - "backgroundColor": "#000000", - "borderRadius": 17, - "width": 110, - "height": 35, - "justifyContent": "center", - "alignItems": "center" - }, - "rule-container": { - "position": "absolute", - "right": 22, - "top": 15, - "zIndex": 100, - "fontSize": 20, - "color": "#ffffff", - "backgroundColor": "#000000", - "borderRadius": 17, - "width": 70, - "height": 35, - "justifyContent": "center" - }, - "announce": { - "backgroundColor": "#f5f3f4", - "width": 716, - "height": 286, - "position": "absolute", - "bottom": 17, - "left": 17, - "borderRadius": 5 - }, - "announce-hd": { - "width": 700, - "height": 90, - "marginTop": 8, - "marginBottom": 8, - "marginLeft": 5, - "marginRight": 5 - } - } - -/***/ }, - -/***/ 501: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - components: { - link: __webpack_require__(502), - banners: __webpack_require__(505) - }, - props: { - ds: { - default: function _default() { - return {}; - } - } - }, - data: function data() { - return { - NUMBER_233: 233, - NUMBER_172: 172, - NUMBER_3: 3 - }; - } - }; - -/***/ }, - -/***/ 502: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* script */ - __vue_exports__ = __webpack_require__(503) - - /* template */ - var __vue_template__ = __webpack_require__(504) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/showcase/include/link.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 503: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - - var modal = __weex_require_module__('modal'); - module.exports = { - props: ['text', 'href'], - methods: { - clickHandler: function clickHandler() { - modal.toast({ - message: 'click', - duration: 1 - }); - } - } - }; - -/***/ }, - -/***/ 504: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('text', { - on: { - "click": _vm.clickHandler - } - }, [_vm._s(_vm.text)]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 505: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* script */ - __vue_exports__ = __webpack_require__(506) - - /* template */ - var __vue_template__ = __webpack_require__(510) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/showcase/include/banners.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 506: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - components: { - banner: __webpack_require__(507) - }, - props: ['ds', 'width', 'height', 'space', 'direction'] - }; - -/***/ }, - -/***/ 507: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* script */ - __vue_exports__ = __webpack_require__(508) - - /* template */ - var __vue_template__ = __webpack_require__(509) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/showcase/include/banner.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 508: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - - var modal = __weex_require_module__('modal'); - module.exports = { - props: ['width', 'height', 'src', 'href'], - data: function data() { - return { - quality: 'normal' - }; - }, - methods: { - clickHandler: function clickHandler() { - modal.toast({ - message: 'click', - duration: 1 - }); - } - } - }; - -/***/ }, - -/***/ 509: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('image', { - style: { - width: _vm.width, - height: _vm.height - }, - attrs: { - "src": _vm.src, - "image-quality": _vm.quality - }, - on: { - "click": _vm.clickHandler - } - }) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 510: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [(_vm.direction === 'row') ? _h('div', { - staticStyle: { - flexDirection: "row" - } - }, [_vm._l((_vm.ds), function(i, item) { - return _h('div', { - style: { - width: _vm.width, - height: _vm.height, - marginLeft: (i % _vm.ds.length ? _vm.space : 0) - } - }, [_h('banner', { - attrs: { - "width": _vm.width, - "height": _vm.height, - "src": item.img, - "href": item.url - } - })]) - })]) : _vm._e(), (_vm.direction === 'column') ? _h('div', [_vm._l((_vm.ds), function(i, item) { - return _h('div', { - style: { - width: _vm.width, - height: _vm.height, - marginTop: (i % _vm.ds.length ? _vm.space : 0) - } - }, [_h('banner', { - attrs: { - "width": _vm.width, - "height": _vm.height, - "src": item.img, - "href": item.url - } - })]) - })]) : _vm._e()]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 511: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticClass: ["container"] - }, [_h('image', { - staticClass: ["banner"], - attrs: { - "src": _vm.ds.topBanner - } - }), _h('div', { - staticClass: ["rule-container"] - }, [_h('link', { - staticStyle: { - fontSize: "22px", - color: "#ffffff", - textAlign: "center" - }, - attrs: { - "text": "帮助", - "href": _vm.ds.ruleLink - } - })]), _h('div', { - staticClass: ["announce"] - }, [_h('image', { - staticClass: ["announce-hd"], - attrs: { - "src": _vm.ds.announceHdBanner - } - }), _h('banners', { - staticStyle: { - marginLeft: "6", - marginRight: "6" - }, - attrs: { - "ds": _vm.ds.bannerItems, - "direction": "row", - "width": _vm.NUMBER_233, - "height": _vm.NUMBER_172, - "space": _vm.NUMBER_3 - } - })])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 512: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(513) - ) - - /* script */ - __vue_exports__ = __webpack_require__(514) - - /* template */ - var __vue_template__ = __webpack_require__(515) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/showcase/include/category.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 513: -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "shop-list": { - "flexDirection": "row" - }, - "shop-img-container": { - "marginRight": 2 - }, - "sub-item": { - "position": "absolute", - "width": 248, - "height": 241, - "alignItems": "center", - "backgroundColor": "#ffffff" - }, - "sub-item-bg": { - "width": 248, - "height": 86 - }, - "sub-item-title": { - "position": "absolute", - "left": 0, - "top": 0, - "width": 248, - "textAlign": "center" - }, - "industry-title": { - "fontSize": 28, - "color": "#484848", - "textAlign": "center", - "marginTop": 10, - "height": 34 - }, - "industry-benefit": { - "fontSize": 24, - "color": "#999999", - "textAlign": "center" - } - } - -/***/ }, - -/***/ 514: -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var demoContent = { - "main": [{ - "shopList": [{ - "id": "619123122", - "picUrl": "//img.alicdn.com/tps/i1/TB1Cl5MLVXXXXXTaXXXSutbFXXX.jpg", - "finalScore": "0.884765209440857", - "shopUrl": "http://liangpinpuzi.tmall.com/campaign-3735-7.htm", - "entityType": "SHOP", - "brandId": "7724367" - }, { - "id": "880734502", - "picUrl": "//img.alicdn.com/tps/i1/TB1HN2XLVXXXXbkXFXXSutbFXXX.jpg", - "finalScore": "0.8822246866512714", - "shopUrl": "http://sanzhisongshu.tmall.com/campaign-3735-7.htm", - "entityType": "SHOP", - "brandId": "147280915" - }, { - "id": "392147177", - "picUrl": "//img.alicdn.com/tps/i1/TB1yq6dLVXXXXbXXpXXSutbFXXX.jpg", - "finalScore": "0.8805854724243631", - "shopUrl": "http://zhouheiya.tmall.com/campaign-3735-6.htm", - "entityType": "SHOP", - "brandId": "111496" - }, { - "id": "2081058060", - "picUrl": "//img.alicdn.com/tps/i1/TB1w4jxLVXXXXaxXXXXtKXbFXXX.gif", - "finalScore": "0.8640439551049249", - "shopUrl": "http://rongxintang.tmall.com/campaign-3735-6.htm", - "entityType": "SHOP", - "brandId": "8709890" - }], - "finalScore": "4.657333333333334", - "industryUrl": null, - "entityType": "OTHER", - "colour": "#fff5a3", - "industryTitle": null, - "bannerUrl": "//pages.tmall.com/wow/act/15617/newfood?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_12_735362&pos=1", - "leftBannerImg": "http://img.alicdn.com/tps/i1/TB1LHh4MXXXXXbsXpXXeWjm2pXX-750-240.jpg", - "_pos_": "1", - "industryBenefit": null, - "industryId": "12", - "industryImg": null, - "rightBannerImg": "//img.alicdn.com/tps/i4/TB1wshUMXXXXXXaXVXXeWjm2pXX-750-240.jpg" - }, { - "shopList": [{ - "id": "520557274", - "picUrl": "//img.alicdn.com/tps/i1/TB1aMjXLVXXXXbUaXXXSutbFXXX.jpg", - "finalScore": "0.8986382989845325", - "shopUrl": "http://newbalance.tmall.com/campaign-3735-20.htm", - "entityType": "SHOP", - "brandId": "20584" - }, { - "id": "746866993", - "picUrl": "//img.alicdn.com/tps/i1/TB1pXG9LVXXXXaLXFXXSutbFXXX.jpg", - "finalScore": "0.8917855242977327", - "shopUrl": "http://vans.tmall.com/campaign-3735-19.htm", - "entityType": "SHOP", - "brandId": "29529" - }, { - "id": "1612713147", - "picUrl": "//img.alicdn.com/tps/i1/TB1jHfXLVXXXXXPXFXXSutbFXXX.jpg", - "finalScore": "0.8895943606442631", - "shopUrl": "http://dcshoecousa.tmall.com/campaign-3735-8.htm", - "entityType": "SHOP", - "brandId": "3851662" - }, { - "id": "2379251418", - "picUrl": "//img.alicdn.com/tps/i1/TB1sbLlLVXXXXbeXXXXSutbFXXX.jpg", - "finalScore": "0.8881539668874383", - "shopUrl": "http://baijinydhw.tmall.com/campaign-3735-2.htm", - "entityType": "SHOP", - "brandId": "20579" - }], - "finalScore": "4.545333333333334", - "industryUrl": null, - "entityType": "OTHER", - "colour": "#cbdbfe", - "industryTitle": null, - "bannerUrl": "//pages.tmall.com/wow/act/15617/ydhw?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_8_735362&pos=2", - "leftBannerImg": "http://img.alicdn.com/tps/i3/TB1h4kzLVXXXXawXpXXeWjm2pXX-750-240.jpg", - "_pos_": "2", - "industryBenefit": null, - "industryId": "8", - "industryImg": null, - "rightBannerImg": "//img.alicdn.com/tps/i4/TB19VMjLVXXXXaeaXXXeWjm2pXX-750-240.jpg" - }, { - "shopList": [{ - "id": "811383091", - "picUrl": "//img.alicdn.com/tps/i1/TB1q49ZLVXXXXaJXVXXSutbFXXX.jpg", - "finalScore": "0.8723682716749482", - "shopUrl": "http://tongrentangbj.tmall.com/campaign-3735-9.htm", - "entityType": "SHOP", - "brandId": "44652" - }, { - "id": "838914626", - "picUrl": "//img.alicdn.com/tps/i1/TB1GQYbLVXXXXaXXVXXSutbFXXX.jpg", - "finalScore": "0.5027131908086584", - "shopUrl": "http://jouo.tmall.com/campaign-3735-3.htm", - "entityType": "SHOP", - "brandId": "14170081" - }, { - "id": "1077716829", - "picUrl": "//img.alicdn.com/tps/i1/TB1rdW2LVXXXXagapXXSutbFXXX.jpg", - "finalScore": "0.5015387557024262", - "shopUrl": "http://wetcode.tmall.com/campaign-3735-14.htm", - "entityType": "SHOP", - "brandId": "3675642" - }, { - "id": "1664976033", - "picUrl": "//img.alicdn.com/tps/i1/TB1Q.rpLVXXXXXiXpXXSutbFXXX.jpg", - "finalScore": "0.5014897109669442", - "shopUrl": "http://hanhoohzp.tmall.com/campaign-3735-17.htm", - "entityType": "SHOP", - "brandId": "78888695" - }], - "finalScore": "4.526666666666666", - "industryUrl": null, - "entityType": "OTHER", - "colour": "#ffd1b6", - "industryTitle": null, - "bannerUrl": "//pages.tmall.com/wow/act/15617/getbeauty?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_2_735362&pos=3", - "leftBannerImg": "http://img.alicdn.com/tps/i4/TB1Djt9MXXXXXanXXXXeWjm2pXX-750-240.jpg", - "_pos_": "3", - "industryBenefit": null, - "industryId": "2", - "industryImg": null, - "rightBannerImg": "//img.alicdn.com/tps/i3/TB1_gVQMXXXXXX9XVXXeWjm2pXX-750-240.jpg" - }, { - "shopList": [{ - "id": "2153169655", - "picUrl": "//img.alicdn.com/tps/i1/TB1nlK7LVXXXXaRXFXXSutbFXXX.jpg", - "finalScore": "0.8820210808835905", - "shopUrl": "http://ctkicks.tmall.com/campaign-3735-15.htm", - "entityType": "SHOP", - "brandId": "20584" - }, { - "id": "2784101115", - "picUrl": "//img.alicdn.com/tps/i1/TB1RrS.LVXXXXcrXpXXSutbFXXX.jpg", - "finalScore": "0.5930383227012586", - "shopUrl": "http://tomtailor.tmall.com/campaign-3735-0.htm", - "entityType": "SHOP", - "brandId": "213474060" - }, { - "id": "2183813726", - "picUrl": "//img.alicdn.com/tps/i1/TB1kmS_LVXXXXaBaXXXSutbFXXX.jpg", - "finalScore": "0.5882558957771681", - "shopUrl": "http://huaiyuan.tmall.com/campaign-3735-5.htm", - "entityType": "SHOP", - "brandId": "29465" - }, { - "id": "1785908005", - "picUrl": "//img.alicdn.com/tps/i1/TB1dB6zLVXXXXcJXXXXSutbFXXX.jpg", - "finalScore": "0.5694211862124341", - "shopUrl": "http://axonus.tmall.com/campaign-3735-1.htm", - "entityType": "SHOP", - "brandId": "115035841" - }], - "finalScore": "4.413955555555555", - "industryUrl": null, - "entityType": "OTHER", - "colour": "#b9eaf2", - "industryTitle": null, - "bannerUrl": "//pages.tmall.com/wow/act/15617/guojixfs?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_1_735362&pos=4", - "leftBannerImg": "http://img.alicdn.com/tps/i3/TB1_T7ALVXXXXXOXXXXeWjm2pXX-750-240.jpg", - "_pos_": "4", - "industryBenefit": null, - "industryId": "1", - "industryImg": null, - "rightBannerImg": "//img.alicdn.com/tps/i2/TB1s7koLVXXXXafXFXXeWjm2pXX-750-240.jpg" - }, { - "shopList": [{ - "id": "2453054335", - "picUrl": "//img.alicdn.com/tps/i1/TB1RX_vLVXXXXchXpXXSutbFXXX.jpg", - "finalScore": "0.8463447899590267", - "shopUrl": "http://nanshizixing.tmall.com/campaign-3735-2.htm", - "entityType": "SHOP", - "brandId": "844502560" - }, { - "id": "1041773234", - "picUrl": "//img.alicdn.com/tps/i1/TB1Q7jpLVXXXXX8XpXXSutbFXXX.jpg", - "finalScore": "0.560952734503075", - "shopUrl": "http://dapu.tmall.com/campaign-3735-8.htm", - "entityType": "SHOP", - "brandId": "14493763" - }, { - "id": "300031438", - "picUrl": "//img.alicdn.com/tps/i1/TB13VC4LVXXXXarXVXXSutbFXXX.jpg", - "finalScore": "0.5450674634839442", - "shopUrl": "http://kangerxin.tmall.com/campaign-3735-10.htm", - "entityType": "SHOP", - "brandId": "3781905" - }, { - "id": "92042735", - "picUrl": "//img.alicdn.com/tps/i1/TB1PxYcLVXXXXasaXXXSutbFXXX.jpg", - "finalScore": "0.5448023228053981", - "shopUrl": "http://shuixing.tmall.com/campaign-3735-10.htm", - "entityType": "SHOP", - "brandId": "3685660" - }], - "finalScore": "4.13", - "industryUrl": null, - "entityType": "OTHER", - "colour": "#bbffe5", - "industryTitle": null, - "bannerUrl": "//pages.tmall.com/wow/act/15617/jfjs?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_4_735362&pos=5", - "leftBannerImg": "http://img.alicdn.com/tps/i3/TB1jeoCLVXXXXcoXXXXeWjm2pXX-750-240.jpg", - "_pos_": "5", - "industryBenefit": null, - "industryId": "4", - "industryImg": null, - "rightBannerImg": "//img.alicdn.com/tps/i4/TB1C5.fLVXXXXb3aXXXeWjm2pXX-750-240.jpg" - }, { - "shopList": [{ - "id": "822428555", - "picUrl": "//img.alicdn.com/tps/i1/TB1g46aLVXXXXcUXVXXSutbFXXX.jpg", - "finalScore": "0.9183458776971917", - "shopUrl": "http://playboyyd.tmall.com/campaign-3735-11.htm", - "entityType": "SHOP", - "brandId": "29510" - }, { - "id": "196993935", - "picUrl": "//img.alicdn.com/tps/i1/TB1pHG8LVXXXXbraXXXSutbFXXX.jpg", - "finalScore": "0.9105525246667775", - "shopUrl": "https://uniqlo.tmall.com/campaign-3735-56.htm", - "entityType": "SHOP", - "brandId": "29527" - }, { - "id": "505753958", - "picUrl": "//img.alicdn.com/tps/i1/TB1WKYyLVXXXXXHXXXXSutbFXXX.jpg", - "finalScore": "0.90750966370726", - "shopUrl": "http://bonas.tmall.com/campaign-3735-11.htm", - "entityType": "SHOP", - "brandId": "3486580" - }, { - "id": "2113823580", - "picUrl": "//img.alicdn.com/tps/i1/TB1itHkLVXXXXX9XFXXSutbFXXX.jpg", - "finalScore": "0.5900977955635289", - "shopUrl": "http://kafanya.tmall.com/campaign-3735-7.htm", - "entityType": "SHOP", - "brandId": "110684218" - }], - "finalScore": "4.088", - "industryUrl": null, - "entityType": "OTHER", - "colour": "#ffc7c9", - "industryTitle": null, - "bannerUrl": "//pages.tmall.com/wow/act/15617/neiyi328?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_9_735362&pos=6", - "leftBannerImg": "http://img.alicdn.com/tps/i1/TB1tl3tLVXXXXbbXFXXeWjm2pXX-750-240.jpg", - "_pos_": "6", - "industryBenefit": null, - "industryId": "9", - "industryImg": null, - "rightBannerImg": "//img.alicdn.com/tps/i2/TB1AkIyLVXXXXbjXpXXeWjm2pXX-750-240.jpg" - }], - "sub": [{ - "shopList": null, - "finalScore": "4.033333333333333", - "industryUrl": "//pages.tmall.com/wow/act/15617/zbps?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_3_735362&pos=7", - "entityType": "OTHER", - "colour": "#bbffe5", - "industryTitle": "珠宝配饰", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "7", - "industryBenefit": "大牌1折秒杀", - "industryId": "3", - "industryImg": "//img.alicdn.com/tps/i1/TB1s5y.LVXXXXb.aXXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "3.8773333333333335", - "industryUrl": "//pages.tmall.com/wow/act/15617/dqc?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_15_735362&pos=8", - "entityType": "OTHER", - "colour": "#b4ebff", - "industryTitle": "数码", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "8", - "industryBenefit": "疯抢大牌新品", - "industryId": "15", - "industryImg": "//img.alicdn.com/tps/i4/TB1_xG.LVXXXXbWaXXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "3.8359999999999994", - "industryUrl": "//pages.tmall.com/wow/act/15617/man?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_6_735362&pos=9", - "entityType": "OTHER", - "colour": "#cbe9a9", - "industryTitle": "男装", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "9", - "industryBenefit": "新品低至9.9元", - "industryId": "6", - "industryImg": "//img.alicdn.com/tps/i1/TB1mO2qLVXXXXXiXFXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "3.243333333333333", - "industryUrl": "//pages.tmall.com/wow/act/15617/xihu?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_13_735362&pos=10", - "entityType": "OTHER", - "colour": "#cdffa4", - "industryTitle": "洗护", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "10", - "industryBenefit": "爆款1分钱抢", - "industryId": "13", - "industryImg": "//img.alicdn.com/tps/i3/TB1Ft_CLVXXXXX2XXXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "3.1553333333333335", - "industryUrl": "//pages.tmall.com/wow/act/15617/myxfs?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_5_735362&pos=11", - "entityType": "OTHER", - "colour": "#f8e1ff", - "industryTitle": "母婴童装", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "11", - "industryBenefit": "跨店满299减40", - "industryId": "5", - "industryImg": "//img.alicdn.com/tps/i4/TB1c.HvLVXXXXXPXpXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "2.6739999999999995", - "industryUrl": "//pages.tmall.com/wow/act/15617/nvzhuang?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_7_735362&pos=12", - "entityType": "OTHER", - "colour": "#d5cbe8", - "industryTitle": "女装", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "12", - "industryBenefit": "折后用券抢新", - "industryId": "7", - "industryImg": "//img.alicdn.com/tps/i3/TB1JdfsLVXXXXbRXpXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "0.0", - "industryUrl": "//pages.tmall.com/wow/act/15617/mobilephone?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_14_735362&pos=13", - "entityType": "OTHER", - "colour": "#c5ffdf", - "industryTitle": "手机", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "13", - "industryBenefit": "1元抢优惠券", - "industryId": "14", - "industryImg": "//img.alicdn.com/tps/i4/TB1M3zhLVXXXXX4XVXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "0.0", - "industryUrl": "//pages.tmall.com/wow/act/15617/xiangbaohuanxin?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_11_735362&pos=14", - "entityType": "OTHER", - "colour": "#ffccdc", - "industryTitle": "箱包", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "14", - "industryBenefit": "极致焕新尖货", - "industryId": "11", - "industryImg": "//img.alicdn.com/tps/i3/TB1gE6kLVXXXXcrXFXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }, { - "shopList": null, - "finalScore": "0.0", - "industryUrl": "//pages.tmall.com/wow/act/15617/newnv?abbucket=_AB-M1011_B14&acm=03654.1003.1.735362&aldid=KXPpnvEH&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.OTHER_10_735362&pos=15", - "entityType": "OTHER", - "colour": "#fff8ee", - "industryTitle": "鞋履", - "bannerUrl": null, - "leftBannerImg": null, - "_pos_": "15", - "industryBenefit": "潮品精选鞋履", - "industryId": "10", - "industryImg": "//img.alicdn.com/tps/i3/TB1.qzpLVXXXXX.XFXXrdvGIFXX-248-155.jpg", - "rightBannerImg": null - }], - "isFormal": "false", - "exposureParam": "//ac.mmstat.com/1.gif?apply=vote&abbucket=_AB-M1011_B14&com=02&acm=03654.1003.1.735362&cod=03654&cache=U5revsTn&aldid=KXPpnvEH&logtype=4&abtest=_AB-LR1011-PR1011&scm=1003.1.03654.735362&ip=", - "id": "03654" - }; - - module.exports = { - components: { - banner: __webpack_require__(507) - }, - props: { - ds: { - default: function _default() { - return {}; - } - } - }, - data: function data() { - return { - NUMBER_248: 248, - NUMBER_155: 155, - NUMBER_373: 373, - NUMBER_237: 237, - NUMBER_186: 186, - NUMBER_208: 208, - NUMBER_750: 750, - subItemBg: '//gw.alicdn.com/tps/TB1QzUfLVXXXXaOXVXXXXXXXXXX-248-86.jpg', - items: [], - subItems: [] - }; - }, - created: function created() { - this.initData(demoContent); - }, - methods: { - getSubItemTop: function getSubItemTop(i) { - return (i - i % 3) / 3 * (241 + 3); - }, - getSubItemLeft: function getSubItemLeft(i) { - return i % 3 * (248 + 3); - }, - initData: function initData(content) { - this.items = content.main; - this.subItems = content.sub; - } - } - }; - -/***/ }, - -/***/ 515: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [(_vm.ds.floorTitle) ? _h('image', { - staticClass: ["title"], - attrs: { - "src": _vm.ds.floorTitle - } - }) : _vm._e(), _h('div', { - staticClass: ["item-container"] - }, [_vm._l((_vm.items), function(i, item) { - return _h('div', { - style: { - width: 750, - paddingBottom: 14, - backgroundColor: item.colour - } - }, [_h('div', [_h('banner', { - attrs: { - "width": _vm.NUMBER_750, - "height": _vm.NUMBER_237, - "src": i % 2 === 0 ? item.leftBannerImg : item.rightBannerImg, - "href": item.bannerUrl - } - })]), _h('div', { - staticClass: ["shop-list"] - }, [_vm._l((item.shopList), function(shop) { - return _h('div', { - staticClass: ["shop-img-container"] - }, [_h('banner', { - attrs: { - "width": _vm.NUMBER_186, - "height": _vm.NUMBER_208, - "src": shop.picUrl, - "href": shop.shopUrl - } - })]) - })])]) - })]), _h('div', { - staticClass: ["sub-item-container"], - style: { - height: Math.round(_vm.subItems.length / 3) * (241 + 3) - } - }, [_vm._l((_vm.subItems), function(i, item) { - return _h('div', { - staticClass: ["sub-item"], - style: { - top: _vm.getSubItemTop(i), - left: _vm.getSubItemLeft(i) - } - }, [_h('image', { - staticClass: ["sub-item-bg"], - attrs: { - "src": _vm.subItemBg - } - }), _h('div', { - staticClass: ["sub-item-img"] - }, [_h('banner', { - attrs: { - "width": _vm.NUMBER_248, - "height": _vm.NUMBER_155, - "src": item.industryImg, - "href": item.industryUrl - } - })]), _h('div', { - staticClass: ["sub-item-title"] - }, [_h('text', { - staticClass: ["industry-title"], - attrs: { - "href": item.industryUrl - } - }, [_vm._s(item.industryTitle)]), _h('text', { - staticClass: ["industry-benefit"], - attrs: { - "href": item.industryUrl - } - }, [_vm._s(item.industryBenefit)])])]) - })])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 516: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(517) - ) - - /* script */ - __vue_exports__ = __webpack_require__(518) - - /* template */ - var __vue_template__ = __webpack_require__(519) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/showcase/include/coupon.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 517: -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "wrapper": { - "color": "#FF4550", - "width": 750, - "height": 230 - }, - "my-coupon": { - "width": 180, - "height": 39, - "position": "absolute", - "top": 15, - "right": 149 - }, - "guides": { - "height": 39, - "width": 110, - "position": "absolute", - "top": 15, - "right": 32 - }, - "lottery": { - "width": 348, - "height": 76, - "position": "absolute", - "top": 132, - "right": 70 - }, - "info": { - "fontSize": 18, - "position": "absolute", - "top": 84, - "right": 70 - }, - "img": { - "width": 750, - "height": 230 - } - } - -/***/ }, - -/***/ 518: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var modal = __weex_require_module__('modal'); - module.exports = { - props: { - ds: { - default: function _default() { - return {}; - } - } - }, - data: function data() { - return { - currentStatus: '//img.alicdn.com/tps/i4/TB1cYBKMXXXXXayaXXXkxHk2pXX-750-228.jpg_q75.jpg' - }; - }, - methods: { - handleClick: function handleClick(e) { - modal.toast({ - message: 'click', - duration: 1 - }); - } - } - }; - -/***/ }, - -/***/ 519: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [(_vm.ds.floorTitle) ? _h('image', { - staticClass: ["title"], - attrs: { - "src": _vm.ds.floorTitle - } - }) : _vm._e(), _h('div', { - staticClass: ["wrapper"] - }, [_h('image', { - staticClass: ["img"], - attrs: { - "src": _vm.currentStatus - } - }), _h('div', { - staticClass: ["my-coupon"], - on: { - "click": _vm.handleClick - } - }), _h('div', { - staticClass: ["guides"], - on: { - "click": _vm.handleClick - } - }), _h('div', { - staticClass: ["lottery"], - on: { - "click": _vm.handleClick - } - })])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 520: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(521) - ) - - /* script */ - __vue_exports__ = __webpack_require__(522) - - /* template */ - var __vue_template__ = __webpack_require__(523) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/showcase/include/goods.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 521: -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "slider": { - "height": 652 - }, - "pannel": { - "width": 750, - "height": 592, - "flexDirection": "row" - }, - "middle-col": { - "marginLeft": 4, - "marginRight": 4, - "width": 240, - "height": 588 - } - } - -/***/ }, - -/***/ 522: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - components: { - banner: __webpack_require__(507) - }, - props: { - ds: { - default: function _default() { - return {}; - } - } - }, - data: function data() { - return { - NUMBER_251: 251, - NUMBER_240: 240, - NUMBER_292: 292, - NUMBER_588: 588 - }; - } - }; - -/***/ }, - -/***/ 523: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return (!_vm.ds.isHide) ? _h('div', [(_vm.ds.floorTitle) ? _h('image', { - staticClass: ["title"], - attrs: { - "src": _vm.ds.floorTitle - } - }) : _vm._e(), _h('slider', { - staticClass: ["slider"], - attrs: { - "show-indicators": "true", - "auto-play": "true", - "interval": "3000" - } - }, [_vm._l((_vm.ds.bannerItems), function(item) { - return _h('div', { - staticClass: ["pannel"] - }, [_h('div', [_h('banner', { - staticStyle: { - marginBottom: "4" - }, - attrs: { - "width": _vm.NUMBER_251, - "height": _vm.NUMBER_292, - "src": item.img1, - "href": item.url1 - } - }), _h('banner', { - attrs: { - "width": _vm.NUMBER_251, - "height": _vm.NUMBER_292, - "src": item.img2, - "href": item.url2 - } - })]), _h('div', { - staticClass: ["middle-col"] - }, [_h('banner', { - attrs: { - "width": _vm.NUMBER_240, - "height": _vm.NUMBER_588, - "src": item.img3, - "href": item.url3 - } - })]), _h('div', [_h('banner', { - staticStyle: { - marginBottom: "4" - }, - attrs: { - "width": _vm.NUMBER_251, - "height": _vm.NUMBER_292, - "src": item.img4, - "href": item.url4 - } - }), _h('banner', { - attrs: { - "width": _vm.NUMBER_251, - "height": _vm.NUMBER_292, - "src": item.img5, - "href": item.url5 - } - })])]) - }), _h('indicator', { - staticStyle: { - position: "absolute", - width: "714", - height: "200", - left: "10", - bottom: "-80", - itemSize: "20", - itemColor: "#999999", - itemSelectedColor: "#000000" - } - })])]) : _vm._e() - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 524: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(525) - ) - - /* script */ - __vue_exports__ = __webpack_require__(526) - - /* template */ - var __vue_template__ = __webpack_require__(527) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/showcase/include/resource.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 525: -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "big-banner-container": { - "marginBottom": 4 - } - } - -/***/ }, - -/***/ 526: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - components: { - banners: __webpack_require__(505), - banner: __webpack_require__(507) - }, - props: { - ds: { - default: function _default() { - return {}; - } - } - }, - data: function data() { - return { - NUMBER_750: 750, - NUMBER_200: 200, - NUMBER_373: 373, - NUMBER_224: 224, - NUMBER_4: 4 - }; - } - }; - -/***/ }, - -/***/ 527: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return (!_vm.ds.isHide) ? _h('div', [_h('div', { - staticClass: ["big-banner-container"] - }, [_h('banner', { - attrs: { - "width": _vm.NUMBER_750, - "height": _vm.NUMBER_200, - "src": _vm.ds.bigBannerImg, - "href": _vm.ds.bigBannerUrl - } - })]), _h('banners', { - attrs: { - "direction": "row", - "ds": _vm.ds.smallBannerItems, - "width": _vm.NUMBER_373, - "height": _vm.NUMBER_224, - "space": _vm.NUMBER_4 - } - })]) : _vm._e() - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 528: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(529) - ) - - /* script */ - __vue_exports__ = __webpack_require__(530) - - /* template */ - var __vue_template__ = __webpack_require__(531) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/showcase/include/scene.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 529: -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "item": { - "width": 750, - "height": 340, - "marginBottom": 4 - }, - "item-img": { - "position": "absolute", - "left": 110, - "top": 20 - }, - "right-item-img": { - "position": "absolute", - "right": 110, - "top": 20 - }, - "benifit-img": { - "position": "absolute", - "right": 5, - "top": 160 - }, - "right-benifit-img": { - "position": "absolute", - "left": 40, - "top": 160 - }, - "small-item-container": { - "width": 750 - }, - "small-item": { - "position": "absolute", - "width": 373, - "height": 230, - "flexDirection": "row" - }, - "small-item-bg": { - "width": 373, - "height": 230 - }, - "small-item-img": { - "position": "absolute", - "left": 12, - "top": 12 - }, - "small-benifit-img": { - "position": "absolute", - "right": 0, - "top": 65 - } - } - -/***/ }, - -/***/ 530: -/***/ function(module, exports, __webpack_require__) { - - "use strict"; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var demoContent = [{ - "id": "1111", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1392&scm=1003.1.03653.SUB_1111_740603&pos=1", - "_s_": "d", - "itemImg": "https://img.alicdn.com/tps/TB1c7t.MXXXXXchXXXXXXXXXXXX-182-206.jpg", - "sceneCat": "50012010,50012027,50012032,50007003,50008881,50008883,1623,162116,50010850,123216004", - "finalScore": "10000.0", - "_pos_": "1", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/TB1Zgl2MXXXXXaYXFXXXXXXXXXX-170-100.png" - }, { - "id": "1396", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1396&scm=1003.1.03653.SUB_1396_740603&pos=2", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i2/TB1O1VfMXXXXXX0aXXXKofZZpXX-182-206.jpg", - "sceneCat": "50010368,50011892,50011894,50013794,50010792,50010790,50010790,121434025,121396024,50010793,50010789,50010793,121386035,121392037,121458034,121392036,121482027,121392015,121368014,121418013,121392016,50011982,122690003,302910,50012010,122654005,50012019,50012825,50012027,50012042,50011744,50012906,50012907,50008881,50008883,50008882?,50012784?,50022889,50022728,50013228,50013896,50014775,50019578,50014822,50026394,50019694,50019279,50019272,50014079,50014078,50014076,50014077,50017238,121464011,121468014,50019130,50019127,50019126,50019128,50019125,50015984,50014803,50014802,50015980,50014788,50014787,50019526,50014791,50019520,50013932,50014677,50015978,50014786,50014785,50522001,50014493,50023100,121418021,121388027,121424021,121418020,121368020,50012036,50012044,50012043,50010368, 50011892, 50019274,50012044,50012048,50012043,50013228,50013238,50011726,50019279,50015984,50014803,50014802,50019526,50014791,50019520,50013932,50014677,50019526,50013314,50023341,50016752,50016749,50016747,50016744,50016741,50016740,50016739,50016738,50016737,50016769,50016763,50016750,50007003,302910,50012010,50012032,50012033,50011745,50011746,50011894,121458034,121756003,121426033,50011982,50011979,121390006,124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,50010850,50000671,162201,50022566,50007068,50026651,50000852,162104,162116,162205,1623,123216004,162404,162401,50011412,50011411,162402,50008903,50011413,162403,50000697,1629,50011277,121412004,50008897,50008901,50008899,50013194,50008904,50008905,50008898,162103,50008900,50013196,121434004,50005065,162702,162701,162703,1636,1512,123534001,14,50008090,50012341,50132002,50012342,50012343,50012345,50012346,50013189,50010527,121394006,50013618,50010537,50012424,121452038,121484044,50010540,50010548,50024769,121450007,50013697,50010218,50005960,50005962,50012820,50012406,50023620,50023605,50008829,50024064,50023440,50008687,124392001,50023771,50006804,50012410,124482010,121398023,50023789,50011975", - "finalScore": "10000.0", - "_pos_": "2", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i1/TB1cp4sMXXXXXbLXFXX3bpXTXXX-170-100.png" - }, { - "id": "1616", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1616&scm=1003.1.03653.SUB_1616_740603&pos=3", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i4/TB1dlEALVXXXXbxXpXXKofZZpXX-182-206.jpg", - "sceneCat": "50009032,50007003,302910,1512,124688012,124986002,124942005,50023722,50010368,50011892,50011894", - "finalScore": "10000.0", - "_pos_": "3", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i3/TB1fxonLVXXXXXUaXXX3bpXTXXX-170-100.png" - }, { - "id": "16424", - "sceneUrl": "https://brand.tmall.com/mobilestreet/subject.htm?id=16424&acm=03653.1003.1.740603&aldid=VyrSqx06&spm=0.0.0.0.Wv8ion&scm=1003.1.03653.SUB_16424_740603&pos=4", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i4/TB1.i2_LVXXXXbrXpXXKofZZpXX-182-206.jpg", - "sceneCat": "50012043,50012036,50010850,50000671,1622,50000852,162104,50000697,162205,162116,50012027,50012032,50012028,50012033,50012042,50008882,50012772,50006846,50008881,50000436,50011123,3035,50010167,50000557,50010158,50010159,50010402,50010160,50011980,50011993,121390006,50011978,50011977,50011979,121454013,50011745", - "finalScore": "6.729749999999999", - "_pos_": "4", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i2/TB1bhH5LVXXXXapXFXX3bpXTXXX-170-100.png" - }, { - "id": "16425", - "sceneUrl": "https://brand.tmall.com/mobilestreet/subject.htm?id=16360&acm=03653.1003.1.740603&aldid=VyrSqx06&spm=0.0.0.0.MttFEC&scm=1003.1.03653.SUB_16425_740603&pos=5", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i3/TB15ywbLVXXXXcdXXXXKofZZpXX-182-206.jpg", - "sceneCat": "50012043,50012036,50010850,50000671,1622,50000852,162104,50000697,162205,162116,50012027,50012032,50012028,50012033,50012042,50008882,50012772,50006846,50008881,50000436,50011123,3035,50010167,50000557,50010158,50010159,50010402,50010160,50011980,50011993,121390006,50011978,50011977,50011979,121454013,50011745", - "finalScore": "6.729749999999999", - "_pos_": "5", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i1/TB1JBLYLVXXXXXlXVXX3bpXTXXX-170-100.png" - }, { - "id": "1625", - "sceneUrl": "https://pages.tmall.com/wow/fushi/act/gf-chaoliu?acm=03653.1003.1.740603&aldid=VyrSqx06&scm=1003.1.03653.SUB_1625_740603&pos=6", - "_s_": "d", - "itemImg": "//img.alicdn.com/bao/uploaded/i2/TB1Gd21KVXXXXXZXVXXXXXXXXXX_!!0-item_pic.jpg", - "sceneCat": "50012043,50012036,50010850,50000671,1622,50000852,162104,50000697,162205,162116,50012027,50012032,50012028,50012033,50012042,50008882,50012772,50006846,50008881,50000436,50011123,3035,50010167,50000557,50010158,50010159,50010402,50010160,50011980,50011993,121390006,50011978,50011977,50011979,121454013,50011982,50011991,50012906,50011744,50011745,50011743,50012907,50011746,50010815,121460005,50013794,122438001,121398006,121386023,50010808", - "finalScore": "6.729749999999999", - "_pos_": "6", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i3/TB1qxXzMXXXXXcjXFXX3bpXTXXX-170-100.png" - }, { - "id": "1392", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1392&scm=1003.1.03653.SUB_1392_740603&pos=7", - "_s_": "d", - "itemImg": "https://img.alicdn.com/tps/TB1c7t.MXXXXXchXXXXXXXXXXXX-182-206.jpg", - "sceneCat": "50006842,50006840,50008881,50008883,50008882,50008884,50012774,50012775,50012776,50012781,5000888,50012766,50012771,50012772,50010404,50010368, 50011892, 50011894,124688012,124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,50011740,50008882,50008886,50008885,50012777,50012778,50011977,50011978,50011979,50011980,50011982,50011990,50011999,50012000,50011993,50011996,50011997,121366011,121484009,121368010,121390006,121398029,121404030,121404031,121408040,121410035,121412033,121414041,121418013,121454013,121410013,121422013,121484013,50010789,50010790,50010792,50010793,50010794,50010796,50010797,50010798,50010801,50010803,50010805,50010807,50010808,50010815,121410007,121426007,121452004,121460005,50012341,50132002,50012342,50012343,50012345,50012346,50013189,50010527,121394006,50013618,50010537,50012424,121452038,121484044,50010540,50010548,50024769,121366037,121458036,121392038,121420035,121364028,121468026,121472031,121476036,121470042,121418032,121410036,121472032,121420032,121470040,121384032,121460028,121448028,121400030,121424024,121482025,121418031,121402028,121388035,121460029,121400028,121400029,121418030,121476034,121478031,121448029,121480030,121366035,121424025,121426030,121484030,121412031,121384033,121424023,121402027,121408039,121420033,121452028,121466040,121416029,121482028,121420034,121396046,121422052,121370037,121424031,21364043,121472040,121412045,121424032,125054002,125074007,125074008,125104003,125080003,125024006,125080004", - "finalScore": "4.4951428571428576", - "_pos_": "7", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/TB1Zgl2MXXXXXaYXFXXXXXXXXXX-170-100.png" - }, { - "id": "1395", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1395&scm=1003.1.03653.SUB_1395_740603&pos=8", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i2/TB1p4NcMXXXXXbGaXXXKofZZpXX-182-206.jpg", - "sceneCat": "50008881,50008883,50008882,50008884,50012774,50012775,50012776,50012781,50008886,50012766,50012771,50012772,50010850,50000671,162201,50022566,50007068,50026651,50000852,162104,162116,162205,1623,123216004,162404,162401,50011412,50011411,16240,50012773,50006846,50010394,50008888,50008890,50008889,50012784,50012785,50012786,50012787,50008885,50012777,50012778,124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,50011740,50006843,50006842,124942005,50010368,50011892,50011894,50023751,121366037,121458036,121392038,121420035,121364028,121468026,121400029,121418030,121478031,121480030,121366035,121424025,121426030,121484030,121412031,125054002,125074007,125074008,125104003,125080003,125024006,125080004,121400030,121424024,121482025,121418031,121402028,121388035", - "finalScore": "4.465166666666667", - "_pos_": "8", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i1/TB1ySNtMXXXXXamXFXX3bpXTXXX-170-100.png" - }, { - "id": "1394", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1394&scm=1003.1.03653.SUB_1394_740603&pos=9", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i4/TB1Ns8eMXXXXXb1aXXXKofZZpXX-182-206.jpg", - "sceneCat": "50010850,50000671,162201,50022566,50007068,50026651,50000852,162104,162116,162205,1623,123216004,162404,162401,50011412,50011411,162402,50008903,50011413,162403,50000697,1629,50011277,121412004,50008897,50008901,50008899,50013194,50008904,50008905,50008898,162103,50008900,50013196,121434004,50005065,162702,162701,162703,1636,124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,50011740,50006843,50006842,124986002,50010368, 50011892,50011894,121480030,121366035,121424025,121426030,121484030,121412031", - "finalScore": "4.309925925925926", - "_pos_": "9", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i3/TB1ZEXfMXXXXXapaXXX3bpXTXXX-170-100.png" - }, { - "id": "1610", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1610&scm=1003.1.03653.SUB_1610_740603&pos=10", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i3/TB1ONckLVXXXXbJaXXXKofZZpXX-182-206.jpg", - "sceneCat": "121484044,121452038,50012342,50012027,50012032,50006843,50010850,50000671,162104,1623,50011277,162116,123216004,50008898,121366037,121458036,121392038,121420035,121364028,121468026,121472031,121476036,121470042,121418032,121410036,121472032,121420032,121470040,121384032,121460028,121448028,121400030,121424024,121482025,121418031,121402028,121388035,121460029,121400028,121400029,121418030,121476034,121478031,121448029,121480030,121366035,121424025,121426030,121484030,121412031,121384033,121424023,121402027,121408039,121420033,121452028,121466040,121416029,121482028,121420034,121396046,121422052,121370037,121424031,21364043,121472040,121412045,121424032,125054002,125074007,125074008,125104003,125080003,125024006,125080004", - "finalScore": "4.293333333333334", - "_pos_": "10", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i2/TB1RzwFLVXXXXXsXpXX3bpXTXXX-170-100.png" - }, { - "id": "1619", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1619&scm=1003.1.03653.SUB_1619_740603&pos=11", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i3/TB1eagyLVXXXXaiXFXXKofZZpXX-182-206.jpg", - "sceneCat": "124730001,50001748,50011130,124730001,50001748,50011130,50011129,50010160,50011161,50011159,50010159,50010158,50011127,3035,50010167,50000557,50011123,50010402,50000436,50011153,122654005,50011740,50009032,124688012,213202,121396029,121476023,121410029,213203,50023326,213205,50022686,50023293,50466023,50024999,50016885,50011894", - "finalScore": "4.23", - "_pos_": "11", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i4/TB1j0AxLVXXXXaRXFXX3bpXTXXX-170-100.png" - }, { - "id": "1613", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1613&scm=1003.1.03653.SUB_1613_740603&pos=12", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i2/TB1WssFLVXXXXXUXpXXKofZZpXX-182-206.jpg", - "sceneCat": "50023108,50022893,50022892,50022890,50013228,50019520,50017120,50019560,50017129,50017128,50017127,50017126,50017125,50017124,50017123,50017122,50017121,50020039,50020038,50017119,50019559,50017110,50017108,50017107,50017097,50017096,50017095,50017094,50017093,50017092,50012036,50012041", - "finalScore": "4.2186666666666675", - "_pos_": "12", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i1/TB1Rg.qLVXXXXbqXVXX3bpXTXXX-170-100.png" - }, { - "id": "1614", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1614&scm=1003.1.03653.SUB_1614_740603&pos=13", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i1/TB1KzUxLVXXXXajXFXXKofZZpXX-182-206.jpg", - "sceneCat": "50013238,50011726,50022893,50022892,50022890,50013228,50017129,50020038,50017119,50019559,50017102,50017110,50017097,50019707,50019555,50016677,50018317,50016675,50016673,50016672,50016671,50016670,50016732,50016669,50016668,50016667,50016666,50016665,50016683,50016682,50016608,50016607,50016637,50016638,50012036,50012043", - "finalScore": "4.216", - "_pos_": "13", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i2/TB1WyouLVXXXXXcXVXX3bpXTXXX-170-100.png" - }, { - "id": "1397", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1397&scm=1003.1.03653.SUB_1397_740603&pos=14", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i4/TB1dCxvMXXXXXc1XpXXKofZZpXX-182-206.jpg", - "sceneCat": "122846004,50020776,50024799,50024801,50024921,50002794,50020778,50002792,50002791,50002793,50003942,50005500,50005497,50001692,50005495,50005496,50005503,50005498,50005499,50005501,50005502,50003455,50003457,122904003,50023091,50020770,50008863,50005507,121414011,50020768,50022701,50008862,121420012,50020766,50020764,121398012,121380011,50020751,50020676,50024945,50020720,50002790,50020730,50001866,50020678,121476008,121458013,50002795,121364011,50005505,121422014,50024943,50000583,50000582,50000584,213002,50005033,50000563,50008607,50006988,50008608,50024601,50024602,50012051,50001871,122854005,121458010,121452006,121416008,50008779,50002777,121394007,121386009,50010825,50013810,121434010,50001865,50008565,50008246,50017192,121404045,121368009,121462014,50019372,50008248,121418011,50008249,50017193,50008252,50008251,50000512,121364047,122846004,50020776,50024799,50024801,50024921,50002794,50020778,50002792,50002791,50002793,50003942,50005500,50005497,50001692,50005495,50005496,50005503,50005498,50005499,50005501,50005502,50003455,50003457,122904003,50023091,50020770,50008863,50005507,121414011,50020768,50022701,50008862,121420012,50020766,50020764,121398012,121380011,50020751,50020676,50024945,50020720,50002790,50020730,50001866,50020678,121476008,121458013,50002795,121364011,50005505,121422014,50024943,50000583,50000582,50000584,213002,50005033,50000563,50008607,50006988,50008608,50024601,50024602,50012051,50020835,50021907,121472021,50021902,50005919,50002045,122724003,122652007,121408025,122688004,50021924,50021923,50000561,50011738,122676005,121396026,121388028,50003338,50021915,50011415,50011416,50003454,50021928,50021930,50021929,50021931,50024939,121384024,121472020,50020902,50020903,50020904,50020905,50021888,50021889,50021890,50023266,122960005,50012001,50011999,50012004,50012000,50012006,121394024,121412033,121394025,121450036,121472007,121480009,121388013,121466009,121484012,121366014,121434014,121422012,121476006,121396013,50011997,121434013,122646001,121458012,121468012,121368013,50011979,121366015,121406016,121456012,121366011,121414010,121460006,121368014,121388016,121396013,121400010,121470011,121474011,121478009,124760009,124768010,124822006,121482009,122430002,121454014,121392016,50001871,122854005,121458010,121452006,121416008,50008779,50002777,121394007,121386009,50010825,50013810,121434010,50001865,50008565,50008246,50017192,121404045,121368009,121462014,50019372,50008248,121418011,50008249,50017193,50008252,50008251,50000512,121364047,122846004,50020776,50024799,50024801,50024921,50002794,50020778,50002792,50002791,50002793,50003942,50005500,50005497,50001692,50005495,50005496,50005503,50005498,50005499,50005501,50005502,50003455,50003457,122904003,50023091,50020770,50008863,50005507,121414011,50020768,50022701,50008862,121420012,50020766,50020764,121398012,121380011,50020751,50020676,50024945,50020720,50002790,50020730,50001866,50020678,121476008,121458013,50002795,121364011,50005505,121422014,50024943,50000583,50000582,50000584,213002,50005033,50000563,50008607,50006988,50008608,50024601,50024602,50012051", - "finalScore": "3.4206666666666665", - "_pos_": "14", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i3/TB1ZARnMXXXXXaGXVXX3bpXTXXX-170-100.png" - }, { - "id": "1608", - "sceneUrl": "https://pages.tmall.com/wow/act/15617/scene?acm=03653.1003.1.740603&aldid=VyrSqx06&wh_id=1608&scm=1003.1.03653.SUB_1608_740603&pos=15", - "_s_": "d", - "itemImg": "//img.alicdn.com/tps/i3/TB1xA3jLVXXXXXqapXXKofZZpXX-182-206.jpg", - "sceneCat": "50012010,50012027,50012032,50007003,50008881,50008883,1623,162116,50010850,123216004", - "finalScore": "0.0", - "_pos_": "15", - "entityType": "SUB", - "benefitImg": "//img.alicdn.com/tps/i2/TB1WvoALVXXXXcdXpXX3bpXTXXX-170-100.png" - }]; - - module.exports = { - components: { - banner: __webpack_require__(507) - }, - props: { - ds: { - default: function _default() { - return {}; - } - } - }, - data: function data() { - return { - NUMBER_186: 186, - NUMBER_206: 206, - NUMBER_373: 373, - NUMBER_230: 230, - NUMBER_170: 170, - NUMBER_100: 100, - NUMBER_750: 750, - NUMBER_300: 300, - NUMBER_340: 340, - smallItemBg: 'https://gw.alicdn.com/tps/TB1oBIeLVXXXXatXpXXXXXXXXXX-373-230.jpg', - items: [], - smallItems: [], - sceneBgs: ['https://gw.alicdn.com/tps/TB1xBT8LVXXXXbYXVXXXXXXXXXX-750-340.jpg', 'https://gw.alicdn.com/tps/TB1RoEkLVXXXXaMXpXXXXXXXXXX-750-340.jpg', 'https://gw.alicdn.com/tps/TB1DiEpLVXXXXa7XXXXXXXXXXXX-750-340.jpg'] - }; - }, - created: function created() { - this.items = demoContent.slice(0, 3); - this.smallItems = demoContent.slice(3); - }, - methods: { - getItemTop: function getItemTop(i) { - return (i - i % 2) / 2 * (230 + 4); - }, - getItemLeft: function getItemLeft(i) { - return i % 2 * (373 + 4); - } - } - }; - -/***/ }, - -/***/ 531: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [(_vm.ds.floorTitle) ? _h('image', { - staticClass: ["title"], - attrs: { - "src": _vm.ds.floorTitle - } - }) : _vm._e(), _h('div', { - staticClass: ["small-item-container"], - style: { - height: Math.round(_vm.smallItems.length / 2) * 234 - } - }, [_vm._l((_vm.smallItems), function(i, item) { - return _h('div', { - staticClass: ["small-item"], - style: { - top: _vm.getItemTop(i), - left: _vm.getItemLeft(i) - } - }, [_h('div', [_h('image', { - staticClass: ["small-item-bg"], - attrs: { - "src": _vm.smallItemBg - } - })]), _h('div', { - staticClass: ["small-item-img"] - }, [_h('banner', { - attrs: { - "width": _vm.NUMBER_186, - "height": _vm.NUMBER_206, - "src": item.itemImg, - "href": item.sceneUrl - } - })]), _h('div', { - staticClass: ["small-benifit-img"] - }, [_h('banner', { - attrs: { - "width": _vm.NUMBER_170, - "height": _vm.NUMBER_100, - "src": item.benefitImg, - "href": item.sceneUrl - } - })])]) - })])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 532: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(533) - ) - - /* script */ - __vue_exports__ = __webpack_require__(534) - - /* template */ - var __vue_template__ = __webpack_require__(535) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/showcase/include/match.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 533: -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "tm-banner": { - "bottom": 4 - } - } - -/***/ }, - -/***/ 534: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - components: { - banner: __webpack_require__(507) - }, - props: { - ds: { - default: function _default() { - return {}; - } - } - }, - data: function data() { - return { - NUMBER_750: 750, - NUMBER_373: 373, - NUMBER_240: 240, - NUMBER_200: 200, - NUMBER_4: 4 - }; - } - }; - -/***/ }, - -/***/ 535: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [(_vm.ds.floorTitle) ? _h('image', { - staticClass: ["title"], - attrs: { - "src": _vm.ds.floorTitle - } - }) : _vm._e(), (_vm.ds.isShowTmSpecBanner && _vm.ds.tmSpecBanner) ? _h('div', { - staticClass: ["tm-banner"] - }, [_h('banner', { - attrs: { - "width": _vm.NUMBER_750, - "height": _vm.NUMBER_200, - "src": _vm.ds.tmSpecBanner.img, - "href": _vm.ds.tmSpecBanner.url - } - })]) : _vm._e(), _vm._l((_vm.ds.bannerItems), function(item) { - return _h('div', { - style: { - flexDirection: 'row', - marginBottom: _vm.NUMBER_4 - } - }, [_h('div', { - style: { - marginRight: _vm.NUMBER_4 - } - }, [_h('banner', { - attrs: { - "width": _vm.NUMBER_373, - "height": _vm.NUMBER_240, - "src": item.leftImg, - "href": item.leftUrl - } - })]), _h('div', [_h('banner', { - attrs: { - "width": _vm.NUMBER_373, - "height": _vm.NUMBER_240, - "src": item.rightImg, - "href": item.rightUrl - } - })])]) - })]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 536: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(537) - ) - - /* script */ - __vue_exports__ = __webpack_require__(538) - - /* template */ - var __vue_template__ = __webpack_require__(539) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/showcase/include/brand.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 537: -/***/ function(module, exports) { - - module.exports = { - "title": { - "width": 750, - "height": 100 - }, - "container": { - "marginBottom": 4, - "backgroundColor": "#C0BABC" - } - } - -/***/ }, - -/***/ 538: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - components: { - banners: __webpack_require__(505) - }, - props: { - ds: { - default: function _default() { - return { - bannerItems: [] - }; - } - } - }, - data: function data() { - return { - NUMBER_742: 742, - NUMBER_230: 230, - NUMBER_4: 4 - }; - }, - computed: { - bannerItems: function bannerItems() { - return this.ds.bannerItems.slice(0, 8); - } - }, - created: function created() { - var bannerItems = this.ds.bannerItems; - bannerItems.sort(function () { - return Math.random() - 0.5; - }); - for (var i = 0; i < bannerItems.length; i++) { - var item = bannerItems[i]; - if (i % 2 === 0) { - item.img = item.leftImg; - item.url = item.rightUrl; - } else { - item.img = item.rightImg; - item.url = item.rightUrl; - } - } - } - }; - -/***/ }, - -/***/ 539: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticClass: ["container"] - }, [(_vm.ds.floorTitle) ? _h('image', { - staticClass: ["title"], - attrs: { - "src": _vm.ds.floorTitle - } - }) : _vm._e(), _h('div', { - staticStyle: { - marginLeft: "4", - marginRight: "4" - } - }, [_h('banners', { - attrs: { - "direction": "column", - "ds": _vm.bannerItems, - "width": _vm.NUMBER_742, - "height": _vm.NUMBER_230, - "space": _vm.NUMBER_4 - } - })])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 540: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('scroller', { - staticClass: ["content"] - }, [_h('refresh', { - staticClass: ["refresh"], - staticStyle: { - flexDirection: "row" - }, - attrs: { - "display": _vm.displayRefresh - }, - on: { - "refresh": _vm.handleRefresh - } - }, [_h('loading-indicator'), _h('text', { - staticStyle: { - marginLeft: "36px", - color: "#eee" - } - }, ["下拉刷新..."])]), (_vm.show0) ? _h('headlines', { - attrs: { - "ds": _vm.showData.header - } - }) : _vm._e(), (_vm.show0) ? _h('category', { - attrs: { - "ds": _vm.showData.category - } - }) : _vm._e(), (_vm.show1) ? _h('coupon', { - attrs: { - "ds": _vm.showData.coupon - } - }) : _vm._e(), (_vm.show1) ? _h('goods', { - attrs: { - "ds": _vm.showData.goods - } - }) : _vm._e(), (_vm.show1) ? _h('resource', { - attrs: { - "ds": _vm.showData.resource - } - }) : _vm._e(), (_vm.show1) ? _h('scene', { - attrs: { - "ds": _vm.showData.scene - } - }) : _vm._e(), (_vm.show2) ? _h('match', { - attrs: { - "ds": _vm.showData.match - } - }) : _vm._e(), (_vm.show2) ? _h('brand', { - attrs: { - "ds": _vm.showData.brand - } - }) : _vm._e(), _h('loading', { - staticClass: ["loading"], - attrs: { - "display": _vm.displayLoading - }, - on: { - "loading": _vm.handleLoading - } - }, [_h('text', { - staticStyle: { - color: "#eee" - } - }, ["加载更多..."])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/showcase/progress.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/showcase/progress.js deleted file mode 100644 index 8ed8cf0e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/showcase/progress.js +++ /dev/null @@ -1,336 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* script */ - __vue_exports__ = __webpack_require__(541) - - /* template */ - var __vue_template__ = __webpack_require__(542) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/showcase/progress.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 383: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(384) - ) - - /* script */ - __vue_exports__ = __webpack_require__(385) - - /* template */ - var __vue_template__ = __webpack_require__(386) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/panel.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 384: -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, - -/***/ 385: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - title: { default: '' }, - paddingBody: { default: 20 }, - paddingHead: { default: 20 }, - dataClass: { default: '' }, // FIXME transfer class - border: { default: 0 } - } - }; - -/***/ }, - -/***/ 386: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['panel', 'panel-' + _vm.type], - style: { - borderWidth: _vm.border - } - }, [_h('text', { - class: ['panel-header', 'panel-header-' + _vm.type], - style: { - paddingTop: _vm.paddingHead, - paddingBottom: _vm.paddingHead, - paddingLeft: _vm.paddingHead * 1.5, - paddingRight: _vm.paddingHead * 1.5 - } - }, [_vm._s(_vm.title)]), _h('div', { - class: ['panel-body', 'panel-body-' + _vm.type], - style: { - paddingTop: _vm.paddingBody, - paddingBottom: _vm.paddingBody, - paddingLeft: _vm.paddingBody * 1.5, - paddingRight: _vm.paddingBody * 1.5 - } - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 541: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var INC = 20; - module.exports = { - data: function data() { - return { - fullW: 600, - w: 40 - }; - }, - components: { - panel: __webpack_require__(383) - }, - created: function created() { - var me = this; - setInterval(function () { - if (me.w >= me.fullW) { - me.w = 0; - } - me.w = me.w + INC >= me.fullW ? me.fullW : me.w + INC; - }, 33); - } - }; - -/***/ }, - -/***/ 542: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('scroller', [_h('panel', { - attrs: { - "title": "Basic", - "type": "primary" - } - }, [_h('div', { - style: { - width: _vm.fullW, - borderColor: '#333', - borderWidth: 1, - borderStyle: 'solid' - } - }, [_h('div', { - style: { - width: _vm.w, - height: 60, - backgroundColor: '#333' - } - })])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/style/index.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/style/index.js deleted file mode 100644 index a1e6cd05..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/style/index.js +++ /dev/null @@ -1,1566 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(543) - ) - - /* script */ - __vue_exports__ = __webpack_require__(544) - - /* template */ - var __vue_template__ = __webpack_require__(557) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/style/index.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 383: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(384) - ) - - /* script */ - __vue_exports__ = __webpack_require__(385) - - /* template */ - var __vue_template__ = __webpack_require__(386) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/panel.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 384: -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, - -/***/ 385: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - title: { default: '' }, - paddingBody: { default: 20 }, - paddingHead: { default: 20 }, - dataClass: { default: '' }, // FIXME transfer class - border: { default: 0 } - } - }; - -/***/ }, - -/***/ 386: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['panel', 'panel-' + _vm.type], - style: { - borderWidth: _vm.border - } - }, [_h('text', { - class: ['panel-header', 'panel-header-' + _vm.type], - style: { - paddingTop: _vm.paddingHead, - paddingBottom: _vm.paddingHead, - paddingLeft: _vm.paddingHead * 1.5, - paddingRight: _vm.paddingHead * 1.5 - } - }, [_vm._s(_vm.title)]), _h('div', { - class: ['panel-body', 'panel-body-' + _vm.type], - style: { - paddingTop: _vm.paddingBody, - paddingBottom: _vm.paddingBody, - paddingLeft: _vm.paddingBody * 1.5, - paddingRight: _vm.paddingBody * 1.5 - } - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 393: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(394) - ) - - /* script */ - __vue_exports__ = __webpack_require__(395) - - /* template */ - var __vue_template__ = __webpack_require__(396) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/tip.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 394: -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, - -/***/ 395: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'success' }, - value: { default: '' } - } - }; - -/***/ }, - -/***/ 396: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['tip', 'tip-' + _vm.type] - }, [_h('text', { - class: ['tip-txt', 'tip-txt-' + _vm.type] - }, [_vm._s(_vm.value)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 543: -/***/ function(module, exports) { - - module.exports = { - "bg-item": { - "width": 690, - "marginBottom": 10 - } - } - -/***/ }, - -/***/ 544: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - components: { - panel: __webpack_require__(383), - styleBox: __webpack_require__(545), - styleFlex: __webpack_require__(553), - styleItem: __webpack_require__(548) - } - }; - -/***/ }, - -/***/ 545: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(546) - ) - - /* script */ - __vue_exports__ = __webpack_require__(547) - - /* template */ - var __vue_template__ = __webpack_require__(552) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/style/style-box.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 546: -/***/ function(module, exports) { - - module.exports = { - "box": { - "backgroundColor": "#f5f5f5", - "width": 260, - "height": 260, - "paddingLeft": 40, - "paddingTop": 40, - "paddingRight": 40, - "paddingBottom": 40, - "marginLeft": 40, - "marginTop": 40, - "marginRight": 40, - "marginBottom": 40, - "borderWidth": 40, - "borderColor": "#333333", - "borderStyle": "solid" - } - } - -/***/ }, - -/***/ 547: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - components: { - panel: __webpack_require__(383), - tip: __webpack_require__(393), - styleItem: __webpack_require__(548) - } - }; - -/***/ }, - -/***/ 548: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(549) - ) - - /* script */ - __vue_exports__ = __webpack_require__(550) - - /* template */ - var __vue_template__ = __webpack_require__(551) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/style/style-item.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 549: -/***/ function(module, exports) { - - module.exports = { - "item": { - "marginRight": 10, - "width": 160, - "height": 75, - "paddingLeft": 8, - "paddingRight": 8, - "paddingTop": 8, - "paddingBottom": 8 - }, - "txt": { - "color": "#eeeeee" - } - } - -/***/ }, - -/***/ 550: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - - module.exports = { - props: { - value: { default: '' }, - type: { default: '0' } // 0, 1 - }, - computed: { - bgColor: function bgColor() { - return this.type == '1' ? '#7BA3A8' : '#BEAD92'; - } - } - }; - -/***/ }, - -/***/ 551: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('text', { - staticClass: ["item", "txt"], - style: { - backgroundColor: _vm.bgColor - }, - attrs: { - "value": _vm.value - } - }) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 552: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [_h('panel', { - attrs: { - "title": "Box Model", - "padding-body": "0", - "type": "primary" - } - }, [_h('text', { - staticClass: ["box"] - }, ["Box"])]), _h('panel', { - attrs: { - "title": "border", - "type": "primary" - } - }, [_h('panel', { - attrs: { - "title": "border-width", - "type": "" - } - }, [_h('div', { - staticStyle: { - flexDirection: "row" - } - }, [_h('style-item', { - staticStyle: { - borderStyle: "solid", - borderWidth: "2px", - borderColor: "#333" - }, - attrs: { - "value": "" - } - }), _h('style-item', { - staticStyle: { - borderStyle: "solid", - borderWidth: "10px", - borderColor: "#333" - }, - attrs: { - "value": "" - } - }), _h('style-item', { - staticStyle: { - borderStyle: "solid", - borderLeftWidth: "4px", - borderColor: "#333" - }, - attrs: { - "value": "" - } - }), _h('style-item', { - staticStyle: { - borderStyle: "solid", - borderBottomWidth: "4px", - borderColor: "#333" - }, - attrs: { - "value": "" - } - })])]), _h('panel', { - attrs: { - "title": "border-color", - "type": "" - } - }, [_h('div', { - staticStyle: { - flexDirection: "row" - } - }, [_h('style-item', { - staticStyle: { - borderStyle: "solid", - borderWidth: "4px", - borderColor: "#333" - }, - attrs: { - "value": "" - } - }), _h('style-item', { - staticStyle: { - borderStyle: "solid", - borderWidth: "4px", - borderColor: "#ddd" - }, - attrs: { - "value": "" - } - }), _h('style-item', { - staticStyle: { - borderStyle: "solid", - borderWidth: "4px", - borderColor: "red" - }, - attrs: { - "value": "" - } - })])]), _h('panel', { - attrs: { - "title": "border-style", - "type": "" - } - }, [_h('tip', { - staticStyle: { - marginBottom: "10px" - }, - attrs: { - "type": "warning", - "value": "just support four edges" - } - }), _h('div', { - staticStyle: { - flexDirection: "row" - } - }, [_h('style-item', { - staticStyle: { - borderStyle: "solid", - borderWidth: "4px", - borderColor: "#333" - }, - attrs: { - "value": "" - } - }), _h('style-item', { - staticStyle: { - borderStyle: "dashed", - borderWidth: "4px", - borderColor: "#333" - }, - attrs: { - "value": "", - "type": "" - } - }), _h('style-item', { - staticStyle: { - borderStyle: "dotted", - borderWidth: "4px", - borderColor: "#333" - }, - attrs: { - "value": "" - } - })])]), _h('panel', { - attrs: { - "title": "border-radius", - "type": "" - } - }, [_h('div', { - staticStyle: { - flexDirection: "row" - } - }, [_h('style-item', { - staticStyle: { - width: "75px", - borderRadius: "38px" - }, - attrs: { - "value": "" - } - }), _h('style-item', { - staticStyle: { - borderRadius: "20px" - }, - attrs: { - "value": "" - } - }), _h('style-item', { - staticStyle: { - borderTopLeftRadius: "20px", - borderTopRightRadius: "20px" - }, - attrs: { - "value": "" - } - }), _h('style-item', { - staticStyle: { - borderBottomLeftRadius: "20px", - borderBottomRightRadius: "20px" - }, - attrs: { - "value": "" - } - })])])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 553: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(554) - ) - - /* script */ - __vue_exports__ = __webpack_require__(555) - - /* template */ - var __vue_template__ = __webpack_require__(556) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/style/style-flex.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 554: -/***/ function(module, exports) { - - module.exports = { - "row": { - "flexDirection": "row", - "marginBottom": 10 - }, - "row-align": { - "height": 160, - "borderWidth": 3, - "borderColor": "#dddddd", - "borderStyle": "solid" - } - } - -/***/ }, - -/***/ 555: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - components: { - panel: __webpack_require__(383), - styleItem: __webpack_require__(548) - } - }; - -/***/ }, - -/***/ 556: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [_h('panel', { - attrs: { - "title": "flex-direction", - "type": "primary" - } - }, [_h('div', { - staticClass: ["row"], - staticStyle: { - flexDirection: "row" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "value": "row" - } - }), _h('style-item', { - attrs: { - "type": "1" - } - })]), _h('div', { - staticClass: ["row"], - staticStyle: { - flexDirection: "column" - } - }, [_h('style-item', { - attrs: { - "value": "column" - } - }), _h('style-item', { - attrs: { - "type": "1" - } - })])]), _h('panel', { - attrs: { - "title": "justify-content", - "type": "primary" - } - }, [_h('div', { - staticClass: ["row"], - staticStyle: { - justifyContent: "flex-start" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "type": "1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - } - })]), _h('div', { - staticClass: ["row"], - staticStyle: { - justifyContent: "flex-end" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "type": "1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - } - })]), _h('div', { - staticClass: ["row"], - staticStyle: { - justifyContent: "center" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "type": "1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - } - })]), _h('div', { - staticClass: ["row"], - staticStyle: { - justifyContent: "space-between" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "type": "1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - } - })])]), _h('panel', { - attrs: { - "title": "align-items", - "type": "primary" - } - }, [_h('div', { - staticClass: ["row", "row-align"], - staticStyle: { - alignItems: "flex-start" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "type": "1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - } - })]), _h('div', { - staticClass: ["row", "row-align"], - staticStyle: { - alignItems: "flex-end" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "type": "1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - } - })]), _h('div', { - staticClass: ["row", "row-align"], - staticStyle: { - alignItems: "center" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "type": "1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - } - })]), _h('div', { - staticClass: ["row", "row-align"], - staticStyle: { - alignItems: "stretch" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "type": "1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - } - })])]), _h('panel', { - attrs: { - "title": "flex", - "type": "primary" - } - }, [_h('div', { - staticClass: ["row"], - staticStyle: { - alignItems: "flex-start" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "value": "no flex" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "value": "no flex", - "type": "1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "value": "no flex" - } - })]), _h('div', { - staticClass: ["row"], - staticStyle: { - alignItems: "flex-start" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "value": "no flex" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0", - flex: "1" - }, - attrs: { - "type": "1", - "value": "flex:1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0", - flex: "2" - }, - attrs: { - "value": "flex:2" - } - })]), _h('div', { - staticClass: ["row"], - staticStyle: { - alignItems: "flex-start" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0", - flex: "1" - }, - attrs: { - "value": "flex:1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0", - flex: "1" - }, - attrs: { - "type": "1", - "value": "flex:1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0", - flex: "1" - }, - attrs: { - "value": "flex:1" - } - })]), _h('div', { - staticClass: ["row"], - staticStyle: { - alignItems: "flex-start" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0", - flex: "1" - }, - attrs: { - "value": "flex:1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0", - flex: "2" - }, - attrs: { - "type": "1", - "value": "flex:2" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0", - flex: "3" - }, - attrs: { - "value": "flex:3" - } - })])]), _h('panel', { - attrs: { - "title": "flex-wrap", - "type": "primary" - } - }, [_h('div', { - staticClass: ["row"], - staticStyle: { - flexWrap: "wrap", - backgroundColor: "grey", - padding: "10" - } - }, [_h('style-item', { - attrs: { - "value": "1:wrap" - } - }), _h('style-item', { - attrs: { - "value": "2:wrap" - } - }), _h('style-item', { - attrs: { - "value": "3:wrap" - } - }), _h('style-item', { - attrs: { - "value": "4:wrap" - } - }), _h('style-item', { - attrs: { - "value": "5:wrap" - } - }), _h('style-item', { - attrs: { - "value": "6:wrap" - } - })]), _h('div', { - staticClass: ["row"], - staticStyle: { - flexWrap: "nowrap", - backgroundColor: "grey", - padding: "10" - } - }, [_h('style-item', { - attrs: { - "value": "1:nowrap" - } - }), _h('style-item', { - attrs: { - "value": "2:nowrap" - } - }), _h('style-item', { - attrs: { - "value": "3:nowrap" - } - }), _h('style-item', { - attrs: { - "value": "4:nowrap" - } - }), _h('style-item', { - attrs: { - "value": "5:nowrap" - } - }), _h('style-item', { - attrs: { - "value": "6:nowrap" - } - })])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 557: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('scroller', [_h('style-box'), _h('style-flex'), _h('panel', { - attrs: { - "title": "opacity", - "type": "primary" - } - }, [_h('div', { - staticStyle: { - flexDirection: "row" - } - }, [_h('style-item', { - staticStyle: { - opacity: "1" - }, - attrs: { - "value": "1" - } - }), _h('style-item', { - staticStyle: { - opacity: "0.9" - }, - attrs: { - "value": "0.9" - } - }), _h('style-item', { - staticStyle: { - opacity: "0.5" - }, - attrs: { - "value": "0.5" - } - }), _h('style-item', { - staticStyle: { - opacity: "0.2" - }, - attrs: { - "value": "0.2" - } - })])]), _h('panel', { - attrs: { - "title": "background-color", - "type": "primary" - } - }, [_h('div', [_h('style-item', { - staticClass: ["bg-item"], - staticStyle: { - backgroundColor: "#333" - }, - attrs: { - "value": "#333" - } - }), _h('style-item', { - staticClass: ["bg-item"], - staticStyle: { - backgroundColor: "#333333" - }, - attrs: { - "value": "#333333" - } - }), _h('style-item', { - staticClass: ["bg-item"], - staticStyle: { - backgroundColor: "rgb(238, 162, 54)" - }, - attrs: { - "value": "rgb()" - } - }), _h('style-item', { - staticClass: ["bg-item"], - staticStyle: { - backgroundColor: "rgba(238, 162, 54, 0.5)" - }, - attrs: { - "value": "rgba()" - } - }), _h('style-item', { - staticClass: ["bg-item"], - staticStyle: { - backgroundColor: "red" - }, - attrs: { - "value": "red" - } - })])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/style/style-box.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/style/style-box.js deleted file mode 100644 index d018835a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/style/style-box.js +++ /dev/null @@ -1,780 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(546) - ) - - /* script */ - __vue_exports__ = __webpack_require__(547) - - /* template */ - var __vue_template__ = __webpack_require__(552) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/style/style-box.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 383: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(384) - ) - - /* script */ - __vue_exports__ = __webpack_require__(385) - - /* template */ - var __vue_template__ = __webpack_require__(386) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/panel.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 384: -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, - -/***/ 385: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - title: { default: '' }, - paddingBody: { default: 20 }, - paddingHead: { default: 20 }, - dataClass: { default: '' }, // FIXME transfer class - border: { default: 0 } - } - }; - -/***/ }, - -/***/ 386: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['panel', 'panel-' + _vm.type], - style: { - borderWidth: _vm.border - } - }, [_h('text', { - class: ['panel-header', 'panel-header-' + _vm.type], - style: { - paddingTop: _vm.paddingHead, - paddingBottom: _vm.paddingHead, - paddingLeft: _vm.paddingHead * 1.5, - paddingRight: _vm.paddingHead * 1.5 - } - }, [_vm._s(_vm.title)]), _h('div', { - class: ['panel-body', 'panel-body-' + _vm.type], - style: { - paddingTop: _vm.paddingBody, - paddingBottom: _vm.paddingBody, - paddingLeft: _vm.paddingBody * 1.5, - paddingRight: _vm.paddingBody * 1.5 - } - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 393: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(394) - ) - - /* script */ - __vue_exports__ = __webpack_require__(395) - - /* template */ - var __vue_template__ = __webpack_require__(396) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/tip.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 394: -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, - -/***/ 395: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'success' }, - value: { default: '' } - } - }; - -/***/ }, - -/***/ 396: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['tip', 'tip-' + _vm.type] - }, [_h('text', { - class: ['tip-txt', 'tip-txt-' + _vm.type] - }, [_vm._s(_vm.value)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 546: -/***/ function(module, exports) { - - module.exports = { - "box": { - "backgroundColor": "#f5f5f5", - "width": 260, - "height": 260, - "paddingLeft": 40, - "paddingTop": 40, - "paddingRight": 40, - "paddingBottom": 40, - "marginLeft": 40, - "marginTop": 40, - "marginRight": 40, - "marginBottom": 40, - "borderWidth": 40, - "borderColor": "#333333", - "borderStyle": "solid" - } - } - -/***/ }, - -/***/ 547: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - components: { - panel: __webpack_require__(383), - tip: __webpack_require__(393), - styleItem: __webpack_require__(548) - } - }; - -/***/ }, - -/***/ 548: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(549) - ) - - /* script */ - __vue_exports__ = __webpack_require__(550) - - /* template */ - var __vue_template__ = __webpack_require__(551) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/style/style-item.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 549: -/***/ function(module, exports) { - - module.exports = { - "item": { - "marginRight": 10, - "width": 160, - "height": 75, - "paddingLeft": 8, - "paddingRight": 8, - "paddingTop": 8, - "paddingBottom": 8 - }, - "txt": { - "color": "#eeeeee" - } - } - -/***/ }, - -/***/ 550: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - - module.exports = { - props: { - value: { default: '' }, - type: { default: '0' } // 0, 1 - }, - computed: { - bgColor: function bgColor() { - return this.type == '1' ? '#7BA3A8' : '#BEAD92'; - } - } - }; - -/***/ }, - -/***/ 551: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('text', { - staticClass: ["item", "txt"], - style: { - backgroundColor: _vm.bgColor - }, - attrs: { - "value": _vm.value - } - }) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 552: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [_h('panel', { - attrs: { - "title": "Box Model", - "padding-body": "0", - "type": "primary" - } - }, [_h('text', { - staticClass: ["box"] - }, ["Box"])]), _h('panel', { - attrs: { - "title": "border", - "type": "primary" - } - }, [_h('panel', { - attrs: { - "title": "border-width", - "type": "" - } - }, [_h('div', { - staticStyle: { - flexDirection: "row" - } - }, [_h('style-item', { - staticStyle: { - borderStyle: "solid", - borderWidth: "2px", - borderColor: "#333" - }, - attrs: { - "value": "" - } - }), _h('style-item', { - staticStyle: { - borderStyle: "solid", - borderWidth: "10px", - borderColor: "#333" - }, - attrs: { - "value": "" - } - }), _h('style-item', { - staticStyle: { - borderStyle: "solid", - borderLeftWidth: "4px", - borderColor: "#333" - }, - attrs: { - "value": "" - } - }), _h('style-item', { - staticStyle: { - borderStyle: "solid", - borderBottomWidth: "4px", - borderColor: "#333" - }, - attrs: { - "value": "" - } - })])]), _h('panel', { - attrs: { - "title": "border-color", - "type": "" - } - }, [_h('div', { - staticStyle: { - flexDirection: "row" - } - }, [_h('style-item', { - staticStyle: { - borderStyle: "solid", - borderWidth: "4px", - borderColor: "#333" - }, - attrs: { - "value": "" - } - }), _h('style-item', { - staticStyle: { - borderStyle: "solid", - borderWidth: "4px", - borderColor: "#ddd" - }, - attrs: { - "value": "" - } - }), _h('style-item', { - staticStyle: { - borderStyle: "solid", - borderWidth: "4px", - borderColor: "red" - }, - attrs: { - "value": "" - } - })])]), _h('panel', { - attrs: { - "title": "border-style", - "type": "" - } - }, [_h('tip', { - staticStyle: { - marginBottom: "10px" - }, - attrs: { - "type": "warning", - "value": "just support four edges" - } - }), _h('div', { - staticStyle: { - flexDirection: "row" - } - }, [_h('style-item', { - staticStyle: { - borderStyle: "solid", - borderWidth: "4px", - borderColor: "#333" - }, - attrs: { - "value": "" - } - }), _h('style-item', { - staticStyle: { - borderStyle: "dashed", - borderWidth: "4px", - borderColor: "#333" - }, - attrs: { - "value": "", - "type": "" - } - }), _h('style-item', { - staticStyle: { - borderStyle: "dotted", - borderWidth: "4px", - borderColor: "#333" - }, - attrs: { - "value": "" - } - })])]), _h('panel', { - attrs: { - "title": "border-radius", - "type": "" - } - }, [_h('div', { - staticStyle: { - flexDirection: "row" - } - }, [_h('style-item', { - staticStyle: { - width: "75px", - borderRadius: "38px" - }, - attrs: { - "value": "" - } - }), _h('style-item', { - staticStyle: { - borderRadius: "20px" - }, - attrs: { - "value": "" - } - }), _h('style-item', { - staticStyle: { - borderTopLeftRadius: "20px", - borderTopRightRadius: "20px" - }, - attrs: { - "value": "" - } - }), _h('style-item', { - staticStyle: { - borderBottomLeftRadius: "20px", - borderBottomRightRadius: "20px" - }, - attrs: { - "value": "" - } - })])])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/style/style-flex.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/style/style-flex.js deleted file mode 100644 index b5e4e82d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/style/style-flex.js +++ /dev/null @@ -1,919 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(554) - ) - - /* script */ - __vue_exports__ = __webpack_require__(555) - - /* template */ - var __vue_template__ = __webpack_require__(556) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/style/style-flex.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 383: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(384) - ) - - /* script */ - __vue_exports__ = __webpack_require__(385) - - /* template */ - var __vue_template__ = __webpack_require__(386) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/panel.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 384: -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, - -/***/ 385: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - title: { default: '' }, - paddingBody: { default: 20 }, - paddingHead: { default: 20 }, - dataClass: { default: '' }, // FIXME transfer class - border: { default: 0 } - } - }; - -/***/ }, - -/***/ 386: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['panel', 'panel-' + _vm.type], - style: { - borderWidth: _vm.border - } - }, [_h('text', { - class: ['panel-header', 'panel-header-' + _vm.type], - style: { - paddingTop: _vm.paddingHead, - paddingBottom: _vm.paddingHead, - paddingLeft: _vm.paddingHead * 1.5, - paddingRight: _vm.paddingHead * 1.5 - } - }, [_vm._s(_vm.title)]), _h('div', { - class: ['panel-body', 'panel-body-' + _vm.type], - style: { - paddingTop: _vm.paddingBody, - paddingBottom: _vm.paddingBody, - paddingLeft: _vm.paddingBody * 1.5, - paddingRight: _vm.paddingBody * 1.5 - } - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 548: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(549) - ) - - /* script */ - __vue_exports__ = __webpack_require__(550) - - /* template */ - var __vue_template__ = __webpack_require__(551) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/style/style-item.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 549: -/***/ function(module, exports) { - - module.exports = { - "item": { - "marginRight": 10, - "width": 160, - "height": 75, - "paddingLeft": 8, - "paddingRight": 8, - "paddingTop": 8, - "paddingBottom": 8 - }, - "txt": { - "color": "#eeeeee" - } - } - -/***/ }, - -/***/ 550: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - - module.exports = { - props: { - value: { default: '' }, - type: { default: '0' } // 0, 1 - }, - computed: { - bgColor: function bgColor() { - return this.type == '1' ? '#7BA3A8' : '#BEAD92'; - } - } - }; - -/***/ }, - -/***/ 551: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('text', { - staticClass: ["item", "txt"], - style: { - backgroundColor: _vm.bgColor - }, - attrs: { - "value": _vm.value - } - }) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 554: -/***/ function(module, exports) { - - module.exports = { - "row": { - "flexDirection": "row", - "marginBottom": 10 - }, - "row-align": { - "height": 160, - "borderWidth": 3, - "borderColor": "#dddddd", - "borderStyle": "solid" - } - } - -/***/ }, - -/***/ 555: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - components: { - panel: __webpack_require__(383), - styleItem: __webpack_require__(548) - } - }; - -/***/ }, - -/***/ 556: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [_h('panel', { - attrs: { - "title": "flex-direction", - "type": "primary" - } - }, [_h('div', { - staticClass: ["row"], - staticStyle: { - flexDirection: "row" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "value": "row" - } - }), _h('style-item', { - attrs: { - "type": "1" - } - })]), _h('div', { - staticClass: ["row"], - staticStyle: { - flexDirection: "column" - } - }, [_h('style-item', { - attrs: { - "value": "column" - } - }), _h('style-item', { - attrs: { - "type": "1" - } - })])]), _h('panel', { - attrs: { - "title": "justify-content", - "type": "primary" - } - }, [_h('div', { - staticClass: ["row"], - staticStyle: { - justifyContent: "flex-start" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "type": "1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - } - })]), _h('div', { - staticClass: ["row"], - staticStyle: { - justifyContent: "flex-end" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "type": "1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - } - })]), _h('div', { - staticClass: ["row"], - staticStyle: { - justifyContent: "center" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "type": "1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - } - })]), _h('div', { - staticClass: ["row"], - staticStyle: { - justifyContent: "space-between" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "type": "1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - } - })])]), _h('panel', { - attrs: { - "title": "align-items", - "type": "primary" - } - }, [_h('div', { - staticClass: ["row", "row-align"], - staticStyle: { - alignItems: "flex-start" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "type": "1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - } - })]), _h('div', { - staticClass: ["row", "row-align"], - staticStyle: { - alignItems: "flex-end" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "type": "1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - } - })]), _h('div', { - staticClass: ["row", "row-align"], - staticStyle: { - alignItems: "center" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "type": "1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - } - })]), _h('div', { - staticClass: ["row", "row-align"], - staticStyle: { - alignItems: "stretch" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "type": "1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - } - })])]), _h('panel', { - attrs: { - "title": "flex", - "type": "primary" - } - }, [_h('div', { - staticClass: ["row"], - staticStyle: { - alignItems: "flex-start" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "value": "no flex" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "value": "no flex", - "type": "1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "value": "no flex" - } - })]), _h('div', { - staticClass: ["row"], - staticStyle: { - alignItems: "flex-start" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0" - }, - attrs: { - "value": "no flex" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0", - flex: "1" - }, - attrs: { - "type": "1", - "value": "flex:1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0", - flex: "2" - }, - attrs: { - "value": "flex:2" - } - })]), _h('div', { - staticClass: ["row"], - staticStyle: { - alignItems: "flex-start" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0", - flex: "1" - }, - attrs: { - "value": "flex:1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0", - flex: "1" - }, - attrs: { - "type": "1", - "value": "flex:1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0", - flex: "1" - }, - attrs: { - "value": "flex:1" - } - })]), _h('div', { - staticClass: ["row"], - staticStyle: { - alignItems: "flex-start" - } - }, [_h('style-item', { - staticStyle: { - marginRight: "0", - flex: "1" - }, - attrs: { - "value": "flex:1" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0", - flex: "2" - }, - attrs: { - "type": "1", - "value": "flex:2" - } - }), _h('style-item', { - staticStyle: { - marginRight: "0", - flex: "3" - }, - attrs: { - "value": "flex:3" - } - })])]), _h('panel', { - attrs: { - "title": "flex-wrap", - "type": "primary" - } - }, [_h('div', { - staticClass: ["row"], - staticStyle: { - flexWrap: "wrap", - backgroundColor: "grey", - padding: "10" - } - }, [_h('style-item', { - attrs: { - "value": "1:wrap" - } - }), _h('style-item', { - attrs: { - "value": "2:wrap" - } - }), _h('style-item', { - attrs: { - "value": "3:wrap" - } - }), _h('style-item', { - attrs: { - "value": "4:wrap" - } - }), _h('style-item', { - attrs: { - "value": "5:wrap" - } - }), _h('style-item', { - attrs: { - "value": "6:wrap" - } - })]), _h('div', { - staticClass: ["row"], - staticStyle: { - flexWrap: "nowrap", - backgroundColor: "grey", - padding: "10" - } - }, [_h('style-item', { - attrs: { - "value": "1:nowrap" - } - }), _h('style-item', { - attrs: { - "value": "2:nowrap" - } - }), _h('style-item', { - attrs: { - "value": "3:nowrap" - } - }), _h('style-item', { - attrs: { - "value": "4:nowrap" - } - }), _h('style-item', { - attrs: { - "value": "5:nowrap" - } - }), _h('style-item', { - attrs: { - "value": "6:nowrap" - } - })])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/style/style-item.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/style/style-item.js deleted file mode 100644 index 35b36fbd..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/style/style-item.js +++ /dev/null @@ -1,155 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(549) - ) - - /* script */ - __vue_exports__ = __webpack_require__(550) - - /* template */ - var __vue_template__ = __webpack_require__(551) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/style/style-item.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 549: -/***/ function(module, exports) { - - module.exports = { - "item": { - "marginRight": 10, - "width": 160, - "height": 75, - "paddingLeft": 8, - "paddingRight": 8, - "paddingTop": 8, - "paddingBottom": 8 - }, - "txt": { - "color": "#eeeeee" - } - } - -/***/ }, - -/***/ 550: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - - module.exports = { - props: { - value: { default: '' }, - type: { default: '0' } // 0, 1 - }, - computed: { - bgColor: function bgColor() { - return this.type == '1' ? '#7BA3A8' : '#BEAD92'; - } - } - }; - -/***/ }, - -/***/ 551: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('text', { - staticClass: ["item", "txt"], - style: { - backgroundColor: _vm.bgColor - }, - attrs: { - "value": _vm.value - } - }) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world-1.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world-1.js deleted file mode 100644 index 4a0919ba..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world-1.js +++ /dev/null @@ -1,95 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* template */ - var __vue_template__ = __webpack_require__(561) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/hello-world-1.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 561: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _vm._m(0) - },staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [_h('text', ["Hello World"])]) - }]} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world-2.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world-2.js deleted file mode 100644 index de7f9e00..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world-2.js +++ /dev/null @@ -1,112 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* template */ - var __vue_template__ = __webpack_require__(562) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/hello-world-2.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 562: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _vm._m(0) - },staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticStyle: { - alignItems: "center", - marginTop: "120px" - } - }, [_h('image', { - staticStyle: { - width: "360px", - height: "82px" - }, - attrs: { - "src": "https://alibaba.github.io/weex/img/weex_logo_blue@3x.png" - } - }), _h('text', { - staticStyle: { - fontSize: "48px" - } - }, ["Hello World"])]) - }]} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world-3.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world-3.js deleted file mode 100644 index 27261282..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world-3.js +++ /dev/null @@ -1,127 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(563) - ) - - /* template */ - var __vue_template__ = __webpack_require__(564) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/hello-world-3.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 563: -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "alignItems": "center", - "marginTop": 120 - }, - "title": { - "fontSize": 48 - }, - "logo": { - "width": 360, - "height": 82 - } - } - -/***/ }, - -/***/ 564: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _vm._m(0) - },staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticClass: ["wrapper"] - }, [_h('image', { - staticClass: ["logo"], - attrs: { - "src": "https://alibaba.github.io/weex/img/weex_logo_blue@3x.png" - } - }), _h('text', { - staticClass: ["title"] - }, ["Hello World"])]) - }]} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world-4.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world-4.js deleted file mode 100644 index d46a4cc6..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world-4.js +++ /dev/null @@ -1,167 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(565) - ) - - /* script */ - __vue_exports__ = __webpack_require__(566) - - /* template */ - var __vue_template__ = __webpack_require__(567) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/hello-world-4.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 565: -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "alignItems": "center", - "marginTop": 120 - }, - "title": { - "fontSize": 48 - }, - "logo": { - "width": 360, - "height": 82 - } - } - -/***/ }, - -/***/ 566: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - data: { - logoUrl: 'https://alibaba.github.io/weex/img/weex_logo_blue@3x.png', - target: 'World' - } - }; - -/***/ }, - -/***/ 567: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticClass: ["wrapper"] - }, [_h('image', { - staticClass: ["logo"], - attrs: { - "src": _vm.logoUrl - } - }), _h('text', { - staticClass: ["title"] - }, ["Hello " + _vm._s(_vm.target)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world-5.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world-5.js deleted file mode 100644 index 1818b651..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world-5.js +++ /dev/null @@ -1,173 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(568) - ) - - /* script */ - __vue_exports__ = __webpack_require__(569) - - /* template */ - var __vue_template__ = __webpack_require__(570) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/hello-world-5.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 568: -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "alignItems": "center", - "marginTop": 120 - }, - "title": { - "fontSize": 48 - }, - "logo": { - "width": 360, - "height": 82 - } - } - -/***/ }, - -/***/ 569: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - data: { - logoUrl: 'https://alibaba.github.io/weex/img/weex_logo_blue@3x.png', - target: 'World' - }, - methods: { - update: function update(e) { - this.target = 'Weex'; - } - } - }; - -/***/ }, - -/***/ 570: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticClass: ["wrapper"], - on: { - "click": _vm.update - } - }, [_h('image', { - staticClass: ["logo"], - attrs: { - "src": _vm.logoUrl - } - }), _h('text', { - staticClass: ["title"] - }, ["Hello " + _vm._s(_vm.target)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world.js deleted file mode 100644 index e7bce00d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/hello-world.js +++ /dev/null @@ -1,183 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(558) - ) - - /* script */ - __vue_exports__ = __webpack_require__(559) - - /* template */ - var __vue_template__ = __webpack_require__(560) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/hello-world.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 558: -/***/ function(module, exports) { - - module.exports = { - "wrapper": { - "alignItems": "center", - "marginTop": 120 - }, - "title": { - "fontSize": 48 - }, - "logo": { - "width": 360, - "height": 82 - } - } - -/***/ }, - -/***/ 559: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - data: { - logoUrl: 'https://alibaba.github.io/weex/img/weex_logo_blue@3x.png', - target: 'World' - }, - methods: { - update: function update(e) { - this.target = 'Weex'; - console.log('target:', this.target); - } - } - }; - -/***/ }, - -/***/ 560: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticClass: ["wrapper"], - on: { - "click": _vm.update - } - }, [_h('image', { - staticClass: ["logo"], - attrs: { - "src": _vm.logoUrl - } - }), _h('text', { - staticClass: ["title"] - }, ["Hello " + _vm._s(_vm.target)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-component.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-component.js deleted file mode 100644 index c27cffca..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-component.js +++ /dev/null @@ -1,224 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* script */ - __vue_exports__ = __webpack_require__(571) - - /* template */ - var __vue_template__ = __webpack_require__(576) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/script-component.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 571: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - data: function data() { - return { - items: [{ title: 'A', url: 'a' }, { title: 'B', url: 'b' }, { title: 'C', url: 'c' }] - }; - }, - components: { - item: __webpack_require__(572) - } - }; - -/***/ }, - -/***/ 572: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(573) - ) - - /* script */ - __vue_exports__ = __webpack_require__(574) - - /* template */ - var __vue_template__ = __webpack_require__(575) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/include/sub.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 573: -/***/ function(module, exports) { - - module.exports = { - "item-txt": { - "fontSize": 48, - "color": "#555555" - } - } - -/***/ }, - -/***/ 574: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: ['url', 'title'] - }; - -/***/ }, - -/***/ 575: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('text', { - staticClass: ["item-txt"] - }, [_vm._s(_vm.title)]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 576: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('list', [_vm._l((_vm.items), function(item) { - return _h('cell', [_h('text', [_vm._s(item.title)]), _h('item', { - attrs: { - "title": 'a' - } - })]) - })]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-data.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-data.js deleted file mode 100644 index 77e919a7..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-data.js +++ /dev/null @@ -1,214 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(577) - ) - - /* script */ - __vue_exports__ = __webpack_require__(578) - - /* template */ - var __vue_template__ = __webpack_require__(579) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/script-data.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 577: -/***/ function(module, exports) { - - module.exports = { - "title": { - "fontSize": 48 - } - } - -/***/ }, - -/***/ 578: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - // // if this is a sub component and the parent component could set `firstName` and `lastName` by: - // // `` - // // but the `date` won't be changed from parent component - // module.exports = { - // props: ['firstName', 'lastName'], - // data: function () { - // return { - // date: Date.now() - // } - // } - // } - - // // more `props` formats like - // module.exports = { - // props: { - // firstName: { - // default: 'John' - // }, - // lastName: { - // type: String, - // default: 'Smith' - // } - // }, - // data: function () { - // return { - // date: Date.now() - // } - // } - // } - - module.exports = { - data: function data() { - return { - firstName: 'John', - lastName: 'Smith', - date: Date.now() - }; - }, - methods: { - update: function update() { - this.today = '2016-01-01'; - console.log('today:', this.today); - } - }, - computed: { - fullName: function fullName() { - return this.firstName + ' ' + this.lastName; - }, - today: { - get: function get() { - return new Date(this.date).toDateString(); - }, - set: function set(v) { - this.date = Date.parse(v); - } - } - } - }; - -/***/ }, - -/***/ 579: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - on: { - "click": _vm.update - } - }, [_h('text', { - staticClass: ["title"] - }, [_vm._s(_vm.firstName)]), _h('text', { - staticClass: ["title"] - }, [_vm._s(_vm.lastName)]), _h('text', { - staticClass: ["title"] - }, [_vm._s(_vm.fullName)]), _h('text', { - staticClass: ["title"] - }, [_vm._s(_vm.today)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-events.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-events.js deleted file mode 100644 index ef2a671a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-events.js +++ /dev/null @@ -1,161 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(580) - ) - - /* script */ - __vue_exports__ = __webpack_require__(581) - - /* template */ - var __vue_template__ = __webpack_require__(582) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/script-events.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 580: -/***/ function(module, exports) { - - module.exports = { - "title": { - "fontSize": 48 - } - } - -/***/ }, - -/***/ 581: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - data: function data() { - return { - list: [] - }; - }, - mounted: function mounted() { - function custom(e) { - this.list.push('custom: ' + JSON.stringify(e)); - console.log(this.list); - } - - this.$emit('custom', { x: 1 }); - - this.$on('custom', custom); - this.$emit('custom', { x: 2 }); - - this.$off('custom', custom); - this.$emit('custom', { x: 3 }); - } - }; - -/***/ }, - -/***/ 582: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [_vm._l((_vm.list), function(value) { - return _h('text', { - staticClass: ["title"] - }, [_vm._s(value)]) - })]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-instance.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-instance.js deleted file mode 100644 index 2af274ce..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-instance.js +++ /dev/null @@ -1,196 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(583) - ) - - /* script */ - __vue_exports__ = __webpack_require__(584) - - /* template */ - var __vue_template__ = __webpack_require__(585) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/script-instance.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 583: -/***/ function(module, exports) { - - module.exports = { - "title": { - "fontSize": 48 - } - } - -/***/ }, - -/***/ 584: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - data: function data() { - return { - x: 1, - y: 2 - }; - }, - methods: { - foo: function foo() { - console.log('foo'); - }, - test: function test() { - - // access data/props - console.log(this.x); - - // access computed - console.log(this.z); - - // call methods - this.foo(); - - // get config - console.log(this.$getConfig()); - - // listen and fire component events - this.$emit('custom'); - this.$on('custom', this.foo); - this.$off('custom', this.foo); - - // // parent component and sub components - // this.$parent.$emit('custom') - // this.$refs['sub'].$emit('custom') - - // // find element - // var dom = __weex_require_module__('dom') - // dom.scrollToElement(this.$el('title'), {offset: 0}) - } - }, - computed: { - z: function z() { - return this.x + this.y; - } - }, - mounted: function mounted() { - this.test(); - } - }; - -/***/ }, - -/***/ 585: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _vm._m(0) - },staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [_h('text', { - staticClass: ["title"], - attrs: { - "id": "title" - } - }, ["Please check out the source code."])]) - }]} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-lifecycle.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-lifecycle.js deleted file mode 100644 index 3c52de4d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-lifecycle.js +++ /dev/null @@ -1,155 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(586) - ) - - /* script */ - __vue_exports__ = __webpack_require__(587) - - /* template */ - var __vue_template__ = __webpack_require__(588) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/script-lifecycle.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 586: -/***/ function(module, exports) { - - module.exports = { - "title": { - "fontSize": 48 - } - } - -/***/ }, - -/***/ 587: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - - var initMessage; - module.exports = { - data: function data() { - return { - list: ['Lifecycle List'] - }; - }, - init: function init() { - initMessage = 'component init: nothing more happen even the data initialization'; - console.log('init:', this.list); - }, - created: function created() { - this.list.push(initMessage); - this.list.push('component created: data observed'); - console.log('created:', this.list); - }, - mounted: function mounted() { - this.list.push('component mounted: virtual dom generated'); - console.log('mounted:', this.list); - } - }; - -/***/ }, - -/***/ 588: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [_vm._l((_vm.list), function(value) { - return _h('text', { - staticClass: ["title"] - }, [_vm._s(value)]) - })]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-module.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-module.js deleted file mode 100644 index 4e904f3b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-module.js +++ /dev/null @@ -1,156 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(589) - ) - - /* script */ - __vue_exports__ = __webpack_require__(590) - - /* template */ - var __vue_template__ = __webpack_require__(591) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/script-module.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 589: -/***/ function(module, exports) { - - module.exports = { - "btn": { - "fontSize": 36, - "textAlign": "center", - "color": "#FFFFFF", - "backgroundColor": "#808080", - "padding": 20, - "borderRadius": 5 - } - } - -/***/ }, - -/***/ 590: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var modal = __weex_require_module__('modal'); - module.exports = { - methods: { - test: function test() { - modal.toast({ - message: 'Toast!', - duration: 3 - }); - } - } - }; - -/***/ }, - -/***/ 591: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [_h('text', { - staticClass: ["btn"], - on: { - "click": _vm.test - } - }, ["Toast!"])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-options.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-options.js deleted file mode 100644 index 25e9d949..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/script-options.js +++ /dev/null @@ -1,182 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(592) - ) - - /* script */ - __vue_exports__ = __webpack_require__(593) - - /* template */ - var __vue_template__ = __webpack_require__(594) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/script-options.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 592: -/***/ function(module, exports) { - - module.exports = { - "title": { - "fontSize": 48 - } - } - -/***/ }, - -/***/ 593: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - // // import sub components - // components: { - // item: require('./components/sub.vue') - // }, - - // // for sub component only - // props: ['a', 'b'], - - // for root component only - data: { - x: 1, - y: 2 - }, - // // for sub component only - // data: function () { - // return { - // x: 1, - // y: 2 - // } - // } - - methods: { - foo: function foo() { - console.log('foo'); - } - }, - - computed: { - z: function z() { - return this.x + this.y; - } - }, - - init: function init() {}, - created: function created() {}, - mounted: function mounted() {} - }; - -/***/ }, - -/***/ 594: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _vm._m(0) - },staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [_h('text', { - staticClass: ["title"] - }, ["Please check out the source code."])]) - }]} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-class.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-class.js deleted file mode 100644 index 1b70b788..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-class.js +++ /dev/null @@ -1,161 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(595) - ) - - /* script */ - __vue_exports__ = __webpack_require__(596) - - /* template */ - var __vue_template__ = __webpack_require__(597) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/template-class.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 595: -/***/ function(module, exports) { - - module.exports = { - "a": { - "fontSize": 48 - }, - "b": { - "color": "#ff0000" - } - } - -/***/ }, - -/***/ 596: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - data: { - x: '' - }, - methods: { - update: function update(e) { - this.x = 'b'; - console.log('x', this.x); - } - } - }; - -/***/ }, - -/***/ 597: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - on: { - "click": _vm.update - } - }, [_h('text', { - staticClass: ["a"] - }, ["Hello"]), _h('text', { - staticClass: ["b"] - }, ["Hello"]), _h('text', { - class: ['a', _vm.x] - }, ["Hello"])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-content.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-content.js deleted file mode 100644 index d9bddef8..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-content.js +++ /dev/null @@ -1,189 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* script */ - __vue_exports__ = __webpack_require__(598) - - /* template */ - var __vue_template__ = __webpack_require__(602) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/template-content.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 598: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - components: { - btn: __webpack_require__(599) - } - }; - -/***/ }, - -/***/ 599: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(600) - ) - - /* template */ - var __vue_template__ = __webpack_require__(601) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/include/btn.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 600: -/***/ function(module, exports) { - - module.exports = { - "btn": { - "fontSize": 36, - "textAlign": "center", - "color": "#FFFFFF", - "backgroundColor": "#808080", - "padding": 20, - "borderRadius": 5 - } - } - -/***/ }, - -/***/ 601: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - staticClass: ["btn"] - }, [_vm._t("default")]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 602: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [_h('btn', [_h('text', ["Click!"])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-event.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-event.js deleted file mode 100644 index 61e8a881..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-event.js +++ /dev/null @@ -1,197 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(603) - ) - - /* script */ - __vue_exports__ = __webpack_require__(604) - - /* template */ - var __vue_template__ = __webpack_require__(605) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/template-event.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 603: -/***/ function(module, exports) { - - module.exports = { - "title": { - "fontSize": 48 - }, - "subtitle": { - "fontSize": 36 - }, - "btn": { - "fontSize": 36, - "textAlign": "center", - "color": "#FFFFFF", - "backgroundColor": "#808080", - "padding": 20, - "borderRadius": 5 - } - } - -/***/ }, - -/***/ 604: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - data: function data() { - return { - name: 'Steve', - temp: 'Mike' - }; - }, - methods: { - update: function update(e) { - this.setName('David'); - console.log('setName', this.name); - }, - setName: function setName(value) { - this.name = value; - console.log('name', this.name); - } - } - }; - -/***/ }, - -/***/ 605: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [_h('text', { - staticClass: ["title"] - }, ["Hello " + _vm._s(_vm.name)]), _h('text', { - staticClass: ["btn"], - on: { - "click": _vm.update - } - }, ["Update 1"]), _h('text', { - staticClass: ["btn"], - on: { - "click": function($event) { - _vm.update($event) - } - } - }, ["Update 1"]), _h('text', { - staticClass: ["btn"], - on: { - "click": function($event) { - _vm.setName(_vm.temp, $event) - } - } - }, ["Update 2"]), _h('text', { - staticClass: ["btn"], - on: { - "click": function($event) { - _vm.setName('John') - } - } - }, ["Update 3"])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-if.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-if.js deleted file mode 100644 index 192f88b3..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-if.js +++ /dev/null @@ -1,165 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(606) - ) - - /* script */ - __vue_exports__ = __webpack_require__(607) - - /* template */ - var __vue_template__ = __webpack_require__(608) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/template-if.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 606: -/***/ function(module, exports) { - - module.exports = { - "title": { - "fontSize": 48 - }, - "btn": { - "fontSize": 36, - "textAlign": "center", - "color": "#FFFFFF", - "backgroundColor": "#808080", - "padding": 20, - "borderRadius": 5 - } - } - -/***/ }, - -/***/ 607: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - data: { - flag: true - }, - methods: { - toggle: function toggle(e) { - this.flag = !this.flag; - console.log('this.flag:', this.flag); - } - } - }; - -/***/ }, - -/***/ 608: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [_h('text', { - staticClass: ["btn"], - on: { - "click": _vm.toggle - } - }, ["Toggle"]), (_vm.flag) ? _h('text', { - staticClass: ["title"] - }, ["I'm ON"]) : _vm._e(), (!_vm.flag) ? _h('text', { - staticClass: ["title"] - }, ["I'm Off"]) : _vm._e()]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-repeat-update.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-repeat-update.js deleted file mode 100644 index 1d28c34e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-repeat-update.js +++ /dev/null @@ -1,195 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(612) - ) - - /* script */ - __vue_exports__ = __webpack_require__(613) - - /* template */ - var __vue_template__ = __webpack_require__(614) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/template-repeat-update.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 612: -/***/ function(module, exports) { - - module.exports = { - "title": { - "fontSize": 48 - }, - "subtitle": { - "fontSize": 36 - }, - "btn": { - "fontSize": 36, - "textAlign": "center", - "color": "#FFFFFF", - "backgroundColor": "#808080", - "padding": 20, - "borderRadius": 5 - } - } - -/***/ }, - -/***/ 613: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - data: function data() { - return { - list: [{ key: 1, text: 'a' }, { key: 2, text: 'a' }, { key: 3, text: 'b' }, { key: 4, text: 'c' }, { key: 5, text: 'a' }], - flag: true - }; - }, - methods: { - update: function update(e) { - // equals to `this.list.text = 'foo'` - // DO NOT USE: `this.list[2] = {key: 3, text: 'foo'}}` - Vue.set(this.list, 2, { key: 3, text: 'foo' }); - console.log('this.list', this.list); - }, - mutate: function mutate(e) { - if (this.list.length % 2) { - this.list.push({ key: 'x', text: 'bar' }); - } else { - this.list.pop(); - } - console.log('this.list', this.list); - } - } - }; - -/***/ }, - -/***/ 614: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [_h('text', { - staticClass: ["title"] - }, ["Track by"]), _vm._l((_vm.list), function(item, k, $index) { - return _h('text', { - staticClass: ["subtitle"], - attrs: { - "track-by": "item.key" - } - }, [_vm._s($index) + "-" + _vm._s(item.text)]) - }), _h('text', { - staticClass: ["btn"], - on: { - "click": _vm.update - } - }, ["Update"]), _h('text', { - staticClass: ["btn"], - on: { - "click": _vm.mutate - } - }, ["Mutate"])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-repeat.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-repeat.js deleted file mode 100644 index f2dc5989..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-repeat.js +++ /dev/null @@ -1,170 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(609) - ) - - /* script */ - __vue_exports__ = __webpack_require__(610) - - /* template */ - var __vue_template__ = __webpack_require__(611) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/template-repeat.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 609: -/***/ function(module, exports) { - - module.exports = { - "title": { - "fontSize": 48 - }, - "subtitle": { - "fontSize": 36 - } - } - -/***/ }, - -/***/ 610: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - data: function data() { - return { - list: ['a', 'b', 'c', 'd', 'e'], - list2: [{ text: 'a' }, { text: 'b' }, { text: 'c' }, { text: 'd' }, { text: 'e' }] - }; - } - }; - -/***/ }, - -/***/ 611: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', [_h('text', { - staticClass: ["title"] - }, ["Custom item"]), _vm._l((_vm.list), function(item) { - return _h('text', { - staticClass: ["subtitle"] - }, [_vm._s(item)]) - }), _h('text', { - staticClass: ["title"] - }, ["Custom key and item"]), _vm._l((_vm.list), function(i, v) { - return _h('text', { - staticClass: ["subtitle"] - }, [_vm._s(i) + "-" + _vm._s(v)]) - }), _h('text', { - staticClass: ["title"] - }, ["Array of Object"]), _vm._l((_vm.list2), function(item, k, index) { - return _h('text', { - staticClass: ["subtitle"] - }, ["> " + _vm._s(index) + "-" + _vm._s(item.text)]) - })]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-style.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-style.js deleted file mode 100644 index 845da945..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/syntax/template-style.js +++ /dev/null @@ -1,144 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* script */ - __vue_exports__ = __webpack_require__(615) - - /* template */ - var __vue_template__ = __webpack_require__(616) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/syntax/template-style.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 615: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - data: function data() { - return { - size: 32, - color: '#ff0000' - }; - }, - methods: { - update: function update(e) { - this.size = 48; - console.log('this.size', this.size); - } - } - }; - -/***/ }, - -/***/ 616: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - on: { - "click": _vm.update - } - }, [_h('text', { - staticStyle: { - fontSize: "48px", - color: "#0000ff" - } - }, ["Hello"]), _h('text', { - style: { - fontSize: _vm.size, - color: _vm.color - } - }, ["Hello"])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/template.js b/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/template.js deleted file mode 100644 index 26a1496c..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/assets/vue/template.js +++ /dev/null @@ -1,796 +0,0 @@ -// { "framework": "Vue" } - -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; - -/******/ // The require function -/******/ function __webpack_require__(moduleId) { - -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) -/******/ return installedModules[moduleId].exports; - -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ exports: {}, -/******/ id: moduleId, -/******/ loaded: false -/******/ }; - -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); - -/******/ // Flag the module as loaded -/******/ module.loaded = true; - -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } - - -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; - -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; - -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; - -/******/ // Load entry module and return exports -/******/ return __webpack_require__(0); -/******/ }) -/************************************************************************/ -/******/ ({ - -/***/ 0: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* script */ - __vue_exports__ = __webpack_require__(617) - - /* template */ - var __vue_template__ = __webpack_require__(622) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/template.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - module.exports.el = 'true' - new Vue(module.exports) - - -/***/ }, - -/***/ 383: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(384) - ) - - /* script */ - __vue_exports__ = __webpack_require__(385) - - /* template */ - var __vue_template__ = __webpack_require__(386) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/panel.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 384: -/***/ function(module, exports) { - - module.exports = { - "panel": { - "marginBottom": 20, - "backgroundColor": "#ffffff", - "borderColor": "#dddddd", - "borderWidth": 1 - }, - "panel-primary": { - "borderColor": "rgb(40,96,144)" - }, - "panel-success": { - "borderColor": "rgb(76,174,76)" - }, - "panel-info": { - "borderColor": "rgb(70,184,218)" - }, - "panel-warning": { - "borderColor": "rgb(238,162,54)" - }, - "panel-danger": { - "borderColor": "rgb(212,63,58)" - }, - "panel-header": { - "backgroundColor": "#f5f5f5", - "fontSize": 40, - "color": "#333333" - }, - "panel-header-primary": { - "backgroundColor": "rgb(40,96,144)", - "color": "#ffffff" - }, - "panel-header-success": { - "backgroundColor": "rgb(92,184,92)", - "color": "#ffffff" - }, - "panel-header-info": { - "backgroundColor": "rgb(91,192,222)", - "color": "#ffffff" - }, - "panel-header-warning": { - "backgroundColor": "rgb(240,173,78)", - "color": "#ffffff" - }, - "panel-header-danger": { - "backgroundColor": "rgb(217,83,79)", - "color": "#ffffff" - } - } - -/***/ }, - -/***/ 385: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - title: { default: '' }, - paddingBody: { default: 20 }, - paddingHead: { default: 20 }, - dataClass: { default: '' }, // FIXME transfer class - border: { default: 0 } - } - }; - -/***/ }, - -/***/ 386: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['panel', 'panel-' + _vm.type], - style: { - borderWidth: _vm.border - } - }, [_h('text', { - class: ['panel-header', 'panel-header-' + _vm.type], - style: { - paddingTop: _vm.paddingHead, - paddingBottom: _vm.paddingHead, - paddingLeft: _vm.paddingHead * 1.5, - paddingRight: _vm.paddingHead * 1.5 - } - }, [_vm._s(_vm.title)]), _h('div', { - class: ['panel-body', 'panel-body-' + _vm.type], - style: { - paddingTop: _vm.paddingBody, - paddingBottom: _vm.paddingBody, - paddingLeft: _vm.paddingBody * 1.5, - paddingRight: _vm.paddingBody * 1.5 - } - }, [_vm._t("default")])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 387: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(388) - ) - - /* script */ - __vue_exports__ = __webpack_require__(389) - - /* template */ - var __vue_template__ = __webpack_require__(390) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/button.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 388: -/***/ function(module, exports) { - - module.exports = { - "btn": { - "marginBottom": 0, - "alignItems": "center", - "justifyContent": "center", - "borderWidth": 1, - "borderStyle": "solid", - "borderColor": "#333333" - }, - "btn-default": { - "color": "rgb(51,51,51)" - }, - "btn-primary": { - "backgroundColor": "rgb(40,96,144)", - "borderColor": "rgb(40,96,144)" - }, - "btn-success": { - "backgroundColor": "rgb(92,184,92)", - "borderColor": "rgb(76,174,76)" - }, - "btn-info": { - "backgroundColor": "rgb(91,192,222)", - "borderColor": "rgb(70,184,218)" - }, - "btn-warning": { - "backgroundColor": "rgb(240,173,78)", - "borderColor": "rgb(238,162,54)" - }, - "btn-danger": { - "backgroundColor": "rgb(217,83,79)", - "borderColor": "rgb(212,63,58)" - }, - "btn-link": { - "borderColor": "rgba(0,0,0,0)", - "borderRadius": 0 - }, - "btn-txt-default": { - "color": "rgb(51,51,51)" - }, - "btn-txt-primary": { - "color": "rgb(255,255,255)" - }, - "btn-txt-success": { - "color": "rgb(255,255,255)" - }, - "btn-txt-info": { - "color": "rgb(255,255,255)" - }, - "btn-txt-warning": { - "color": "rgb(255,255,255)" - }, - "btn-txt-danger": { - "color": "rgb(255,255,255)" - }, - "btn-txt-link": { - "color": "rgb(51,122,183)" - }, - "btn-sz-large": { - "width": 300, - "height": 100, - "paddingTop": 25, - "paddingBottom": 25, - "paddingLeft": 40, - "paddingRight": 40, - "borderRadius": 15 - }, - "btn-sz-middle": { - "width": 240, - "height": 80, - "paddingTop": 15, - "paddingBottom": 15, - "paddingLeft": 30, - "paddingRight": 30, - "borderRadius": 10 - }, - "btn-sz-small": { - "width": 170, - "height": 60, - "paddingTop": 12, - "paddingBottom": 12, - "paddingLeft": 25, - "paddingRight": 25, - "borderRadius": 7 - }, - "btn-txt-sz-large": { - "fontSize": 45 - }, - "btn-txt-sz-middle": { - "fontSize": 35 - }, - "btn-txt-sz-small": { - "fontSize": 30 - } - } - -/***/ }, - -/***/ 389: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'default' }, - size: { default: 'large' }, - value: { default: '' } - } - }; - -/***/ }, - -/***/ 390: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['btn', 'btn-' + _vm.type, 'btn-sz-' + _vm.size] - }, [_h('text', { - class: ['btn-txt', 'btn-txt-' + _vm.type, 'btn-txt-sz-' + _vm.size] - }, [_vm._s(_vm.value)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 393: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(394) - ) - - /* script */ - __vue_exports__ = __webpack_require__(395) - - /* template */ - var __vue_template__ = __webpack_require__(396) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/tip.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 394: -/***/ function(module, exports) { - - module.exports = { - "tip": { - "paddingLeft": 36, - "paddingRight": 36, - "paddingTop": 36, - "paddingBottom": 36, - "borderRadius": 10 - }, - "tip-txt": { - "fontSize": 28 - }, - "tip-success": { - "backgroundColor": "#dff0d8", - "borderColor": "#d6e9c6" - }, - "tip-txt-success": { - "color": "#3c763d" - }, - "tip-info": { - "backgroundColor": "#d9edf7", - "borderColor": "#bce8f1" - }, - "tip-txt-info": { - "color": "#31708f" - }, - "tip-warning": { - "backgroundColor": "#fcf8e3", - "borderColor": "#faebcc" - }, - "tip-txt-warning": { - "color": "#8a6d3b" - }, - "tip-danger": { - "backgroundColor": "#f2dede", - "borderColor": "#ebccd1" - }, - "tip-txt-danger": { - "color": "#a94442" - } - } - -/***/ }, - -/***/ 395: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - // - - module.exports = { - props: { - type: { default: 'success' }, - value: { default: '' } - } - }; - -/***/ }, - -/***/ 396: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['tip', 'tip-' + _vm.type] - }, [_h('text', { - class: ['tip-txt', 'tip-txt-' + _vm.type] - }, [_vm._s(_vm.value)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 617: -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - - var modal = __weex_require_module__('modal'); - module.exports = { - data: function data() { - return { - img: '//gw.alicdn.com/tps/i2/TB1DpsmMpXXXXabaXXX20ySQVXX-512-512.png_400x400.jpg' - }; - }, - components: { - panel: __webpack_require__(383), - hn: __webpack_require__(618), - tip: __webpack_require__(393), - button: __webpack_require__(387) - }, - methods: { - toast: function toast() { - modal.toast({ message: 'a toast', duration: 2 }); - } - } - }; - -/***/ }, - -/***/ 618: -/***/ function(module, exports, __webpack_require__) { - - var __vue_exports__, __vue_options__ - var __vue_styles__ = [] - - /* styles */ - __vue_styles__.push(__webpack_require__(619) - ) - - /* script */ - __vue_exports__ = __webpack_require__(620) - - /* template */ - var __vue_template__ = __webpack_require__(621) - __vue_options__ = __vue_exports__ = __vue_exports__ || {} - if ( - typeof __vue_exports__.default === "object" || - typeof __vue_exports__.default === "function" - ) { - if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")} - __vue_options__ = __vue_exports__ = __vue_exports__.default - } - if (typeof __vue_options__ === "function") { - __vue_options__ = __vue_options__.options - } - __vue_options__.__file = "/Users/lixinke/git/other/weex/examples/vue/include/hn.vue" - __vue_options__.render = __vue_template__.render - __vue_options__.staticRenderFns = __vue_template__.staticRenderFns - __vue_options__.style = __vue_options__.style || {} - __vue_styles__.forEach(function (module) { - for (var name in module) { - __vue_options__.style[name] = module[name] - } - }) - - module.exports = __vue_exports__ - - -/***/ }, - -/***/ 619: -/***/ function(module, exports) { - - module.exports = { - "h1": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h2": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "h3": { - "height": 110, - "paddingTop": 20, - "paddingBottom": 20 - }, - "txt-h1": { - "fontSize": 70 - }, - "txt-h2": { - "fontSize": 52 - }, - "txt-h3": { - "fontSize": 42 - } - } - -/***/ }, - -/***/ 620: -/***/ function(module, exports) { - - 'use strict'; - - // - // - // - // - // - // - - module.exports = { - props: { - level: { default: 1 }, - value: { default: '' } - } - }; - -/***/ }, - -/***/ 621: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('div', { - class: ['h' + _vm.level], - staticStyle: { - justifyContent: "center" - } - }, [_h('text', { - class: ['txt-h' + _vm.level] - }, [_vm._s(_vm.value)])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ }, - -/***/ 622: -/***/ function(module, exports) { - - module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h; - return _h('scroller', [_h('panel', { - attrs: { - "title": "Dialog", - "type": "primary" - } - }, [_h('tip', { - staticStyle: { - marginBottom: "20px" - }, - attrs: { - "type": "success", - "value": "It's a weex example template." - } - }), _h('hn', { - attrs: { - "level": "1", - "value": "H1" - } - }), _h('button', { - attrs: { - "type": "primary", - "value": "Toast" - }, - nativeOn: { - "click": function($event) { - _vm.toast($event) - } - } - }), _h('hn', { - attrs: { - "level": "2", - "value": "H3" - } - }), _h('button', { - attrs: { - "type": "warning", - "value": "Toast" - }, - nativeOn: { - "click": function($event) { - _vm.toast($event) - } - } - })]), _h('panel', { - attrs: { - "title": "Image", - "type": "primary" - } - }, [_h('tip', { - staticStyle: { - marginBottom: "20px" - }, - attrs: { - "type": "warning", - "value": "Weex screen width is 750" - } - }), _h('image', { - staticClass: ["img"], - staticStyle: { - width: "400px", - height: "400px" - }, - attrs: { - "src": _vm.img - } - }), _h('panel', { - attrs: { - "title": "Image", - "type": "default" - } - }, [_h('text', ["sub info"])])])]) - },staticRenderFns: []} - module.exports.render._withStripped = true - -/***/ } - -/******/ }); \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/ic_launcher-web.png b/bridges/weex-gcanvas/android/weex_playground/src/main/ic_launcher-web.png deleted file mode 100644 index bb9222392478170c8c7cb37868b2d8b6741301c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19935 zcmeFZ`9IX(7dZZ$F|uXLR@M=stVOm7Qw-WjDzcY~vSt}sGSg~HDMfY-k?hHC7)g>W zL-u7X#bjT`I@|X-dcD7&&*S?ye1Bo)KJUF}Klhw-&vT+KSeWs0i*o}2zM{4%Xq+FWh*b06T5m(E-;u_k2{SMiJdf`MUUb#Gt1~Z^kzi(>ZD> z@=LhaK>TkOlvWFnga6ov1aVc3Q0k@>k)>t-|JPp?Blr4QRRP~abI4( zmP-v!bBK6zO!coKJQ`1CvL;v6m_w3ScjsZp@_ z!LTQLYv#`%e5i^&ed{3r+<4A8fT`)2SiXe3efw`0ZF`Lr1IxBr394(Se_47D?t(0U z4Pb`su<7a2h57kCG#ah?ie?;E>o8+co{C^(B1ZOMX58j3V@FNgy?h95{?<91*J(MAC9?8$=%4<=L}RP6WNTpX>rw=yYIkN}5Fi0@Q74>;>*+5hZf%?cDI@a_53 zjMe5XxzqcR_sZEgtUx<;SX~)`pvqAg5WuCb2PiBoZ0Z40bbR_ar0849E$6|kY6X^>$l-Kheq zV}?V^M(TQxbIlIg4ag*_#KK#ZvBkMiVW4`FfGbq2{0uQH@k^KOS5iMtN@<-F7u7%g-7DZrPa_r5_;wGOOzwKb!9RpX;+N{FjMh6mSpdXo zOYG?9tl8Pw`bPj#fct(YR-Iz+cz1XRzC$)73MJ|#M5mXSP$Zrg-}GI1;Wu)fsbXO} zo6%Wm6J2DuKiGS5d*RN^{fBvJdrE2{pxqqT(Xq)0na$%VsL`vi(;pI#I773WXji1g(L`Qptx9SpeIN-J38C3BA@?^UAwD1{SJ1uFGAmrpCWwvbW8|~&R2aY{s@4%uaKO-?PaFCqrb^tf5Zu#yFnbw zoLlj^Yd||+G)}5^q|C*jUO4{N3z20%?m4jZQ}pW4LE|PTJIhh6=0%F9}udtA8(n1no;~&0v{S1{_%H8D8 zT3=o0O1fi1$w!ztD{Ux_j3%h>ti=j{Klgh`7016Q=y>H1i7QlR=k2k~!bm|ZJCEpF zpw8%`D=r2ihy^$a*P58m`Qd;-4DVd!dQ8Q}w&sEtW;;fqeyfZ_2A7($ySn06lr)+0 z$vpIvL!GFJglWJ;a}<{^UDEAr_W|MPk2#RJKIF* zRte-hmEVs}Uq>M49gle?yY$%+B`TvAy+syg?)*Nt56fT12Yq!${I>$RJo@4w3{`51n*5O5GH@obu9F;HKbKb75EIU zJqX-3%rzp1Qp=0BjO-8XP{K*dSsIN2zH8dVCnC6EiP6x(IkMXg_<8p6te4{c*-x-H zxMA=RpbH_0JvW#z6-rk~!_A4CBwn!!gX^Z2{=g?jnDiqA-RIYrj$}b^s{%{U5CV~D zK+k8k@mO~3^B1zf?R#pQan6r##*`L~o-2LevS#uQ;~Z4_2%ZKTcg<3P-B3gdpaD4W zxA~nn5%mTqR=A#9bzr1|<7A6yMtYjU&f0k#dn^v27ot1Lj=hb&EsEVVyK*~R62i&6 zegDq_nB!1c5$ubWc^DFaer6Ydn8&k) z&O0yykKA6A z+XE&&JX3GOYw^+E-8JVbV2B0TA<*!t!R&KYyZZH=K~u~N{a78O-`2GRvZX%?gKxjz zX-BU<;3cX444m53@C>xu99xByR09UmK|230Q&Nh=QXT0nQ)F#-S#fV{o#8Te`8s^P%lnprGa;jn%g$#h@A zc*f^b6v`XM2-eway=U+C`RBLHV%)FxzqC20Q~hlyN{8^Id~gl0L*4`_b( zhJd>vft<)4Z=%BGJg@OvDwOHee7 zXE^~V7RdGs&6vBHSQ%wlYDxJjueu!SUQGVPh8ryE603~qL*q|dzi?m5bn|^BCt6`T zQCT~Z(YgaO7xMI2s00tn+NDle;x{K#=q^R(jd9Fy8)S@~iOiVX&ZFZ(KA+Y6@H-ri zL`=zr093hqlJd@aQJ2nUwbQwMn~2JdS{!M@&_BPyZfiCc=XO^>F#9k%aO2gP&HCD< z+X};b1X+AC@4FrTr^uX%&L!j7!%?fY5(+7m%Z(Yxr13W8Q)A&kL3cUJRUUtzGZNX&HRnQyF-O zH};yfPiXR0cq9wn4~-h$1EN|x?5M2vl#Hq0<3v2pKgJ|qpEf)7oRRnD^_TCH^%=iG zT^~1>^Vjha8l92PEE#?AmN?C#zOK}F5t&HNsUcdfmGx{Ekn1lVvg@0U7^UX=zI$0X zZ#1B4H_Mo>wZtjnkX$YAk>Ve6cn!5`y#5XS!#MrNV%ZGadBR7 zV?9M+;IylKN>0!noSa` z3;hd~&}8|&7CqsU(@w^e9OP1mb*Grdd0uyC!W_g)_9ze_aj}Mia zcsa_cYGZkuuE>MRP!{!?O&hAF-}Cfp91|rrzrmIDh3Nj|fU^gA*DW?U8;yyzLoRWGFK$mcxl&U6}d=C+7A%=QZ&g*u0iL zwsz%pQcL~b`djof0dJQu052>HN$SBlRitJL-B{}C|fI-MH zMf+>RZ)6yKs;n9AthAilXmTP-#o{)XHd^8@(jX6GN0)kG?e`nV{y{)KbW{#-2i){^*4mZrOP z=_NT&*&PNs_QpqLMGk`yr=d=<7IfeH-cWDzxz3TYavwKyiwHn{UE;{)DYPV+YfeJD z&gsWGzGB!VD1UBSEIQqIg#){v5t>Whc)EOs<@^bpX1x8B$Z4(Uq7VD%8^^>EfVm2! zHiiDjd3S&8D?ZH7_$0TuF0en%LnlU5OAdfRI1SJWWSz{Ks;yiuY#FBRFe$3>SaomB2{D5_`(m_gc3A z4a54fpXD;OCjI@<3AGj3t^kYh@zQ3*8!3jZv-mOK?fm60gXQ5;RwMx^QUHsz9y+x1 z-AP;xFy}+xic~!~*83a~fWfPH7r&o#!BN`&4x2XL|FblZJ|f63X;K>{E; zgwGfM)<+Ho;?~Z(rvfg~qI<4XS(v#kTkx>F#LpUHu_GvLEptGl{KS;L)MZB&|8m?K zoy(lxy6OZI;Sj>5)qs~I?`I$`F5IQ;x=&Pbm7cDRGQc^0bjpX(BX)x<8eD!@Y$3W1 z>$^ob#~B;LfSzXd!EpJ^90?Xn&is{lmbz?nril$`95=hlh=aqha3IfNWht7eNxkh0 zz-^&%{!07Z*x;b?*?lTTQJyd0TGVij5bU@w_Sxk_RX=vYWxHKCv;O+px$s_jg z!Wyu^l*Pm7Jpx?6N9%YPnN@zYwT< zaA3-Q0Yp5(lo+uQnO>dz4F-H^c`_Jo!_rLfsZ0Fawh=j+xqVd&%xo;`Yfn)s!iXO` z^6=U$CwZ!s5a;euOy+6Ek#cAF0oj%gmDWO`1+p2-FS`6{yFWw)H7YVZ_E9(hKMx}e zX(1#*+hRHAuafh^X`Rs+z}$E`u~xf?XLqzReF?oHO8;CpL@X0B_gAJtnMhT#`5m}^1 zw%ne2B?EjHer`W+$;r~OXTpHQPVwJ;_X|_M0l={rK58PWK9-}GSloh%A_ST`TGE?7 zVmO6(P;M&GB?D`hO^cz8FFu*5I~t+u8*YVQf=ITLmK^7L0~=W+neU{nfbl%u9}z1G zYZ#YVh^Chob!Ci)cq$eN&^wM0;~h)4y(^fVKDEsIUyc!{93F-5J*9Een5Exf)j+G1XMks-_6OitS`Nk+4OZ6#Q8n>3_}Bpn>T z`aH!t?H>NhbU&x+2a53@ZD;9b`2r(${4Ht_ns;mT^cyK0s*urH(dm-$XYTOU{d&8J zv0^n=i0TR{*;6)l{JD+KRWL?9>&#%{z4SO3^(}KOEJp zzpQpFiqPM;?9dV|1=}!rNB(igSvYpcn|UsG?$$+W*@EVPTd6fodQ>^&>OM0Kb!YXO zF1&Ie9u!<$4zz2bAjD0GR}!}Mt>Qh7WIq?Zp+>B`LdwthiST*i>X=17Pc^aZyp`{9 zu)g+-B}YexAU-&SBzi)m<+sJ`mt%@ho;1#ps$PsYl@_0-Ruxp~ZiN8VDEl2SP?F3$ zjJG}ah@){~yEA}yJ9Qtin~Sf7kCzw!1QJmwSXFtBlG64Pt3+fE)2TjKQ#i(DljSTa znS*Y>vNSwX(aDULWUhtzKRoDbpHAK|WiiJXqI6s6zKc$*G^}cKDTL8^+4A~_doC_j zjSFCTZewHP+I++2#zy^0=g0+e^w&G-<)s7bnf?-~o`E?nJ2?hLv2B3|mq!>;MnV#h zlb{-X-Um>x)AV0th07A~%w`h&LjgM%#|Q`cu5ab|Ah!2ZO7HGlHikMuqrd;6EsPr`a0sPdI( zwDfVQ6s3=!e;|PhDwhKtsyG+cafNE_z4Zw0{PQB{`cBmAF^h_dCcXtSXxkw@=XL&y z*f_kKNefB`p<7!TtY0!%_}oJ&DC-bscx-Hj)90M$9yXs1Tuku8hZzT%8jyy;lE=VY zH0DhPsd(;md;Ml+B$gh=KfjihE>4CbkwJgtRC%LVy0%KO zFr!eaV9na5E4+f3LAB~$gE*r7kTMRL0PL=Q3)O*^!SUp6SzCx?4 zxZyqVqM0w!&R*x+s9;gk=hEOXH%rzDnCTwvuy*$412{i3V=Ba9F6CQgH}id>Q+EdK zw_=k&O-KZ5J<8nt#iQQuV_15np$3jOg`|(E+lg0C6k#GKm&9Ur9@aOU*P6>Tns+yW z*d9u@p6NW#(!ee*Y}&2z49;YDY%>*DU6#1JpCEGj`aa zv!Pu~FPcs^;~C~`m1zU3oQPFTgRUs>G?f(sG?}V_4r@G(Gl)T)&XSndti;qtQN5w# zXLn-uG{aSIA(Yfp)@fkbuxkE*L2Z+IXGmNM=}#GL4r308?b+D!%FQ>`Q_sY?uJS-Y z-EcWGNK^`GKNQUa%P7-{G;}z+foGy|8SPBV8-JMYG!n_D7n4B}9W!89Y;0;<|7tm# z6_4%BDu^E%oDbTKP~5LDe0-1q+<=`R-eV>mY|^PWlbX#)OGYyN6zwTU4x{hgS zfydAf{c;+L%u`J;RBaS(R9GzT-vl#JBqxj@4$QHSlqB6}3h;H+IfS0A9_RHu8}1MpNH|5;XF>>PYAfvKXWbpZ&-(oN=hjo|MaHPd@OyJ0ecZSXddp(o)0YGF;)+R0|yP-$Rgy z0W34}NDa#u>6nZo{mgp`k}Xh7=m8$a#U~4y_uM-tI;n3~TfOpFXMdg^Wd>kp{}RMU zXb#4`aUJpTngIgP=-I%2N1d>V&TKQFL-%ZF)uedZ${io~^uhMU;Dzgr&UY#-gY+Ou z`m|tDLksC0E3A6(RlGCz3@sIoVm}qgUJ~lo>4;!V-4Ro<%`~F_wNz9E6w@$C;S1X* z=(7(SFPtdOjixHynRBIAr&muEZz3@2a3x6{I#B_`yWgoqH=g>NK0MaQs&+`!~oQmhEMf#{#9EY&rEh3T6cUZDFkJa66fza7Gy5me z*|6@ya)P}#F*hUJ&fnj^9EUrltk1DN3k7S1FlI3AP7JxjlzSz>YUFT8yC{p{Z-Ifo zm-Wgyf$YIQ$f8QBc~rxPn+JKlJUsII`uh09LcpTDot?hQo{fIb9|T6y98UyAeskuh zt?<0twZvdA^efV!rEGddOz$34e=QnqEyW5$$rVPmi<{pHQ+GISSE%}ylD8#jPV=g# zPmpsuxz-?xBArqKbacfWU7d?jW_w|ge+wsIx%T8FUYdmyO!Yo)PIsNZ`<~T!P=Dmu zC$j)duJe|5(zegAV+ojGJvm}S(=i{Pp+|IPI?v5ya8!-E?U>oiv3xyznjukxvazvN zg5wnkA%As5zzc}YeJ;(u?vgw=7BVVjM-~ckL1IzT@gffe1zP$=gByKvHZw$7i@QI} z3f#YC#11`1t{Q)X)0yAr*sD=d4yiEADR&NdxiB?0&17nx@;ft~l#lY~Bd+b{7;xg5 z89vM@ktdL2d-~-VecU#Z{V^Rs#PAL0D93H&b&kg*1Vn37wjcT!(1VZTDn)8B-nHbP zArhDz7@hTjX2Ai;@OKvm zFnfkOsNbD1#T+Oh7AS1fiyTSe(Tgp47~t>stfH;Naw`?kkij4g>HWxvKlR%_IQ^|h zKMj5HzhP|JP6PmC%cv)8y<^s&j8*{U3^e}VSAlaU zrhr-rz~4Tq^F@WB0kgZH#{`cj*!*~gL}j-NG+PL~jZ>ZYYP8EAQ(VvmO4KRwv)F*i z>_529*I+5aYX2?^_CLTE;wrsz8)4>(372B}0=09}5Jv>H~ z@mt|X+WFG<5!QBBtlE|URxXv6*pCDSqgLl6Yu6Tq*@Z3{^{D9GTW3?&xJm$?Y4;z_l2(9z8t}Ty z9r`#8Ogh^Q$^Dd)1%8mn9<$66N6KQFRyuHPW|bFbFQF8|8g{+moG*lx0*Bv;VI>uTc3}e+ zwnzP%M2QFH=^UK&Jj@eS;S;RE(hUZ}r1<;06&Mm=G2+-6ph7#!spbKzoHuZ4Y{;8i znuW*y!Heo4t@`4YSdFzu$8l{RQK8io4wiltc2Q67W;AWF{@ z;%wS(Bf*`Irzm;vZkhebkurEt`~rx<$aP{$rPT`zK}*)ClTuE}?od2Ult>b0 z;qt~uUF?4OvoCvCG+KC%s)kVfShTN3TqHhnVC-_s$-Bcp_WLPtxQiQk0PJZ4r;f2> zjd2ZQyTJN>MOLg^59}g&((wgY#$?fR&gqdmQ{c%iVv?R7`_j_RvT#7_SpC|asSFg& zXdoi?2m=t77yGUR8L(3iY2E|Ut>H&GMZC;mVjp_=4vQn40Me8T^m6V99st5(McYzP z3|M!1Dhz)nS!VvZuID)Uk??VrcHQ-xuiT(Utk)VL|5GZB+!#8%Z z%dWAfG#}Ze51<4HqIS1{HqfHgh>FVY=8!Mn{i&#YeWmNH*+N@?67?W&?M;oj1c#IY zCV`K^egHq%u7`dIEy;DH6de@5h}C#ytvrM<7i6*WEkWI=0YyoM?vC4Zs$zHX5XORD zu&k082Yq}I5La^fZ?L@xQhi;M_b{tV5-g5fgK!4seUPanXmWYEU3U=t;4{{Q(P zfGi3i4buySHCXa)YuGK2h2pmPG5riuW4cMd3Wco{5{Ygf%!(thr+ zO9cP{z;FLF;{WpjPILrP+|NM-z!_luZXZ@P79^niEffyo0k%OX0PPmQ>h1q)0vMt6 zFJ>QQ2R8zl1^TofH6}9&#Q&`T+x}qbMJI`}-1}MVz5yGz0{_WuZ(EP3<8ZC_%-X*|A5RRPYA{_fCh*!`H6R`1CKk>`hu9ELug#YC8 z3hG;877%_s_Q-$CwSsnaDb~yj{9gkuicy8dxmN!N;~@?c9i8nx&7xvN!heK<_R|-s zwI1D(FKlq_aIErwy9q*F243PgYEhO>7E|2VT@l@Q2AJptvj1-mIQVb!|N9~CDYPW} zBIS#xxGg9VknQj+n2QIVEF$r+cfc`84!jm1CZ0vj=smYTw@WEF3u5j8d0T!Z;AAx! z%sFH?xA!~(yh;S?V)UO1o`AUfLE{kk*kOe^6S2#Y-kxVv z0E5M1$J(TWz=5Bq6oIyX8X?b(bZVpU5Z)|ylDd`b`VoF?n{9<7_CS&oP3R4Auu@*rNz~h!3A^4v-Yips#Wg}p_V3bZjsy1V%$&E(x}{8&8J>y8 zP+uCko{k{nYr$EA|1|Ej2-d!WI@Wwi=T>ndc()%*-_w+MMhOITfxuFjSBC&ZGRkN8 z=z8oRcr#kxSc>Tg<^*o&R+ytBp)BVfrvh=G6T4q=Z&v&$VsNR^02ga8x1EzXc^KKI?oYX?5t`J{UtgJI)%a2QP!jjH=$GdwNv9o**JPNuzB+Nzl zGe=)(654*ofk4e9f*K6TjAXg5#}+_%s$5Os&42KnJ}AUIvY`H`R_m^k-Kihe2C{-<U{riqnQU5#JS3?VYb7Zpl0lPwcBJ7$MlC2fy%$! zibNd)zcUZS(^I92R@%G-=tBpiA#h;V^$2@lt_M6lMHkL>Pbi>$y9jaQm9t8Fe4c%}5hXpP8^YdsU4D@ymwb8dga5C`oAlPZ z84cwxcG<2W2-z>bD!&!lj>lPw#)KQ3-h`$uM0fiylKMwxV$jE&U0?*~9LkNC1p z^|U>|#zaP4*gzfOU=*`}ZS~2-vZQwo3G7g*5eIJH!;?-EqD~875tX?Wxu04^YOZ={ zmSv`WIu+2tN5u728Ya>U8H@M08_1_(Ees)Z|~r18%teZqpCIAezpx;rb~*J^KY|FeuF zz_UOEe`EBk#0N3QM|Pu0Lmp@CcTmMY+v{)@B_kP6G`ep`YyZN(8&j`00cZ(CEA~v~ zu+6joj7G?wO+#1rr#tg!LQN|dVU;bs^zspB7iFxC&yUmzZ~Md*&zJ5uBiuI$-~D+;_mMI){32QTqE(^_>d!lGBfRk zds3LSS@Wtnrf3Eo{`4GMm|N0Zd*3$HXz2Ty3}tlhD30`f*>Rs+f#`jg&Mm$~ebHUY zz6U^*JcaNF-NIsDiKOzBp@NRbpwAOeDo{se>h7EEh?V(Nk1;(rsbEeRbm!Th!PFA1 zGWPN0b{w^(YR~&&gC2v0@bjnlf4w~_+mGeH_?6`ZE|%;eZ2i&g95yl)Kh2{6;g z$E7VGPBobkeO|bwUbxSToRls$SRqkwo9e{=Q%%3dz&Rjj?W?-gkV8f_boo^4*PwR; zv2WT&sI;|Mh$!~h=2(!`KL*GH-+tU7%1BSt1t8`cKDzEW{kH2D3MoH`=YFd?-j8LD36&X@RGyJ-}dVhc2`g9E!4>Cmv`|zg{ zP1|eLFE3OvUOrp<;q?X%YEXK$zOB(*-Xe9g<=8*R%gs)(c%$sKsndyy$zRyS)O@$( zhyA(f?a#aZ?VB$TRs<9O_DjWYgTx#sqS@xnr$Fj{y~B5p^&E;S!OZAgg;0Y>Lm4+@ zcOy>t6R3c}q28xE3vVyk3+x|F))vl89PEP#2R^n3JWbwbHg_5+t_=>H>hLe?b_V7@ z+(4+mQ*U*%8faJp?}2-+?3tS>_jtw;p>%^4O&tcWNB4{lk=Y3$QfOYEBgNZkd(k_N z1M)7WH@0>HZ9aHdm%Qor<_pV{$Hz3N2Al{zKRc#ufA(%$g$w=Xi+TUawz~w@MtQnc%?AGo*iQR0@4evK zhJwH3Cw~=z%|&6=J88)??)zNaEZ$b731B@QEhL!#%R2@Rh_7bhtplz!B=6bAwMgPvyfavGA3QcwJluPE7xUKIE2HC8R2WXRbzeJs$(EzGV zP5oo~7k}X)N8->xYC2S-A>dB``@Pjh%9V|03A`zSU{GxSHU~IVwFj;;V7P3yxu@3M zE6j5&Z-$Znuq7FifZXW2K4bp4UQYXewpniUgj$Y z2^yt&9mRY3Cs9WH^BcKJ7A+^wR2TJ!go|?#77!*u+LoP&z7ge`k9L%r+mh_8P*BGn z!b$-Juy02JDO~3~|A1BbS-RAkf>*0i5xQXBho@gHN^ZsO4f);ex~Na@hRif93bV)kFrJrynmE|x!f8;%!oZdxp9 zmcPW7AMcR|1{pUj{-u2T#g6jw#&@U(fo(=#KDvnHuN74GouGGq<9ktkT-^YcsRcBV z(AuU~TeP^52FtjP#|dF)%&aXu-A*L4Wk^-vU8I0@eo}~@OvgVyRALZ_O z$bVA?D#RN6;kKQDQSMcK>r6EHqPtmt~C?a zpd7Bx-5VmYv&1`HR@zx!e<&5|Vt?cjZESFZaPzXYBCzqi(jP7W+7VcR>~pp6OwVcZ z@f^dzGy4^X-P-baoL4f+JEG2dEeE~(tsPaQ2M<|Y{beLn8}H(yiDH!)0LZ;I!v&i* zR?kErYW9~1&Qf?sbM{eF2z49w%1lIm<|>WqSBC({CjPPN6e1F@0L%fss7wK(;>6- zc9_3HyQLQZ64zAB$>M=DY(kz8R-$s-NL{5f=Z8ovPv28Bpok<{zgawRnn16;NOfRb zn66~IxLXPmz*eOfNl74dn)_j$qchCZcX0+OQnA)LsAC5fN7QO^52r4XWNlK#Ugs_j z)?GRh0_+AINMP&?DuOJ8%2T~yDOzi!_&9c1t=|}b6t>AWaABvu&$k{EXn>2kSap24 zpqD}Rh?dxuNZh#lc)#*RT}nf5@s2mw!~>P`B3=A+diy+YqbN3FGqP{<@fy9%HD=*p zPRbg+0)Od5M#P2%b0Kn9k>Wgk%ts&U*q`ecoouqbQ)?o21$OV`_$i`T41JLA+Wl{6 zhowbrqOu>Vp;~LZll)u?7ixdln`Nk+1bcTsd{)7uJiXXLIo{{jy)1}pr+;Xo@zX}H zb6P^*_RH_YJ21!gw}zNj4vTZ~!JwcfAc1`{ydwiCBVPi(-7%sVX}sP8?V8z)=dc2% za|e%X($g5P&mgjoBz68xJ}<1pawdW=TBIZo2|4e)`wr37ew|t%G!*{&PXwc9LjMY) zy2}(Yznxlh&;=TIi#k%vfqy1ixjmCs5D2mH5ndQa!dY89-pd<&jM7}0Ub8+>IAb{Y zZG!`R)xqg?c$PePC?(}TQUE+WdX~N+Ld6!&xYnLrZs309|7iS$j&2?~bGJk&Kg-U~ z#}}WcUN2I0zow$Xy)g{!t#UOJ5|O>Ze*xz3YS8JS!qS1mIz*cr2 zhwHnwd=(!6ZvnR#(F-2>Mj5K>xS&O_lYOTE%O=S6mTZnyRnlr)xOEiH65}=h@kfuE zmK6jX1Cf-EBP%*3${r>XA>GXF&l^$RABFI${E)YIxJq7PLwOEW93sHrmD&a!IV`(2 zpVcP3ySBA2vJV}j_E9+P__yKZ`bF`+v;8sNLCqgjjm7&-74`E!3Sw_x73!K4+w(jq z2pcPTqNbm@xRuT-W%=?EIJI=SY>$3}y5URP1M4Fa4tKV6u-k^3gI!#$2IbxbKktpo zq}cy@m9&(ry7#l{Lm@py7v~t#`j<^f&^=&}15q%-`l~C?SGI~^#u#1tJhR2$g}3LfB#6B*vS0+`KEV6 zvvO0<>Z4!hHTo|etW;7;D^$R7|CU{~jNpN}ve5UZz?VmsbpNeBh`v1M6BHY6Jlq~U zfsfX{$^rB85vFhFSF?Cc(viys3!%rgAN8FM__@I10Mz7S)NQ7VCi{`nd#|E&uG9piT=#Uau3Hpk{#e z%uA~&sA3C^ulTBN((4vYKWLZi&V>oERKO~p+?$U2Fe`lj)?OaAg_8U)qUmD)s62xH z6M^58`)OdxOf@C+t?xlA*_5rOYi6{}ATfrIH z-iFez_|D;Ar+=P8uyngyH4toSUbQWqn=tQfDv`UTJVakR(568#sdgzOAM&n{2)yRv zSe(`7BP973nV+wnvxyhkT@BtN1{vg!=<_#YeovNVwW_C{xQXIs&wS}-&{qacSKVh| zL@n%G0pm4)o?z4e0N(b)f24^v9Lfxen>pIu5tS^BIX3x5FHaDAbQQIr>dVroTtH1#sI&uzQ#eYi=C1e6uv zZ0$q(iDnI6LS{L;CwM}(@`Peerms}-dw$AKwbAFYb)x5_CIJI?J9ZNXz!_@3^QBb} z@k$v$A7bkax^AYUvw>Qy_TA@8zlF*EBsJwQIFajf&tf;l0p#D04;(G$Q5L{v9#w&G zm=p)@^KCywe0Ynv5uVNiqIn}5*t?g)-;@ZvI-S*S&>xvzef0U3l6p9HIf3_waO_GQ$Gumtx`(syo09(saxkc>452 z7#Ez~8iGDGx+6|J+b0X0JYmq4xy1&J%d-aPbkIp)FO{~hYhh9~w?lz>r#S1@JifhXpZrgNgzRH(>S!R<+=FYD}CD8v~$L z?&Ab&Fyi7*)gkAaafA&+V)=1gi>fK>(L(_Ft?RZun}kWmuzJXbI1J23;XQ|dM~~Q8 zh#Vfo7%JKID%6x(P$mO+x3*;i4m8(aA(DParPoQaO30j0;D90|Xu-Ex>c6i^&0s0Y zNLUWojjZ8i;^`3LCp1wk+N?o~lQoBBV%=UIE)DMC@eNthyF*wmZo<7viY%ZpO5uyX zf~N93vao#!0O#@^*CrE3M++4c6n0kI)a3x#eb|$x0Nimva!~xO`w;*Fn5VINO77gf zTiTIfgyDp6MgdjMPMT2Q?^p2kD*H9Cc%OIO#RUm=P6UwZ@9#ty(cTF`I4i){8jk=) zzDwY4X=G`E(J}ZA2?1X3<`IUNIXQ<$OI;%j!7i~koJeyR;p(u*3UoQwh|UGUUa%fj zsG(rVj>F*W*Ts#07kX=I^hfK0%M3RLT&r30Giz#gDq0s|NC57xwGp-GE!18Z>VFLm zURvoxe9KMB%F5O^8<=$Pwdmz=7@PntxjXf3$r24p8#wv3Vvo0%XuF<#h(!XqKOuT7 zuEif>-pq$xUG;MWt8Qa=Tcm7cfkq*0&{r-(#6n^K*t-|b4#5T-s&t~5&6)V93ycnb zSp&?Qp#&TbH=zmKYEND-7le&Vak5?qjRzaaNQ0?H)<9g*z zY{*X$%>0iZpUyC6I@0W2jw@WW7r<(85^~O`+(Lye$Lk3SfR_(GTO>ZfuFCh_7}x>S za0)ne2+(xvppnqg@u!irD@b_&0QRjjytW!DDz2=pt*wJ?kiWpL9ELOaQXCHvDlK@yC zUy?itFcy>C()IA~-`~7v=vJ2nswaS)27#@RI?@mk>Ojq6&74|=-LZ#29jG49fx6BW z*_IX@)c2Q_8QpTT&9i(;vVDFMGgwCft%pRdY{tAW*sx8^m&M4)0WvYa-fqeQJ<5O& z;vo?BW2N$W=g$w~_s3Y++fh{L24xw11t0yVp`AY5XEaAA1@xTnx8sfa^~zG} zBrpcX9EGp}V@&Ap#AWXmXFWsm)`zKhD~Ru&&22h$vwt9g&t7=HI;4&U07?^Ib(n<&p$fiLA85Y?LSlG%2o@P?J)xyU}0)Op*{R-mX@!vkC0@$pB z$0H}0;0vJSD+GR%=XYo(H-?`Uj?prnV{FTAwV$Z%uP!aM${J>iwLJg;*q=uj+7xGN z>nwJ5_MM%%;<@{qqm?6fOtaBp`WMfd)^G_xILTK5jMVm@`+Y0h>R}T+&STa7xvyWp z-g_1+MR94k7Z2pHf%@Vmbtx9bFO!gxlgg$9+@%R6v;pEa_FTy4_plL#6^*i zdoW+ei*LsNxjJo9tYIsicV!>|tGc1VRpJlDWdY`(m~RPVJg9}5?rV&SS!P~tdN+@H z-Lho9$jjuFBy(Q9ZYUB42M~}k5F>d94uJ#R+s>eIF8SEjq8B9gbqx*uVD0i$6qC;Z z_Tr|F-J6Q7w2zJa75#FWNfIjq;-mnG1E+4cJ|NM(jhn(4ft^_mmCiMVT#?>_&lUw- z&V$QCI=6?f8C{|E7dso(k(Zt$7Viz+G0rv(3xB=Mlv4#vfShaM;~%X0Ad=d=<6CAe zMtW1B$CQ=N1}%*h_V)HRX}cp}aUg#wstoNJA2~uF*XK!0zhh8)S+YPL?@AN%Co{rV zitwQa5bU9LyMoHO94(^!ls{ZaU0o*pC~giqAPbs`v@xTvw2UvkaHG;9Bao3EJbi%P z?i0TDtoNb$`TcFnMr%xn1BXVp7NJGXSQjI9l^8srgq>oJ_;(uU48M6%q1#o2`F!{R zSq&lzy8p+O%Vwc;v}70x)$Hr$Gx+J|&eqh6IbNL+-^5-l4A1N|z4PtmQ)UvAe;iGC z`JCNCm)k|1a5K?yqbYc8I;s#>F80-gki$OzKFV1F3tAr=LFPU3yNHD016_xp zXr;$#2V9Iz4?(rVzD9xq(B*D8|JTmVd#&sjE)P^g(=RRLeNlQ%B39EXcN}-M}h4=drQDTnXUSZjVFQj%} zIBv@zHf4sXM%{lgoJhb7a=jn=b&)eNgIo6;bd0f4$!uHicgFOLRQuO@nGn<>2CD8( zEl&zch-e(psQsMSp2PW5cY*zxqi*DW@Ml$uyUb$#pJvXzsi`9j<4FvNpynik+{7Se zq*N{jD5z8tX@pP#g`l*GA%Yhwri@BO<&qHPB8f&(3mvOxG*qof5H+A8At;bREf|?X zL;(p%ql6MFmqRY+bm^z)2YBAydG?uo_mAJcjf(r-{W}^m#%lOObwRrfZYdeE>T2$j zV-rR%MiP=ESDHTUyc4@+t7WJd9ZEvgoz^Zh$(X7_;)PlTPUC^s9Klm!ZI-RVlgY?) z!<+jxhXXYIb95fyEY}>o7!t_i5bG|r6jc~n?;l^~zT$4VCUSwHm537#^Tuu~YPx6d zeYKUr*zb?NowB=6_}9oPs;Uv z1_3II7n0Pzb`sd$WgB4`)`Qdw%=MYc*?m79c_-e6=w;GRn*$mvKac$3t_$KQUTelYIQcrKZ`A zY~_&~iuPK5R`MWq^91(x;Wdn9Mn77M_c(gyZ{!&UnXrqDnCsJ=t|}km-eXxD01|a- zrJ^Y%?$s#v+C_|c>x$4JXH;V*wSU31Br*+hp|p*^D29f|Tyo-6L;y12ZWOT!8AoA^ zadxXEt=^Is{395wP=u0&!T>u-3h5l1kQzk@cmAGiY9&X`qr@)qw87!JIEE#Qro2B* z3Fxou1pe~B;9H2g(;PGj+j8*Zr*}G5q_0VZN!;!hNOH2#=9nqHQVBb6P1f9ir5$ zolz|p+waA<4A3e*-$eFT5L@ErYoB*+X{~lBIcwWes&bAxS0E_8AUcMUa5#zhd~cUF zBvh#v(B($;v`O~a3YR{Zod8R>!pE`T9VBR%lIHSzg9jVj$!s5=fSS zF2eS&<&RA_k>EA7#nkvusWZNePl*3e@KT^?4zK6&m4|HeX0m%FH_8$+f*6 z0bLRWw6%ks$DGyHO*znQ7)pIqu}N0Qc>HSo0=*F>VQ(&*EwU=BI>AB~2A2u5+oDzT zb&>PJ$w7XQ2N}tdEX)mwv%8)Ey#RA_RFx%}Net&CBg36D$?)hJk}jSRc*%RPf`>Y+ zgFIsKL4WWC)SRf6LpaTPKSbxun+Swf6XSi5gOX)HKYW_Mld&YpI3&)`x+SQ5N(~#P zHvB2o!37j3%nfP?d4H1b1zmANSi`NR#9tu`|7F(3J3tAB0yI?Ywl(XsN#m zWYe`a*f)nZVR?r(pxK&HZxEI5Se{1{J-KuKIGsF?fU95fJe{vEPA$#LZ5E`&WD0x> zVO{4%)h(}cY}?dA&o6BzQrA$Zpa;ggRxdi^Hz{!HTHNG)Bkyd0Db3H~h%GD!fh(ap zl{{xA+Ub7t{CS3eVO_$nWn!AX1D&$7YTo8YHg+WZI;f#=xv;L$WiJ0Kp2 z9Q6JjDmZ_N7fhe46_gP6^^Ui(?1a5M-&EjU``$Zafh#!vAc|`?Kq7D)TZb3?AIFlF aJ+@$h9DjEAhP%KN94>lO97`U-6a5RR2_WSF diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/BenchmarkActivity.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/BenchmarkActivity.java deleted file mode 100644 index 63e0ee53..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/BenchmarkActivity.java +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package com.alibaba.weex; - -import android.os.Bundle; -import android.support.test.espresso.idling.CountingIdlingResource; -import android.support.v7.app.AppCompatActivity; -import android.util.Log; -import android.view.View; -import android.view.ViewGroup; -import android.view.ViewTreeObserver; -import android.widget.LinearLayout; - -import com.alibaba.weex.commons.adapter.ImageAdapter; -import com.taobao.weex.IWXRenderListener; -import com.taobao.weex.InitConfig; -import com.taobao.weex.WXEnvironment; -import com.taobao.weex.WXSDKEngine; -import com.taobao.weex.WXSDKInstance; -import com.taobao.weex.common.WXRenderStrategy; -import com.taobao.weex.utils.WXFileUtils; - -import java.util.HashMap; -import java.util.Map; - -public class BenchmarkActivity extends AppCompatActivity implements IWXRenderListener { - - public final static String ROOT = "root"; - private final static String TAG = "WEEX"; - private final static String URL = - "http://h5.waptest.taobao.com/app/weextc031/build/TC_Monitor_List_WithAppendTree.js"; - public static CountingIdlingResource countingIdlingResource; - private WXSDKInstance mInstance; - private LinearLayout root; - private long startTime; - private long endTime; - private long duration; - private boolean perfStart; - private boolean perfEnd; - private boolean isWeex; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - root = new LinearLayout(this); - root.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, - ViewGroup.LayoutParams.MATCH_PARENT)); - root.setOrientation(LinearLayout.VERTICAL); - root.setContentDescription(ROOT); - setContentView(root); - root.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { - @Override - public void onGlobalLayout() { - endTime = System.currentTimeMillis(); - Log.v(TAG, "End: " + endTime); - if (perfStart && (perfEnd||!isWeex)) { - perfStart = false; - perfEnd = false; - duration = (endTime - startTime); - Log.v(TAG, "OnGlobalLayoutListener: " + getDuration()); - } - } - }); - WXEnvironment.isPerf = true; - WXSDKEngine.addCustomOptions("appName", "WXSample"); - WXSDKEngine.addCustomOptions("appGroup", "WXApp"); - WXSDKEngine.initialize(getApplication(), - new InitConfig.Builder().setImgAdapter(new ImageAdapter()).build()); - } - - @Override - public void onStart() { - super.onStart(); - if (mInstance != null) { - mInstance.onActivityStart(); - } - } - - @Override - public void onResume() { - super.onResume(); - if (mInstance != null) { - mInstance.onActivityResume(); - } - } - - @Override - public void onPause() { - super.onPause(); - if (mInstance != null) { - mInstance.onActivityPause(); - } - } - - @Override - public void onStop() { - super.onStop(); - if (mInstance != null) { - mInstance.onActivityStop(); - } - } - - @Override - public void onDestroy() { - super.onDestroy(); - if (mInstance != null) { - mInstance.onActivityDestroy(); - } - } - - @Override - public void onViewCreated(WXSDKInstance instance, View view) { - if (root != null) { - root.removeAllViews(); - root.addView(view); - } - } - - @Override - public void onRenderSuccess(WXSDKInstance instance, int width, int height) { - if (countingIdlingResource != null) { - countingIdlingResource.decrement(); - } - perfEnd = true; - } - - @Override - public void onRefreshSuccess(WXSDKInstance instance, int width, int height) { - - } - - @Override - public void onException(WXSDKInstance instance, String errCode, String msg) { - - } - - public WXSDKInstance getWXInstance() { - return mInstance; - } - - public void loadWeexPage(final boolean weex) { - isWeex=weex; - runOnUiThread(new Runnable() { - @Override - public void run() { - if (weex) { - if (mInstance != null) { - mInstance.destroy(); - } - mInstance = new WXSDKInstance(BenchmarkActivity.this); - Map options = new HashMap<>(); - options.put(WXSDKInstance.BUNDLE_URL, "file://assets/hello_weex.js"); - mInstance.registerRenderListener(BenchmarkActivity.this); - if (countingIdlingResource != null) { - countingIdlingResource.increment(); - } - perfStart = true; - Log.v(TAG, "Start: " + startTime); - startTime = System.currentTimeMillis(); - mInstance.render(TAG, - WXFileUtils.loadAsset("hello.js", BenchmarkActivity.this), - options, - null, - root.getWidth(), - root.getHeight(), - WXRenderStrategy.APPEND_ASYNC); - } else { - root.removeAllViews(); - perfStart = true; - startTime = System.currentTimeMillis(); - View.inflate(BenchmarkActivity.this, R.layout.hello_weex, root); - } - } - }); - } - - public void loadWeexPage() { - loadWeexPage(URL); - } - - public void loadWeexPage(final String url) { - runOnUiThread(new Runnable() { - @Override - public void run() { - if (mInstance != null) { - mInstance.destroy(); - } - mInstance = new WXSDKInstance(BenchmarkActivity.this); - Map options = new HashMap<>(); - options.put(WXSDKInstance.BUNDLE_URL, url); - mInstance.registerRenderListener(BenchmarkActivity.this); - if (countingIdlingResource != null) { - countingIdlingResource.increment(); - } - mInstance.renderByUrl( - TAG, - url, - options, - null, - root.getWidth(), - root.getHeight(), - WXRenderStrategy.APPEND_ASYNC); - } - }); - } - - public long getDuration() { - return duration; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/IndexActivity.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/IndexActivity.java deleted file mode 100644 index 084c258b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/IndexActivity.java +++ /dev/null @@ -1,198 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex; - -import android.Manifest; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.pm.PackageManager; -import android.graphics.PixelFormat; -import android.os.Bundle; -import android.support.v4.app.ActivityCompat; -import android.support.v4.content.ContextCompat; -import android.support.v4.content.LocalBroadcastManager; -import android.support.v7.widget.Toolbar; -import android.text.TextUtils; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ProgressBar; -import android.widget.TextView; -import android.widget.Toast; - -import com.alibaba.weex.commons.AbstractWeexActivity; -import com.google.zxing.client.android.CaptureActivity; -import com.taobao.weex.WXSDKEngine; -import com.taobao.weex.WXSDKInstance; -import com.taobao.weex.utils.WXFileUtils; -import com.taobao.weex.utils.WXSoInstallMgrSdk; - -public class IndexActivity extends AbstractWeexActivity { - - private static final String TAG = "IndexActivity"; - private static final int CAMERA_PERMISSION_REQUEST_CODE = 0x1; - private static final int WRITE_EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE = 0x2; - private static final String DEFAULT_IP = "your_current_IP"; - private static String sCurrentIp = DEFAULT_IP; // your_current_IP - - private ProgressBar mProgressBar; - private TextView mTipView; - - private BroadcastReceiver mReloadReceiver; - - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_index); - setContainer((ViewGroup) findViewById(R.id.index_container)); - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); - setSupportActionBar(toolbar); - getWindow().setFormat(PixelFormat.TRANSLUCENT); - - mProgressBar = (ProgressBar) findViewById(R.id.index_progressBar); - mTipView = (TextView) findViewById(R.id.index_tip); - mProgressBar.setVisibility(View.VISIBLE); - mTipView.setVisibility(View.VISIBLE); - - - if (!WXSoInstallMgrSdk.isCPUSupport()) { - mProgressBar.setVisibility(View.INVISIBLE); - mTipView.setText(R.string.cpu_not_support_tip); - return; - } - - if (TextUtils.equals(sCurrentIp, DEFAULT_IP)) { - renderPage(WXFileUtils.loadAsset("index.js", this), getIndexUrl()); - } else { - renderPageByURL(getIndexUrl()); - } - - - mReloadReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - createWeexInstance(); - if (TextUtils.equals(sCurrentIp, DEFAULT_IP)) { - renderPage(WXFileUtils.loadAsset("index.js", getApplicationContext()), getIndexUrl()); - } else { - renderPageByURL(getIndexUrl()); - } - mProgressBar.setVisibility(View.VISIBLE); - } - }; - - LocalBroadcastManager.getInstance(this).registerReceiver(mReloadReceiver, new IntentFilter(WXSDKEngine.JS_FRAMEWORK_RELOAD)); - - requestWeexPermission(); - } - - private void requestWeexPermission() { - if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) { - if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) { - Toast.makeText(this, "please give me the permission", Toast.LENGTH_SHORT).show(); - } else { - ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, WRITE_EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE); - } - } - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - if (TextUtils.equals(sCurrentIp, DEFAULT_IP)) { - getMenuInflater().inflate(R.menu.main_scan, menu); - } else { - getMenuInflater().inflate(R.menu.main, menu); - } - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.action_refresh: - if (!TextUtils.equals(sCurrentIp, DEFAULT_IP)) { - createWeexInstance(); - renderPageByURL(getIndexUrl()); - mProgressBar.setVisibility(View.VISIBLE); - } - break; - case R.id.action_scan: - if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { - if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)) { - Toast.makeText(this, "please give me the permission", Toast.LENGTH_SHORT).show(); - } else { - ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, CAMERA_PERMISSION_REQUEST_CODE); - } - } else { - startActivity(new Intent(this, CaptureActivity.class)); - } - break; - default: - break; - } - - return super.onOptionsItemSelected(item); - } - - @Override - public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { - super.onRequestPermissionsResult(requestCode, permissions, grantResults); - if (requestCode == CAMERA_PERMISSION_REQUEST_CODE && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { - startActivity(new Intent(this, CaptureActivity.class)); - } else if (requestCode == WRITE_EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE && grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { - } else { - Toast.makeText(this, "request camara permission fail!", Toast.LENGTH_SHORT).show(); - } - } - - @Override - public void onRenderSuccess(WXSDKInstance wxsdkInstance, int i, int i1) { - super.onRenderSuccess(wxsdkInstance,i,i1); - mProgressBar.setVisibility(View.GONE); - mTipView.setVisibility(View.GONE); - } - - @Override - public void onException(WXSDKInstance wxsdkInstance, String s, String s1) { - super.onException(wxsdkInstance,s,s1); - mProgressBar.setVisibility(View.GONE); - mTipView.setVisibility(View.VISIBLE); - } - - @Override - public void onDestroy() { - super.onDestroy(); - LocalBroadcastManager.getInstance(this).unregisterReceiver(mReloadReceiver); - } - - @Override - public void onPause() { - super.onPause(); -// WXSDKManager.getInstance().takeJSHeapSnapshot("/sdcard/weex/"); - } - - private static String getIndexUrl() { - return "http://" + sCurrentIp + ":12580/examples/build/index.js"; - } -} - diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/SplashActivity.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/SplashActivity.java deleted file mode 100644 index 6d8762f1..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/SplashActivity.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex; - -import android.content.Intent; -import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; -import android.view.View; -import android.view.animation.Animation; -import android.view.animation.AnimationSet; -import android.view.animation.RotateAnimation; -import android.view.animation.ScaleAnimation; - -import com.google.zxing.client.android.CaptureActivity; - -public class SplashActivity extends AppCompatActivity { - - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_splash); - - View textView = findViewById(R.id.fullscreen_content); - ScaleAnimation scaleAnimation = new ScaleAnimation(0.0f, 1.0f, 0.0f, 1.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); - RotateAnimation rotateAnimation = new RotateAnimation(0f, 360f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); - - AnimationSet animationSet = new AnimationSet(false); - animationSet.addAnimation(scaleAnimation); - animationSet.addAnimation(rotateAnimation); - animationSet.setDuration(1500); - - animationSet.setAnimationListener(new Animation.AnimationListener() { - @Override - public void onAnimationStart(Animation animation) { - } - - @Override - public void onAnimationEnd(Animation animation) { - startActivity(new Intent(SplashActivity.this, CaptureActivity.class)); - finish(); - } - - @Override - public void onAnimationRepeat(Animation animation) { - } - }); - textView.startAnimation(animationSet); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/Utility.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/Utility.java deleted file mode 100644 index 7c07a451..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/Utility.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex; - -import android.util.Pair; - -import java.util.Map; - -/** - * Created by sospartan on 28/03/2017. - */ - -public class Utility { - private static final int[] ID_STUBS = { - R.id.weex_id_4999,R.id.weex_id_4998,R.id.weex_id_4997,R.id.weex_id_4996,R.id.weex_id_4995,R.id.weex_id_4994,R.id.weex_id_4993,R.id.weex_id_4992,R.id.weex_id_4991,R.id.weex_id_4990,R.id.weex_id_4989,R.id.weex_id_4988,R.id.weex_id_4987,R.id.weex_id_4986,R.id.weex_id_4985,R.id.weex_id_4984,R.id.weex_id_4983,R.id.weex_id_4982,R.id.weex_id_4981,R.id.weex_id_4980,R.id.weex_id_4979,R.id.weex_id_4978,R.id.weex_id_4977,R.id.weex_id_4976,R.id.weex_id_4975,R.id.weex_id_4974,R.id.weex_id_4973,R.id.weex_id_4972,R.id.weex_id_4971,R.id.weex_id_4970,R.id.weex_id_4969,R.id.weex_id_4968,R.id.weex_id_4967,R.id.weex_id_4966,R.id.weex_id_4965,R.id.weex_id_4964,R.id.weex_id_4963,R.id.weex_id_4962,R.id.weex_id_4961,R.id.weex_id_4960,R.id.weex_id_4959,R.id.weex_id_4958,R.id.weex_id_4957,R.id.weex_id_4956,R.id.weex_id_4955,R.id.weex_id_4954,R.id.weex_id_4953,R.id.weex_id_4952,R.id.weex_id_4951,R.id.weex_id_4950,R.id.weex_id_4949,R.id.weex_id_4948,R.id.weex_id_4947,R.id.weex_id_4946,R.id.weex_id_4945,R.id.weex_id_4944,R.id.weex_id_4943,R.id.weex_id_4942,R.id.weex_id_4941,R.id.weex_id_4940,R.id.weex_id_4939,R.id.weex_id_4938,R.id.weex_id_4937,R.id.weex_id_4936,R.id.weex_id_4935,R.id.weex_id_4934,R.id.weex_id_4933,R.id.weex_id_4932,R.id.weex_id_4931,R.id.weex_id_4930,R.id.weex_id_4929,R.id.weex_id_4928,R.id.weex_id_4927,R.id.weex_id_4926,R.id.weex_id_4925,R.id.weex_id_4924,R.id.weex_id_4923,R.id.weex_id_4922,R.id.weex_id_4921,R.id.weex_id_4920,R.id.weex_id_4919,R.id.weex_id_4918,R.id.weex_id_4917,R.id.weex_id_4916,R.id.weex_id_4915,R.id.weex_id_4914,R.id.weex_id_4913,R.id.weex_id_4912,R.id.weex_id_4911,R.id.weex_id_4910,R.id.weex_id_4909,R.id.weex_id_4908,R.id.weex_id_4907,R.id.weex_id_4906,R.id.weex_id_4905,R.id.weex_id_4904,R.id.weex_id_4903,R.id.weex_id_4902,R.id.weex_id_4901,R.id.weex_id_4900, - R.id.weex_id_4899,R.id.weex_id_4898,R.id.weex_id_4897,R.id.weex_id_4896,R.id.weex_id_4895,R.id.weex_id_4894,R.id.weex_id_4893,R.id.weex_id_4892,R.id.weex_id_4891,R.id.weex_id_4890,R.id.weex_id_4889,R.id.weex_id_4888,R.id.weex_id_4887,R.id.weex_id_4886,R.id.weex_id_4885,R.id.weex_id_4884,R.id.weex_id_4883,R.id.weex_id_4882,R.id.weex_id_4881,R.id.weex_id_4880,R.id.weex_id_4879,R.id.weex_id_4878,R.id.weex_id_4877,R.id.weex_id_4876,R.id.weex_id_4875,R.id.weex_id_4874,R.id.weex_id_4873,R.id.weex_id_4872,R.id.weex_id_4871,R.id.weex_id_4870,R.id.weex_id_4869,R.id.weex_id_4868,R.id.weex_id_4867,R.id.weex_id_4866,R.id.weex_id_4865,R.id.weex_id_4864,R.id.weex_id_4863,R.id.weex_id_4862,R.id.weex_id_4861,R.id.weex_id_4860,R.id.weex_id_4859,R.id.weex_id_4858,R.id.weex_id_4857,R.id.weex_id_4856,R.id.weex_id_4855,R.id.weex_id_4854,R.id.weex_id_4853,R.id.weex_id_4852,R.id.weex_id_4851,R.id.weex_id_4850,R.id.weex_id_4849,R.id.weex_id_4848,R.id.weex_id_4847,R.id.weex_id_4846,R.id.weex_id_4845,R.id.weex_id_4844,R.id.weex_id_4843,R.id.weex_id_4842,R.id.weex_id_4841,R.id.weex_id_4840,R.id.weex_id_4839,R.id.weex_id_4838,R.id.weex_id_4837,R.id.weex_id_4836,R.id.weex_id_4835,R.id.weex_id_4834,R.id.weex_id_4833,R.id.weex_id_4832,R.id.weex_id_4831,R.id.weex_id_4830,R.id.weex_id_4829,R.id.weex_id_4828,R.id.weex_id_4827,R.id.weex_id_4826,R.id.weex_id_4825,R.id.weex_id_4824,R.id.weex_id_4823,R.id.weex_id_4822,R.id.weex_id_4821,R.id.weex_id_4820,R.id.weex_id_4819,R.id.weex_id_4818,R.id.weex_id_4817,R.id.weex_id_4816,R.id.weex_id_4815,R.id.weex_id_4814,R.id.weex_id_4813,R.id.weex_id_4812,R.id.weex_id_4811,R.id.weex_id_4810,R.id.weex_id_4809,R.id.weex_id_4808,R.id.weex_id_4807,R.id.weex_id_4806,R.id.weex_id_4805,R.id.weex_id_4804,R.id.weex_id_4803,R.id.weex_id_4802,R.id.weex_id_4801,R.id.weex_id_4800, - R.id.weex_id_4799,R.id.weex_id_4798,R.id.weex_id_4797,R.id.weex_id_4796,R.id.weex_id_4795,R.id.weex_id_4794,R.id.weex_id_4793,R.id.weex_id_4792,R.id.weex_id_4791,R.id.weex_id_4790,R.id.weex_id_4789,R.id.weex_id_4788,R.id.weex_id_4787,R.id.weex_id_4786,R.id.weex_id_4785,R.id.weex_id_4784,R.id.weex_id_4783,R.id.weex_id_4782,R.id.weex_id_4781,R.id.weex_id_4780,R.id.weex_id_4779,R.id.weex_id_4778,R.id.weex_id_4777,R.id.weex_id_4776,R.id.weex_id_4775,R.id.weex_id_4774,R.id.weex_id_4773,R.id.weex_id_4772,R.id.weex_id_4771,R.id.weex_id_4770,R.id.weex_id_4769,R.id.weex_id_4768,R.id.weex_id_4767,R.id.weex_id_4766,R.id.weex_id_4765,R.id.weex_id_4764,R.id.weex_id_4763,R.id.weex_id_4762,R.id.weex_id_4761,R.id.weex_id_4760,R.id.weex_id_4759,R.id.weex_id_4758,R.id.weex_id_4757,R.id.weex_id_4756,R.id.weex_id_4755,R.id.weex_id_4754,R.id.weex_id_4753,R.id.weex_id_4752,R.id.weex_id_4751,R.id.weex_id_4750,R.id.weex_id_4749,R.id.weex_id_4748,R.id.weex_id_4747,R.id.weex_id_4746,R.id.weex_id_4745,R.id.weex_id_4744,R.id.weex_id_4743,R.id.weex_id_4742,R.id.weex_id_4741,R.id.weex_id_4740,R.id.weex_id_4739,R.id.weex_id_4738,R.id.weex_id_4737,R.id.weex_id_4736,R.id.weex_id_4735,R.id.weex_id_4734,R.id.weex_id_4733,R.id.weex_id_4732,R.id.weex_id_4731,R.id.weex_id_4730,R.id.weex_id_4729,R.id.weex_id_4728,R.id.weex_id_4727,R.id.weex_id_4726,R.id.weex_id_4725,R.id.weex_id_4724,R.id.weex_id_4723,R.id.weex_id_4722,R.id.weex_id_4721,R.id.weex_id_4720,R.id.weex_id_4719,R.id.weex_id_4718,R.id.weex_id_4717,R.id.weex_id_4716,R.id.weex_id_4715,R.id.weex_id_4714,R.id.weex_id_4713,R.id.weex_id_4712,R.id.weex_id_4711,R.id.weex_id_4710,R.id.weex_id_4709,R.id.weex_id_4708,R.id.weex_id_4707,R.id.weex_id_4706,R.id.weex_id_4705,R.id.weex_id_4704,R.id.weex_id_4703,R.id.weex_id_4702,R.id.weex_id_4701,R.id.weex_id_4700, - R.id.weex_id_4699,R.id.weex_id_4698,R.id.weex_id_4697,R.id.weex_id_4696,R.id.weex_id_4695,R.id.weex_id_4694,R.id.weex_id_4693,R.id.weex_id_4692,R.id.weex_id_4691,R.id.weex_id_4690,R.id.weex_id_4689,R.id.weex_id_4688,R.id.weex_id_4687,R.id.weex_id_4686,R.id.weex_id_4685,R.id.weex_id_4684,R.id.weex_id_4683,R.id.weex_id_4682,R.id.weex_id_4681,R.id.weex_id_4680,R.id.weex_id_4679,R.id.weex_id_4678,R.id.weex_id_4677,R.id.weex_id_4676,R.id.weex_id_4675,R.id.weex_id_4674,R.id.weex_id_4673,R.id.weex_id_4672,R.id.weex_id_4671,R.id.weex_id_4670,R.id.weex_id_4669,R.id.weex_id_4668,R.id.weex_id_4667,R.id.weex_id_4666,R.id.weex_id_4665,R.id.weex_id_4664,R.id.weex_id_4663,R.id.weex_id_4662,R.id.weex_id_4661,R.id.weex_id_4660,R.id.weex_id_4659,R.id.weex_id_4658,R.id.weex_id_4657,R.id.weex_id_4656,R.id.weex_id_4655,R.id.weex_id_4654,R.id.weex_id_4653,R.id.weex_id_4652,R.id.weex_id_4651,R.id.weex_id_4650,R.id.weex_id_4649,R.id.weex_id_4648,R.id.weex_id_4647,R.id.weex_id_4646,R.id.weex_id_4645,R.id.weex_id_4644,R.id.weex_id_4643,R.id.weex_id_4642,R.id.weex_id_4641,R.id.weex_id_4640,R.id.weex_id_4639,R.id.weex_id_4638,R.id.weex_id_4637,R.id.weex_id_4636,R.id.weex_id_4635,R.id.weex_id_4634,R.id.weex_id_4633,R.id.weex_id_4632,R.id.weex_id_4631,R.id.weex_id_4630,R.id.weex_id_4629,R.id.weex_id_4628,R.id.weex_id_4627,R.id.weex_id_4626,R.id.weex_id_4625,R.id.weex_id_4624,R.id.weex_id_4623,R.id.weex_id_4622,R.id.weex_id_4621,R.id.weex_id_4620,R.id.weex_id_4619,R.id.weex_id_4618,R.id.weex_id_4617,R.id.weex_id_4616,R.id.weex_id_4615,R.id.weex_id_4614,R.id.weex_id_4613,R.id.weex_id_4612,R.id.weex_id_4611,R.id.weex_id_4610,R.id.weex_id_4609,R.id.weex_id_4608,R.id.weex_id_4607,R.id.weex_id_4606,R.id.weex_id_4605,R.id.weex_id_4604,R.id.weex_id_4603,R.id.weex_id_4602,R.id.weex_id_4601,R.id.weex_id_4600, - R.id.weex_id_4599,R.id.weex_id_4598,R.id.weex_id_4597,R.id.weex_id_4596,R.id.weex_id_4595,R.id.weex_id_4594,R.id.weex_id_4593,R.id.weex_id_4592,R.id.weex_id_4591,R.id.weex_id_4590,R.id.weex_id_4589,R.id.weex_id_4588,R.id.weex_id_4587,R.id.weex_id_4586,R.id.weex_id_4585,R.id.weex_id_4584,R.id.weex_id_4583,R.id.weex_id_4582,R.id.weex_id_4581,R.id.weex_id_4580,R.id.weex_id_4579,R.id.weex_id_4578,R.id.weex_id_4577,R.id.weex_id_4576,R.id.weex_id_4575,R.id.weex_id_4574,R.id.weex_id_4573,R.id.weex_id_4572,R.id.weex_id_4571,R.id.weex_id_4570,R.id.weex_id_4569,R.id.weex_id_4568,R.id.weex_id_4567,R.id.weex_id_4566,R.id.weex_id_4565,R.id.weex_id_4564,R.id.weex_id_4563,R.id.weex_id_4562,R.id.weex_id_4561,R.id.weex_id_4560,R.id.weex_id_4559,R.id.weex_id_4558,R.id.weex_id_4557,R.id.weex_id_4556,R.id.weex_id_4555,R.id.weex_id_4554,R.id.weex_id_4553,R.id.weex_id_4552,R.id.weex_id_4551,R.id.weex_id_4550,R.id.weex_id_4549,R.id.weex_id_4548,R.id.weex_id_4547,R.id.weex_id_4546,R.id.weex_id_4545,R.id.weex_id_4544,R.id.weex_id_4543,R.id.weex_id_4542,R.id.weex_id_4541,R.id.weex_id_4540,R.id.weex_id_4539,R.id.weex_id_4538,R.id.weex_id_4537,R.id.weex_id_4536,R.id.weex_id_4535,R.id.weex_id_4534,R.id.weex_id_4533,R.id.weex_id_4532,R.id.weex_id_4531,R.id.weex_id_4530,R.id.weex_id_4529,R.id.weex_id_4528,R.id.weex_id_4527,R.id.weex_id_4526,R.id.weex_id_4525,R.id.weex_id_4524,R.id.weex_id_4523,R.id.weex_id_4522,R.id.weex_id_4521,R.id.weex_id_4520,R.id.weex_id_4519,R.id.weex_id_4518,R.id.weex_id_4517,R.id.weex_id_4516,R.id.weex_id_4515,R.id.weex_id_4514,R.id.weex_id_4513,R.id.weex_id_4512,R.id.weex_id_4511,R.id.weex_id_4510,R.id.weex_id_4509,R.id.weex_id_4508,R.id.weex_id_4507,R.id.weex_id_4506,R.id.weex_id_4505,R.id.weex_id_4504,R.id.weex_id_4503,R.id.weex_id_4502,R.id.weex_id_4501,R.id.weex_id_4500, - R.id.weex_id_4499,R.id.weex_id_4498,R.id.weex_id_4497,R.id.weex_id_4496,R.id.weex_id_4495,R.id.weex_id_4494,R.id.weex_id_4493,R.id.weex_id_4492,R.id.weex_id_4491,R.id.weex_id_4490,R.id.weex_id_4489,R.id.weex_id_4488,R.id.weex_id_4487,R.id.weex_id_4486,R.id.weex_id_4485,R.id.weex_id_4484,R.id.weex_id_4483,R.id.weex_id_4482,R.id.weex_id_4481,R.id.weex_id_4480,R.id.weex_id_4479,R.id.weex_id_4478,R.id.weex_id_4477,R.id.weex_id_4476,R.id.weex_id_4475,R.id.weex_id_4474,R.id.weex_id_4473,R.id.weex_id_4472,R.id.weex_id_4471,R.id.weex_id_4470,R.id.weex_id_4469,R.id.weex_id_4468,R.id.weex_id_4467,R.id.weex_id_4466,R.id.weex_id_4465,R.id.weex_id_4464,R.id.weex_id_4463,R.id.weex_id_4462,R.id.weex_id_4461,R.id.weex_id_4460,R.id.weex_id_4459,R.id.weex_id_4458,R.id.weex_id_4457,R.id.weex_id_4456,R.id.weex_id_4455,R.id.weex_id_4454,R.id.weex_id_4453,R.id.weex_id_4452,R.id.weex_id_4451,R.id.weex_id_4450,R.id.weex_id_4449,R.id.weex_id_4448,R.id.weex_id_4447,R.id.weex_id_4446,R.id.weex_id_4445,R.id.weex_id_4444,R.id.weex_id_4443,R.id.weex_id_4442,R.id.weex_id_4441,R.id.weex_id_4440,R.id.weex_id_4439,R.id.weex_id_4438,R.id.weex_id_4437,R.id.weex_id_4436,R.id.weex_id_4435,R.id.weex_id_4434,R.id.weex_id_4433,R.id.weex_id_4432,R.id.weex_id_4431,R.id.weex_id_4430,R.id.weex_id_4429,R.id.weex_id_4428,R.id.weex_id_4427,R.id.weex_id_4426,R.id.weex_id_4425,R.id.weex_id_4424,R.id.weex_id_4423,R.id.weex_id_4422,R.id.weex_id_4421,R.id.weex_id_4420,R.id.weex_id_4419,R.id.weex_id_4418,R.id.weex_id_4417,R.id.weex_id_4416,R.id.weex_id_4415,R.id.weex_id_4414,R.id.weex_id_4413,R.id.weex_id_4412,R.id.weex_id_4411,R.id.weex_id_4410,R.id.weex_id_4409,R.id.weex_id_4408,R.id.weex_id_4407,R.id.weex_id_4406,R.id.weex_id_4405,R.id.weex_id_4404,R.id.weex_id_4403,R.id.weex_id_4402,R.id.weex_id_4401,R.id.weex_id_4400, - R.id.weex_id_4399,R.id.weex_id_4398,R.id.weex_id_4397,R.id.weex_id_4396,R.id.weex_id_4395,R.id.weex_id_4394,R.id.weex_id_4393,R.id.weex_id_4392,R.id.weex_id_4391,R.id.weex_id_4390,R.id.weex_id_4389,R.id.weex_id_4388,R.id.weex_id_4387,R.id.weex_id_4386,R.id.weex_id_4385,R.id.weex_id_4384,R.id.weex_id_4383,R.id.weex_id_4382,R.id.weex_id_4381,R.id.weex_id_4380,R.id.weex_id_4379,R.id.weex_id_4378,R.id.weex_id_4377,R.id.weex_id_4376,R.id.weex_id_4375,R.id.weex_id_4374,R.id.weex_id_4373,R.id.weex_id_4372,R.id.weex_id_4371,R.id.weex_id_4370,R.id.weex_id_4369,R.id.weex_id_4368,R.id.weex_id_4367,R.id.weex_id_4366,R.id.weex_id_4365,R.id.weex_id_4364,R.id.weex_id_4363,R.id.weex_id_4362,R.id.weex_id_4361,R.id.weex_id_4360,R.id.weex_id_4359,R.id.weex_id_4358,R.id.weex_id_4357,R.id.weex_id_4356,R.id.weex_id_4355,R.id.weex_id_4354,R.id.weex_id_4353,R.id.weex_id_4352,R.id.weex_id_4351,R.id.weex_id_4350,R.id.weex_id_4349,R.id.weex_id_4348,R.id.weex_id_4347,R.id.weex_id_4346,R.id.weex_id_4345,R.id.weex_id_4344,R.id.weex_id_4343,R.id.weex_id_4342,R.id.weex_id_4341,R.id.weex_id_4340,R.id.weex_id_4339,R.id.weex_id_4338,R.id.weex_id_4337,R.id.weex_id_4336,R.id.weex_id_4335,R.id.weex_id_4334,R.id.weex_id_4333,R.id.weex_id_4332,R.id.weex_id_4331,R.id.weex_id_4330,R.id.weex_id_4329,R.id.weex_id_4328,R.id.weex_id_4327,R.id.weex_id_4326,R.id.weex_id_4325,R.id.weex_id_4324,R.id.weex_id_4323,R.id.weex_id_4322,R.id.weex_id_4321,R.id.weex_id_4320,R.id.weex_id_4319,R.id.weex_id_4318,R.id.weex_id_4317,R.id.weex_id_4316,R.id.weex_id_4315,R.id.weex_id_4314,R.id.weex_id_4313,R.id.weex_id_4312,R.id.weex_id_4311,R.id.weex_id_4310,R.id.weex_id_4309,R.id.weex_id_4308,R.id.weex_id_4307,R.id.weex_id_4306,R.id.weex_id_4305,R.id.weex_id_4304,R.id.weex_id_4303,R.id.weex_id_4302,R.id.weex_id_4301,R.id.weex_id_4300, - R.id.weex_id_4299,R.id.weex_id_4298,R.id.weex_id_4297,R.id.weex_id_4296,R.id.weex_id_4295,R.id.weex_id_4294,R.id.weex_id_4293,R.id.weex_id_4292,R.id.weex_id_4291,R.id.weex_id_4290,R.id.weex_id_4289,R.id.weex_id_4288,R.id.weex_id_4287,R.id.weex_id_4286,R.id.weex_id_4285,R.id.weex_id_4284,R.id.weex_id_4283,R.id.weex_id_4282,R.id.weex_id_4281,R.id.weex_id_4280,R.id.weex_id_4279,R.id.weex_id_4278,R.id.weex_id_4277,R.id.weex_id_4276,R.id.weex_id_4275,R.id.weex_id_4274,R.id.weex_id_4273,R.id.weex_id_4272,R.id.weex_id_4271,R.id.weex_id_4270,R.id.weex_id_4269,R.id.weex_id_4268,R.id.weex_id_4267,R.id.weex_id_4266,R.id.weex_id_4265,R.id.weex_id_4264,R.id.weex_id_4263,R.id.weex_id_4262,R.id.weex_id_4261,R.id.weex_id_4260,R.id.weex_id_4259,R.id.weex_id_4258,R.id.weex_id_4257,R.id.weex_id_4256,R.id.weex_id_4255,R.id.weex_id_4254,R.id.weex_id_4253,R.id.weex_id_4252,R.id.weex_id_4251,R.id.weex_id_4250,R.id.weex_id_4249,R.id.weex_id_4248,R.id.weex_id_4247,R.id.weex_id_4246,R.id.weex_id_4245,R.id.weex_id_4244,R.id.weex_id_4243,R.id.weex_id_4242,R.id.weex_id_4241,R.id.weex_id_4240,R.id.weex_id_4239,R.id.weex_id_4238,R.id.weex_id_4237,R.id.weex_id_4236,R.id.weex_id_4235,R.id.weex_id_4234,R.id.weex_id_4233,R.id.weex_id_4232,R.id.weex_id_4231,R.id.weex_id_4230,R.id.weex_id_4229,R.id.weex_id_4228,R.id.weex_id_4227,R.id.weex_id_4226,R.id.weex_id_4225,R.id.weex_id_4224,R.id.weex_id_4223,R.id.weex_id_4222,R.id.weex_id_4221,R.id.weex_id_4220,R.id.weex_id_4219,R.id.weex_id_4218,R.id.weex_id_4217,R.id.weex_id_4216,R.id.weex_id_4215,R.id.weex_id_4214,R.id.weex_id_4213,R.id.weex_id_4212,R.id.weex_id_4211,R.id.weex_id_4210,R.id.weex_id_4209,R.id.weex_id_4208,R.id.weex_id_4207,R.id.weex_id_4206,R.id.weex_id_4205,R.id.weex_id_4204,R.id.weex_id_4203,R.id.weex_id_4202,R.id.weex_id_4201,R.id.weex_id_4200, - R.id.weex_id_4199,R.id.weex_id_4198,R.id.weex_id_4197,R.id.weex_id_4196,R.id.weex_id_4195,R.id.weex_id_4194,R.id.weex_id_4193,R.id.weex_id_4192,R.id.weex_id_4191,R.id.weex_id_4190,R.id.weex_id_4189,R.id.weex_id_4188,R.id.weex_id_4187,R.id.weex_id_4186,R.id.weex_id_4185,R.id.weex_id_4184,R.id.weex_id_4183,R.id.weex_id_4182,R.id.weex_id_4181,R.id.weex_id_4180,R.id.weex_id_4179,R.id.weex_id_4178,R.id.weex_id_4177,R.id.weex_id_4176,R.id.weex_id_4175,R.id.weex_id_4174,R.id.weex_id_4173,R.id.weex_id_4172,R.id.weex_id_4171,R.id.weex_id_4170,R.id.weex_id_4169,R.id.weex_id_4168,R.id.weex_id_4167,R.id.weex_id_4166,R.id.weex_id_4165,R.id.weex_id_4164,R.id.weex_id_4163,R.id.weex_id_4162,R.id.weex_id_4161,R.id.weex_id_4160,R.id.weex_id_4159,R.id.weex_id_4158,R.id.weex_id_4157,R.id.weex_id_4156,R.id.weex_id_4155,R.id.weex_id_4154,R.id.weex_id_4153,R.id.weex_id_4152,R.id.weex_id_4151,R.id.weex_id_4150,R.id.weex_id_4149,R.id.weex_id_4148,R.id.weex_id_4147,R.id.weex_id_4146,R.id.weex_id_4145,R.id.weex_id_4144,R.id.weex_id_4143,R.id.weex_id_4142,R.id.weex_id_4141,R.id.weex_id_4140,R.id.weex_id_4139,R.id.weex_id_4138,R.id.weex_id_4137,R.id.weex_id_4136,R.id.weex_id_4135,R.id.weex_id_4134,R.id.weex_id_4133,R.id.weex_id_4132,R.id.weex_id_4131,R.id.weex_id_4130,R.id.weex_id_4129,R.id.weex_id_4128,R.id.weex_id_4127,R.id.weex_id_4126,R.id.weex_id_4125,R.id.weex_id_4124,R.id.weex_id_4123,R.id.weex_id_4122,R.id.weex_id_4121,R.id.weex_id_4120,R.id.weex_id_4119,R.id.weex_id_4118,R.id.weex_id_4117,R.id.weex_id_4116,R.id.weex_id_4115,R.id.weex_id_4114,R.id.weex_id_4113,R.id.weex_id_4112,R.id.weex_id_4111,R.id.weex_id_4110,R.id.weex_id_4109,R.id.weex_id_4108,R.id.weex_id_4107,R.id.weex_id_4106,R.id.weex_id_4105,R.id.weex_id_4104,R.id.weex_id_4103,R.id.weex_id_4102,R.id.weex_id_4101,R.id.weex_id_4100, - R.id.weex_id_4099,R.id.weex_id_4098,R.id.weex_id_4097,R.id.weex_id_4096,R.id.weex_id_4095,R.id.weex_id_4094,R.id.weex_id_4093,R.id.weex_id_4092,R.id.weex_id_4091,R.id.weex_id_4090,R.id.weex_id_4089,R.id.weex_id_4088,R.id.weex_id_4087,R.id.weex_id_4086,R.id.weex_id_4085,R.id.weex_id_4084,R.id.weex_id_4083,R.id.weex_id_4082,R.id.weex_id_4081,R.id.weex_id_4080,R.id.weex_id_4079,R.id.weex_id_4078,R.id.weex_id_4077,R.id.weex_id_4076,R.id.weex_id_4075,R.id.weex_id_4074,R.id.weex_id_4073,R.id.weex_id_4072,R.id.weex_id_4071,R.id.weex_id_4070,R.id.weex_id_4069,R.id.weex_id_4068,R.id.weex_id_4067,R.id.weex_id_4066,R.id.weex_id_4065,R.id.weex_id_4064,R.id.weex_id_4063,R.id.weex_id_4062,R.id.weex_id_4061,R.id.weex_id_4060,R.id.weex_id_4059,R.id.weex_id_4058,R.id.weex_id_4057,R.id.weex_id_4056,R.id.weex_id_4055,R.id.weex_id_4054,R.id.weex_id_4053,R.id.weex_id_4052,R.id.weex_id_4051,R.id.weex_id_4050,R.id.weex_id_4049,R.id.weex_id_4048,R.id.weex_id_4047,R.id.weex_id_4046,R.id.weex_id_4045,R.id.weex_id_4044,R.id.weex_id_4043,R.id.weex_id_4042,R.id.weex_id_4041,R.id.weex_id_4040,R.id.weex_id_4039,R.id.weex_id_4038,R.id.weex_id_4037,R.id.weex_id_4036,R.id.weex_id_4035,R.id.weex_id_4034,R.id.weex_id_4033,R.id.weex_id_4032,R.id.weex_id_4031,R.id.weex_id_4030,R.id.weex_id_4029,R.id.weex_id_4028,R.id.weex_id_4027,R.id.weex_id_4026,R.id.weex_id_4025,R.id.weex_id_4024,R.id.weex_id_4023,R.id.weex_id_4022,R.id.weex_id_4021,R.id.weex_id_4020,R.id.weex_id_4019,R.id.weex_id_4018,R.id.weex_id_4017,R.id.weex_id_4016,R.id.weex_id_4015,R.id.weex_id_4014,R.id.weex_id_4013,R.id.weex_id_4012,R.id.weex_id_4011,R.id.weex_id_4010,R.id.weex_id_4009,R.id.weex_id_4008,R.id.weex_id_4007,R.id.weex_id_4006,R.id.weex_id_4005,R.id.weex_id_4004,R.id.weex_id_4003,R.id.weex_id_4002,R.id.weex_id_4001,R.id.weex_id_4000, - R.id.weex_id_3999,R.id.weex_id_3998,R.id.weex_id_3997,R.id.weex_id_3996,R.id.weex_id_3995,R.id.weex_id_3994,R.id.weex_id_3993,R.id.weex_id_3992,R.id.weex_id_3991,R.id.weex_id_3990,R.id.weex_id_3989,R.id.weex_id_3988,R.id.weex_id_3987,R.id.weex_id_3986,R.id.weex_id_3985,R.id.weex_id_3984,R.id.weex_id_3983,R.id.weex_id_3982,R.id.weex_id_3981,R.id.weex_id_3980,R.id.weex_id_3979,R.id.weex_id_3978,R.id.weex_id_3977,R.id.weex_id_3976,R.id.weex_id_3975,R.id.weex_id_3974,R.id.weex_id_3973,R.id.weex_id_3972,R.id.weex_id_3971,R.id.weex_id_3970,R.id.weex_id_3969,R.id.weex_id_3968,R.id.weex_id_3967,R.id.weex_id_3966,R.id.weex_id_3965,R.id.weex_id_3964,R.id.weex_id_3963,R.id.weex_id_3962,R.id.weex_id_3961,R.id.weex_id_3960,R.id.weex_id_3959,R.id.weex_id_3958,R.id.weex_id_3957,R.id.weex_id_3956,R.id.weex_id_3955,R.id.weex_id_3954,R.id.weex_id_3953,R.id.weex_id_3952,R.id.weex_id_3951,R.id.weex_id_3950,R.id.weex_id_3949,R.id.weex_id_3948,R.id.weex_id_3947,R.id.weex_id_3946,R.id.weex_id_3945,R.id.weex_id_3944,R.id.weex_id_3943,R.id.weex_id_3942,R.id.weex_id_3941,R.id.weex_id_3940,R.id.weex_id_3939,R.id.weex_id_3938,R.id.weex_id_3937,R.id.weex_id_3936,R.id.weex_id_3935,R.id.weex_id_3934,R.id.weex_id_3933,R.id.weex_id_3932,R.id.weex_id_3931,R.id.weex_id_3930,R.id.weex_id_3929,R.id.weex_id_3928,R.id.weex_id_3927,R.id.weex_id_3926,R.id.weex_id_3925,R.id.weex_id_3924,R.id.weex_id_3923,R.id.weex_id_3922,R.id.weex_id_3921,R.id.weex_id_3920,R.id.weex_id_3919,R.id.weex_id_3918,R.id.weex_id_3917,R.id.weex_id_3916,R.id.weex_id_3915,R.id.weex_id_3914,R.id.weex_id_3913,R.id.weex_id_3912,R.id.weex_id_3911,R.id.weex_id_3910,R.id.weex_id_3909,R.id.weex_id_3908,R.id.weex_id_3907,R.id.weex_id_3906,R.id.weex_id_3905,R.id.weex_id_3904,R.id.weex_id_3903,R.id.weex_id_3902,R.id.weex_id_3901,R.id.weex_id_3900, - R.id.weex_id_3899,R.id.weex_id_3898,R.id.weex_id_3897,R.id.weex_id_3896,R.id.weex_id_3895,R.id.weex_id_3894,R.id.weex_id_3893,R.id.weex_id_3892,R.id.weex_id_3891,R.id.weex_id_3890,R.id.weex_id_3889,R.id.weex_id_3888,R.id.weex_id_3887,R.id.weex_id_3886,R.id.weex_id_3885,R.id.weex_id_3884,R.id.weex_id_3883,R.id.weex_id_3882,R.id.weex_id_3881,R.id.weex_id_3880,R.id.weex_id_3879,R.id.weex_id_3878,R.id.weex_id_3877,R.id.weex_id_3876,R.id.weex_id_3875,R.id.weex_id_3874,R.id.weex_id_3873,R.id.weex_id_3872,R.id.weex_id_3871,R.id.weex_id_3870,R.id.weex_id_3869,R.id.weex_id_3868,R.id.weex_id_3867,R.id.weex_id_3866,R.id.weex_id_3865,R.id.weex_id_3864,R.id.weex_id_3863,R.id.weex_id_3862,R.id.weex_id_3861,R.id.weex_id_3860,R.id.weex_id_3859,R.id.weex_id_3858,R.id.weex_id_3857,R.id.weex_id_3856,R.id.weex_id_3855,R.id.weex_id_3854,R.id.weex_id_3853,R.id.weex_id_3852,R.id.weex_id_3851,R.id.weex_id_3850,R.id.weex_id_3849,R.id.weex_id_3848,R.id.weex_id_3847,R.id.weex_id_3846,R.id.weex_id_3845,R.id.weex_id_3844,R.id.weex_id_3843,R.id.weex_id_3842,R.id.weex_id_3841,R.id.weex_id_3840,R.id.weex_id_3839,R.id.weex_id_3838,R.id.weex_id_3837,R.id.weex_id_3836,R.id.weex_id_3835,R.id.weex_id_3834,R.id.weex_id_3833,R.id.weex_id_3832,R.id.weex_id_3831,R.id.weex_id_3830,R.id.weex_id_3829,R.id.weex_id_3828,R.id.weex_id_3827,R.id.weex_id_3826,R.id.weex_id_3825,R.id.weex_id_3824,R.id.weex_id_3823,R.id.weex_id_3822,R.id.weex_id_3821,R.id.weex_id_3820,R.id.weex_id_3819,R.id.weex_id_3818,R.id.weex_id_3817,R.id.weex_id_3816,R.id.weex_id_3815,R.id.weex_id_3814,R.id.weex_id_3813,R.id.weex_id_3812,R.id.weex_id_3811,R.id.weex_id_3810,R.id.weex_id_3809,R.id.weex_id_3808,R.id.weex_id_3807,R.id.weex_id_3806,R.id.weex_id_3805,R.id.weex_id_3804,R.id.weex_id_3803,R.id.weex_id_3802,R.id.weex_id_3801,R.id.weex_id_3800, - R.id.weex_id_3799,R.id.weex_id_3798,R.id.weex_id_3797,R.id.weex_id_3796,R.id.weex_id_3795,R.id.weex_id_3794,R.id.weex_id_3793,R.id.weex_id_3792,R.id.weex_id_3791,R.id.weex_id_3790,R.id.weex_id_3789,R.id.weex_id_3788,R.id.weex_id_3787,R.id.weex_id_3786,R.id.weex_id_3785,R.id.weex_id_3784,R.id.weex_id_3783,R.id.weex_id_3782,R.id.weex_id_3781,R.id.weex_id_3780,R.id.weex_id_3779,R.id.weex_id_3778,R.id.weex_id_3777,R.id.weex_id_3776,R.id.weex_id_3775,R.id.weex_id_3774,R.id.weex_id_3773,R.id.weex_id_3772,R.id.weex_id_3771,R.id.weex_id_3770,R.id.weex_id_3769,R.id.weex_id_3768,R.id.weex_id_3767,R.id.weex_id_3766,R.id.weex_id_3765,R.id.weex_id_3764,R.id.weex_id_3763,R.id.weex_id_3762,R.id.weex_id_3761,R.id.weex_id_3760,R.id.weex_id_3759,R.id.weex_id_3758,R.id.weex_id_3757,R.id.weex_id_3756,R.id.weex_id_3755,R.id.weex_id_3754,R.id.weex_id_3753,R.id.weex_id_3752,R.id.weex_id_3751,R.id.weex_id_3750,R.id.weex_id_3749,R.id.weex_id_3748,R.id.weex_id_3747,R.id.weex_id_3746,R.id.weex_id_3745,R.id.weex_id_3744,R.id.weex_id_3743,R.id.weex_id_3742,R.id.weex_id_3741,R.id.weex_id_3740,R.id.weex_id_3739,R.id.weex_id_3738,R.id.weex_id_3737,R.id.weex_id_3736,R.id.weex_id_3735,R.id.weex_id_3734,R.id.weex_id_3733,R.id.weex_id_3732,R.id.weex_id_3731,R.id.weex_id_3730,R.id.weex_id_3729,R.id.weex_id_3728,R.id.weex_id_3727,R.id.weex_id_3726,R.id.weex_id_3725,R.id.weex_id_3724,R.id.weex_id_3723,R.id.weex_id_3722,R.id.weex_id_3721,R.id.weex_id_3720,R.id.weex_id_3719,R.id.weex_id_3718,R.id.weex_id_3717,R.id.weex_id_3716,R.id.weex_id_3715,R.id.weex_id_3714,R.id.weex_id_3713,R.id.weex_id_3712,R.id.weex_id_3711,R.id.weex_id_3710,R.id.weex_id_3709,R.id.weex_id_3708,R.id.weex_id_3707,R.id.weex_id_3706,R.id.weex_id_3705,R.id.weex_id_3704,R.id.weex_id_3703,R.id.weex_id_3702,R.id.weex_id_3701,R.id.weex_id_3700, - R.id.weex_id_3699,R.id.weex_id_3698,R.id.weex_id_3697,R.id.weex_id_3696,R.id.weex_id_3695,R.id.weex_id_3694,R.id.weex_id_3693,R.id.weex_id_3692,R.id.weex_id_3691,R.id.weex_id_3690,R.id.weex_id_3689,R.id.weex_id_3688,R.id.weex_id_3687,R.id.weex_id_3686,R.id.weex_id_3685,R.id.weex_id_3684,R.id.weex_id_3683,R.id.weex_id_3682,R.id.weex_id_3681,R.id.weex_id_3680,R.id.weex_id_3679,R.id.weex_id_3678,R.id.weex_id_3677,R.id.weex_id_3676,R.id.weex_id_3675,R.id.weex_id_3674,R.id.weex_id_3673,R.id.weex_id_3672,R.id.weex_id_3671,R.id.weex_id_3670,R.id.weex_id_3669,R.id.weex_id_3668,R.id.weex_id_3667,R.id.weex_id_3666,R.id.weex_id_3665,R.id.weex_id_3664,R.id.weex_id_3663,R.id.weex_id_3662,R.id.weex_id_3661,R.id.weex_id_3660,R.id.weex_id_3659,R.id.weex_id_3658,R.id.weex_id_3657,R.id.weex_id_3656,R.id.weex_id_3655,R.id.weex_id_3654,R.id.weex_id_3653,R.id.weex_id_3652,R.id.weex_id_3651,R.id.weex_id_3650,R.id.weex_id_3649,R.id.weex_id_3648,R.id.weex_id_3647,R.id.weex_id_3646,R.id.weex_id_3645,R.id.weex_id_3644,R.id.weex_id_3643,R.id.weex_id_3642,R.id.weex_id_3641,R.id.weex_id_3640,R.id.weex_id_3639,R.id.weex_id_3638,R.id.weex_id_3637,R.id.weex_id_3636,R.id.weex_id_3635,R.id.weex_id_3634,R.id.weex_id_3633,R.id.weex_id_3632,R.id.weex_id_3631,R.id.weex_id_3630,R.id.weex_id_3629,R.id.weex_id_3628,R.id.weex_id_3627,R.id.weex_id_3626,R.id.weex_id_3625,R.id.weex_id_3624,R.id.weex_id_3623,R.id.weex_id_3622,R.id.weex_id_3621,R.id.weex_id_3620,R.id.weex_id_3619,R.id.weex_id_3618,R.id.weex_id_3617,R.id.weex_id_3616,R.id.weex_id_3615,R.id.weex_id_3614,R.id.weex_id_3613,R.id.weex_id_3612,R.id.weex_id_3611,R.id.weex_id_3610,R.id.weex_id_3609,R.id.weex_id_3608,R.id.weex_id_3607,R.id.weex_id_3606,R.id.weex_id_3605,R.id.weex_id_3604,R.id.weex_id_3603,R.id.weex_id_3602,R.id.weex_id_3601,R.id.weex_id_3600, - R.id.weex_id_3599,R.id.weex_id_3598,R.id.weex_id_3597,R.id.weex_id_3596,R.id.weex_id_3595,R.id.weex_id_3594,R.id.weex_id_3593,R.id.weex_id_3592,R.id.weex_id_3591,R.id.weex_id_3590,R.id.weex_id_3589,R.id.weex_id_3588,R.id.weex_id_3587,R.id.weex_id_3586,R.id.weex_id_3585,R.id.weex_id_3584,R.id.weex_id_3583,R.id.weex_id_3582,R.id.weex_id_3581,R.id.weex_id_3580,R.id.weex_id_3579,R.id.weex_id_3578,R.id.weex_id_3577,R.id.weex_id_3576,R.id.weex_id_3575,R.id.weex_id_3574,R.id.weex_id_3573,R.id.weex_id_3572,R.id.weex_id_3571,R.id.weex_id_3570,R.id.weex_id_3569,R.id.weex_id_3568,R.id.weex_id_3567,R.id.weex_id_3566,R.id.weex_id_3565,R.id.weex_id_3564,R.id.weex_id_3563,R.id.weex_id_3562,R.id.weex_id_3561,R.id.weex_id_3560,R.id.weex_id_3559,R.id.weex_id_3558,R.id.weex_id_3557,R.id.weex_id_3556,R.id.weex_id_3555,R.id.weex_id_3554,R.id.weex_id_3553,R.id.weex_id_3552,R.id.weex_id_3551,R.id.weex_id_3550,R.id.weex_id_3549,R.id.weex_id_3548,R.id.weex_id_3547,R.id.weex_id_3546,R.id.weex_id_3545,R.id.weex_id_3544,R.id.weex_id_3543,R.id.weex_id_3542,R.id.weex_id_3541,R.id.weex_id_3540,R.id.weex_id_3539,R.id.weex_id_3538,R.id.weex_id_3537,R.id.weex_id_3536,R.id.weex_id_3535,R.id.weex_id_3534,R.id.weex_id_3533,R.id.weex_id_3532,R.id.weex_id_3531,R.id.weex_id_3530,R.id.weex_id_3529,R.id.weex_id_3528,R.id.weex_id_3527,R.id.weex_id_3526,R.id.weex_id_3525,R.id.weex_id_3524,R.id.weex_id_3523,R.id.weex_id_3522,R.id.weex_id_3521,R.id.weex_id_3520,R.id.weex_id_3519,R.id.weex_id_3518,R.id.weex_id_3517,R.id.weex_id_3516,R.id.weex_id_3515,R.id.weex_id_3514,R.id.weex_id_3513,R.id.weex_id_3512,R.id.weex_id_3511,R.id.weex_id_3510,R.id.weex_id_3509,R.id.weex_id_3508,R.id.weex_id_3507,R.id.weex_id_3506,R.id.weex_id_3505,R.id.weex_id_3504,R.id.weex_id_3503,R.id.weex_id_3502,R.id.weex_id_3501,R.id.weex_id_3500, - R.id.weex_id_3499,R.id.weex_id_3498,R.id.weex_id_3497,R.id.weex_id_3496,R.id.weex_id_3495,R.id.weex_id_3494,R.id.weex_id_3493,R.id.weex_id_3492,R.id.weex_id_3491,R.id.weex_id_3490,R.id.weex_id_3489,R.id.weex_id_3488,R.id.weex_id_3487,R.id.weex_id_3486,R.id.weex_id_3485,R.id.weex_id_3484,R.id.weex_id_3483,R.id.weex_id_3482,R.id.weex_id_3481,R.id.weex_id_3480,R.id.weex_id_3479,R.id.weex_id_3478,R.id.weex_id_3477,R.id.weex_id_3476,R.id.weex_id_3475,R.id.weex_id_3474,R.id.weex_id_3473,R.id.weex_id_3472,R.id.weex_id_3471,R.id.weex_id_3470,R.id.weex_id_3469,R.id.weex_id_3468,R.id.weex_id_3467,R.id.weex_id_3466,R.id.weex_id_3465,R.id.weex_id_3464,R.id.weex_id_3463,R.id.weex_id_3462,R.id.weex_id_3461,R.id.weex_id_3460,R.id.weex_id_3459,R.id.weex_id_3458,R.id.weex_id_3457,R.id.weex_id_3456,R.id.weex_id_3455,R.id.weex_id_3454,R.id.weex_id_3453,R.id.weex_id_3452,R.id.weex_id_3451,R.id.weex_id_3450,R.id.weex_id_3449,R.id.weex_id_3448,R.id.weex_id_3447,R.id.weex_id_3446,R.id.weex_id_3445,R.id.weex_id_3444,R.id.weex_id_3443,R.id.weex_id_3442,R.id.weex_id_3441,R.id.weex_id_3440,R.id.weex_id_3439,R.id.weex_id_3438,R.id.weex_id_3437,R.id.weex_id_3436,R.id.weex_id_3435,R.id.weex_id_3434,R.id.weex_id_3433,R.id.weex_id_3432,R.id.weex_id_3431,R.id.weex_id_3430,R.id.weex_id_3429,R.id.weex_id_3428,R.id.weex_id_3427,R.id.weex_id_3426,R.id.weex_id_3425,R.id.weex_id_3424,R.id.weex_id_3423,R.id.weex_id_3422,R.id.weex_id_3421,R.id.weex_id_3420,R.id.weex_id_3419,R.id.weex_id_3418,R.id.weex_id_3417,R.id.weex_id_3416,R.id.weex_id_3415,R.id.weex_id_3414,R.id.weex_id_3413,R.id.weex_id_3412,R.id.weex_id_3411,R.id.weex_id_3410,R.id.weex_id_3409,R.id.weex_id_3408,R.id.weex_id_3407,R.id.weex_id_3406,R.id.weex_id_3405,R.id.weex_id_3404,R.id.weex_id_3403,R.id.weex_id_3402,R.id.weex_id_3401,R.id.weex_id_3400, - R.id.weex_id_3399,R.id.weex_id_3398,R.id.weex_id_3397,R.id.weex_id_3396,R.id.weex_id_3395,R.id.weex_id_3394,R.id.weex_id_3393,R.id.weex_id_3392,R.id.weex_id_3391,R.id.weex_id_3390,R.id.weex_id_3389,R.id.weex_id_3388,R.id.weex_id_3387,R.id.weex_id_3386,R.id.weex_id_3385,R.id.weex_id_3384,R.id.weex_id_3383,R.id.weex_id_3382,R.id.weex_id_3381,R.id.weex_id_3380,R.id.weex_id_3379,R.id.weex_id_3378,R.id.weex_id_3377,R.id.weex_id_3376,R.id.weex_id_3375,R.id.weex_id_3374,R.id.weex_id_3373,R.id.weex_id_3372,R.id.weex_id_3371,R.id.weex_id_3370,R.id.weex_id_3369,R.id.weex_id_3368,R.id.weex_id_3367,R.id.weex_id_3366,R.id.weex_id_3365,R.id.weex_id_3364,R.id.weex_id_3363,R.id.weex_id_3362,R.id.weex_id_3361,R.id.weex_id_3360,R.id.weex_id_3359,R.id.weex_id_3358,R.id.weex_id_3357,R.id.weex_id_3356,R.id.weex_id_3355,R.id.weex_id_3354,R.id.weex_id_3353,R.id.weex_id_3352,R.id.weex_id_3351,R.id.weex_id_3350,R.id.weex_id_3349,R.id.weex_id_3348,R.id.weex_id_3347,R.id.weex_id_3346,R.id.weex_id_3345,R.id.weex_id_3344,R.id.weex_id_3343,R.id.weex_id_3342,R.id.weex_id_3341,R.id.weex_id_3340,R.id.weex_id_3339,R.id.weex_id_3338,R.id.weex_id_3337,R.id.weex_id_3336,R.id.weex_id_3335,R.id.weex_id_3334,R.id.weex_id_3333,R.id.weex_id_3332,R.id.weex_id_3331,R.id.weex_id_3330,R.id.weex_id_3329,R.id.weex_id_3328,R.id.weex_id_3327,R.id.weex_id_3326,R.id.weex_id_3325,R.id.weex_id_3324,R.id.weex_id_3323,R.id.weex_id_3322,R.id.weex_id_3321,R.id.weex_id_3320,R.id.weex_id_3319,R.id.weex_id_3318,R.id.weex_id_3317,R.id.weex_id_3316,R.id.weex_id_3315,R.id.weex_id_3314,R.id.weex_id_3313,R.id.weex_id_3312,R.id.weex_id_3311,R.id.weex_id_3310,R.id.weex_id_3309,R.id.weex_id_3308,R.id.weex_id_3307,R.id.weex_id_3306,R.id.weex_id_3305,R.id.weex_id_3304,R.id.weex_id_3303,R.id.weex_id_3302,R.id.weex_id_3301,R.id.weex_id_3300, - R.id.weex_id_3299,R.id.weex_id_3298,R.id.weex_id_3297,R.id.weex_id_3296,R.id.weex_id_3295,R.id.weex_id_3294,R.id.weex_id_3293,R.id.weex_id_3292,R.id.weex_id_3291,R.id.weex_id_3290,R.id.weex_id_3289,R.id.weex_id_3288,R.id.weex_id_3287,R.id.weex_id_3286,R.id.weex_id_3285,R.id.weex_id_3284,R.id.weex_id_3283,R.id.weex_id_3282,R.id.weex_id_3281,R.id.weex_id_3280,R.id.weex_id_3279,R.id.weex_id_3278,R.id.weex_id_3277,R.id.weex_id_3276,R.id.weex_id_3275,R.id.weex_id_3274,R.id.weex_id_3273,R.id.weex_id_3272,R.id.weex_id_3271,R.id.weex_id_3270,R.id.weex_id_3269,R.id.weex_id_3268,R.id.weex_id_3267,R.id.weex_id_3266,R.id.weex_id_3265,R.id.weex_id_3264,R.id.weex_id_3263,R.id.weex_id_3262,R.id.weex_id_3261,R.id.weex_id_3260,R.id.weex_id_3259,R.id.weex_id_3258,R.id.weex_id_3257,R.id.weex_id_3256,R.id.weex_id_3255,R.id.weex_id_3254,R.id.weex_id_3253,R.id.weex_id_3252,R.id.weex_id_3251,R.id.weex_id_3250,R.id.weex_id_3249,R.id.weex_id_3248,R.id.weex_id_3247,R.id.weex_id_3246,R.id.weex_id_3245,R.id.weex_id_3244,R.id.weex_id_3243,R.id.weex_id_3242,R.id.weex_id_3241,R.id.weex_id_3240,R.id.weex_id_3239,R.id.weex_id_3238,R.id.weex_id_3237,R.id.weex_id_3236,R.id.weex_id_3235,R.id.weex_id_3234,R.id.weex_id_3233,R.id.weex_id_3232,R.id.weex_id_3231,R.id.weex_id_3230,R.id.weex_id_3229,R.id.weex_id_3228,R.id.weex_id_3227,R.id.weex_id_3226,R.id.weex_id_3225,R.id.weex_id_3224,R.id.weex_id_3223,R.id.weex_id_3222,R.id.weex_id_3221,R.id.weex_id_3220,R.id.weex_id_3219,R.id.weex_id_3218,R.id.weex_id_3217,R.id.weex_id_3216,R.id.weex_id_3215,R.id.weex_id_3214,R.id.weex_id_3213,R.id.weex_id_3212,R.id.weex_id_3211,R.id.weex_id_3210,R.id.weex_id_3209,R.id.weex_id_3208,R.id.weex_id_3207,R.id.weex_id_3206,R.id.weex_id_3205,R.id.weex_id_3204,R.id.weex_id_3203,R.id.weex_id_3202,R.id.weex_id_3201,R.id.weex_id_3200, - R.id.weex_id_3199,R.id.weex_id_3198,R.id.weex_id_3197,R.id.weex_id_3196,R.id.weex_id_3195,R.id.weex_id_3194,R.id.weex_id_3193,R.id.weex_id_3192,R.id.weex_id_3191,R.id.weex_id_3190,R.id.weex_id_3189,R.id.weex_id_3188,R.id.weex_id_3187,R.id.weex_id_3186,R.id.weex_id_3185,R.id.weex_id_3184,R.id.weex_id_3183,R.id.weex_id_3182,R.id.weex_id_3181,R.id.weex_id_3180,R.id.weex_id_3179,R.id.weex_id_3178,R.id.weex_id_3177,R.id.weex_id_3176,R.id.weex_id_3175,R.id.weex_id_3174,R.id.weex_id_3173,R.id.weex_id_3172,R.id.weex_id_3171,R.id.weex_id_3170,R.id.weex_id_3169,R.id.weex_id_3168,R.id.weex_id_3167,R.id.weex_id_3166,R.id.weex_id_3165,R.id.weex_id_3164,R.id.weex_id_3163,R.id.weex_id_3162,R.id.weex_id_3161,R.id.weex_id_3160,R.id.weex_id_3159,R.id.weex_id_3158,R.id.weex_id_3157,R.id.weex_id_3156,R.id.weex_id_3155,R.id.weex_id_3154,R.id.weex_id_3153,R.id.weex_id_3152,R.id.weex_id_3151,R.id.weex_id_3150,R.id.weex_id_3149,R.id.weex_id_3148,R.id.weex_id_3147,R.id.weex_id_3146,R.id.weex_id_3145,R.id.weex_id_3144,R.id.weex_id_3143,R.id.weex_id_3142,R.id.weex_id_3141,R.id.weex_id_3140,R.id.weex_id_3139,R.id.weex_id_3138,R.id.weex_id_3137,R.id.weex_id_3136,R.id.weex_id_3135,R.id.weex_id_3134,R.id.weex_id_3133,R.id.weex_id_3132,R.id.weex_id_3131,R.id.weex_id_3130,R.id.weex_id_3129,R.id.weex_id_3128,R.id.weex_id_3127,R.id.weex_id_3126,R.id.weex_id_3125,R.id.weex_id_3124,R.id.weex_id_3123,R.id.weex_id_3122,R.id.weex_id_3121,R.id.weex_id_3120,R.id.weex_id_3119,R.id.weex_id_3118,R.id.weex_id_3117,R.id.weex_id_3116,R.id.weex_id_3115,R.id.weex_id_3114,R.id.weex_id_3113,R.id.weex_id_3112,R.id.weex_id_3111,R.id.weex_id_3110,R.id.weex_id_3109,R.id.weex_id_3108,R.id.weex_id_3107,R.id.weex_id_3106,R.id.weex_id_3105,R.id.weex_id_3104,R.id.weex_id_3103,R.id.weex_id_3102,R.id.weex_id_3101,R.id.weex_id_3100, - R.id.weex_id_3099,R.id.weex_id_3098,R.id.weex_id_3097,R.id.weex_id_3096,R.id.weex_id_3095,R.id.weex_id_3094,R.id.weex_id_3093,R.id.weex_id_3092,R.id.weex_id_3091,R.id.weex_id_3090,R.id.weex_id_3089,R.id.weex_id_3088,R.id.weex_id_3087,R.id.weex_id_3086,R.id.weex_id_3085,R.id.weex_id_3084,R.id.weex_id_3083,R.id.weex_id_3082,R.id.weex_id_3081,R.id.weex_id_3080,R.id.weex_id_3079,R.id.weex_id_3078,R.id.weex_id_3077,R.id.weex_id_3076,R.id.weex_id_3075,R.id.weex_id_3074,R.id.weex_id_3073,R.id.weex_id_3072,R.id.weex_id_3071,R.id.weex_id_3070,R.id.weex_id_3069,R.id.weex_id_3068,R.id.weex_id_3067,R.id.weex_id_3066,R.id.weex_id_3065,R.id.weex_id_3064,R.id.weex_id_3063,R.id.weex_id_3062,R.id.weex_id_3061,R.id.weex_id_3060,R.id.weex_id_3059,R.id.weex_id_3058,R.id.weex_id_3057,R.id.weex_id_3056,R.id.weex_id_3055,R.id.weex_id_3054,R.id.weex_id_3053,R.id.weex_id_3052,R.id.weex_id_3051,R.id.weex_id_3050,R.id.weex_id_3049,R.id.weex_id_3048,R.id.weex_id_3047,R.id.weex_id_3046,R.id.weex_id_3045,R.id.weex_id_3044,R.id.weex_id_3043,R.id.weex_id_3042,R.id.weex_id_3041,R.id.weex_id_3040,R.id.weex_id_3039,R.id.weex_id_3038,R.id.weex_id_3037,R.id.weex_id_3036,R.id.weex_id_3035,R.id.weex_id_3034,R.id.weex_id_3033,R.id.weex_id_3032,R.id.weex_id_3031,R.id.weex_id_3030,R.id.weex_id_3029,R.id.weex_id_3028,R.id.weex_id_3027,R.id.weex_id_3026,R.id.weex_id_3025,R.id.weex_id_3024,R.id.weex_id_3023,R.id.weex_id_3022,R.id.weex_id_3021,R.id.weex_id_3020,R.id.weex_id_3019,R.id.weex_id_3018,R.id.weex_id_3017,R.id.weex_id_3016,R.id.weex_id_3015,R.id.weex_id_3014,R.id.weex_id_3013,R.id.weex_id_3012,R.id.weex_id_3011,R.id.weex_id_3010,R.id.weex_id_3009,R.id.weex_id_3008,R.id.weex_id_3007,R.id.weex_id_3006,R.id.weex_id_3005,R.id.weex_id_3004,R.id.weex_id_3003,R.id.weex_id_3002,R.id.weex_id_3001,R.id.weex_id_3000, - R.id.weex_id_2999,R.id.weex_id_2998,R.id.weex_id_2997,R.id.weex_id_2996,R.id.weex_id_2995,R.id.weex_id_2994,R.id.weex_id_2993,R.id.weex_id_2992,R.id.weex_id_2991,R.id.weex_id_2990,R.id.weex_id_2989,R.id.weex_id_2988,R.id.weex_id_2987,R.id.weex_id_2986,R.id.weex_id_2985,R.id.weex_id_2984,R.id.weex_id_2983,R.id.weex_id_2982,R.id.weex_id_2981,R.id.weex_id_2980,R.id.weex_id_2979,R.id.weex_id_2978,R.id.weex_id_2977,R.id.weex_id_2976,R.id.weex_id_2975,R.id.weex_id_2974,R.id.weex_id_2973,R.id.weex_id_2972,R.id.weex_id_2971,R.id.weex_id_2970,R.id.weex_id_2969,R.id.weex_id_2968,R.id.weex_id_2967,R.id.weex_id_2966,R.id.weex_id_2965,R.id.weex_id_2964,R.id.weex_id_2963,R.id.weex_id_2962,R.id.weex_id_2961,R.id.weex_id_2960,R.id.weex_id_2959,R.id.weex_id_2958,R.id.weex_id_2957,R.id.weex_id_2956,R.id.weex_id_2955,R.id.weex_id_2954,R.id.weex_id_2953,R.id.weex_id_2952,R.id.weex_id_2951,R.id.weex_id_2950,R.id.weex_id_2949,R.id.weex_id_2948,R.id.weex_id_2947,R.id.weex_id_2946,R.id.weex_id_2945,R.id.weex_id_2944,R.id.weex_id_2943,R.id.weex_id_2942,R.id.weex_id_2941,R.id.weex_id_2940,R.id.weex_id_2939,R.id.weex_id_2938,R.id.weex_id_2937,R.id.weex_id_2936,R.id.weex_id_2935,R.id.weex_id_2934,R.id.weex_id_2933,R.id.weex_id_2932,R.id.weex_id_2931,R.id.weex_id_2930,R.id.weex_id_2929,R.id.weex_id_2928,R.id.weex_id_2927,R.id.weex_id_2926,R.id.weex_id_2925,R.id.weex_id_2924,R.id.weex_id_2923,R.id.weex_id_2922,R.id.weex_id_2921,R.id.weex_id_2920,R.id.weex_id_2919,R.id.weex_id_2918,R.id.weex_id_2917,R.id.weex_id_2916,R.id.weex_id_2915,R.id.weex_id_2914,R.id.weex_id_2913,R.id.weex_id_2912,R.id.weex_id_2911,R.id.weex_id_2910,R.id.weex_id_2909,R.id.weex_id_2908,R.id.weex_id_2907,R.id.weex_id_2906,R.id.weex_id_2905,R.id.weex_id_2904,R.id.weex_id_2903,R.id.weex_id_2902,R.id.weex_id_2901,R.id.weex_id_2900, - R.id.weex_id_2899,R.id.weex_id_2898,R.id.weex_id_2897,R.id.weex_id_2896,R.id.weex_id_2895,R.id.weex_id_2894,R.id.weex_id_2893,R.id.weex_id_2892,R.id.weex_id_2891,R.id.weex_id_2890,R.id.weex_id_2889,R.id.weex_id_2888,R.id.weex_id_2887,R.id.weex_id_2886,R.id.weex_id_2885,R.id.weex_id_2884,R.id.weex_id_2883,R.id.weex_id_2882,R.id.weex_id_2881,R.id.weex_id_2880,R.id.weex_id_2879,R.id.weex_id_2878,R.id.weex_id_2877,R.id.weex_id_2876,R.id.weex_id_2875,R.id.weex_id_2874,R.id.weex_id_2873,R.id.weex_id_2872,R.id.weex_id_2871,R.id.weex_id_2870,R.id.weex_id_2869,R.id.weex_id_2868,R.id.weex_id_2867,R.id.weex_id_2866,R.id.weex_id_2865,R.id.weex_id_2864,R.id.weex_id_2863,R.id.weex_id_2862,R.id.weex_id_2861,R.id.weex_id_2860,R.id.weex_id_2859,R.id.weex_id_2858,R.id.weex_id_2857,R.id.weex_id_2856,R.id.weex_id_2855,R.id.weex_id_2854,R.id.weex_id_2853,R.id.weex_id_2852,R.id.weex_id_2851,R.id.weex_id_2850,R.id.weex_id_2849,R.id.weex_id_2848,R.id.weex_id_2847,R.id.weex_id_2846,R.id.weex_id_2845,R.id.weex_id_2844,R.id.weex_id_2843,R.id.weex_id_2842,R.id.weex_id_2841,R.id.weex_id_2840,R.id.weex_id_2839,R.id.weex_id_2838,R.id.weex_id_2837,R.id.weex_id_2836,R.id.weex_id_2835,R.id.weex_id_2834,R.id.weex_id_2833,R.id.weex_id_2832,R.id.weex_id_2831,R.id.weex_id_2830,R.id.weex_id_2829,R.id.weex_id_2828,R.id.weex_id_2827,R.id.weex_id_2826,R.id.weex_id_2825,R.id.weex_id_2824,R.id.weex_id_2823,R.id.weex_id_2822,R.id.weex_id_2821,R.id.weex_id_2820,R.id.weex_id_2819,R.id.weex_id_2818,R.id.weex_id_2817,R.id.weex_id_2816,R.id.weex_id_2815,R.id.weex_id_2814,R.id.weex_id_2813,R.id.weex_id_2812,R.id.weex_id_2811,R.id.weex_id_2810,R.id.weex_id_2809,R.id.weex_id_2808,R.id.weex_id_2807,R.id.weex_id_2806,R.id.weex_id_2805,R.id.weex_id_2804,R.id.weex_id_2803,R.id.weex_id_2802,R.id.weex_id_2801,R.id.weex_id_2800, - R.id.weex_id_2799,R.id.weex_id_2798,R.id.weex_id_2797,R.id.weex_id_2796,R.id.weex_id_2795,R.id.weex_id_2794,R.id.weex_id_2793,R.id.weex_id_2792,R.id.weex_id_2791,R.id.weex_id_2790,R.id.weex_id_2789,R.id.weex_id_2788,R.id.weex_id_2787,R.id.weex_id_2786,R.id.weex_id_2785,R.id.weex_id_2784,R.id.weex_id_2783,R.id.weex_id_2782,R.id.weex_id_2781,R.id.weex_id_2780,R.id.weex_id_2779,R.id.weex_id_2778,R.id.weex_id_2777,R.id.weex_id_2776,R.id.weex_id_2775,R.id.weex_id_2774,R.id.weex_id_2773,R.id.weex_id_2772,R.id.weex_id_2771,R.id.weex_id_2770,R.id.weex_id_2769,R.id.weex_id_2768,R.id.weex_id_2767,R.id.weex_id_2766,R.id.weex_id_2765,R.id.weex_id_2764,R.id.weex_id_2763,R.id.weex_id_2762,R.id.weex_id_2761,R.id.weex_id_2760,R.id.weex_id_2759,R.id.weex_id_2758,R.id.weex_id_2757,R.id.weex_id_2756,R.id.weex_id_2755,R.id.weex_id_2754,R.id.weex_id_2753,R.id.weex_id_2752,R.id.weex_id_2751,R.id.weex_id_2750,R.id.weex_id_2749,R.id.weex_id_2748,R.id.weex_id_2747,R.id.weex_id_2746,R.id.weex_id_2745,R.id.weex_id_2744,R.id.weex_id_2743,R.id.weex_id_2742,R.id.weex_id_2741,R.id.weex_id_2740,R.id.weex_id_2739,R.id.weex_id_2738,R.id.weex_id_2737,R.id.weex_id_2736,R.id.weex_id_2735,R.id.weex_id_2734,R.id.weex_id_2733,R.id.weex_id_2732,R.id.weex_id_2731,R.id.weex_id_2730,R.id.weex_id_2729,R.id.weex_id_2728,R.id.weex_id_2727,R.id.weex_id_2726,R.id.weex_id_2725,R.id.weex_id_2724,R.id.weex_id_2723,R.id.weex_id_2722,R.id.weex_id_2721,R.id.weex_id_2720,R.id.weex_id_2719,R.id.weex_id_2718,R.id.weex_id_2717,R.id.weex_id_2716,R.id.weex_id_2715,R.id.weex_id_2714,R.id.weex_id_2713,R.id.weex_id_2712,R.id.weex_id_2711,R.id.weex_id_2710,R.id.weex_id_2709,R.id.weex_id_2708,R.id.weex_id_2707,R.id.weex_id_2706,R.id.weex_id_2705,R.id.weex_id_2704,R.id.weex_id_2703,R.id.weex_id_2702,R.id.weex_id_2701,R.id.weex_id_2700, - R.id.weex_id_2699,R.id.weex_id_2698,R.id.weex_id_2697,R.id.weex_id_2696,R.id.weex_id_2695,R.id.weex_id_2694,R.id.weex_id_2693,R.id.weex_id_2692,R.id.weex_id_2691,R.id.weex_id_2690,R.id.weex_id_2689,R.id.weex_id_2688,R.id.weex_id_2687,R.id.weex_id_2686,R.id.weex_id_2685,R.id.weex_id_2684,R.id.weex_id_2683,R.id.weex_id_2682,R.id.weex_id_2681,R.id.weex_id_2680,R.id.weex_id_2679,R.id.weex_id_2678,R.id.weex_id_2677,R.id.weex_id_2676,R.id.weex_id_2675,R.id.weex_id_2674,R.id.weex_id_2673,R.id.weex_id_2672,R.id.weex_id_2671,R.id.weex_id_2670,R.id.weex_id_2669,R.id.weex_id_2668,R.id.weex_id_2667,R.id.weex_id_2666,R.id.weex_id_2665,R.id.weex_id_2664,R.id.weex_id_2663,R.id.weex_id_2662,R.id.weex_id_2661,R.id.weex_id_2660,R.id.weex_id_2659,R.id.weex_id_2658,R.id.weex_id_2657,R.id.weex_id_2656,R.id.weex_id_2655,R.id.weex_id_2654,R.id.weex_id_2653,R.id.weex_id_2652,R.id.weex_id_2651,R.id.weex_id_2650,R.id.weex_id_2649,R.id.weex_id_2648,R.id.weex_id_2647,R.id.weex_id_2646,R.id.weex_id_2645,R.id.weex_id_2644,R.id.weex_id_2643,R.id.weex_id_2642,R.id.weex_id_2641,R.id.weex_id_2640,R.id.weex_id_2639,R.id.weex_id_2638,R.id.weex_id_2637,R.id.weex_id_2636,R.id.weex_id_2635,R.id.weex_id_2634,R.id.weex_id_2633,R.id.weex_id_2632,R.id.weex_id_2631,R.id.weex_id_2630,R.id.weex_id_2629,R.id.weex_id_2628,R.id.weex_id_2627,R.id.weex_id_2626,R.id.weex_id_2625,R.id.weex_id_2624,R.id.weex_id_2623,R.id.weex_id_2622,R.id.weex_id_2621,R.id.weex_id_2620,R.id.weex_id_2619,R.id.weex_id_2618,R.id.weex_id_2617,R.id.weex_id_2616,R.id.weex_id_2615,R.id.weex_id_2614,R.id.weex_id_2613,R.id.weex_id_2612,R.id.weex_id_2611,R.id.weex_id_2610,R.id.weex_id_2609,R.id.weex_id_2608,R.id.weex_id_2607,R.id.weex_id_2606,R.id.weex_id_2605,R.id.weex_id_2604,R.id.weex_id_2603,R.id.weex_id_2602,R.id.weex_id_2601,R.id.weex_id_2600, - R.id.weex_id_2599,R.id.weex_id_2598,R.id.weex_id_2597,R.id.weex_id_2596,R.id.weex_id_2595,R.id.weex_id_2594,R.id.weex_id_2593,R.id.weex_id_2592,R.id.weex_id_2591,R.id.weex_id_2590,R.id.weex_id_2589,R.id.weex_id_2588,R.id.weex_id_2587,R.id.weex_id_2586,R.id.weex_id_2585,R.id.weex_id_2584,R.id.weex_id_2583,R.id.weex_id_2582,R.id.weex_id_2581,R.id.weex_id_2580,R.id.weex_id_2579,R.id.weex_id_2578,R.id.weex_id_2577,R.id.weex_id_2576,R.id.weex_id_2575,R.id.weex_id_2574,R.id.weex_id_2573,R.id.weex_id_2572,R.id.weex_id_2571,R.id.weex_id_2570,R.id.weex_id_2569,R.id.weex_id_2568,R.id.weex_id_2567,R.id.weex_id_2566,R.id.weex_id_2565,R.id.weex_id_2564,R.id.weex_id_2563,R.id.weex_id_2562,R.id.weex_id_2561,R.id.weex_id_2560,R.id.weex_id_2559,R.id.weex_id_2558,R.id.weex_id_2557,R.id.weex_id_2556,R.id.weex_id_2555,R.id.weex_id_2554,R.id.weex_id_2553,R.id.weex_id_2552,R.id.weex_id_2551,R.id.weex_id_2550,R.id.weex_id_2549,R.id.weex_id_2548,R.id.weex_id_2547,R.id.weex_id_2546,R.id.weex_id_2545,R.id.weex_id_2544,R.id.weex_id_2543,R.id.weex_id_2542,R.id.weex_id_2541,R.id.weex_id_2540,R.id.weex_id_2539,R.id.weex_id_2538,R.id.weex_id_2537,R.id.weex_id_2536,R.id.weex_id_2535,R.id.weex_id_2534,R.id.weex_id_2533,R.id.weex_id_2532,R.id.weex_id_2531,R.id.weex_id_2530,R.id.weex_id_2529,R.id.weex_id_2528,R.id.weex_id_2527,R.id.weex_id_2526,R.id.weex_id_2525,R.id.weex_id_2524,R.id.weex_id_2523,R.id.weex_id_2522,R.id.weex_id_2521,R.id.weex_id_2520,R.id.weex_id_2519,R.id.weex_id_2518,R.id.weex_id_2517,R.id.weex_id_2516,R.id.weex_id_2515,R.id.weex_id_2514,R.id.weex_id_2513,R.id.weex_id_2512,R.id.weex_id_2511,R.id.weex_id_2510,R.id.weex_id_2509,R.id.weex_id_2508,R.id.weex_id_2507,R.id.weex_id_2506,R.id.weex_id_2505,R.id.weex_id_2504,R.id.weex_id_2503,R.id.weex_id_2502,R.id.weex_id_2501,R.id.weex_id_2500, - R.id.weex_id_2499,R.id.weex_id_2498,R.id.weex_id_2497,R.id.weex_id_2496,R.id.weex_id_2495,R.id.weex_id_2494,R.id.weex_id_2493,R.id.weex_id_2492,R.id.weex_id_2491,R.id.weex_id_2490,R.id.weex_id_2489,R.id.weex_id_2488,R.id.weex_id_2487,R.id.weex_id_2486,R.id.weex_id_2485,R.id.weex_id_2484,R.id.weex_id_2483,R.id.weex_id_2482,R.id.weex_id_2481,R.id.weex_id_2480,R.id.weex_id_2479,R.id.weex_id_2478,R.id.weex_id_2477,R.id.weex_id_2476,R.id.weex_id_2475,R.id.weex_id_2474,R.id.weex_id_2473,R.id.weex_id_2472,R.id.weex_id_2471,R.id.weex_id_2470,R.id.weex_id_2469,R.id.weex_id_2468,R.id.weex_id_2467,R.id.weex_id_2466,R.id.weex_id_2465,R.id.weex_id_2464,R.id.weex_id_2463,R.id.weex_id_2462,R.id.weex_id_2461,R.id.weex_id_2460,R.id.weex_id_2459,R.id.weex_id_2458,R.id.weex_id_2457,R.id.weex_id_2456,R.id.weex_id_2455,R.id.weex_id_2454,R.id.weex_id_2453,R.id.weex_id_2452,R.id.weex_id_2451,R.id.weex_id_2450,R.id.weex_id_2449,R.id.weex_id_2448,R.id.weex_id_2447,R.id.weex_id_2446,R.id.weex_id_2445,R.id.weex_id_2444,R.id.weex_id_2443,R.id.weex_id_2442,R.id.weex_id_2441,R.id.weex_id_2440,R.id.weex_id_2439,R.id.weex_id_2438,R.id.weex_id_2437,R.id.weex_id_2436,R.id.weex_id_2435,R.id.weex_id_2434,R.id.weex_id_2433,R.id.weex_id_2432,R.id.weex_id_2431,R.id.weex_id_2430,R.id.weex_id_2429,R.id.weex_id_2428,R.id.weex_id_2427,R.id.weex_id_2426,R.id.weex_id_2425,R.id.weex_id_2424,R.id.weex_id_2423,R.id.weex_id_2422,R.id.weex_id_2421,R.id.weex_id_2420,R.id.weex_id_2419,R.id.weex_id_2418,R.id.weex_id_2417,R.id.weex_id_2416,R.id.weex_id_2415,R.id.weex_id_2414,R.id.weex_id_2413,R.id.weex_id_2412,R.id.weex_id_2411,R.id.weex_id_2410,R.id.weex_id_2409,R.id.weex_id_2408,R.id.weex_id_2407,R.id.weex_id_2406,R.id.weex_id_2405,R.id.weex_id_2404,R.id.weex_id_2403,R.id.weex_id_2402,R.id.weex_id_2401,R.id.weex_id_2400, - R.id.weex_id_2399,R.id.weex_id_2398,R.id.weex_id_2397,R.id.weex_id_2396,R.id.weex_id_2395,R.id.weex_id_2394,R.id.weex_id_2393,R.id.weex_id_2392,R.id.weex_id_2391,R.id.weex_id_2390,R.id.weex_id_2389,R.id.weex_id_2388,R.id.weex_id_2387,R.id.weex_id_2386,R.id.weex_id_2385,R.id.weex_id_2384,R.id.weex_id_2383,R.id.weex_id_2382,R.id.weex_id_2381,R.id.weex_id_2380,R.id.weex_id_2379,R.id.weex_id_2378,R.id.weex_id_2377,R.id.weex_id_2376,R.id.weex_id_2375,R.id.weex_id_2374,R.id.weex_id_2373,R.id.weex_id_2372,R.id.weex_id_2371,R.id.weex_id_2370,R.id.weex_id_2369,R.id.weex_id_2368,R.id.weex_id_2367,R.id.weex_id_2366,R.id.weex_id_2365,R.id.weex_id_2364,R.id.weex_id_2363,R.id.weex_id_2362,R.id.weex_id_2361,R.id.weex_id_2360,R.id.weex_id_2359,R.id.weex_id_2358,R.id.weex_id_2357,R.id.weex_id_2356,R.id.weex_id_2355,R.id.weex_id_2354,R.id.weex_id_2353,R.id.weex_id_2352,R.id.weex_id_2351,R.id.weex_id_2350,R.id.weex_id_2349,R.id.weex_id_2348,R.id.weex_id_2347,R.id.weex_id_2346,R.id.weex_id_2345,R.id.weex_id_2344,R.id.weex_id_2343,R.id.weex_id_2342,R.id.weex_id_2341,R.id.weex_id_2340,R.id.weex_id_2339,R.id.weex_id_2338,R.id.weex_id_2337,R.id.weex_id_2336,R.id.weex_id_2335,R.id.weex_id_2334,R.id.weex_id_2333,R.id.weex_id_2332,R.id.weex_id_2331,R.id.weex_id_2330,R.id.weex_id_2329,R.id.weex_id_2328,R.id.weex_id_2327,R.id.weex_id_2326,R.id.weex_id_2325,R.id.weex_id_2324,R.id.weex_id_2323,R.id.weex_id_2322,R.id.weex_id_2321,R.id.weex_id_2320,R.id.weex_id_2319,R.id.weex_id_2318,R.id.weex_id_2317,R.id.weex_id_2316,R.id.weex_id_2315,R.id.weex_id_2314,R.id.weex_id_2313,R.id.weex_id_2312,R.id.weex_id_2311,R.id.weex_id_2310,R.id.weex_id_2309,R.id.weex_id_2308,R.id.weex_id_2307,R.id.weex_id_2306,R.id.weex_id_2305,R.id.weex_id_2304,R.id.weex_id_2303,R.id.weex_id_2302,R.id.weex_id_2301,R.id.weex_id_2300, - R.id.weex_id_2299,R.id.weex_id_2298,R.id.weex_id_2297,R.id.weex_id_2296,R.id.weex_id_2295,R.id.weex_id_2294,R.id.weex_id_2293,R.id.weex_id_2292,R.id.weex_id_2291,R.id.weex_id_2290,R.id.weex_id_2289,R.id.weex_id_2288,R.id.weex_id_2287,R.id.weex_id_2286,R.id.weex_id_2285,R.id.weex_id_2284,R.id.weex_id_2283,R.id.weex_id_2282,R.id.weex_id_2281,R.id.weex_id_2280,R.id.weex_id_2279,R.id.weex_id_2278,R.id.weex_id_2277,R.id.weex_id_2276,R.id.weex_id_2275,R.id.weex_id_2274,R.id.weex_id_2273,R.id.weex_id_2272,R.id.weex_id_2271,R.id.weex_id_2270,R.id.weex_id_2269,R.id.weex_id_2268,R.id.weex_id_2267,R.id.weex_id_2266,R.id.weex_id_2265,R.id.weex_id_2264,R.id.weex_id_2263,R.id.weex_id_2262,R.id.weex_id_2261,R.id.weex_id_2260,R.id.weex_id_2259,R.id.weex_id_2258,R.id.weex_id_2257,R.id.weex_id_2256,R.id.weex_id_2255,R.id.weex_id_2254,R.id.weex_id_2253,R.id.weex_id_2252,R.id.weex_id_2251,R.id.weex_id_2250,R.id.weex_id_2249,R.id.weex_id_2248,R.id.weex_id_2247,R.id.weex_id_2246,R.id.weex_id_2245,R.id.weex_id_2244,R.id.weex_id_2243,R.id.weex_id_2242,R.id.weex_id_2241,R.id.weex_id_2240,R.id.weex_id_2239,R.id.weex_id_2238,R.id.weex_id_2237,R.id.weex_id_2236,R.id.weex_id_2235,R.id.weex_id_2234,R.id.weex_id_2233,R.id.weex_id_2232,R.id.weex_id_2231,R.id.weex_id_2230,R.id.weex_id_2229,R.id.weex_id_2228,R.id.weex_id_2227,R.id.weex_id_2226,R.id.weex_id_2225,R.id.weex_id_2224,R.id.weex_id_2223,R.id.weex_id_2222,R.id.weex_id_2221,R.id.weex_id_2220,R.id.weex_id_2219,R.id.weex_id_2218,R.id.weex_id_2217,R.id.weex_id_2216,R.id.weex_id_2215,R.id.weex_id_2214,R.id.weex_id_2213,R.id.weex_id_2212,R.id.weex_id_2211,R.id.weex_id_2210,R.id.weex_id_2209,R.id.weex_id_2208,R.id.weex_id_2207,R.id.weex_id_2206,R.id.weex_id_2205,R.id.weex_id_2204,R.id.weex_id_2203,R.id.weex_id_2202,R.id.weex_id_2201,R.id.weex_id_2200, - R.id.weex_id_2199,R.id.weex_id_2198,R.id.weex_id_2197,R.id.weex_id_2196,R.id.weex_id_2195,R.id.weex_id_2194,R.id.weex_id_2193,R.id.weex_id_2192,R.id.weex_id_2191,R.id.weex_id_2190,R.id.weex_id_2189,R.id.weex_id_2188,R.id.weex_id_2187,R.id.weex_id_2186,R.id.weex_id_2185,R.id.weex_id_2184,R.id.weex_id_2183,R.id.weex_id_2182,R.id.weex_id_2181,R.id.weex_id_2180,R.id.weex_id_2179,R.id.weex_id_2178,R.id.weex_id_2177,R.id.weex_id_2176,R.id.weex_id_2175,R.id.weex_id_2174,R.id.weex_id_2173,R.id.weex_id_2172,R.id.weex_id_2171,R.id.weex_id_2170,R.id.weex_id_2169,R.id.weex_id_2168,R.id.weex_id_2167,R.id.weex_id_2166,R.id.weex_id_2165,R.id.weex_id_2164,R.id.weex_id_2163,R.id.weex_id_2162,R.id.weex_id_2161,R.id.weex_id_2160,R.id.weex_id_2159,R.id.weex_id_2158,R.id.weex_id_2157,R.id.weex_id_2156,R.id.weex_id_2155,R.id.weex_id_2154,R.id.weex_id_2153,R.id.weex_id_2152,R.id.weex_id_2151,R.id.weex_id_2150,R.id.weex_id_2149,R.id.weex_id_2148,R.id.weex_id_2147,R.id.weex_id_2146,R.id.weex_id_2145,R.id.weex_id_2144,R.id.weex_id_2143,R.id.weex_id_2142,R.id.weex_id_2141,R.id.weex_id_2140,R.id.weex_id_2139,R.id.weex_id_2138,R.id.weex_id_2137,R.id.weex_id_2136,R.id.weex_id_2135,R.id.weex_id_2134,R.id.weex_id_2133,R.id.weex_id_2132,R.id.weex_id_2131,R.id.weex_id_2130,R.id.weex_id_2129,R.id.weex_id_2128,R.id.weex_id_2127,R.id.weex_id_2126,R.id.weex_id_2125,R.id.weex_id_2124,R.id.weex_id_2123,R.id.weex_id_2122,R.id.weex_id_2121,R.id.weex_id_2120,R.id.weex_id_2119,R.id.weex_id_2118,R.id.weex_id_2117,R.id.weex_id_2116,R.id.weex_id_2115,R.id.weex_id_2114,R.id.weex_id_2113,R.id.weex_id_2112,R.id.weex_id_2111,R.id.weex_id_2110,R.id.weex_id_2109,R.id.weex_id_2108,R.id.weex_id_2107,R.id.weex_id_2106,R.id.weex_id_2105,R.id.weex_id_2104,R.id.weex_id_2103,R.id.weex_id_2102,R.id.weex_id_2101,R.id.weex_id_2100, - R.id.weex_id_2099,R.id.weex_id_2098,R.id.weex_id_2097,R.id.weex_id_2096,R.id.weex_id_2095,R.id.weex_id_2094,R.id.weex_id_2093,R.id.weex_id_2092,R.id.weex_id_2091,R.id.weex_id_2090,R.id.weex_id_2089,R.id.weex_id_2088,R.id.weex_id_2087,R.id.weex_id_2086,R.id.weex_id_2085,R.id.weex_id_2084,R.id.weex_id_2083,R.id.weex_id_2082,R.id.weex_id_2081,R.id.weex_id_2080,R.id.weex_id_2079,R.id.weex_id_2078,R.id.weex_id_2077,R.id.weex_id_2076,R.id.weex_id_2075,R.id.weex_id_2074,R.id.weex_id_2073,R.id.weex_id_2072,R.id.weex_id_2071,R.id.weex_id_2070,R.id.weex_id_2069,R.id.weex_id_2068,R.id.weex_id_2067,R.id.weex_id_2066,R.id.weex_id_2065,R.id.weex_id_2064,R.id.weex_id_2063,R.id.weex_id_2062,R.id.weex_id_2061,R.id.weex_id_2060,R.id.weex_id_2059,R.id.weex_id_2058,R.id.weex_id_2057,R.id.weex_id_2056,R.id.weex_id_2055,R.id.weex_id_2054,R.id.weex_id_2053,R.id.weex_id_2052,R.id.weex_id_2051,R.id.weex_id_2050,R.id.weex_id_2049,R.id.weex_id_2048,R.id.weex_id_2047,R.id.weex_id_2046,R.id.weex_id_2045,R.id.weex_id_2044,R.id.weex_id_2043,R.id.weex_id_2042,R.id.weex_id_2041,R.id.weex_id_2040,R.id.weex_id_2039,R.id.weex_id_2038,R.id.weex_id_2037,R.id.weex_id_2036,R.id.weex_id_2035,R.id.weex_id_2034,R.id.weex_id_2033,R.id.weex_id_2032,R.id.weex_id_2031,R.id.weex_id_2030,R.id.weex_id_2029,R.id.weex_id_2028,R.id.weex_id_2027,R.id.weex_id_2026,R.id.weex_id_2025,R.id.weex_id_2024,R.id.weex_id_2023,R.id.weex_id_2022,R.id.weex_id_2021,R.id.weex_id_2020,R.id.weex_id_2019,R.id.weex_id_2018,R.id.weex_id_2017,R.id.weex_id_2016,R.id.weex_id_2015,R.id.weex_id_2014,R.id.weex_id_2013,R.id.weex_id_2012,R.id.weex_id_2011,R.id.weex_id_2010,R.id.weex_id_2009,R.id.weex_id_2008,R.id.weex_id_2007,R.id.weex_id_2006,R.id.weex_id_2005,R.id.weex_id_2004,R.id.weex_id_2003,R.id.weex_id_2002,R.id.weex_id_2001,R.id.weex_id_2000, - R.id.weex_id_1999,R.id.weex_id_1998,R.id.weex_id_1997,R.id.weex_id_1996,R.id.weex_id_1995,R.id.weex_id_1994,R.id.weex_id_1993,R.id.weex_id_1992,R.id.weex_id_1991,R.id.weex_id_1990,R.id.weex_id_1989,R.id.weex_id_1988,R.id.weex_id_1987,R.id.weex_id_1986,R.id.weex_id_1985,R.id.weex_id_1984,R.id.weex_id_1983,R.id.weex_id_1982,R.id.weex_id_1981,R.id.weex_id_1980,R.id.weex_id_1979,R.id.weex_id_1978,R.id.weex_id_1977,R.id.weex_id_1976,R.id.weex_id_1975,R.id.weex_id_1974,R.id.weex_id_1973,R.id.weex_id_1972,R.id.weex_id_1971,R.id.weex_id_1970,R.id.weex_id_1969,R.id.weex_id_1968,R.id.weex_id_1967,R.id.weex_id_1966,R.id.weex_id_1965,R.id.weex_id_1964,R.id.weex_id_1963,R.id.weex_id_1962,R.id.weex_id_1961,R.id.weex_id_1960,R.id.weex_id_1959,R.id.weex_id_1958,R.id.weex_id_1957,R.id.weex_id_1956,R.id.weex_id_1955,R.id.weex_id_1954,R.id.weex_id_1953,R.id.weex_id_1952,R.id.weex_id_1951,R.id.weex_id_1950,R.id.weex_id_1949,R.id.weex_id_1948,R.id.weex_id_1947,R.id.weex_id_1946,R.id.weex_id_1945,R.id.weex_id_1944,R.id.weex_id_1943,R.id.weex_id_1942,R.id.weex_id_1941,R.id.weex_id_1940,R.id.weex_id_1939,R.id.weex_id_1938,R.id.weex_id_1937,R.id.weex_id_1936,R.id.weex_id_1935,R.id.weex_id_1934,R.id.weex_id_1933,R.id.weex_id_1932,R.id.weex_id_1931,R.id.weex_id_1930,R.id.weex_id_1929,R.id.weex_id_1928,R.id.weex_id_1927,R.id.weex_id_1926,R.id.weex_id_1925,R.id.weex_id_1924,R.id.weex_id_1923,R.id.weex_id_1922,R.id.weex_id_1921,R.id.weex_id_1920,R.id.weex_id_1919,R.id.weex_id_1918,R.id.weex_id_1917,R.id.weex_id_1916,R.id.weex_id_1915,R.id.weex_id_1914,R.id.weex_id_1913,R.id.weex_id_1912,R.id.weex_id_1911,R.id.weex_id_1910,R.id.weex_id_1909,R.id.weex_id_1908,R.id.weex_id_1907,R.id.weex_id_1906,R.id.weex_id_1905,R.id.weex_id_1904,R.id.weex_id_1903,R.id.weex_id_1902,R.id.weex_id_1901,R.id.weex_id_1900, - R.id.weex_id_1899,R.id.weex_id_1898,R.id.weex_id_1897,R.id.weex_id_1896,R.id.weex_id_1895,R.id.weex_id_1894,R.id.weex_id_1893,R.id.weex_id_1892,R.id.weex_id_1891,R.id.weex_id_1890,R.id.weex_id_1889,R.id.weex_id_1888,R.id.weex_id_1887,R.id.weex_id_1886,R.id.weex_id_1885,R.id.weex_id_1884,R.id.weex_id_1883,R.id.weex_id_1882,R.id.weex_id_1881,R.id.weex_id_1880,R.id.weex_id_1879,R.id.weex_id_1878,R.id.weex_id_1877,R.id.weex_id_1876,R.id.weex_id_1875,R.id.weex_id_1874,R.id.weex_id_1873,R.id.weex_id_1872,R.id.weex_id_1871,R.id.weex_id_1870,R.id.weex_id_1869,R.id.weex_id_1868,R.id.weex_id_1867,R.id.weex_id_1866,R.id.weex_id_1865,R.id.weex_id_1864,R.id.weex_id_1863,R.id.weex_id_1862,R.id.weex_id_1861,R.id.weex_id_1860,R.id.weex_id_1859,R.id.weex_id_1858,R.id.weex_id_1857,R.id.weex_id_1856,R.id.weex_id_1855,R.id.weex_id_1854,R.id.weex_id_1853,R.id.weex_id_1852,R.id.weex_id_1851,R.id.weex_id_1850,R.id.weex_id_1849,R.id.weex_id_1848,R.id.weex_id_1847,R.id.weex_id_1846,R.id.weex_id_1845,R.id.weex_id_1844,R.id.weex_id_1843,R.id.weex_id_1842,R.id.weex_id_1841,R.id.weex_id_1840,R.id.weex_id_1839,R.id.weex_id_1838,R.id.weex_id_1837,R.id.weex_id_1836,R.id.weex_id_1835,R.id.weex_id_1834,R.id.weex_id_1833,R.id.weex_id_1832,R.id.weex_id_1831,R.id.weex_id_1830,R.id.weex_id_1829,R.id.weex_id_1828,R.id.weex_id_1827,R.id.weex_id_1826,R.id.weex_id_1825,R.id.weex_id_1824,R.id.weex_id_1823,R.id.weex_id_1822,R.id.weex_id_1821,R.id.weex_id_1820,R.id.weex_id_1819,R.id.weex_id_1818,R.id.weex_id_1817,R.id.weex_id_1816,R.id.weex_id_1815,R.id.weex_id_1814,R.id.weex_id_1813,R.id.weex_id_1812,R.id.weex_id_1811,R.id.weex_id_1810,R.id.weex_id_1809,R.id.weex_id_1808,R.id.weex_id_1807,R.id.weex_id_1806,R.id.weex_id_1805,R.id.weex_id_1804,R.id.weex_id_1803,R.id.weex_id_1802,R.id.weex_id_1801,R.id.weex_id_1800, - R.id.weex_id_1799,R.id.weex_id_1798,R.id.weex_id_1797,R.id.weex_id_1796,R.id.weex_id_1795,R.id.weex_id_1794,R.id.weex_id_1793,R.id.weex_id_1792,R.id.weex_id_1791,R.id.weex_id_1790,R.id.weex_id_1789,R.id.weex_id_1788,R.id.weex_id_1787,R.id.weex_id_1786,R.id.weex_id_1785,R.id.weex_id_1784,R.id.weex_id_1783,R.id.weex_id_1782,R.id.weex_id_1781,R.id.weex_id_1780,R.id.weex_id_1779,R.id.weex_id_1778,R.id.weex_id_1777,R.id.weex_id_1776,R.id.weex_id_1775,R.id.weex_id_1774,R.id.weex_id_1773,R.id.weex_id_1772,R.id.weex_id_1771,R.id.weex_id_1770,R.id.weex_id_1769,R.id.weex_id_1768,R.id.weex_id_1767,R.id.weex_id_1766,R.id.weex_id_1765,R.id.weex_id_1764,R.id.weex_id_1763,R.id.weex_id_1762,R.id.weex_id_1761,R.id.weex_id_1760,R.id.weex_id_1759,R.id.weex_id_1758,R.id.weex_id_1757,R.id.weex_id_1756,R.id.weex_id_1755,R.id.weex_id_1754,R.id.weex_id_1753,R.id.weex_id_1752,R.id.weex_id_1751,R.id.weex_id_1750,R.id.weex_id_1749,R.id.weex_id_1748,R.id.weex_id_1747,R.id.weex_id_1746,R.id.weex_id_1745,R.id.weex_id_1744,R.id.weex_id_1743,R.id.weex_id_1742,R.id.weex_id_1741,R.id.weex_id_1740,R.id.weex_id_1739,R.id.weex_id_1738,R.id.weex_id_1737,R.id.weex_id_1736,R.id.weex_id_1735,R.id.weex_id_1734,R.id.weex_id_1733,R.id.weex_id_1732,R.id.weex_id_1731,R.id.weex_id_1730,R.id.weex_id_1729,R.id.weex_id_1728,R.id.weex_id_1727,R.id.weex_id_1726,R.id.weex_id_1725,R.id.weex_id_1724,R.id.weex_id_1723,R.id.weex_id_1722,R.id.weex_id_1721,R.id.weex_id_1720,R.id.weex_id_1719,R.id.weex_id_1718,R.id.weex_id_1717,R.id.weex_id_1716,R.id.weex_id_1715,R.id.weex_id_1714,R.id.weex_id_1713,R.id.weex_id_1712,R.id.weex_id_1711,R.id.weex_id_1710,R.id.weex_id_1709,R.id.weex_id_1708,R.id.weex_id_1707,R.id.weex_id_1706,R.id.weex_id_1705,R.id.weex_id_1704,R.id.weex_id_1703,R.id.weex_id_1702,R.id.weex_id_1701,R.id.weex_id_1700, - R.id.weex_id_1699,R.id.weex_id_1698,R.id.weex_id_1697,R.id.weex_id_1696,R.id.weex_id_1695,R.id.weex_id_1694,R.id.weex_id_1693,R.id.weex_id_1692,R.id.weex_id_1691,R.id.weex_id_1690,R.id.weex_id_1689,R.id.weex_id_1688,R.id.weex_id_1687,R.id.weex_id_1686,R.id.weex_id_1685,R.id.weex_id_1684,R.id.weex_id_1683,R.id.weex_id_1682,R.id.weex_id_1681,R.id.weex_id_1680,R.id.weex_id_1679,R.id.weex_id_1678,R.id.weex_id_1677,R.id.weex_id_1676,R.id.weex_id_1675,R.id.weex_id_1674,R.id.weex_id_1673,R.id.weex_id_1672,R.id.weex_id_1671,R.id.weex_id_1670,R.id.weex_id_1669,R.id.weex_id_1668,R.id.weex_id_1667,R.id.weex_id_1666,R.id.weex_id_1665,R.id.weex_id_1664,R.id.weex_id_1663,R.id.weex_id_1662,R.id.weex_id_1661,R.id.weex_id_1660,R.id.weex_id_1659,R.id.weex_id_1658,R.id.weex_id_1657,R.id.weex_id_1656,R.id.weex_id_1655,R.id.weex_id_1654,R.id.weex_id_1653,R.id.weex_id_1652,R.id.weex_id_1651,R.id.weex_id_1650,R.id.weex_id_1649,R.id.weex_id_1648,R.id.weex_id_1647,R.id.weex_id_1646,R.id.weex_id_1645,R.id.weex_id_1644,R.id.weex_id_1643,R.id.weex_id_1642,R.id.weex_id_1641,R.id.weex_id_1640,R.id.weex_id_1639,R.id.weex_id_1638,R.id.weex_id_1637,R.id.weex_id_1636,R.id.weex_id_1635,R.id.weex_id_1634,R.id.weex_id_1633,R.id.weex_id_1632,R.id.weex_id_1631,R.id.weex_id_1630,R.id.weex_id_1629,R.id.weex_id_1628,R.id.weex_id_1627,R.id.weex_id_1626,R.id.weex_id_1625,R.id.weex_id_1624,R.id.weex_id_1623,R.id.weex_id_1622,R.id.weex_id_1621,R.id.weex_id_1620,R.id.weex_id_1619,R.id.weex_id_1618,R.id.weex_id_1617,R.id.weex_id_1616,R.id.weex_id_1615,R.id.weex_id_1614,R.id.weex_id_1613,R.id.weex_id_1612,R.id.weex_id_1611,R.id.weex_id_1610,R.id.weex_id_1609,R.id.weex_id_1608,R.id.weex_id_1607,R.id.weex_id_1606,R.id.weex_id_1605,R.id.weex_id_1604,R.id.weex_id_1603,R.id.weex_id_1602,R.id.weex_id_1601,R.id.weex_id_1600, - R.id.weex_id_1599,R.id.weex_id_1598,R.id.weex_id_1597,R.id.weex_id_1596,R.id.weex_id_1595,R.id.weex_id_1594,R.id.weex_id_1593,R.id.weex_id_1592,R.id.weex_id_1591,R.id.weex_id_1590,R.id.weex_id_1589,R.id.weex_id_1588,R.id.weex_id_1587,R.id.weex_id_1586,R.id.weex_id_1585,R.id.weex_id_1584,R.id.weex_id_1583,R.id.weex_id_1582,R.id.weex_id_1581,R.id.weex_id_1580,R.id.weex_id_1579,R.id.weex_id_1578,R.id.weex_id_1577,R.id.weex_id_1576,R.id.weex_id_1575,R.id.weex_id_1574,R.id.weex_id_1573,R.id.weex_id_1572,R.id.weex_id_1571,R.id.weex_id_1570,R.id.weex_id_1569,R.id.weex_id_1568,R.id.weex_id_1567,R.id.weex_id_1566,R.id.weex_id_1565,R.id.weex_id_1564,R.id.weex_id_1563,R.id.weex_id_1562,R.id.weex_id_1561,R.id.weex_id_1560,R.id.weex_id_1559,R.id.weex_id_1558,R.id.weex_id_1557,R.id.weex_id_1556,R.id.weex_id_1555,R.id.weex_id_1554,R.id.weex_id_1553,R.id.weex_id_1552,R.id.weex_id_1551,R.id.weex_id_1550,R.id.weex_id_1549,R.id.weex_id_1548,R.id.weex_id_1547,R.id.weex_id_1546,R.id.weex_id_1545,R.id.weex_id_1544,R.id.weex_id_1543,R.id.weex_id_1542,R.id.weex_id_1541,R.id.weex_id_1540,R.id.weex_id_1539,R.id.weex_id_1538,R.id.weex_id_1537,R.id.weex_id_1536,R.id.weex_id_1535,R.id.weex_id_1534,R.id.weex_id_1533,R.id.weex_id_1532,R.id.weex_id_1531,R.id.weex_id_1530,R.id.weex_id_1529,R.id.weex_id_1528,R.id.weex_id_1527,R.id.weex_id_1526,R.id.weex_id_1525,R.id.weex_id_1524,R.id.weex_id_1523,R.id.weex_id_1522,R.id.weex_id_1521,R.id.weex_id_1520,R.id.weex_id_1519,R.id.weex_id_1518,R.id.weex_id_1517,R.id.weex_id_1516,R.id.weex_id_1515,R.id.weex_id_1514,R.id.weex_id_1513,R.id.weex_id_1512,R.id.weex_id_1511,R.id.weex_id_1510,R.id.weex_id_1509,R.id.weex_id_1508,R.id.weex_id_1507,R.id.weex_id_1506,R.id.weex_id_1505,R.id.weex_id_1504,R.id.weex_id_1503,R.id.weex_id_1502,R.id.weex_id_1501,R.id.weex_id_1500, - R.id.weex_id_1499,R.id.weex_id_1498,R.id.weex_id_1497,R.id.weex_id_1496,R.id.weex_id_1495,R.id.weex_id_1494,R.id.weex_id_1493,R.id.weex_id_1492,R.id.weex_id_1491,R.id.weex_id_1490,R.id.weex_id_1489,R.id.weex_id_1488,R.id.weex_id_1487,R.id.weex_id_1486,R.id.weex_id_1485,R.id.weex_id_1484,R.id.weex_id_1483,R.id.weex_id_1482,R.id.weex_id_1481,R.id.weex_id_1480,R.id.weex_id_1479,R.id.weex_id_1478,R.id.weex_id_1477,R.id.weex_id_1476,R.id.weex_id_1475,R.id.weex_id_1474,R.id.weex_id_1473,R.id.weex_id_1472,R.id.weex_id_1471,R.id.weex_id_1470,R.id.weex_id_1469,R.id.weex_id_1468,R.id.weex_id_1467,R.id.weex_id_1466,R.id.weex_id_1465,R.id.weex_id_1464,R.id.weex_id_1463,R.id.weex_id_1462,R.id.weex_id_1461,R.id.weex_id_1460,R.id.weex_id_1459,R.id.weex_id_1458,R.id.weex_id_1457,R.id.weex_id_1456,R.id.weex_id_1455,R.id.weex_id_1454,R.id.weex_id_1453,R.id.weex_id_1452,R.id.weex_id_1451,R.id.weex_id_1450,R.id.weex_id_1449,R.id.weex_id_1448,R.id.weex_id_1447,R.id.weex_id_1446,R.id.weex_id_1445,R.id.weex_id_1444,R.id.weex_id_1443,R.id.weex_id_1442,R.id.weex_id_1441,R.id.weex_id_1440,R.id.weex_id_1439,R.id.weex_id_1438,R.id.weex_id_1437,R.id.weex_id_1436,R.id.weex_id_1435,R.id.weex_id_1434,R.id.weex_id_1433,R.id.weex_id_1432,R.id.weex_id_1431,R.id.weex_id_1430,R.id.weex_id_1429,R.id.weex_id_1428,R.id.weex_id_1427,R.id.weex_id_1426,R.id.weex_id_1425,R.id.weex_id_1424,R.id.weex_id_1423,R.id.weex_id_1422,R.id.weex_id_1421,R.id.weex_id_1420,R.id.weex_id_1419,R.id.weex_id_1418,R.id.weex_id_1417,R.id.weex_id_1416,R.id.weex_id_1415,R.id.weex_id_1414,R.id.weex_id_1413,R.id.weex_id_1412,R.id.weex_id_1411,R.id.weex_id_1410,R.id.weex_id_1409,R.id.weex_id_1408,R.id.weex_id_1407,R.id.weex_id_1406,R.id.weex_id_1405,R.id.weex_id_1404,R.id.weex_id_1403,R.id.weex_id_1402,R.id.weex_id_1401,R.id.weex_id_1400, - R.id.weex_id_1399,R.id.weex_id_1398,R.id.weex_id_1397,R.id.weex_id_1396,R.id.weex_id_1395,R.id.weex_id_1394,R.id.weex_id_1393,R.id.weex_id_1392,R.id.weex_id_1391,R.id.weex_id_1390,R.id.weex_id_1389,R.id.weex_id_1388,R.id.weex_id_1387,R.id.weex_id_1386,R.id.weex_id_1385,R.id.weex_id_1384,R.id.weex_id_1383,R.id.weex_id_1382,R.id.weex_id_1381,R.id.weex_id_1380,R.id.weex_id_1379,R.id.weex_id_1378,R.id.weex_id_1377,R.id.weex_id_1376,R.id.weex_id_1375,R.id.weex_id_1374,R.id.weex_id_1373,R.id.weex_id_1372,R.id.weex_id_1371,R.id.weex_id_1370,R.id.weex_id_1369,R.id.weex_id_1368,R.id.weex_id_1367,R.id.weex_id_1366,R.id.weex_id_1365,R.id.weex_id_1364,R.id.weex_id_1363,R.id.weex_id_1362,R.id.weex_id_1361,R.id.weex_id_1360,R.id.weex_id_1359,R.id.weex_id_1358,R.id.weex_id_1357,R.id.weex_id_1356,R.id.weex_id_1355,R.id.weex_id_1354,R.id.weex_id_1353,R.id.weex_id_1352,R.id.weex_id_1351,R.id.weex_id_1350,R.id.weex_id_1349,R.id.weex_id_1348,R.id.weex_id_1347,R.id.weex_id_1346,R.id.weex_id_1345,R.id.weex_id_1344,R.id.weex_id_1343,R.id.weex_id_1342,R.id.weex_id_1341,R.id.weex_id_1340,R.id.weex_id_1339,R.id.weex_id_1338,R.id.weex_id_1337,R.id.weex_id_1336,R.id.weex_id_1335,R.id.weex_id_1334,R.id.weex_id_1333,R.id.weex_id_1332,R.id.weex_id_1331,R.id.weex_id_1330,R.id.weex_id_1329,R.id.weex_id_1328,R.id.weex_id_1327,R.id.weex_id_1326,R.id.weex_id_1325,R.id.weex_id_1324,R.id.weex_id_1323,R.id.weex_id_1322,R.id.weex_id_1321,R.id.weex_id_1320,R.id.weex_id_1319,R.id.weex_id_1318,R.id.weex_id_1317,R.id.weex_id_1316,R.id.weex_id_1315,R.id.weex_id_1314,R.id.weex_id_1313,R.id.weex_id_1312,R.id.weex_id_1311,R.id.weex_id_1310,R.id.weex_id_1309,R.id.weex_id_1308,R.id.weex_id_1307,R.id.weex_id_1306,R.id.weex_id_1305,R.id.weex_id_1304,R.id.weex_id_1303,R.id.weex_id_1302,R.id.weex_id_1301,R.id.weex_id_1300, - R.id.weex_id_1299,R.id.weex_id_1298,R.id.weex_id_1297,R.id.weex_id_1296,R.id.weex_id_1295,R.id.weex_id_1294,R.id.weex_id_1293,R.id.weex_id_1292,R.id.weex_id_1291,R.id.weex_id_1290,R.id.weex_id_1289,R.id.weex_id_1288,R.id.weex_id_1287,R.id.weex_id_1286,R.id.weex_id_1285,R.id.weex_id_1284,R.id.weex_id_1283,R.id.weex_id_1282,R.id.weex_id_1281,R.id.weex_id_1280,R.id.weex_id_1279,R.id.weex_id_1278,R.id.weex_id_1277,R.id.weex_id_1276,R.id.weex_id_1275,R.id.weex_id_1274,R.id.weex_id_1273,R.id.weex_id_1272,R.id.weex_id_1271,R.id.weex_id_1270,R.id.weex_id_1269,R.id.weex_id_1268,R.id.weex_id_1267,R.id.weex_id_1266,R.id.weex_id_1265,R.id.weex_id_1264,R.id.weex_id_1263,R.id.weex_id_1262,R.id.weex_id_1261,R.id.weex_id_1260,R.id.weex_id_1259,R.id.weex_id_1258,R.id.weex_id_1257,R.id.weex_id_1256,R.id.weex_id_1255,R.id.weex_id_1254,R.id.weex_id_1253,R.id.weex_id_1252,R.id.weex_id_1251,R.id.weex_id_1250,R.id.weex_id_1249,R.id.weex_id_1248,R.id.weex_id_1247,R.id.weex_id_1246,R.id.weex_id_1245,R.id.weex_id_1244,R.id.weex_id_1243,R.id.weex_id_1242,R.id.weex_id_1241,R.id.weex_id_1240,R.id.weex_id_1239,R.id.weex_id_1238,R.id.weex_id_1237,R.id.weex_id_1236,R.id.weex_id_1235,R.id.weex_id_1234,R.id.weex_id_1233,R.id.weex_id_1232,R.id.weex_id_1231,R.id.weex_id_1230,R.id.weex_id_1229,R.id.weex_id_1228,R.id.weex_id_1227,R.id.weex_id_1226,R.id.weex_id_1225,R.id.weex_id_1224,R.id.weex_id_1223,R.id.weex_id_1222,R.id.weex_id_1221,R.id.weex_id_1220,R.id.weex_id_1219,R.id.weex_id_1218,R.id.weex_id_1217,R.id.weex_id_1216,R.id.weex_id_1215,R.id.weex_id_1214,R.id.weex_id_1213,R.id.weex_id_1212,R.id.weex_id_1211,R.id.weex_id_1210,R.id.weex_id_1209,R.id.weex_id_1208,R.id.weex_id_1207,R.id.weex_id_1206,R.id.weex_id_1205,R.id.weex_id_1204,R.id.weex_id_1203,R.id.weex_id_1202,R.id.weex_id_1201,R.id.weex_id_1200, - R.id.weex_id_1199,R.id.weex_id_1198,R.id.weex_id_1197,R.id.weex_id_1196,R.id.weex_id_1195,R.id.weex_id_1194,R.id.weex_id_1193,R.id.weex_id_1192,R.id.weex_id_1191,R.id.weex_id_1190,R.id.weex_id_1189,R.id.weex_id_1188,R.id.weex_id_1187,R.id.weex_id_1186,R.id.weex_id_1185,R.id.weex_id_1184,R.id.weex_id_1183,R.id.weex_id_1182,R.id.weex_id_1181,R.id.weex_id_1180,R.id.weex_id_1179,R.id.weex_id_1178,R.id.weex_id_1177,R.id.weex_id_1176,R.id.weex_id_1175,R.id.weex_id_1174,R.id.weex_id_1173,R.id.weex_id_1172,R.id.weex_id_1171,R.id.weex_id_1170,R.id.weex_id_1169,R.id.weex_id_1168,R.id.weex_id_1167,R.id.weex_id_1166,R.id.weex_id_1165,R.id.weex_id_1164,R.id.weex_id_1163,R.id.weex_id_1162,R.id.weex_id_1161,R.id.weex_id_1160,R.id.weex_id_1159,R.id.weex_id_1158,R.id.weex_id_1157,R.id.weex_id_1156,R.id.weex_id_1155,R.id.weex_id_1154,R.id.weex_id_1153,R.id.weex_id_1152,R.id.weex_id_1151,R.id.weex_id_1150,R.id.weex_id_1149,R.id.weex_id_1148,R.id.weex_id_1147,R.id.weex_id_1146,R.id.weex_id_1145,R.id.weex_id_1144,R.id.weex_id_1143,R.id.weex_id_1142,R.id.weex_id_1141,R.id.weex_id_1140,R.id.weex_id_1139,R.id.weex_id_1138,R.id.weex_id_1137,R.id.weex_id_1136,R.id.weex_id_1135,R.id.weex_id_1134,R.id.weex_id_1133,R.id.weex_id_1132,R.id.weex_id_1131,R.id.weex_id_1130,R.id.weex_id_1129,R.id.weex_id_1128,R.id.weex_id_1127,R.id.weex_id_1126,R.id.weex_id_1125,R.id.weex_id_1124,R.id.weex_id_1123,R.id.weex_id_1122,R.id.weex_id_1121,R.id.weex_id_1120,R.id.weex_id_1119,R.id.weex_id_1118,R.id.weex_id_1117,R.id.weex_id_1116,R.id.weex_id_1115,R.id.weex_id_1114,R.id.weex_id_1113,R.id.weex_id_1112,R.id.weex_id_1111,R.id.weex_id_1110,R.id.weex_id_1109,R.id.weex_id_1108,R.id.weex_id_1107,R.id.weex_id_1106,R.id.weex_id_1105,R.id.weex_id_1104,R.id.weex_id_1103,R.id.weex_id_1102,R.id.weex_id_1101,R.id.weex_id_1100, - R.id.weex_id_1099,R.id.weex_id_1098,R.id.weex_id_1097,R.id.weex_id_1096,R.id.weex_id_1095,R.id.weex_id_1094,R.id.weex_id_1093,R.id.weex_id_1092,R.id.weex_id_1091,R.id.weex_id_1090,R.id.weex_id_1089,R.id.weex_id_1088,R.id.weex_id_1087,R.id.weex_id_1086,R.id.weex_id_1085,R.id.weex_id_1084,R.id.weex_id_1083,R.id.weex_id_1082,R.id.weex_id_1081,R.id.weex_id_1080,R.id.weex_id_1079,R.id.weex_id_1078,R.id.weex_id_1077,R.id.weex_id_1076,R.id.weex_id_1075,R.id.weex_id_1074,R.id.weex_id_1073,R.id.weex_id_1072,R.id.weex_id_1071,R.id.weex_id_1070,R.id.weex_id_1069,R.id.weex_id_1068,R.id.weex_id_1067,R.id.weex_id_1066,R.id.weex_id_1065,R.id.weex_id_1064,R.id.weex_id_1063,R.id.weex_id_1062,R.id.weex_id_1061,R.id.weex_id_1060,R.id.weex_id_1059,R.id.weex_id_1058,R.id.weex_id_1057,R.id.weex_id_1056,R.id.weex_id_1055,R.id.weex_id_1054,R.id.weex_id_1053,R.id.weex_id_1052,R.id.weex_id_1051,R.id.weex_id_1050,R.id.weex_id_1049,R.id.weex_id_1048,R.id.weex_id_1047,R.id.weex_id_1046,R.id.weex_id_1045,R.id.weex_id_1044,R.id.weex_id_1043,R.id.weex_id_1042,R.id.weex_id_1041,R.id.weex_id_1040,R.id.weex_id_1039,R.id.weex_id_1038,R.id.weex_id_1037,R.id.weex_id_1036,R.id.weex_id_1035,R.id.weex_id_1034,R.id.weex_id_1033,R.id.weex_id_1032,R.id.weex_id_1031,R.id.weex_id_1030,R.id.weex_id_1029,R.id.weex_id_1028,R.id.weex_id_1027,R.id.weex_id_1026,R.id.weex_id_1025,R.id.weex_id_1024,R.id.weex_id_1023,R.id.weex_id_1022,R.id.weex_id_1021,R.id.weex_id_1020,R.id.weex_id_1019,R.id.weex_id_1018,R.id.weex_id_1017,R.id.weex_id_1016,R.id.weex_id_1015,R.id.weex_id_1014,R.id.weex_id_1013,R.id.weex_id_1012,R.id.weex_id_1011,R.id.weex_id_1010,R.id.weex_id_1009,R.id.weex_id_1008,R.id.weex_id_1007,R.id.weex_id_1006,R.id.weex_id_1005,R.id.weex_id_1004,R.id.weex_id_1003,R.id.weex_id_1002,R.id.weex_id_1001,R.id.weex_id_1000, - R.id.weex_id_999,R.id.weex_id_998,R.id.weex_id_997,R.id.weex_id_996,R.id.weex_id_995,R.id.weex_id_994,R.id.weex_id_993,R.id.weex_id_992,R.id.weex_id_991,R.id.weex_id_990,R.id.weex_id_989,R.id.weex_id_988,R.id.weex_id_987,R.id.weex_id_986,R.id.weex_id_985,R.id.weex_id_984,R.id.weex_id_983,R.id.weex_id_982,R.id.weex_id_981,R.id.weex_id_980,R.id.weex_id_979,R.id.weex_id_978,R.id.weex_id_977,R.id.weex_id_976,R.id.weex_id_975,R.id.weex_id_974,R.id.weex_id_973,R.id.weex_id_972,R.id.weex_id_971,R.id.weex_id_970,R.id.weex_id_969,R.id.weex_id_968,R.id.weex_id_967,R.id.weex_id_966,R.id.weex_id_965,R.id.weex_id_964,R.id.weex_id_963,R.id.weex_id_962,R.id.weex_id_961,R.id.weex_id_960,R.id.weex_id_959,R.id.weex_id_958,R.id.weex_id_957,R.id.weex_id_956,R.id.weex_id_955,R.id.weex_id_954,R.id.weex_id_953,R.id.weex_id_952,R.id.weex_id_951,R.id.weex_id_950,R.id.weex_id_949,R.id.weex_id_948,R.id.weex_id_947,R.id.weex_id_946,R.id.weex_id_945,R.id.weex_id_944,R.id.weex_id_943,R.id.weex_id_942,R.id.weex_id_941,R.id.weex_id_940,R.id.weex_id_939,R.id.weex_id_938,R.id.weex_id_937,R.id.weex_id_936,R.id.weex_id_935,R.id.weex_id_934,R.id.weex_id_933,R.id.weex_id_932,R.id.weex_id_931,R.id.weex_id_930,R.id.weex_id_929,R.id.weex_id_928,R.id.weex_id_927,R.id.weex_id_926,R.id.weex_id_925,R.id.weex_id_924,R.id.weex_id_923,R.id.weex_id_922,R.id.weex_id_921,R.id.weex_id_920,R.id.weex_id_919,R.id.weex_id_918,R.id.weex_id_917,R.id.weex_id_916,R.id.weex_id_915,R.id.weex_id_914,R.id.weex_id_913,R.id.weex_id_912,R.id.weex_id_911,R.id.weex_id_910,R.id.weex_id_909,R.id.weex_id_908,R.id.weex_id_907,R.id.weex_id_906,R.id.weex_id_905,R.id.weex_id_904,R.id.weex_id_903,R.id.weex_id_902,R.id.weex_id_901,R.id.weex_id_900, - R.id.weex_id_899,R.id.weex_id_898,R.id.weex_id_897,R.id.weex_id_896,R.id.weex_id_895,R.id.weex_id_894,R.id.weex_id_893,R.id.weex_id_892,R.id.weex_id_891,R.id.weex_id_890,R.id.weex_id_889,R.id.weex_id_888,R.id.weex_id_887,R.id.weex_id_886,R.id.weex_id_885,R.id.weex_id_884,R.id.weex_id_883,R.id.weex_id_882,R.id.weex_id_881,R.id.weex_id_880,R.id.weex_id_879,R.id.weex_id_878,R.id.weex_id_877,R.id.weex_id_876,R.id.weex_id_875,R.id.weex_id_874,R.id.weex_id_873,R.id.weex_id_872,R.id.weex_id_871,R.id.weex_id_870,R.id.weex_id_869,R.id.weex_id_868,R.id.weex_id_867,R.id.weex_id_866,R.id.weex_id_865,R.id.weex_id_864,R.id.weex_id_863,R.id.weex_id_862,R.id.weex_id_861,R.id.weex_id_860,R.id.weex_id_859,R.id.weex_id_858,R.id.weex_id_857,R.id.weex_id_856,R.id.weex_id_855,R.id.weex_id_854,R.id.weex_id_853,R.id.weex_id_852,R.id.weex_id_851,R.id.weex_id_850,R.id.weex_id_849,R.id.weex_id_848,R.id.weex_id_847,R.id.weex_id_846,R.id.weex_id_845,R.id.weex_id_844,R.id.weex_id_843,R.id.weex_id_842,R.id.weex_id_841,R.id.weex_id_840,R.id.weex_id_839,R.id.weex_id_838,R.id.weex_id_837,R.id.weex_id_836,R.id.weex_id_835,R.id.weex_id_834,R.id.weex_id_833,R.id.weex_id_832,R.id.weex_id_831,R.id.weex_id_830,R.id.weex_id_829,R.id.weex_id_828,R.id.weex_id_827,R.id.weex_id_826,R.id.weex_id_825,R.id.weex_id_824,R.id.weex_id_823,R.id.weex_id_822,R.id.weex_id_821,R.id.weex_id_820,R.id.weex_id_819,R.id.weex_id_818,R.id.weex_id_817,R.id.weex_id_816,R.id.weex_id_815,R.id.weex_id_814,R.id.weex_id_813,R.id.weex_id_812,R.id.weex_id_811,R.id.weex_id_810,R.id.weex_id_809,R.id.weex_id_808,R.id.weex_id_807,R.id.weex_id_806,R.id.weex_id_805,R.id.weex_id_804,R.id.weex_id_803,R.id.weex_id_802,R.id.weex_id_801,R.id.weex_id_800, - R.id.weex_id_799,R.id.weex_id_798,R.id.weex_id_797,R.id.weex_id_796,R.id.weex_id_795,R.id.weex_id_794,R.id.weex_id_793,R.id.weex_id_792,R.id.weex_id_791,R.id.weex_id_790,R.id.weex_id_789,R.id.weex_id_788,R.id.weex_id_787,R.id.weex_id_786,R.id.weex_id_785,R.id.weex_id_784,R.id.weex_id_783,R.id.weex_id_782,R.id.weex_id_781,R.id.weex_id_780,R.id.weex_id_779,R.id.weex_id_778,R.id.weex_id_777,R.id.weex_id_776,R.id.weex_id_775,R.id.weex_id_774,R.id.weex_id_773,R.id.weex_id_772,R.id.weex_id_771,R.id.weex_id_770,R.id.weex_id_769,R.id.weex_id_768,R.id.weex_id_767,R.id.weex_id_766,R.id.weex_id_765,R.id.weex_id_764,R.id.weex_id_763,R.id.weex_id_762,R.id.weex_id_761,R.id.weex_id_760,R.id.weex_id_759,R.id.weex_id_758,R.id.weex_id_757,R.id.weex_id_756,R.id.weex_id_755,R.id.weex_id_754,R.id.weex_id_753,R.id.weex_id_752,R.id.weex_id_751,R.id.weex_id_750,R.id.weex_id_749,R.id.weex_id_748,R.id.weex_id_747,R.id.weex_id_746,R.id.weex_id_745,R.id.weex_id_744,R.id.weex_id_743,R.id.weex_id_742,R.id.weex_id_741,R.id.weex_id_740,R.id.weex_id_739,R.id.weex_id_738,R.id.weex_id_737,R.id.weex_id_736,R.id.weex_id_735,R.id.weex_id_734,R.id.weex_id_733,R.id.weex_id_732,R.id.weex_id_731,R.id.weex_id_730,R.id.weex_id_729,R.id.weex_id_728,R.id.weex_id_727,R.id.weex_id_726,R.id.weex_id_725,R.id.weex_id_724,R.id.weex_id_723,R.id.weex_id_722,R.id.weex_id_721,R.id.weex_id_720,R.id.weex_id_719,R.id.weex_id_718,R.id.weex_id_717,R.id.weex_id_716,R.id.weex_id_715,R.id.weex_id_714,R.id.weex_id_713,R.id.weex_id_712,R.id.weex_id_711,R.id.weex_id_710,R.id.weex_id_709,R.id.weex_id_708,R.id.weex_id_707,R.id.weex_id_706,R.id.weex_id_705,R.id.weex_id_704,R.id.weex_id_703,R.id.weex_id_702,R.id.weex_id_701,R.id.weex_id_700, - R.id.weex_id_699,R.id.weex_id_698,R.id.weex_id_697,R.id.weex_id_696,R.id.weex_id_695,R.id.weex_id_694,R.id.weex_id_693,R.id.weex_id_692,R.id.weex_id_691,R.id.weex_id_690,R.id.weex_id_689,R.id.weex_id_688,R.id.weex_id_687,R.id.weex_id_686,R.id.weex_id_685,R.id.weex_id_684,R.id.weex_id_683,R.id.weex_id_682,R.id.weex_id_681,R.id.weex_id_680,R.id.weex_id_679,R.id.weex_id_678,R.id.weex_id_677,R.id.weex_id_676,R.id.weex_id_675,R.id.weex_id_674,R.id.weex_id_673,R.id.weex_id_672,R.id.weex_id_671,R.id.weex_id_670,R.id.weex_id_669,R.id.weex_id_668,R.id.weex_id_667,R.id.weex_id_666,R.id.weex_id_665,R.id.weex_id_664,R.id.weex_id_663,R.id.weex_id_662,R.id.weex_id_661,R.id.weex_id_660,R.id.weex_id_659,R.id.weex_id_658,R.id.weex_id_657,R.id.weex_id_656,R.id.weex_id_655,R.id.weex_id_654,R.id.weex_id_653,R.id.weex_id_652,R.id.weex_id_651,R.id.weex_id_650,R.id.weex_id_649,R.id.weex_id_648,R.id.weex_id_647,R.id.weex_id_646,R.id.weex_id_645,R.id.weex_id_644,R.id.weex_id_643,R.id.weex_id_642,R.id.weex_id_641,R.id.weex_id_640,R.id.weex_id_639,R.id.weex_id_638,R.id.weex_id_637,R.id.weex_id_636,R.id.weex_id_635,R.id.weex_id_634,R.id.weex_id_633,R.id.weex_id_632,R.id.weex_id_631,R.id.weex_id_630,R.id.weex_id_629,R.id.weex_id_628,R.id.weex_id_627,R.id.weex_id_626,R.id.weex_id_625,R.id.weex_id_624,R.id.weex_id_623,R.id.weex_id_622,R.id.weex_id_621,R.id.weex_id_620,R.id.weex_id_619,R.id.weex_id_618,R.id.weex_id_617,R.id.weex_id_616,R.id.weex_id_615,R.id.weex_id_614,R.id.weex_id_613,R.id.weex_id_612,R.id.weex_id_611,R.id.weex_id_610,R.id.weex_id_609,R.id.weex_id_608,R.id.weex_id_607,R.id.weex_id_606,R.id.weex_id_605,R.id.weex_id_604,R.id.weex_id_603,R.id.weex_id_602,R.id.weex_id_601,R.id.weex_id_600, - R.id.weex_id_599,R.id.weex_id_598,R.id.weex_id_597,R.id.weex_id_596,R.id.weex_id_595,R.id.weex_id_594,R.id.weex_id_593,R.id.weex_id_592,R.id.weex_id_591,R.id.weex_id_590,R.id.weex_id_589,R.id.weex_id_588,R.id.weex_id_587,R.id.weex_id_586,R.id.weex_id_585,R.id.weex_id_584,R.id.weex_id_583,R.id.weex_id_582,R.id.weex_id_581,R.id.weex_id_580,R.id.weex_id_579,R.id.weex_id_578,R.id.weex_id_577,R.id.weex_id_576,R.id.weex_id_575,R.id.weex_id_574,R.id.weex_id_573,R.id.weex_id_572,R.id.weex_id_571,R.id.weex_id_570,R.id.weex_id_569,R.id.weex_id_568,R.id.weex_id_567,R.id.weex_id_566,R.id.weex_id_565,R.id.weex_id_564,R.id.weex_id_563,R.id.weex_id_562,R.id.weex_id_561,R.id.weex_id_560,R.id.weex_id_559,R.id.weex_id_558,R.id.weex_id_557,R.id.weex_id_556,R.id.weex_id_555,R.id.weex_id_554,R.id.weex_id_553,R.id.weex_id_552,R.id.weex_id_551,R.id.weex_id_550,R.id.weex_id_549,R.id.weex_id_548,R.id.weex_id_547,R.id.weex_id_546,R.id.weex_id_545,R.id.weex_id_544,R.id.weex_id_543,R.id.weex_id_542,R.id.weex_id_541,R.id.weex_id_540,R.id.weex_id_539,R.id.weex_id_538,R.id.weex_id_537,R.id.weex_id_536,R.id.weex_id_535,R.id.weex_id_534,R.id.weex_id_533,R.id.weex_id_532,R.id.weex_id_531,R.id.weex_id_530,R.id.weex_id_529,R.id.weex_id_528,R.id.weex_id_527,R.id.weex_id_526,R.id.weex_id_525,R.id.weex_id_524,R.id.weex_id_523,R.id.weex_id_522,R.id.weex_id_521,R.id.weex_id_520,R.id.weex_id_519,R.id.weex_id_518,R.id.weex_id_517,R.id.weex_id_516,R.id.weex_id_515,R.id.weex_id_514,R.id.weex_id_513,R.id.weex_id_512,R.id.weex_id_511,R.id.weex_id_510,R.id.weex_id_509,R.id.weex_id_508,R.id.weex_id_507,R.id.weex_id_506,R.id.weex_id_505,R.id.weex_id_504,R.id.weex_id_503,R.id.weex_id_502,R.id.weex_id_501,R.id.weex_id_500, - R.id.weex_id_499,R.id.weex_id_498,R.id.weex_id_497,R.id.weex_id_496,R.id.weex_id_495,R.id.weex_id_494,R.id.weex_id_493,R.id.weex_id_492,R.id.weex_id_491,R.id.weex_id_490,R.id.weex_id_489,R.id.weex_id_488,R.id.weex_id_487,R.id.weex_id_486,R.id.weex_id_485,R.id.weex_id_484,R.id.weex_id_483,R.id.weex_id_482,R.id.weex_id_481,R.id.weex_id_480,R.id.weex_id_479,R.id.weex_id_478,R.id.weex_id_477,R.id.weex_id_476,R.id.weex_id_475,R.id.weex_id_474,R.id.weex_id_473,R.id.weex_id_472,R.id.weex_id_471,R.id.weex_id_470,R.id.weex_id_469,R.id.weex_id_468,R.id.weex_id_467,R.id.weex_id_466,R.id.weex_id_465,R.id.weex_id_464,R.id.weex_id_463,R.id.weex_id_462,R.id.weex_id_461,R.id.weex_id_460,R.id.weex_id_459,R.id.weex_id_458,R.id.weex_id_457,R.id.weex_id_456,R.id.weex_id_455,R.id.weex_id_454,R.id.weex_id_453,R.id.weex_id_452,R.id.weex_id_451,R.id.weex_id_450,R.id.weex_id_449,R.id.weex_id_448,R.id.weex_id_447,R.id.weex_id_446,R.id.weex_id_445,R.id.weex_id_444,R.id.weex_id_443,R.id.weex_id_442,R.id.weex_id_441,R.id.weex_id_440,R.id.weex_id_439,R.id.weex_id_438,R.id.weex_id_437,R.id.weex_id_436,R.id.weex_id_435,R.id.weex_id_434,R.id.weex_id_433,R.id.weex_id_432,R.id.weex_id_431,R.id.weex_id_430,R.id.weex_id_429,R.id.weex_id_428,R.id.weex_id_427,R.id.weex_id_426,R.id.weex_id_425,R.id.weex_id_424,R.id.weex_id_423,R.id.weex_id_422,R.id.weex_id_421,R.id.weex_id_420,R.id.weex_id_419,R.id.weex_id_418,R.id.weex_id_417,R.id.weex_id_416,R.id.weex_id_415,R.id.weex_id_414,R.id.weex_id_413,R.id.weex_id_412,R.id.weex_id_411,R.id.weex_id_410,R.id.weex_id_409,R.id.weex_id_408,R.id.weex_id_407,R.id.weex_id_406,R.id.weex_id_405,R.id.weex_id_404,R.id.weex_id_403,R.id.weex_id_402,R.id.weex_id_401,R.id.weex_id_400, - R.id.weex_id_399,R.id.weex_id_398,R.id.weex_id_397,R.id.weex_id_396,R.id.weex_id_395,R.id.weex_id_394,R.id.weex_id_393,R.id.weex_id_392,R.id.weex_id_391,R.id.weex_id_390,R.id.weex_id_389,R.id.weex_id_388,R.id.weex_id_387,R.id.weex_id_386,R.id.weex_id_385,R.id.weex_id_384,R.id.weex_id_383,R.id.weex_id_382,R.id.weex_id_381,R.id.weex_id_380,R.id.weex_id_379,R.id.weex_id_378,R.id.weex_id_377,R.id.weex_id_376,R.id.weex_id_375,R.id.weex_id_374,R.id.weex_id_373,R.id.weex_id_372,R.id.weex_id_371,R.id.weex_id_370,R.id.weex_id_369,R.id.weex_id_368,R.id.weex_id_367,R.id.weex_id_366,R.id.weex_id_365,R.id.weex_id_364,R.id.weex_id_363,R.id.weex_id_362,R.id.weex_id_361,R.id.weex_id_360,R.id.weex_id_359,R.id.weex_id_358,R.id.weex_id_357,R.id.weex_id_356,R.id.weex_id_355,R.id.weex_id_354,R.id.weex_id_353,R.id.weex_id_352,R.id.weex_id_351,R.id.weex_id_350,R.id.weex_id_349,R.id.weex_id_348,R.id.weex_id_347,R.id.weex_id_346,R.id.weex_id_345,R.id.weex_id_344,R.id.weex_id_343,R.id.weex_id_342,R.id.weex_id_341,R.id.weex_id_340,R.id.weex_id_339,R.id.weex_id_338,R.id.weex_id_337,R.id.weex_id_336,R.id.weex_id_335,R.id.weex_id_334,R.id.weex_id_333,R.id.weex_id_332,R.id.weex_id_331,R.id.weex_id_330,R.id.weex_id_329,R.id.weex_id_328,R.id.weex_id_327,R.id.weex_id_326,R.id.weex_id_325,R.id.weex_id_324,R.id.weex_id_323,R.id.weex_id_322,R.id.weex_id_321,R.id.weex_id_320,R.id.weex_id_319,R.id.weex_id_318,R.id.weex_id_317,R.id.weex_id_316,R.id.weex_id_315,R.id.weex_id_314,R.id.weex_id_313,R.id.weex_id_312,R.id.weex_id_311,R.id.weex_id_310,R.id.weex_id_309,R.id.weex_id_308,R.id.weex_id_307,R.id.weex_id_306,R.id.weex_id_305,R.id.weex_id_304,R.id.weex_id_303,R.id.weex_id_302,R.id.weex_id_301,R.id.weex_id_300, - R.id.weex_id_299,R.id.weex_id_298,R.id.weex_id_297,R.id.weex_id_296,R.id.weex_id_295,R.id.weex_id_294,R.id.weex_id_293,R.id.weex_id_292,R.id.weex_id_291,R.id.weex_id_290,R.id.weex_id_289,R.id.weex_id_288,R.id.weex_id_287,R.id.weex_id_286,R.id.weex_id_285,R.id.weex_id_284,R.id.weex_id_283,R.id.weex_id_282,R.id.weex_id_281,R.id.weex_id_280,R.id.weex_id_279,R.id.weex_id_278,R.id.weex_id_277,R.id.weex_id_276,R.id.weex_id_275,R.id.weex_id_274,R.id.weex_id_273,R.id.weex_id_272,R.id.weex_id_271,R.id.weex_id_270,R.id.weex_id_269,R.id.weex_id_268,R.id.weex_id_267,R.id.weex_id_266,R.id.weex_id_265,R.id.weex_id_264,R.id.weex_id_263,R.id.weex_id_262,R.id.weex_id_261,R.id.weex_id_260,R.id.weex_id_259,R.id.weex_id_258,R.id.weex_id_257,R.id.weex_id_256,R.id.weex_id_255,R.id.weex_id_254,R.id.weex_id_253,R.id.weex_id_252,R.id.weex_id_251,R.id.weex_id_250,R.id.weex_id_249,R.id.weex_id_248,R.id.weex_id_247,R.id.weex_id_246,R.id.weex_id_245,R.id.weex_id_244,R.id.weex_id_243,R.id.weex_id_242,R.id.weex_id_241,R.id.weex_id_240,R.id.weex_id_239,R.id.weex_id_238,R.id.weex_id_237,R.id.weex_id_236,R.id.weex_id_235,R.id.weex_id_234,R.id.weex_id_233,R.id.weex_id_232,R.id.weex_id_231,R.id.weex_id_230,R.id.weex_id_229,R.id.weex_id_228,R.id.weex_id_227,R.id.weex_id_226,R.id.weex_id_225,R.id.weex_id_224,R.id.weex_id_223,R.id.weex_id_222,R.id.weex_id_221,R.id.weex_id_220,R.id.weex_id_219,R.id.weex_id_218,R.id.weex_id_217,R.id.weex_id_216,R.id.weex_id_215,R.id.weex_id_214,R.id.weex_id_213,R.id.weex_id_212,R.id.weex_id_211,R.id.weex_id_210,R.id.weex_id_209,R.id.weex_id_208,R.id.weex_id_207,R.id.weex_id_206,R.id.weex_id_205,R.id.weex_id_204,R.id.weex_id_203,R.id.weex_id_202,R.id.weex_id_201,R.id.weex_id_200, - R.id.weex_id_199,R.id.weex_id_198,R.id.weex_id_197,R.id.weex_id_196,R.id.weex_id_195,R.id.weex_id_194,R.id.weex_id_193,R.id.weex_id_192,R.id.weex_id_191,R.id.weex_id_190,R.id.weex_id_189,R.id.weex_id_188,R.id.weex_id_187,R.id.weex_id_186,R.id.weex_id_185,R.id.weex_id_184,R.id.weex_id_183,R.id.weex_id_182,R.id.weex_id_181,R.id.weex_id_180,R.id.weex_id_179,R.id.weex_id_178,R.id.weex_id_177,R.id.weex_id_176,R.id.weex_id_175,R.id.weex_id_174,R.id.weex_id_173,R.id.weex_id_172,R.id.weex_id_171,R.id.weex_id_170,R.id.weex_id_169,R.id.weex_id_168,R.id.weex_id_167,R.id.weex_id_166,R.id.weex_id_165,R.id.weex_id_164,R.id.weex_id_163,R.id.weex_id_162,R.id.weex_id_161,R.id.weex_id_160,R.id.weex_id_159,R.id.weex_id_158,R.id.weex_id_157,R.id.weex_id_156,R.id.weex_id_155,R.id.weex_id_154,R.id.weex_id_153,R.id.weex_id_152,R.id.weex_id_151,R.id.weex_id_150,R.id.weex_id_149,R.id.weex_id_148,R.id.weex_id_147,R.id.weex_id_146,R.id.weex_id_145,R.id.weex_id_144,R.id.weex_id_143,R.id.weex_id_142,R.id.weex_id_141,R.id.weex_id_140,R.id.weex_id_139,R.id.weex_id_138,R.id.weex_id_137,R.id.weex_id_136,R.id.weex_id_135,R.id.weex_id_134,R.id.weex_id_133,R.id.weex_id_132,R.id.weex_id_131,R.id.weex_id_130,R.id.weex_id_129,R.id.weex_id_128,R.id.weex_id_127,R.id.weex_id_126,R.id.weex_id_125,R.id.weex_id_124,R.id.weex_id_123,R.id.weex_id_122,R.id.weex_id_121,R.id.weex_id_120,R.id.weex_id_119,R.id.weex_id_118,R.id.weex_id_117,R.id.weex_id_116,R.id.weex_id_115,R.id.weex_id_114,R.id.weex_id_113,R.id.weex_id_112,R.id.weex_id_111,R.id.weex_id_110,R.id.weex_id_109,R.id.weex_id_108,R.id.weex_id_107,R.id.weex_id_106,R.id.weex_id_105,R.id.weex_id_104,R.id.weex_id_103,R.id.weex_id_102,R.id.weex_id_101,R.id.weex_id_100, - R.id.weex_id_99,R.id.weex_id_98,R.id.weex_id_97,R.id.weex_id_96,R.id.weex_id_95,R.id.weex_id_94,R.id.weex_id_93,R.id.weex_id_92,R.id.weex_id_91,R.id.weex_id_90,R.id.weex_id_89,R.id.weex_id_88,R.id.weex_id_87,R.id.weex_id_86,R.id.weex_id_85,R.id.weex_id_84,R.id.weex_id_83,R.id.weex_id_82,R.id.weex_id_81,R.id.weex_id_80,R.id.weex_id_79,R.id.weex_id_78,R.id.weex_id_77,R.id.weex_id_76,R.id.weex_id_75,R.id.weex_id_74,R.id.weex_id_73,R.id.weex_id_72,R.id.weex_id_71,R.id.weex_id_70,R.id.weex_id_69,R.id.weex_id_68,R.id.weex_id_67,R.id.weex_id_66,R.id.weex_id_65,R.id.weex_id_64,R.id.weex_id_63,R.id.weex_id_62,R.id.weex_id_61,R.id.weex_id_60,R.id.weex_id_59,R.id.weex_id_58,R.id.weex_id_57,R.id.weex_id_56,R.id.weex_id_55,R.id.weex_id_54,R.id.weex_id_53,R.id.weex_id_52,R.id.weex_id_51,R.id.weex_id_50,R.id.weex_id_49,R.id.weex_id_48,R.id.weex_id_47,R.id.weex_id_46,R.id.weex_id_45,R.id.weex_id_44,R.id.weex_id_43,R.id.weex_id_42,R.id.weex_id_41,R.id.weex_id_40,R.id.weex_id_39,R.id.weex_id_38,R.id.weex_id_37,R.id.weex_id_36,R.id.weex_id_35,R.id.weex_id_34,R.id.weex_id_33,R.id.weex_id_32,R.id.weex_id_31,R.id.weex_id_30,R.id.weex_id_29,R.id.weex_id_28,R.id.weex_id_27,R.id.weex_id_26,R.id.weex_id_25,R.id.weex_id_24,R.id.weex_id_23,R.id.weex_id_22,R.id.weex_id_21,R.id.weex_id_20,R.id.weex_id_19,R.id.weex_id_18,R.id.weex_id_17,R.id.weex_id_16,R.id.weex_id_15,R.id.weex_id_14,R.id.weex_id_13,R.id.weex_id_12,R.id.weex_id_11,R.id.weex_id_10,R.id.weex_id_9,R.id.weex_id_8,R.id.weex_id_7,R.id.weex_id_6,R.id.weex_id_5,R.id.weex_id_4,R.id.weex_id_3,R.id.weex_id_2,R.id.weex_id_1,R.id.weex_id_0 - }; - - private static final int COUNT = ID_STUBS.length; - private static int sCurrentIDIndex = 0; - - public static Pair nextID(){ - Pair result = new Pair<>("weex_id_"+(COUNT-1-sCurrentIDIndex),ID_STUBS[sCurrentIDIndex]); - sCurrentIDIndex = (sCurrentIDIndex+1)%COUNT; - return result; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/WXApplication.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/WXApplication.java deleted file mode 100644 index a75a0f34..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/WXApplication.java +++ /dev/null @@ -1,183 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex; - -import android.app.Activity; -import android.app.Application; -import android.os.Bundle; - -import com.alibaba.weex.commons.adapter.DefaultWebSocketAdapterFactory; -import com.alibaba.weex.commons.adapter.ImageAdapter; -import com.alibaba.weex.commons.adapter.JSExceptionAdapter; -import com.alibaba.weex.extend.adapter.InterceptWXHttpAdapter; -import com.alibaba.weex.extend.module.GeolocationModule; -import com.alibaba.weex.extend.module.MyModule; -import com.alibaba.weex.extend.module.RenderModule; -import com.alibaba.weex.extend.module.SyncTestModule; -import com.alibaba.weex.extend.module.WXEventModule; -import com.facebook.drawee.backends.pipeline.Fresco; -import com.taobao.gcanvas.bridges.weex.GCanvasWeexModule; -import com.taobao.gcanvas.bridges.weex.WXGCanvasWeexComponent; -import com.taobao.weex.InitConfig; -import com.taobao.weex.WXEnvironment; -import com.taobao.weex.WXSDKEngine; -import com.taobao.weex.WXSDKManager; -import com.taobao.weex.common.WXException; -import com.taobao.weex.utils.LogLevel; -import com.taobao.weex.utils.WXLogUtils; - -import java.lang.reflect.Field; - -public class WXApplication extends Application { - - static WXApplication APP; - - @Override - public void onCreate() { - super.onCreate(); - APP = this; - - /** - * Set up for fresco usage. - * Set requestListeners = new HashSet<>(); - * requestListeners.add(new RequestLoggingListener()); - * ImagePipelineConfig config = ImagePipelineConfig.newBuilder(this) - * .setRequestListeners(requestListeners) - * .build(); - * Fresco.initialize(this,config); - **/ -// initDebugEnvironment(true, false, "DEBUG_SERVER_HOST"); - WXSDKEngine.addCustomOptions("appName", "WXSample"); - WXSDKEngine.addCustomOptions("appGroup", "WXApp"); - WXSDKEngine.initialize(this, - new InitConfig.Builder() - .setImgAdapter(new ImageAdapter()) -// .setDebugAdapter(new PlayDebugAdapter()) - .setWebSocketAdapterFactory(new DefaultWebSocketAdapterFactory()) - .setJSExceptionAdapter(new JSExceptionAdapter()) - .setHttpAdapter(new InterceptWXHttpAdapter()) - .build() - ); - try { - Fresco.initialize(this); -// WXSDKEngine.registerComponent("synccomponent", WXComponentSyncTest.class); -// WXSDKEngine.registerComponent(WXParallax.PARALLAX, WXParallax.class); - -// WXSDKEngine.registerComponent("richtext", RichText.class); - WXSDKEngine.registerModule("render", RenderModule.class); - WXSDKEngine.registerModule("event", WXEventModule.class); - WXSDKEngine.registerModule("syncTest", SyncTestModule.class); - -// WXSDKEngine.registerComponent("mask", WXMask.class); -// WXSDKEngine.registerDomObject("mask", WXMaskDomObject.class); - - WXSDKEngine.registerModule("myModule", MyModule.class); - WXSDKEngine.registerModule("geolocation", GeolocationModule.class); - - WXSDKEngine.registerModule("gcanvas", GCanvasWeexModule.class); - WXSDKEngine.registerComponent("gcanvas", WXGCanvasWeexComponent.class); - /** - * override default image tag - * WXSDKEngine.registerComponent("image", FrescoImageComponent.class); - */ - } catch (WXException e) { - e.printStackTrace(); - } - - registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() { - @Override - public void onActivityCreated(Activity activity, Bundle bundle) { - - } - - @Override - public void onActivityStarted(Activity activity) { - - } - - @Override - public void onActivityResumed(Activity activity) { - - } - - @Override - public void onActivityPaused(Activity activity) { - - } - - @Override - public void onActivityStopped(Activity activity) { - - } - - @Override - public void onActivitySaveInstanceState(Activity activity, Bundle bundle) { - - } - - @Override - public void onActivityDestroyed(Activity activity) { - // The demo code of calling 'notifyTrimMemory()' - if (false) { - // We assume that the application is on an idle time. - WXSDKManager.getInstance().notifyTrimMemory(); - } - // The demo code of calling 'notifySerializeCodeCache()' - if (false) { - WXSDKManager.getInstance().notifySerializeCodeCache(); - } - } - }); - - - disableDebugAndLogs(); - } - - private void disableDebugAndLogs() { - WXLogUtils.setLogWatcher(null); - WXLogUtils.setJsLogWatcher(null); - WXEnvironment.sLogLevel = LogLevel.OFF; - try { - Field debugApkField = WXEnvironment.class.getDeclaredField("isApkDebug"); - debugApkField.setAccessible(true); - debugApkField.setBoolean(null, false); - debugApkField.setAccessible(false); - } catch (Throwable e) { - e.printStackTrace(); - } - } - - /** - * @param connectable debug server is connectable or not. - * if true, sdk will try to connect remote debug server when init WXBridge. - * @param debuggable enable remote debugger. valid only if host not to be "DEBUG_SERVER_HOST". - * true, you can launch a remote debugger and inspector both. - * false, you can just launch a inspector. - * @param host the debug server host, must not be "DEBUG_SERVER_HOST", a ip address or domain will be OK. - * for example "127.0.0.1". - */ - private void initDebugEnvironment(boolean connectable, boolean debuggable, String host) { - if (!"DEBUG_SERVER_HOST".equals(host)) { - WXEnvironment.sDebugServerConnectable = connectable; - WXEnvironment.sRemoteDebugMode = debuggable; - WXEnvironment.sRemoteDebugProxyUrl = "ws://" + host + ":8088/debugProxy/native"; - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/WXBaseActivity.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/WXBaseActivity.java deleted file mode 100644 index c9737561..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/WXBaseActivity.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex; - -import android.os.Bundle; -import android.os.PersistableBundle; -import android.support.v7.app.AppCompatActivity; - -public abstract class WXBaseActivity extends AppCompatActivity { - - @Override - public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) { - super.onCreate(savedInstanceState, persistentState); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/WXDebugActivity.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/WXDebugActivity.java deleted file mode 100644 index c2741401..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/WXDebugActivity.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex; - -import android.net.Uri; -import android.os.Bundle; -import android.support.v7.app.AppCompatActivity; -import android.text.TextUtils; -import android.widget.TextView; -import android.widget.Toast; - -import com.taobao.weex.WXEnvironment; -import com.taobao.weex.WXSDKEngine; -import com.taobao.weex.WXSDKManager; -import com.taobao.weex.adapter.IWXHttpAdapter; -import com.taobao.weex.common.WXRequest; -import com.taobao.weex.common.WXResponse; - -import java.util.List; -import java.util.Map; - -public class WXDebugActivity extends AppCompatActivity implements IWXHttpAdapter.OnHttpListener { - - private TextView mTipView; - private TextView mResultView; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_dynamic); - - mTipView = findViewById(R.id.dynamic_tip); - mResultView = findViewById(R.id.dynamic_result); - - Uri uri = getIntent().getData(); - if (uri != null && uri.isHierarchical()) { - String frameworkUrl = uri.getQueryParameter("framework"); - String bundleUrl=uri.getQueryParameter("bundle"); - if (!TextUtils.isEmpty(frameworkUrl)) { - mTipView.setText("Dynamically replaces the framework!"); - IWXHttpAdapter adapter = WXSDKManager.getInstance().getIWXHttpAdapter(); - final WXRequest wxRequest = new WXRequest(); - wxRequest.url = frameworkUrl; - adapter.sendRequest(wxRequest, this); - }else if(!TextUtils.isEmpty(bundleUrl)){ - mTipView.setText("Dynamically replaces the bundle!"); - WXEnvironment.sDynamicMode = uri.getBooleanQueryParameter("debug", false); - WXEnvironment.sDynamicUrl = uri.getQueryParameter("bundle"); - String tip=WXEnvironment.sDynamicMode?"Has switched to Dynamic Mode":"Has switched to Normal Mode"; - Toast.makeText(this, tip, Toast.LENGTH_SHORT).show(); - finish(); - } - } - } - - @Override - public void onHttpStart() { - - } - - @Override - public void onHeadersReceived(int statusCode, Map> headers) { - - } - - @Override - public void onHttpUploadProgress(int uploadProgress) { - - } - - @Override - public void onHttpResponseProgress(int loadedLength) { - - } - - @Override - public void onHttpFinish(WXResponse response) { - mResultView.setText("动态替换失败,请重启手淘后重试!"); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/WXPageActivity.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/WXPageActivity.java deleted file mode 100644 index 639397e3..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/WXPageActivity.java +++ /dev/null @@ -1,597 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex; - -import android.app.Activity; -import android.app.AlertDialog; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.graphics.PixelFormat; -import android.graphics.Rect; -import android.net.Uri; -import android.os.Bundle; -import android.os.Handler; -import android.os.Message; -import android.support.annotation.NonNull; -import android.support.v4.util.ArrayMap; -import android.support.v7.app.ActionBar; -import android.support.v7.widget.Toolbar; -import android.text.TextUtils; -import android.util.Log; -import android.util.Pair; -import android.view.KeyEvent; -import android.view.Menu; -import android.view.MenuItem; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ProgressBar; -import android.widget.Toast; - -import com.alibaba.fastjson.JSON; -import com.alibaba.weex.commons.WXAnalyzerDelegate; -import com.alibaba.weex.commons.util.ScreenUtil; -import com.alibaba.weex.constants.Constants; -import com.alibaba.weex.https.HotRefreshManager; -import com.alibaba.weex.https.WXHttpManager; -import com.alibaba.weex.https.WXHttpTask; -import com.alibaba.weex.https.WXRequestListener; -import com.taobao.weex.IWXRenderListener; -import com.taobao.weex.RenderContainer; -import com.taobao.weex.WXSDKEngine; -import com.taobao.weex.WXSDKInstance; -import com.taobao.weex.appfram.navigator.IActivityNavBarSetter; -import com.taobao.weex.common.WXRenderStrategy; -import com.taobao.weex.ui.component.NestedContainer; -import com.taobao.weex.ui.component.WXComponent; -import com.taobao.weex.ui.component.WXVContainer; -import com.taobao.weex.utils.WXFileUtils; -import com.taobao.weex.utils.WXLogUtils; - -import java.io.File; -import java.io.UnsupportedEncodingException; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; - - -public class WXPageActivity extends WXBaseActivity implements IWXRenderListener, Handler.Callback, WXSDKInstance.NestedInstanceInterceptor { - - private static final String TAG = "WXPageActivity"; - public static final String WXPAGE = "wxpage"; - public static Activity wxPageActivityInstance; - private ViewGroup mContainer; - private ProgressBar mProgressBar; - private WXSDKInstance mInstance; - private Handler mWXHandler; - private BroadcastReceiver mReceiver; - private Uri mUri; - private HashMap mConfigMap = new HashMap(); - - @Override - public void onCreateNestInstance(WXSDKInstance instance, NestedContainer container) { - Log.d(TAG, "Nested Instance created."); - } - - private WXAnalyzerDelegate mWxAnalyzerDelegate; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.activity_wxpage); - setCurrentWxPageActivity(this); - - - WXSDKEngine.setActivityNavBarSetter(new NavigatorAdapter()); - getWindow().setFormat(PixelFormat.TRANSLUCENT); - mUri = getIntent().getData(); - Bundle bundle = getIntent().getExtras(); - if (mUri == null && bundle == null) { - mUri = Uri.parse(Constants.BUNDLE_URL + Constants.WEEX_SAMPLES_KEY); - } - if (bundle != null) { - String bundleUrl = bundle.getString("bundleUrl"); - Log.i(TAG, "bundleUrl==" + bundleUrl); - - if (bundleUrl != null) { - mConfigMap.put("bundleUrl", bundleUrl + Constants.WEEX_SAMPLES_KEY); - mUri = Uri.parse(bundleUrl + Constants.WEEX_SAMPLES_KEY); - - } - } else { - mConfigMap.put("bundleUrl", mUri.toString() + Constants.WEEX_SAMPLES_KEY); - // mUri = Uri.parse(mUri.toString() + Constants.WEEX_SAMPLES_KEY) - } - - if (mUri == null) { - Toast.makeText(this, "the uri is empty!", Toast.LENGTH_SHORT).show(); - finish(); - return; - } - - Log.e("TestScript_Guide mUri==", mUri.toString()); - initUIAndData(); - - if(WXPAGE.equals(mUri.getScheme())|| - TextUtils.equals("true",mUri.getQueryParameter("_wxpage"))) { - mUri = mUri.buildUpon().scheme("http").build(); - loadWXfromService(mUri.toString()); - startHotRefresh(); - mWXHandler.removeCallbacks(mCollectIDMap); - mWXHandler.postDelayed(mCollectIDMap,2000); - }else if (TextUtils.equals("http", mUri.getScheme()) || TextUtils.equals("https", mUri.getScheme())) { - // if url has key "_wx_tpl" then get weex bundle js - String weexTpl = mUri.getQueryParameter(Constants.WEEX_TPL_KEY); - String url = TextUtils.isEmpty(weexTpl) ? mUri.toString() : weexTpl; - loadWXfromService(url); - startHotRefresh(); - } else { - loadWXfromLocal(false); - } - mInstance.onActivityCreate(); - registerBroadcastReceiver(); - - mWxAnalyzerDelegate = new WXAnalyzerDelegate(this); - mWxAnalyzerDelegate.onCreate(); - } - - @Override - protected void onStart() { - super.onStart(); - if(mWxAnalyzerDelegate != null){ - mWxAnalyzerDelegate.onStart(); - } - } - - private void loadWXfromLocal(boolean reload) { - if (reload && mInstance != null) { - mInstance.destroy(); - mInstance = null; - } - if (mInstance == null) { - RenderContainer renderContainer = new RenderContainer(this); - - mInstance = new WXSDKInstance(this); - mInstance.setRenderContainer(renderContainer); - mInstance.registerRenderListener(this); - mInstance.setNestedInstanceInterceptor(this); - mInstance.setTrackComponent(true); - } - mContainer.post(new Runnable() { - @Override - public void run() { - Activity ctx = WXPageActivity.this; - Rect outRect = new Rect(); - ctx.getWindow().getDecorView().getWindowVisibleDisplayFrame(outRect); - mConfigMap.put("bundleUrl", mUri.toString()); - String path = "file".equals(mUri.getScheme()) ? assembleFilePath(mUri) : mUri.toString(); - mInstance.render(TAG, WXFileUtils.loadAsset(path, WXPageActivity.this), - mConfigMap, null, - WXRenderStrategy.APPEND_ASYNC); - } - }); - } - - private String assembleFilePath(Uri uri) { - if (uri != null && uri.getPath() != null) { - return uri.getPath().replaceFirst("/", ""); - } - return ""; - } - - private void initUIAndData() { - - Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); - setSupportActionBar(toolbar); - - ActionBar actionBar = getSupportActionBar(); - actionBar.setDisplayHomeAsUpEnabled(true); - actionBar.setTitle(mUri.toString().substring(mUri.toString().lastIndexOf(File.separator) + 1)); - - mContainer = (ViewGroup) findViewById(R.id.container); - mProgressBar = (ProgressBar) findViewById(R.id.progress); - mWXHandler = new Handler(this); - HotRefreshManager.getInstance().setHandler(mWXHandler); - addOnListener(); - } - - private void loadWXfromService(final String url) { - mProgressBar.setVisibility(View.VISIBLE); - - if (mInstance != null) { - mInstance.destroy(); - } - - RenderContainer renderContainer = new RenderContainer(this); - mContainer.addView(renderContainer); - - mInstance = new WXSDKInstance(this); - mInstance.setRenderContainer(renderContainer); - mInstance.registerRenderListener(this); - mInstance.setNestedInstanceInterceptor(this); - mInstance.setBundleUrl(url); - mInstance.setTrackComponent(true); - - WXHttpTask httpTask = new WXHttpTask(); - httpTask.url = url; - httpTask.requestListener = new WXRequestListener() { - - @Override - public void onSuccess(WXHttpTask task) { - Log.i(TAG, "into--[http:onSuccess] url:" + url); - try { - mConfigMap.put("bundleUrl", url); - mInstance.render(TAG, new String(task.response.data, "utf-8"), mConfigMap, null, ScreenUtil.getDisplayWidth(WXPageActivity.this), ScreenUtil.getDisplayHeight(WXPageActivity.this), WXRenderStrategy.APPEND_ASYNC); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - } - - @Override - public void onError(WXHttpTask task) { - Log.i(TAG, "into--[http:onError]"); - mProgressBar.setVisibility(View.GONE); - Toast.makeText(getApplicationContext(), "network error!", Toast.LENGTH_SHORT).show(); - } - }; - - WXHttpManager.getInstance().sendRequest(httpTask); - } - - /** - * hot refresh - */ - private void startHotRefresh() { - try { - String host = new URL(mUri.toString()).getHost(); - String wsUrl = "ws://" + host + ":8082"; - mWXHandler.obtainMessage(Constants.HOT_REFRESH_CONNECT, 0, 0, wsUrl).sendToTarget(); - } catch (MalformedURLException e) { - e.printStackTrace(); - } - } - - private void addOnListener() { - - } - - private Map mIDMap = new ArrayMap<>(); - private final Runnable mCollectIDMap = new Runnable() { - @Override - public void run() { - View container = findViewById(R.id.container); - - collectId(mInstance.getRootComponent(),mIDMap); - container.setContentDescription(JSON.toJSONString(mIDMap)); - - mWXHandler.removeCallbacks(this); - mWXHandler.postDelayed(this,2000); - } - }; - - /** - * - * @param map - */ - private static void collectId(WXComponent comp, Map map){ - if(comp == null){ - return; - } -// ImmutableDomObject dom; -// String id; -// View view; -// if((view = comp.getHostView())!=null && -// (dom = comp.getDomObject()) != null && -// (id = (String) dom.getAttrs().get("testId"))!=null && -// !map.containsKey(id)){ -// Pair pair = Utility.nextID(); -// view.setId(pair.second); -// map.put(id,pair.first); -// } - if(comp instanceof WXVContainer){ - WXVContainer container = (WXVContainer) comp; - for(int i = container.getChildCount()-1;i>=0;i--){ - collectId(container.getChild(i),map); - } - } - } - - @Override - protected void onDestroy() { - super.onDestroy(); - if (mInstance != null) { - mInstance.onActivityDestroy(); - } - mContainer = null; - // TopScrollHelper.getInstance(getApplicationContext()).onDestory(); - mWXHandler.obtainMessage(Constants.HOT_REFRESH_DISCONNECT).sendToTarget(); - unregisterBroadcastReceiver(); - - if(wxPageActivityInstance == this){ - wxPageActivityInstance = null; - } - if(mWxAnalyzerDelegate != null){ - mWxAnalyzerDelegate.onDestroy(); - } - } - - - @Override - public boolean onKeyUp(int keyCode, KeyEvent event) { - return (mWxAnalyzerDelegate != null && mWxAnalyzerDelegate.onKeyUp(keyCode,event)) || super.onKeyUp(keyCode, event); - } - - @Override - protected void onResume() { - super.onResume(); - if (mInstance != null) { - mInstance.onActivityResume(); - } - if(mWxAnalyzerDelegate != null){ - mWxAnalyzerDelegate.onResume(); - } - } - - public static Activity getCurrentWxPageActivity() { - return wxPageActivityInstance; - } - - public static void setCurrentWxPageActivity(Activity activity) { - wxPageActivityInstance = activity; - } - - @Override - public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { - super.onRequestPermissionsResult(requestCode, permissions, grantResults); - if(mInstance!=null){ - mInstance.onRequestPermissionsResult(requestCode,permissions,grantResults); - } - } - - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if(mInstance!=null){ - mInstance.onActivityResult(requestCode,resultCode,data); - } - } - - @Override - public boolean handleMessage(Message msg) { - - switch (msg.what) { - case Constants.HOT_REFRESH_CONNECT: - HotRefreshManager.getInstance().connect(msg.obj.toString()); - break; - case Constants.HOT_REFRESH_DISCONNECT: - HotRefreshManager.getInstance().disConnect(); - break; - case Constants.HOT_REFRESH_REFRESH: - loadWXfromService(mUri.toString()); - break; - case Constants.HOT_REFRESH_CONNECT_ERROR: - Toast.makeText(this, "hot refresh connect error!", Toast.LENGTH_SHORT).show(); - break; - default: - break; - } - - return false; - } - - @Override - public void onViewCreated(WXSDKInstance instance, View view) { - WXLogUtils.e("into--[onViewCreated]"); - View wrappedView = null; - if(mWxAnalyzerDelegate != null){ - wrappedView = mWxAnalyzerDelegate.onWeexViewCreated(instance,view); - } - if(wrappedView != null){ - view = wrappedView; - } - - if(view.getParent() == null) { - mContainer.addView(view); - } - mContainer.requestLayout(); - Log.d("WARenderListener", "renderSuccess"); - } - - @Override - public void onRenderSuccess(WXSDKInstance instance, int width, int height) { - if(mWxAnalyzerDelegate != null){ - mWxAnalyzerDelegate.onWeexRenderSuccess(instance); - } - mProgressBar.setVisibility(View.INVISIBLE); - } - - @Override - public void onRefreshSuccess(WXSDKInstance instance, int width, int height) { - mProgressBar.setVisibility(View.GONE); - } - - @Override - public void onException(WXSDKInstance instance, String errCode, - String msg) { - if(mWxAnalyzerDelegate != null){ - mWxAnalyzerDelegate.onException(instance,errCode,msg); - } - mProgressBar.setVisibility(View.GONE); - if (!TextUtils.isEmpty(errCode) && errCode.contains("|")) { - String[] errCodeList = errCode.split("\\|"); - String code = errCodeList[1]; - String codeType = errCode.substring(0, errCode.indexOf("|")); - - if (TextUtils.equals("1", codeType)) { - String errMsg = "codeType:" + codeType + "\n" + " errCode:" + code + "\n" + " ErrorInfo:" + msg; - degradeAlert(errMsg); - return; - } else { - Toast.makeText(getApplicationContext(), "errCode:" + errCode + " Render ERROR:" + msg, Toast.LENGTH_SHORT).show(); - } - } - } - - private void degradeAlert(String errMsg) { - new AlertDialog.Builder(this) - .setTitle("Downgrade success") - .setMessage(errMsg) - .setPositiveButton("OK", null) - .show(); - - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - if (!TextUtils.equals("file", mUri.getScheme())) { - getMenuInflater().inflate(R.menu.refresh, menu); - } - return true; - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - int id = item.getItemId(); - if (id == android.R.id.home) { - finish(); - return true; - } else if (id == R.id.action_refresh) { - String scheme = mUri.getScheme(); - if (mUri.isHierarchical() && (TextUtils.equals(scheme, "http") || TextUtils.equals(scheme, "https"))) { - String weexTpl = mUri.getQueryParameter(Constants.WEEX_TPL_KEY); - String url = TextUtils.isEmpty(weexTpl) ? mUri.toString() : weexTpl; - loadWXfromService(url); - return true; - } - } - return super.onOptionsItemSelected(item); - } - - @Override - protected void onPause() { - super.onPause(); - if (mInstance != null) { - mInstance.onActivityPause(); - } - if(mWxAnalyzerDelegate != null){ - mWxAnalyzerDelegate.onPause(); - } - } - - @Override - protected void onStop() { - super.onStop(); - if (mInstance != null) { - mInstance.onActivityStop(); - } - if(mWxAnalyzerDelegate != null){ - mWxAnalyzerDelegate.onStop(); - } - } - - private void registerBroadcastReceiver() { - mReceiver = new RefreshBroadcastReceiver(); - IntentFilter filter = new IntentFilter(); -// filter.addAction(IWXDebugProxy.ACTION_DEBUG_INSTANCE_REFRESH); -// filter.addAction(IWXDebugProxy.ACTION_INSTANCE_RELOAD); - - registerReceiver(mReceiver, filter); - } - - private void unregisterBroadcastReceiver() { - if (mReceiver != null) { - unregisterReceiver(mReceiver); - } - mReceiver = null; - } - - private static class NavigatorAdapter implements IActivityNavBarSetter { - - @Override - public boolean push(String param) { - return false; - } - - @Override - public boolean pop(String param) { - return false; - } - - @Override - public boolean setNavBarRightItem(String param) { - return false; - } - - @Override - public boolean clearNavBarRightItem(String param) { - return false; - } - - @Override - public boolean setNavBarLeftItem(String param) { - return false; - } - - @Override - public boolean clearNavBarLeftItem(String param) { - return false; - } - - @Override - public boolean setNavBarMoreItem(String param) { - return false; - } - - @Override - public boolean clearNavBarMoreItem(String param) { - return false; - } - - @Override - public boolean setNavBarTitle(String param) { - return false; - } - } - - public class RefreshBroadcastReceiver extends BroadcastReceiver { - @Override - public void onReceive(Context context, Intent intent) { -// if (IWXDebugProxy.ACTION_INSTANCE_RELOAD.equals(intent.getAction()) || -// IWXDebugProxy.ACTION_DEBUG_INSTANCE_REFRESH.equals(intent.getAction())) { -// // String myUrl = intent.getStringExtra("url"); -// // Log.e("WXPageActivity", "RefreshBroadcastReceiver reload onReceive ACTION_DEBUG_INSTANCE_REFRESH mBundleUrl:" + myUrl + " mUri:" + mUri); -// -// Log.v(TAG, "connect to debug server success"); -// if (mUri != null) { -// if (TextUtils.equals(mUri.getScheme(), "http") || TextUtils.equals(mUri.getScheme(), "https")) { -// String weexTpl = mUri.getQueryParameter(Constants.WEEX_TPL_KEY); -// String url = TextUtils.isEmpty(weexTpl) ? mUri.toString() : weexTpl; -// // Log.e("WXPageActivity", "loadWXfromService reload url:" + url); -// loadWXfromService(url); -// } else { -// // Log.e("WXPageActivity", "loadWXfromLocal reload from local url:" + mUri.toString()); -// loadWXfromLocal(true); -// } -// } -// } - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/AbstractWeexActivity.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/AbstractWeexActivity.java deleted file mode 100644 index c71ce3c5..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/AbstractWeexActivity.java +++ /dev/null @@ -1,252 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.commons; - -import android.graphics.PixelFormat; -import android.graphics.Rect; -import android.os.Bundle; -import android.support.annotation.CallSuper; -import android.support.annotation.Nullable; -import android.support.v7.app.AppCompatActivity; -import android.view.KeyEvent; -import android.view.View; -import android.view.ViewGroup; - -import com.alibaba.fastjson.JSONObject; -import com.alibaba.weex.commons.util.AssertUtil; -import com.alibaba.weex.commons.util.ScreenUtil; -import com.taobao.weex.common.Constants; -import com.taobao.weex.IWXRenderListener; -import com.taobao.weex.WXEnvironment; -import com.taobao.weex.WXSDKInstance; -import com.taobao.weex.common.WXRenderStrategy; -import com.taobao.weex.utils.WXUtils; - -import java.io.File; -import java.util.HashMap; -import java.util.Map; - -/** - * Created by sospartan on 5/30/16. - */ -public abstract class AbstractWeexActivity extends AppCompatActivity implements IWXRenderListener { - private static final String TAG = "AbstractWeexActivity"; - - private ViewGroup mContainer; - private WXSDKInstance mInstance; - - protected WXAnalyzerDelegate mWxAnalyzerDelegate; - - @Override - protected void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - createWeexInstance(); - mInstance.onActivityCreate(); - - mWxAnalyzerDelegate = new WXAnalyzerDelegate(this); - mWxAnalyzerDelegate.onCreate(); - getWindow().setFormat(PixelFormat.TRANSLUCENT); - } - - protected final void setContainer(ViewGroup container){ - mContainer = container; - } - - protected final ViewGroup getContainer(){ - return mContainer; - } - - protected void destoryWeexInstance(){ - if(mInstance != null){ - mInstance.registerRenderListener(null); - mInstance.destroy(); - mInstance = null; - } - } - - protected void createWeexInstance(){ - destoryWeexInstance(); - - Rect outRect = new Rect(); - getWindow().getDecorView().getWindowVisibleDisplayFrame(outRect); - - mInstance = new WXSDKInstance(this); - mInstance.registerRenderListener(this); - } - - protected void renderPage(String template,String source){ - renderPage(template,source,null); - } - - protected void renderPage(String template,String source,String jsonInitData){ - AssertUtil.throwIfNull(mContainer,new RuntimeException("Can't render page, container is null")); - Map options = new HashMap<>(); - options.put(WXSDKInstance.BUNDLE_URL, source); - // Set options.bundleDigest - try { - String banner = WXUtils.getBundleBanner(template); - JSONObject jsonObj = JSONObject.parseObject(banner); - String digest = null; - if (jsonObj != null) { - digest = jsonObj.getString(Constants.CodeCache.BANNER_DIGEST); - } - if (digest != null) { - options.put(Constants.CodeCache.DIGEST, digest); - } - } catch (Throwable t) {} - //Set options.codeCachePath - String path = WXEnvironment.getFilesDir(getApplicationContext()); - path += File.separator; - path += Constants.CodeCache.SAVE_PATH; - path += File.separator; - options.put(Constants.CodeCache.PATH, path); - - mInstance.setTrackComponent(true); - mInstance.render( - getPageName(), - template, - options, - jsonInitData, - ScreenUtil.getDisplayWidth(this), - ScreenUtil.getDisplayHeight(this), - WXRenderStrategy.APPEND_ASYNC); - } - - protected void renderPageByURL(String url){ - renderPageByURL(url,null); - } - - protected void renderPageByURL(String url,String jsonInitData){ - AssertUtil.throwIfNull(mContainer,new RuntimeException("Can't render page, container is null")); - Map options = new HashMap<>(); - options.put(WXSDKInstance.BUNDLE_URL, url); - mInstance.setTrackComponent(true); - mInstance.renderByUrl( - getPageName(), - url, - options, - jsonInitData, - ScreenUtil.getDisplayWidth(this), - ScreenUtil.getDisplayHeight(this), - WXRenderStrategy.APPEND_ASYNC); - } - - protected String getPageName(){ - return TAG; - } - - @Override - public void onStart() { - super.onStart(); - if(mInstance!=null){ - mInstance.onActivityStart(); - } - if(mWxAnalyzerDelegate != null){ - mWxAnalyzerDelegate.onStart(); - } - } - - @Override - public void onResume() { - super.onResume(); - if(mInstance!=null){ - mInstance.onActivityResume(); - } - if(mWxAnalyzerDelegate != null){ - mWxAnalyzerDelegate.onResume(); - } - } - - @Override - public void onPause() { - super.onPause(); - if(mInstance!=null){ - mInstance.onActivityPause(); - } - if(mWxAnalyzerDelegate != null){ - mWxAnalyzerDelegate.onPause(); - } - } - - @Override - public void onStop() { - super.onStop(); - if(mInstance!=null){ - mInstance.onActivityStop(); - } - if(mWxAnalyzerDelegate != null){ - mWxAnalyzerDelegate.onStop(); - } - } - - @Override - public void onDestroy() { - super.onDestroy(); - if(mInstance!=null){ - mInstance.onActivityDestroy(); - } - if(mWxAnalyzerDelegate != null){ - mWxAnalyzerDelegate.onDestroy(); - } - } - - @Override - public void onViewCreated(WXSDKInstance wxsdkInstance, View view) { - View wrappedView = null; - if(mWxAnalyzerDelegate != null){ - wrappedView = mWxAnalyzerDelegate.onWeexViewCreated(wxsdkInstance,view); - } - if(wrappedView != null){ - view = wrappedView; - } - if (mContainer != null) { - mContainer.removeAllViews(); - mContainer.addView(view); - } - } - - - - @Override - public void onRefreshSuccess(WXSDKInstance wxsdkInstance, int i, int i1) { - - } - - @Override - @CallSuper - public void onRenderSuccess(WXSDKInstance instance, int width, int height) { - if(mWxAnalyzerDelegate != null){ - mWxAnalyzerDelegate.onWeexRenderSuccess(instance); - } - } - - @Override - @CallSuper - public void onException(WXSDKInstance instance, String errCode, String msg) { - if(mWxAnalyzerDelegate != null){ - mWxAnalyzerDelegate.onException(instance,errCode,msg); - } - } - - @Override - @CallSuper - public boolean onKeyUp(int keyCode, KeyEvent event) { - return (mWxAnalyzerDelegate != null && mWxAnalyzerDelegate.onKeyUp(keyCode,event)) || super.onKeyUp(keyCode, event); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/SimpleWeexActivity.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/SimpleWeexActivity.java deleted file mode 100644 index 91e0d1a0..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/SimpleWeexActivity.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.commons; - -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.view.ViewGroup; -import com.taobao.weex.WXSDKInstance; - -/** - * Basic Weex powered Activity. - * Created by sospartan on 5/31/16. - */ -public abstract class SimpleWeexActivity extends AbstractWeexActivity { - - @Override - protected void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContainer((ViewGroup) findViewById(android.R.id.content)); - } - - @Override - public void onRenderSuccess(WXSDKInstance instance, int width, int height) { - super.onRenderSuccess(instance,width,height); - } - - @Override - public void onException(WXSDKInstance instance, String errCode, String msg) { - super.onException(instance,errCode,msg); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/WXAnalyzerDelegate.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/WXAnalyzerDelegate.java deleted file mode 100644 index f9ad58e0..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/WXAnalyzerDelegate.java +++ /dev/null @@ -1,193 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.commons; - -import android.content.Context; -import android.support.annotation.Nullable; -import android.text.TextUtils; -import android.view.KeyEvent; -import android.view.View; - -import com.taobao.weex.WXSDKInstance; - -import java.lang.reflect.Constructor; -import java.lang.reflect.Method; - -/** - * Description: - *

- * Created by rowandjj(chuyi)
- * Date: 2016/10/27
- * Time: 下午7:01
- */ - -public final class WXAnalyzerDelegate { - private Object mWXAnalyzer; - - private static boolean ENABLE = false; - - @SuppressWarnings("unchecked") - public WXAnalyzerDelegate(@Nullable Context context) { - if(!ENABLE){ - return; - } - if(context == null){ - return; - } - try { - Class clazz = Class.forName("com.taobao.weex.analyzer.WeexDevOptions"); - Constructor constructor = clazz.getDeclaredConstructor(Context.class); - mWXAnalyzer = constructor.newInstance(context); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public void onCreate() { - if (mWXAnalyzer == null) { - return; - } - try { - Method method = mWXAnalyzer.getClass().getDeclaredMethod("onCreate"); - method.invoke(mWXAnalyzer); - } catch (Exception e) { - e.printStackTrace(); - } - } - - - public void onStart() { - if (mWXAnalyzer == null) { - return; - } - try { - Method method = mWXAnalyzer.getClass().getDeclaredMethod("onStart"); - method.invoke(mWXAnalyzer); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public void onResume() { - if (mWXAnalyzer == null) { - return; - } - try { - Method method = mWXAnalyzer.getClass().getDeclaredMethod("onResume"); - method.invoke(mWXAnalyzer); - } catch (Exception e) { - e.printStackTrace(); - } - } - - - public void onPause() { - if (mWXAnalyzer == null) { - return; - } - try { - Method method = mWXAnalyzer.getClass().getDeclaredMethod("onPause"); - method.invoke(mWXAnalyzer); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public void onStop() { - if (mWXAnalyzer == null) { - return; - } - try { - Method method = mWXAnalyzer.getClass().getDeclaredMethod("onStop"); - method.invoke(mWXAnalyzer); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public void onDestroy() { - if (mWXAnalyzer == null) { - return; - } - try { - Method method = mWXAnalyzer.getClass().getDeclaredMethod("onDestroy"); - method.invoke(mWXAnalyzer); - } catch (Exception e) { - e.printStackTrace(); - } - } - - - public void onWeexRenderSuccess(@Nullable WXSDKInstance instance) { - if (mWXAnalyzer == null || instance == null) { - return; - } - try { - Method method = mWXAnalyzer.getClass().getDeclaredMethod("onWeexRenderSuccess", WXSDKInstance.class); - method.invoke(mWXAnalyzer, instance); - } catch (Exception e) { - e.printStackTrace(); - } - - } - - - public boolean onKeyUp(int keyCode, KeyEvent event) { - if (mWXAnalyzer == null) { - return false; - } - try { - Method method = mWXAnalyzer.getClass().getDeclaredMethod("onKeyUp", int.class, KeyEvent.class); - return (boolean) method.invoke(mWXAnalyzer, keyCode, event); - } catch (Exception e) { - e.printStackTrace(); - return false; - } - } - - public void onException(WXSDKInstance instance, String errCode, String msg) { - if (mWXAnalyzer == null) { - return; - } - if (TextUtils.isEmpty(errCode) && TextUtils.isEmpty(msg)) { - return; - } - try { - Method method = mWXAnalyzer.getClass().getDeclaredMethod("onException", WXSDKInstance.class, String.class, String.class); - method.invoke(mWXAnalyzer, instance, errCode, msg); - } catch (Exception e) { - e.printStackTrace(); - } - } - - public View onWeexViewCreated(WXSDKInstance instance, View view) { - if (mWXAnalyzer == null || instance == null || view == null) { - return null; - } - try { - Method method = mWXAnalyzer.getClass().getDeclaredMethod("onWeexViewCreated", WXSDKInstance.class, View.class); - View retView = (View) method.invoke(mWXAnalyzer, instance, view); - return retView; - } catch (Exception e) { - e.printStackTrace(); - return view; - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/BlurTool.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/BlurTool.java deleted file mode 100644 index e9680327..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/BlurTool.java +++ /dev/null @@ -1,326 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.commons.adapter; - -import android.graphics.Bitmap; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; - -import com.taobao.weex.utils.WXLogUtils; - -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.ThreadFactory; - -/** - * Created by rowandjj(chuyi)
- */ - -public class BlurTool { - - public interface OnBlurCompleteListener { - /** - * blur complete event.(Notice:in sub thread) - * - * @param bitmap the blurred bitmap - * */ - void onBlurComplete(@NonNull Bitmap bitmap); - } - - private static ExecutorService sExecutorService = Executors.newCachedThreadPool(new ThreadFactory() { - @Override - public Thread newThread(Runnable r) { - return new Thread(r,"wx_blur_thread"); - } - }); - - private static final String TAG = "BlurTool"; - - /** - * radius in [0,10] - * */ - @NonNull - @SuppressWarnings("unused") - public static Bitmap blur(@NonNull Bitmap originalImage, int radius) { - long start = System.currentTimeMillis(); - radius = Math.min(10, Math.max(0,radius));//[0,10] - if(radius == 0) { - return originalImage; - } - int width = originalImage.getWidth(); - int height = originalImage.getHeight(); - - if(width <= 0 || height <= 0) { - return originalImage; - } - - double sampling = calculateSampling(radius); - int retryTimes = 3; - Bitmap sampledImage = Bitmap.createScaledBitmap(originalImage,(int)(sampling*width),(int)(sampling*height),true); - for(int i = 0; i < retryTimes; i++) { - try { - if(radius == 0) { - return originalImage; - } - double s = calculateSampling(radius); - if(s != sampling) { - sampling = s; - sampledImage = Bitmap.createScaledBitmap(originalImage,(int)(sampling*width),(int)(sampling*height),true); - } - - Bitmap result = stackBlur(sampledImage,radius); - WXLogUtils.d(TAG, "elapsed time on blurring image(radius:"+ radius + ",sampling: " + sampling + "): " + (System.currentTimeMillis() - start) + "ms"); - return result; - }catch (Exception e) { - WXLogUtils.e(TAG, "thrown exception when blurred image(times = " + i + "),"+ e.getMessage()); - radius -= 1; - radius = Math.max(0,radius); - } - } - WXLogUtils.d(TAG, "elapsed time on blurring image(radius:"+ radius + ",sampling: " + sampling + "): " + (System.currentTimeMillis() - start) + "ms"); - return originalImage; - } - - private static double calculateSampling(int radius){ - double sampling; - if(radius <= 3) { - sampling = 1/(double)2; - }else if(radius <= 8) { - sampling = 1/(double)4; - }else { - sampling = 1/(double)8; - } - - return sampling; - } - - @SuppressWarnings("unused") - public static void asyncBlur(@NonNull final Bitmap originalImage, final int radius, @Nullable final OnBlurCompleteListener listener) { - sExecutorService.execute(new Runnable() { - @Override - public void run() { - if(listener != null) { - listener.onBlurComplete(blur(originalImage,radius)); - } - } - }); - } - - private static Bitmap stackBlur(Bitmap sentBitmap, int radius) { - // Stack Blur Algorithm by Mario Klingemann - Bitmap bitmap = sentBitmap.copy(sentBitmap.getConfig(), true); - - if (radius < 1) { - return (null); - } - - int w = bitmap.getWidth(); - int h = bitmap.getHeight(); - - int[] pix = new int[w * h]; - bitmap.getPixels(pix, 0, w, 0, 0, w, h); - - int wm = w - 1; - int hm = h - 1; - int wh = w * h; - int div = radius + radius + 1; - - int r[] = new int[wh]; - int g[] = new int[wh]; - int b[] = new int[wh]; - int rsum, gsum, bsum, x, y, i, p, yp, yi, yw; - int vmin[] = new int[Math.max(w, h)]; - - int divsum = (div + 1) >> 1; - divsum *= divsum; - int dv[] = new int[256 * divsum]; - for (i = 0; i < 256 * divsum; i++) { - dv[i] = (i / divsum); - } - - yw = yi = 0; - - int[][] stack = new int[div][3]; - int stackpointer; - int stackstart; - int[] sir; - int rbs; - int r1 = radius + 1; - int routsum, goutsum, boutsum; - int rinsum, ginsum, binsum; - - for (y = 0; y < h; y++) { - rinsum = ginsum = binsum = routsum = goutsum = boutsum = rsum = gsum = bsum = 0; - for (i = -radius; i <= radius; i++) { - p = pix[yi + Math.min(wm, Math.max(i, 0))]; - sir = stack[i + radius]; - sir[0] = (p & 0xff0000) >> 16; - sir[1] = (p & 0x00ff00) >> 8; - sir[2] = (p & 0x0000ff); - rbs = r1 - Math.abs(i); - rsum += sir[0] * rbs; - gsum += sir[1] * rbs; - bsum += sir[2] * rbs; - if (i > 0) { - rinsum += sir[0]; - ginsum += sir[1]; - binsum += sir[2]; - } else { - routsum += sir[0]; - goutsum += sir[1]; - boutsum += sir[2]; - } - } - stackpointer = radius; - - for (x = 0; x < w; x++) { - - r[yi] = dv[rsum]; - g[yi] = dv[gsum]; - b[yi] = dv[bsum]; - - rsum -= routsum; - gsum -= goutsum; - bsum -= boutsum; - - stackstart = stackpointer - radius + div; - sir = stack[stackstart % div]; - - routsum -= sir[0]; - goutsum -= sir[1]; - boutsum -= sir[2]; - - if (y == 0) { - vmin[x] = Math.min(x + radius + 1, wm); - } - p = pix[yw + vmin[x]]; - - sir[0] = (p & 0xff0000) >> 16; - sir[1] = (p & 0x00ff00) >> 8; - sir[2] = (p & 0x0000ff); - - rinsum += sir[0]; - ginsum += sir[1]; - binsum += sir[2]; - - rsum += rinsum; - gsum += ginsum; - bsum += binsum; - - stackpointer = (stackpointer + 1) % div; - sir = stack[(stackpointer) % div]; - - routsum += sir[0]; - goutsum += sir[1]; - boutsum += sir[2]; - - rinsum -= sir[0]; - ginsum -= sir[1]; - binsum -= sir[2]; - - yi++; - } - yw += w; - } - for (x = 0; x < w; x++) { - rinsum = ginsum = binsum = routsum = goutsum = boutsum = rsum = gsum = bsum = 0; - yp = -radius * w; - for (i = -radius; i <= radius; i++) { - yi = Math.max(0, yp) + x; - - sir = stack[i + radius]; - - sir[0] = r[yi]; - sir[1] = g[yi]; - sir[2] = b[yi]; - - rbs = r1 - Math.abs(i); - - rsum += r[yi] * rbs; - gsum += g[yi] * rbs; - bsum += b[yi] * rbs; - - if (i > 0) { - rinsum += sir[0]; - ginsum += sir[1]; - binsum += sir[2]; - } else { - routsum += sir[0]; - goutsum += sir[1]; - boutsum += sir[2]; - } - - if (i < hm) { - yp += w; - } - } - yi = x; - stackpointer = radius; - for (y = 0; y < h; y++) { - // Preserve alpha channel: ( 0xff000000 & pix[yi] ) - pix[yi] = (0xff000000 & pix[yi]) | (dv[rsum] << 16) | (dv[gsum] << 8) | dv[bsum]; - - rsum -= routsum; - gsum -= goutsum; - bsum -= boutsum; - - stackstart = stackpointer - radius + div; - sir = stack[stackstart % div]; - - routsum -= sir[0]; - goutsum -= sir[1]; - boutsum -= sir[2]; - - if (x == 0) { - vmin[y] = Math.min(y + r1, hm) * w; - } - p = x + vmin[y]; - - sir[0] = r[p]; - sir[1] = g[p]; - sir[2] = b[p]; - - rinsum += sir[0]; - ginsum += sir[1]; - binsum += sir[2]; - - rsum += rinsum; - gsum += ginsum; - bsum += binsum; - - stackpointer = (stackpointer + 1) % div; - sir = stack[stackpointer]; - - routsum += sir[0]; - goutsum += sir[1]; - boutsum += sir[2]; - - rinsum -= sir[0]; - ginsum -= sir[1]; - binsum -= sir[2]; - - yi += w; - } - } - - bitmap.setPixels(pix, 0, w, 0, 0, w, h); - - return (bitmap); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/BlurTransformation.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/BlurTransformation.java deleted file mode 100644 index b530b927..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/BlurTransformation.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.commons.adapter; - -import android.graphics.Bitmap; - -import com.squareup.picasso.Transformation; - -public class BlurTransformation implements Transformation { - - private int mRadius; - - public BlurTransformation(int radius) { - mRadius = radius; - } - - @Override public Bitmap transform(Bitmap source) { - if(mRadius <= 0) { - return source; - } - Bitmap bitmap; - try { - bitmap = BlurTool.blur(source, mRadius); - }catch (Exception e){ - bitmap = source; - } - if(bitmap != source) { - source.recycle(); - } - return bitmap; - } - - @Override public String key() { - return "BlurTransformation(radius=" + mRadius + ")"; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/DefaultWebSocketAdapter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/DefaultWebSocketAdapter.java deleted file mode 100644 index 22810dce..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/DefaultWebSocketAdapter.java +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.commons.adapter; - -import android.support.annotation.Nullable; - -import com.alibaba.weex.commons.util.WSEventReporter; -import com.squareup.okhttp.Headers; -import com.squareup.okhttp.OkHttpClient; -import com.squareup.okhttp.Request; -import com.squareup.okhttp.Response; -import com.squareup.okhttp.ws.WebSocket; -import com.squareup.okhttp.ws.WebSocketCall; -import com.squareup.okhttp.ws.WebSocketListener; -import com.taobao.weex.appfram.websocket.IWebSocketAdapter; -import com.taobao.weex.appfram.websocket.WebSocketCloseCodes; -import com.taobao.weex.http.Status; - -import java.io.EOFException; -import java.io.IOException; -import java.lang.reflect.Field; -import java.util.HashMap; -import java.util.Map; - -import okio.Buffer; -import okio.BufferedSource; - -/** - * Created by moxun on 16/12/27. - */ - -public class DefaultWebSocketAdapter implements IWebSocketAdapter { - - private WebSocket ws; - private EventListener eventListener; - private WSEventReporter wsEventReporter; - - @Override - public void connect(String url, @Nullable final String protocol, EventListener listener) { - this.eventListener = listener; - this.wsEventReporter = WSEventReporter.newInstance(); - OkHttpClient okHttpClient = new OkHttpClient(); - - Request.Builder builder = new Request.Builder(); - - if (protocol != null) { - builder.addHeader(HEADER_SEC_WEBSOCKET_PROTOCOL, protocol); - } - - builder.url(url); - wsEventReporter.created(url); - - Request wsRequest = builder.build(); - WebSocketCall webSocketCall = WebSocketCall.create(okHttpClient, wsRequest); - - try { - Field field = WebSocketCall.class.getDeclaredField("request"); - field.setAccessible(true); - Request realRequest = (Request) field.get(webSocketCall); - Headers wsHeaders = realRequest.headers(); - Map headers = new HashMap<>(); - for (String name : wsHeaders.names()) { - headers.put(name, wsHeaders.values(name).toString()); - } - wsEventReporter.willSendHandshakeRequest(headers, null); - - } catch (Exception e) { - e.printStackTrace(); - } - - - webSocketCall.enqueue(new WebSocketListener() { - @Override - public void onOpen(WebSocket webSocket, Request request, Response response) throws IOException { - ws = webSocket; - eventListener.onOpen(); - Headers wsHeaders = response.headers(); - Map headers = new HashMap<>(); - for (String name : wsHeaders.names()) { - headers.put(name, wsHeaders.values(name).toString()); - } - wsEventReporter.handshakeResponseReceived(response.code(), - Status.getStatusText(String.valueOf(response.code())), - headers); - } - - @Override - public void onMessage(BufferedSource payload, WebSocket.PayloadType type) throws IOException { - if (type == WebSocket.PayloadType.BINARY) { - wsEventReporter.frameReceived(payload.readByteArray()); - } else { - String message = payload.readUtf8(); - eventListener.onMessage(message); - wsEventReporter.frameReceived(message); - } - payload.close(); - } - - @Override - public void onPong(Buffer payload) { - - } - - @Override - public void onClose(int code, String reason) { - eventListener.onClose(code, reason, true); - wsEventReporter.closed(); - } - - @Override - public void onFailure(IOException e) { - e.printStackTrace(); - if (e instanceof EOFException) { - eventListener.onClose(WebSocketCloseCodes.CLOSE_NORMAL.getCode(), WebSocketCloseCodes.CLOSE_NORMAL.name(), true); - wsEventReporter.closed(); - } else { - eventListener.onError(e.getMessage()); - wsEventReporter.frameError(e.getMessage()); - } - } - }); - } - - @Override - public void send(String data) { - if (ws != null) { - try { - Buffer buffer = new Buffer().writeUtf8(data); - ws.sendMessage(WebSocket.PayloadType.TEXT, buffer.buffer()); - buffer.flush(); - buffer.close(); - - wsEventReporter.frameSent(data); - } catch (Exception e) { - e.printStackTrace(); - reportError(e.getMessage()); - wsEventReporter.frameError(e.getMessage()); - } - } else { - reportError("WebSocket is not ready"); - } - } - - @Override - public void close(int code, String reason) { - if (ws != null) { - try { - ws.close(code, reason); - } catch (Exception e) { - e.printStackTrace(); - reportError(e.getMessage()); - } - } - } - - @Override - public void destroy() { - if (ws != null) { - try { - ws.close(WebSocketCloseCodes.CLOSE_GOING_AWAY.getCode(), WebSocketCloseCodes.CLOSE_GOING_AWAY.name()); - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - private void reportError(String message) { - if (eventListener != null) { - eventListener.onError(message); - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/DefaultWebSocketAdapterFactory.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/DefaultWebSocketAdapterFactory.java deleted file mode 100644 index a2cd4ec1..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/DefaultWebSocketAdapterFactory.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.commons.adapter; - -import com.taobao.weex.appfram.websocket.IWebSocketAdapter; -import com.taobao.weex.appfram.websocket.IWebSocketAdapterFactory; - -/** - * Created by moxun on 16/12/28. - */ - -public class DefaultWebSocketAdapterFactory implements IWebSocketAdapterFactory { - @Override - public IWebSocketAdapter createWebSocketAdapter() { - return new DefaultWebSocketAdapter(); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/FrescoImageAdapter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/FrescoImageAdapter.java deleted file mode 100644 index c49f4d9f..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/FrescoImageAdapter.java +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.commons.adapter; - -import android.graphics.drawable.Animatable; -import android.net.Uri; -import android.support.annotation.Nullable; -import android.text.TextUtils; -import android.util.Log; -import android.widget.ImageView; - -import com.facebook.common.executors.UiThreadImmediateExecutorService; -import com.facebook.common.internal.Preconditions; -import com.facebook.common.logging.FLog; -import com.facebook.common.references.CloseableReference; -import com.facebook.datasource.BaseDataSubscriber; -import com.facebook.datasource.DataSource; -import com.facebook.datasource.DataSubscriber; -import com.facebook.drawee.backends.pipeline.Fresco; -import com.facebook.drawee.controller.BaseControllerListener; -import com.facebook.drawee.controller.ControllerListener; -import com.facebook.drawee.interfaces.DraweeController; -import com.facebook.drawee.view.DraweeView; -import com.facebook.imagepipeline.common.ImageDecodeOptions; -import com.facebook.imagepipeline.core.ImagePipeline; -import com.facebook.imagepipeline.image.CloseableImage; -import com.facebook.imagepipeline.image.CloseableStaticBitmap; -import com.facebook.imagepipeline.image.ImageInfo; -import com.facebook.imagepipeline.image.QualityInfo; -import com.facebook.imagepipeline.request.ImageRequest; -import com.facebook.imagepipeline.request.ImageRequestBuilder; -import com.taobao.weex.WXSDKManager; -import com.taobao.weex.adapter.IWXImgLoaderAdapter; -import com.taobao.weex.common.WXImageStrategy; -import com.taobao.weex.dom.WXImageQuality; - -public class FrescoImageAdapter implements IWXImgLoaderAdapter { - - public FrescoImageAdapter() { - } - - @Override - public void setImage(final String url, final ImageView view, - WXImageQuality quality, WXImageStrategy strategy) { - - WXSDKManager.getInstance().postOnUiThread(new Runnable() { - - @Override - public void run() { - if (view == null || view.getLayoutParams() == null) { - return; - } - if (TextUtils.isEmpty(url)) { - view.setImageBitmap(null); - return; - } - String temp = url; - if (url.startsWith("//")) { - temp = "http:" + url; - } - if (view.getLayoutParams().width <= 0 || view.getLayoutParams().height <= 0) { - return; - } - - Uri uri = Uri.parse(temp); - - ImageDecodeOptions decodeOptions = ImageDecodeOptions.newBuilder() -// .setBackgroundColor(Color.GREEN) - .build(); - - - ImageRequest request = ImageRequestBuilder - .newBuilderWithSource(uri) - .setImageDecodeOptions(decodeOptions) - .setAutoRotateEnabled(true) - .setLocalThumbnailPreviewsEnabled(true) - .setLowestPermittedRequestLevel(ImageRequest.RequestLevel.FULL_FETCH) - .setProgressiveRenderingEnabled(false) - .build(); - - if(view instanceof DraweeView){ - Log.d("FrescoImageAdapter","load: "+url); - ControllerListener controllerListener = new BaseControllerListener() { - @Override - public void onFinalImageSet( - String id, - @Nullable ImageInfo imageInfo, - @Nullable Animatable anim) { - if (imageInfo == null) { - return; - } - QualityInfo qualityInfo = imageInfo.getQualityInfo(); - FLog.d("Final image received! " + - "Size %d x %d", - "Quality level %d, good enough: %s, full quality: %s", - imageInfo.getWidth(), - imageInfo.getHeight(), - qualityInfo.getQuality(), - qualityInfo.isOfGoodEnoughQuality(), - qualityInfo.isOfFullQuality()); - } - - @Override - public void onIntermediateImageSet(String id, @Nullable ImageInfo imageInfo) { - FLog.d("","Intermediate image received"); - } - - @Override - public void onFailure(String id, Throwable throwable) { - FLog.e(getClass(), throwable, "Error loading %s", id); - } - }; - DraweeController controller = Fresco.newDraweeControllerBuilder() - .setAutoPlayAnimations(true) - .setControllerListener(controllerListener) - .setUri(uri) - .setImageRequest(request) - .build(); - ((DraweeView)view).setController(controller); - - }else { - ImagePipeline imagePipeline = Fresco.getImagePipeline(); - DataSource> - dataSource = imagePipeline.fetchDecodedImage(request, new Object()); - DataSubscriber dataSubscriber = - new BaseDataSubscriber>() { - @Override - public void onNewResultImpl(DataSource> dataSource) { - - CloseableReference imageReference = dataSource.getResult(); - if (imageReference != null) { - try { - // do something with the image - Preconditions.checkState(CloseableReference.isValid(imageReference)); - CloseableImage closeableImage = imageReference.get(); - if (closeableImage instanceof CloseableStaticBitmap) { - CloseableStaticBitmap closeableStaticBitmap = (CloseableStaticBitmap) closeableImage; - view.setImageBitmap(closeableStaticBitmap.getUnderlyingBitmap()); - // boolean hasResult = null != closeableStaticBitmap.getUnderlyingBitmap(); - } else { - throw new UnsupportedOperationException("Unrecognized image class: " + closeableImage); - } - } finally { - imageReference.close(); - } - } - } - - @Override - public void onFailureImpl(DataSource dataSource) { - } - }; - - dataSource.subscribe(dataSubscriber, UiThreadImmediateExecutorService.getInstance()); - } - } - }, 0); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/ImageAdapter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/ImageAdapter.java deleted file mode 100644 index 63625f84..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/ImageAdapter.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.commons.adapter; - -import android.net.Uri; -import android.text.TextUtils; -import android.widget.ImageView; - -import com.squareup.picasso.Callback; -import com.squareup.picasso.Picasso; -import com.taobao.weex.WXEnvironment; -import com.taobao.weex.WXSDKManager; -import com.taobao.weex.adapter.IWXImgLoaderAdapter; -import com.taobao.weex.common.WXImageStrategy; -import com.taobao.weex.dom.WXImageQuality; - -public class ImageAdapter implements IWXImgLoaderAdapter { - - public ImageAdapter() { - } - - @Override - public void setImage(final String url, final ImageView view, - WXImageQuality quality, final WXImageStrategy strategy) { - - WXSDKManager.getInstance().postOnUiThread(new Runnable() { - - @Override - public void run() { - if(view==null||view.getLayoutParams()==null){ - return; - } - if (TextUtils.isEmpty(url)) { - view.setImageBitmap(null); - return; - } - String temp = url; - if (url.startsWith("//")) { - temp = "http:" + url; - } - if (view.getLayoutParams().width <= 0 || view.getLayoutParams().height <= 0) { - return; - } - - - if(!TextUtils.isEmpty(strategy.placeHolder)){ - Picasso.Builder builder=new Picasso.Builder(WXEnvironment.getApplication()); - Picasso picasso=builder.build(); - picasso.load(Uri.parse(strategy.placeHolder)).into(view); - - view.setTag(strategy.placeHolder.hashCode(),picasso); - } - - Picasso.with(WXEnvironment.getApplication()) - .load(temp) - .transform(new BlurTransformation(strategy.blurRadius)) - .into(view, new Callback() { - @Override - public void onSuccess() { - if(strategy.getImageListener()!=null){ - strategy.getImageListener().onImageFinish(url,view,true,null); - } - - if(!TextUtils.isEmpty(strategy.placeHolder)){ - ((Picasso) view.getTag(strategy.placeHolder.hashCode())).cancelRequest(view); - } - } - - @Override - public void onError() { - if(strategy.getImageListener()!=null){ - strategy.getImageListener().onImageFinish(url,view,false,null); - } - } - }); - } - },0); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/JSExceptionAdapter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/JSExceptionAdapter.java deleted file mode 100644 index bf0c5e3d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/adapter/JSExceptionAdapter.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.commons.adapter; - -import com.taobao.weex.adapter.IWXJSExceptionAdapter; -import com.taobao.weex.common.WXJSExceptionInfo; -import com.taobao.weex.utils.WXLogUtils; - -/** - */ - -public class JSExceptionAdapter implements IWXJSExceptionAdapter { - - @Override - public void onJSException(WXJSExceptionInfo exception) { - if (exception != null) { - WXLogUtils.d(exception.toString()); - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/util/AssertUtil.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/util/AssertUtil.java deleted file mode 100644 index 07ec3b97..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/util/AssertUtil.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.commons.util; - -/** - * Created by sospartan on 5/31/16. - */ -public class AssertUtil { - public static void throwIfNull(Object object,T e) throws T { - if(object == null){ - throw e; - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/util/RequestIdGenerator.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/util/RequestIdGenerator.java deleted file mode 100644 index 35619e90..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/util/RequestIdGenerator.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.alibaba.weex.commons.util; - -import java.util.concurrent.atomic.AtomicInteger; - -/** - * Created by moxun on 17/4/20. - */ - -public class RequestIdGenerator { - private static final AtomicInteger sIdGenerator = new AtomicInteger(0); - - public static int nextRequestId() { - return sIdGenerator.getAndIncrement(); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/util/ScreenUtil.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/util/ScreenUtil.java deleted file mode 100644 index e2caed37..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/util/ScreenUtil.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.commons.util; - -import android.content.res.TypedArray; -import android.graphics.Point; -import android.os.Build; -import android.support.v7.app.ActionBar; -import android.support.v7.app.AppCompatActivity; -import android.util.Log; - -import java.lang.reflect.Field; -import java.lang.reflect.Method; - -public class ScreenUtil { - private static final String TAG = "WXTBUtil"; - - private static boolean isSupportSmartBar = false; - - static { - isSupportSmartBar = isSupportSmartBar(); - } - public static int getDisplayWidth(AppCompatActivity activity){ - int width=0; - if (activity != null && activity.getWindowManager() != null && activity.getWindowManager().getDefaultDisplay() != null) { - Point point=new Point(); - activity.getWindowManager().getDefaultDisplay().getSize(point); - width = point.x; - } - return width; - } - - public static int getDisplayHeight(AppCompatActivity activity) { - int height = 0; - if (activity != null && activity.getWindowManager() != null && activity.getWindowManager().getDefaultDisplay() != null) { - Point point=new Point(); - activity.getWindowManager().getDefaultDisplay().getSize(point); - height=point.y; - } - - Log.e(TAG, "isSupportSmartBar:" + isSupportSmartBar); - - if (isSupportSmartBar) { - int smartBarHeight = getSmartBarHeight(activity); - Log.e(TAG, "smartBarHeight:" + smartBarHeight); - height -= smartBarHeight; - } - - if (activity.getSupportActionBar() != null) { - int actionbar= activity.getSupportActionBar().getHeight(); - if(actionbar==0){ - TypedArray actionbarSizeTypedArray=activity.obtainStyledAttributes(new int[]{android.R.attr.actionBarSize}); - actionbar= (int) actionbarSizeTypedArray.getDimension(0,0); - } - Log.d(TAG, "actionbar:" + actionbar); - height -= actionbar; - } - - int status = getStatusBarHeight(activity); - Log.d(TAG, "status:" + status); - - height -= status; - - Log.d(TAG,"height:"+height); - return height; - } - - private static int getStatusBarHeight(AppCompatActivity activity) { - Class c; - Object obj; - Field field; - int x; - int statusBarHeight = 0; - try { - c = Class.forName("com.android.internal.R$dimen"); - obj = c.newInstance(); - field = c.getField("status_bar_height"); - x = Integer.parseInt(field.get(obj).toString()); - statusBarHeight = activity.getResources().getDimensionPixelSize(x); - } catch (Exception e1) { - e1.printStackTrace(); - } - return statusBarHeight; - } - - private static int getSmartBarHeight(AppCompatActivity activity) { - ActionBar actionbar = activity.getSupportActionBar(); - if (actionbar != null) - try { - Class c = Class.forName("com.android.internal.R$dimen"); - Object obj = c.newInstance(); - Field field = c.getField("mz_action_button_min_height"); - int height = Integer.parseInt(field.get(obj).toString()); - return activity.getResources().getDimensionPixelSize(height); - } catch (Exception e) { - e.printStackTrace(); - actionbar.getHeight(); - } - return 0; - } - - private static boolean isSupportSmartBar() { - try { - final Method method = Build.class.getMethod("hasSmartBar"); - return method != null; - } catch (final Exception e) { - return false; - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/util/WSEventReporter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/util/WSEventReporter.java deleted file mode 100644 index 720f0de5..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/commons/util/WSEventReporter.java +++ /dev/null @@ -1,192 +0,0 @@ -package com.alibaba.weex.commons.util; - -import android.support.annotation.Nullable; -import android.util.Pair; - -import com.taobao.weex.devtools.inspector.network.NetworkEventReporter; -import com.taobao.weex.devtools.inspector.network.NetworkEventReporterManager; -import com.taobao.weex.devtools.inspector.network.SimpleBinaryInspectorWebSocketFrame; -import com.taobao.weex.devtools.inspector.network.SimpleTextInspectorWebSocketFrame; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -/** - * Created by moxun on 17/4/20. - */ - -public class WSEventReporter { - - private String requestId; - private NetworkEventReporter reporter; - private WSRequest request; - - public static WSEventReporter newInstance() { - return new WSEventReporter(); - } - - private WSEventReporter() { - requestId = String.valueOf(RequestIdGenerator.nextRequestId()); - reporter = NetworkEventReporterManager.get(); - } - - public void created(String url) { - if (reporter != null) { - reporter.webSocketCreated(requestId, url); - } - } - - public void closed() { - if (reporter != null) { - reporter.webSocketClosed(requestId); - } - } - - public void willSendHandshakeRequest(Map headers, @Nullable String friendlyName) { - if (reporter != null) { - request = new WSRequest(requestId, friendlyName, headers); - reporter.webSocketWillSendHandshakeRequest(request); - } - } - - public void handshakeResponseReceived(int code, String phrase, Map responseHeaders) { - if (reporter != null) { - reporter.webSocketHandshakeResponseReceived(new WSResponse(requestId, code, phrase, responseHeaders, request)); - } - } - - public void frameSent(String frame) { - if (reporter != null) { - reporter.webSocketFrameSent(new SimpleTextInspectorWebSocketFrame(requestId, frame)); - } - } - - public void frameSent(byte[] frame) { - if (reporter != null) { - reporter.webSocketFrameSent(new SimpleBinaryInspectorWebSocketFrame(requestId, frame)); - } - } - - public void frameReceived(String frame) { - if (reporter != null) { - reporter.webSocketFrameReceived(new SimpleTextInspectorWebSocketFrame(requestId, frame)); - } - } - - public void frameReceived(byte[] frame) { - if (reporter != null) { - reporter.webSocketFrameReceived(new SimpleBinaryInspectorWebSocketFrame(requestId, frame)); - } - } - - public void frameError(String msg) { - if (reporter != null) { - reporter.webSocketFrameError(requestId, msg); - } - } - - private static class WSRequest extends WSHeaderCommon implements NetworkEventReporter.InspectorWebSocketRequest { - - private String id; - private String name; - - public WSRequest(String id, String name, Map headers) { - attachHeaders(headers); - this.id = id; - this.name = name; - if (this.name == null) { - this.name = "WS Connection " + id; - } - } - - @Override - public String id() { - return id; - } - - @Override - public String friendlyName() { - return name; - } - } - - private static class WSResponse extends WSHeaderCommon implements NetworkEventReporter.InspectorWebSocketResponse { - - private String id; - private int code; - private String phrase; - private WSHeaderCommon headers; - - public WSResponse(String id, int code, String phrase, Map responseHeaders, WSHeaderCommon headers) { - attachHeaders(responseHeaders); - this.id = id; - this.code = code; - this.phrase = phrase; - this.headers = headers; - } - - @Override - public String requestId() { - return id; - } - - @Override - public int statusCode() { - return code; - } - - @Override - public String reasonPhrase() { - return phrase; - } - - @Nullable - @Override - public NetworkEventReporter.InspectorHeaders requestHeaders() { - return headers; - } - } - - private static class WSHeaderCommon implements NetworkEventReporter.InspectorHeaders { - - private List> headerList = new ArrayList<>(); - - public void attachHeaders(Map headers) { - for (Map.Entry entry : headers.entrySet()) { - headerList.add(new Pair<>(entry.getKey(), entry.getValue())); - } - } - - public void addHeader(String key, String value) { - headerList.add(new Pair<>(key, value)); - } - - - @Override - public int headerCount() { - return headerList.size(); - } - - @Override - public String headerName(int index) { - return headerList.get(index).first; - } - - @Override - public String headerValue(int index) { - return headerList.get(index).second; - } - - @Nullable - @Override - public String firstHeaderValue(String name) { - for (Pair pair : headerList) { - if (pair.first.equals(name)) { - return pair.second; - } - } - return null; - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/constants/Constants.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/constants/Constants.java deleted file mode 100644 index abb02829..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/constants/Constants.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.constants; - -public class Constants { - -// public static final String BUNDLE_URL = "http://t.cn?_wx_tpl=http://h5.waptest.taobao.com/app/weextc031/build/TC__Home.js"; - public static final String BUNDLE_URL = "http://h5.m.taobao.com?_wx_tpl=http://g.tbcdn.cn/weex/weex-tc/0.1.2/build/TC__Home.js"; - public static final String WEEX_SAMPLES_KEY = "?weex-samples"; - public static final String WEEX_TPL_KEY = "_wx_tpl"; - - - //hot refresh - public static final int HOT_REFRESH_CONNECT = 0x111; - public static final int HOT_REFRESH_DISCONNECT = HOT_REFRESH_CONNECT + 1; - public static final int HOT_REFRESH_REFRESH = HOT_REFRESH_DISCONNECT + 1; - public static final int HOT_REFRESH_CONNECT_ERROR = HOT_REFRESH_REFRESH + 1; -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/WXInstanceStatisticsListener.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/WXInstanceStatisticsListener.java deleted file mode 100644 index 05b6de1a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/WXInstanceStatisticsListener.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.extend; - -import com.taobao.weex.IWXStatisticsListener; - -import com.taobao.weex.utils.Trace; - -public class WXInstanceStatisticsListener implements IWXStatisticsListener { - /** - * Called when weex sdk engine begin to initialize. - */ - @Override - public void onSDKEngineInitialize() {} - - /** - * Called when begin to load js framework. - */ - @Override - public void onJsFrameworkStart() {} - - /** - * Called when finish loading js framework. - */ - @Override - public void onJsFrameworkReady() {} - - /** - * Called when the render view phase of first view reached. - */ - @Override - public void onFirstView() {} - - /** - * Called when the render view phase of first screen reached. - */ - @Override - public void onFirstScreen() { - Trace.beginSection("onFirstScreen done"); - Trace.endSection(); - } - - /** - * Called when to start a http request. - */ - @Override - public void onHttpStart() {} - - /** - * Called when received a http response header data. - */ - @Override - public void onHeadersReceived() {} - - /** - * Called when to finish a http request. - */ - @Override - public void onHttpFinish() {} - - /** - * Called when an exception occured. - */ - @Override - public void onException(String instanceid, String errCode, String msg) {} -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/adapter/InterceptWXHttpAdapter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/adapter/InterceptWXHttpAdapter.java deleted file mode 100644 index 58c82543..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/adapter/InterceptWXHttpAdapter.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.extend.adapter; - -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; - -import com.taobao.weex.adapter.DefaultWXHttpAdapter; -import com.taobao.weex.urlconnection.ByteArrayRequestEntity; -import com.taobao.weex.urlconnection.SimpleRequestEntity; -import com.taobao.weex.urlconnection.WeexURLConnectionManager; - -import java.io.IOException; -import java.io.InputStream; -import java.net.HttpURLConnection; - -/** - * Created by moxun on 16/12/29. - */ - -public class InterceptWXHttpAdapter extends DefaultWXHttpAdapter { - - @NonNull - @Override - public IEventReporterDelegate getEventReporterDelegate() { - return new IEventReporterDelegate() { - - WeexURLConnectionManager manager = new WeexURLConnectionManager(null); - - @Override - public void preConnect(HttpURLConnection connection, @Nullable String body) { - SimpleRequestEntity requestEntity = null; - if (body != null) { - requestEntity = new ByteArrayRequestEntity(body.getBytes()); - } - - try { - manager.preConnect(connection, requestEntity); - } catch (Throwable throwable) { - manager.httpExchangeFailed(new IOException("Exception on preConnect", throwable)); - } - } - - @Override - public void postConnect() { - try { - manager.postConnect(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - @Override - public InputStream interpretResponseStream(@Nullable InputStream inputStream) { - return manager.interpretResponseStream(inputStream); - } - - @Override - public void httpExchangeFailed(IOException e) { - manager.httpExchangeFailed(e); - } - }; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/GeolocationModule.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/GeolocationModule.java deleted file mode 100644 index 98f0c929..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/GeolocationModule.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.extend.module; - -import android.Manifest; -import android.app.Activity; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.content.pm.PackageManager; -import android.support.v4.app.ActivityCompat; -import android.support.v4.content.LocalBroadcastManager; - -import com.alibaba.weex.extend.module.location.ILocatable; -import com.alibaba.weex.extend.module.location.LocationFactory; -import com.taobao.weex.WXSDKManager; -import com.taobao.weex.common.Destroyable; -import com.taobao.weex.annotation.JSMethod; -import com.taobao.weex.common.WXModule; - -import java.util.HashMap; -import java.util.Map; - -/** - * Created by lixinke on 16/9/10. - */ -public class GeolocationModule extends WXModule implements Destroyable { - - private ILocatable mILocatable; - - public GeolocationModule() { - mILocatable = LocationFactory.getLocationProvider(mWXSDKInstance); - } - - /** - * 获取当前位置信息,只回调一次。 - * - * @param successCallback 成功回调function id. - * @param errorCallback 错误回调function id.(例如:没有权限) - * @param params JSON格式的参数(例如:准确度等). - */ - @JSMethod - public void getCurrentPosition(String successCallback, String errorCallback, String params) { - mILocatable.setWXSDKInstance(mWXSDKInstance); - if (checkPermission()) { - mILocatable.getCurrentPosition(successCallback, errorCallback, params); - } else { - requestPermission(successCallback, errorCallback, params, ILocatable.REQUEST_CUR_PERMISSION_CODE); - } - } - - - /** - * 注册监听全局定位 - * - * @param successCallback 定位成功回调function id. - * @param errorCallback 错误回调(例如:没有权限等). - * @param params SON格式的参数(例如:准确度等). - */ - @JSMethod - public void watchPosition(String successCallback, String errorCallback, String params) { - mILocatable.setWXSDKInstance(mWXSDKInstance); - if (checkPermission()) { - mILocatable.watchPosition(successCallback, errorCallback, params); - } else { - requestPermission(successCallback, errorCallback, params, ILocatable.REQUEST_WATCH_PERMISSION_CODE); - } - } - - /** - * 注销监听全局定位 - * - * @param registerID 注册时返回的唯一ID。 - */ - @JSMethod - public void clearWatch(String registerID) { - mILocatable.setWXSDKInstance(mWXSDKInstance); - mILocatable.clearWatch(registerID); - } - - - @Override - public void destroy() { - mILocatable.destroy(); - } - - private void requestPermission(String successCallback, String errorCallback, String params, int requestCurPermissionCode) { - ActivityCompat.requestPermissions((Activity) mWXSDKInstance.getContext(), - new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, requestCurPermissionCode); - LocalBroadcastManager.getInstance(mWXSDKInstance.getContext()) - .registerReceiver(new PerReceiver(mWXSDKInstance.getInstanceId(), mILocatable, successCallback, errorCallback, params), new IntentFilter("actionRequestPermissionsResult")); - } - - private boolean checkPermission() { - return ActivityCompat.checkSelfPermission(mWXSDKInstance.getContext(), Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED - && ActivityCompat.checkSelfPermission(mWXSDKInstance.getContext(), Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED; - } - - static class PerReceiver extends BroadcastReceiver { - - String mInstanceId; - ILocatable mLocatable; - String mSuccessCallback; - String mErrorCallback; - String mParams; - - PerReceiver(String instanceId, ILocatable locatable, String successCallback, String errorCallback, String params) { - this.mLocatable = locatable; - this.mSuccessCallback = successCallback; - this.mErrorCallback = errorCallback; - this.mParams = params; - this.mInstanceId = instanceId; - } - - @Override - public void onReceive(Context context, Intent intent) { - int code = intent.getIntExtra(ILocatable.REQUEST_PERMISSION_CODE, 0); - int[] grantResults = intent.getIntArrayExtra("grantResults"); - if (code == ILocatable.REQUEST_CUR_PERMISSION_CODE) { - if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { - mLocatable.getCurrentPosition(mSuccessCallback, mErrorCallback, mParams); - } else { - noPermission(); - } - } else if (code == ILocatable.REQUEST_WATCH_PERMISSION_CODE) { - if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { - mLocatable.watchPosition(mSuccessCallback, mErrorCallback, mParams); - } else { - noPermission(); - } - } - LocalBroadcastManager.getInstance(context).unregisterReceiver(this); - } - - private void noPermission() { - Map options = new HashMap<>(); - options.put(ILocatable.ERROR_CODE, ILocatable.ErrorCode.NO_PERMISSION_ERROR); - options.put(ILocatable.ERROR_MSG, ILocatable.ErrorMsg.NO_PERMISSION_ERROR); - WXSDKManager.getInstance().callback(mInstanceId, mErrorCallback, options); - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/MyModule.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/MyModule.java deleted file mode 100644 index d78d4712..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/MyModule.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.extend.module; - -import android.widget.Toast; - -import com.alibaba.weex.plugin.annotation.WeexModule; -import com.taobao.weex.annotation.JSMethod; -import com.taobao.weex.common.WXModule; - -@WeexModule(name = "MyModule") -public class MyModule extends WXModule { - - @JSMethod(uiThread = true) - public void printLog(String msg) { - Toast.makeText(mWXSDKInstance.getContext(),msg,Toast.LENGTH_SHORT).show(); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/RenderModule.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/RenderModule.java deleted file mode 100644 index 1ad0da7a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/RenderModule.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.extend.module; - -import android.util.Log; - -import com.taobao.weex.annotation.JSMethod; -import com.taobao.weex.common.WXModule; - - -public class RenderModule extends WXModule { - - @JSMethod - public void performClick() { - Log.d("Render", "Render"); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/SyncTestModule.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/SyncTestModule.java deleted file mode 100644 index 74ad1d99..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/SyncTestModule.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.extend.module; - -import com.taobao.weex.annotation.JSMethod; -import com.taobao.weex.common.WXModule; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; - -/** - * Created by zhengshihan on 2016/12/28. - */ - -public class SyncTestModule extends WXModule { - - @JSMethod(uiThread = false) - public ArrayList getArray(){ - ArrayList list = new ArrayList(); - list.add("ArrayList test 1"); - list.add("ArrayList test 2"); - return list; - } - @JSMethod(uiThread = false) - public String getString(){ - - return "getString :i am string "; - } - - @JSMethod(uiThread = false) - public int getNumber(){ - return 1111; - } - - /** - * JSON NOT allow KeyValue as non-string value - * @return - */ - @JSMethod(uiThread = false) - public Object getObject(){ - ArrayList list = new ArrayList(); - list.add("222"); - list.add("test"); - Map map = new HashMap(); - map.put(11,"test11"); - map.put("22","test22"); - list.add(map); - return list; - - } - - - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/WXEventModule.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/WXEventModule.java deleted file mode 100644 index e417f0f1..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/WXEventModule.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.extend.module; - -import android.content.Intent; -import android.net.Uri; -import android.text.TextUtils; - -import com.alibaba.weex.WXPageActivity; -import com.taobao.weex.annotation.JSMethod; -import com.taobao.weex.bridge.JSCallback; -import com.taobao.weex.common.WXModule; - -import java.util.HashMap; -import java.util.Map; - - -public class WXEventModule extends WXModule { - - private static final String WEEX_CATEGORY = "com.taobao.android.intent.category.WEEX"; - private static final String WEEX_ACTION = "com.taobao.android.intent.action.WEEX"; - - - @JSMethod(uiThread = true) - public void openURL(String url) { - if (TextUtils.isEmpty(url)) { - return; - } - String scheme = Uri.parse(url).getScheme(); - StringBuilder builder = new StringBuilder(); - if (TextUtils.equals("http", scheme) || TextUtils.equals("https", scheme) || TextUtils.equals("file", scheme)) { - builder.append(url); - } else { - builder.append("http:"); - builder.append(url); - } - - Uri uri = Uri.parse(builder.toString()); - Intent intent = new Intent(mWXSDKInstance.getContext(),WXPageActivity.class); - intent.setAction(WEEX_ACTION); - intent.setData(uri); - intent.addCategory(WEEX_CATEGORY); - mWXSDKInstance.getContext().startActivity(intent); - - if (mWXSDKInstance.checkModuleEventRegistered("event", this)) { - HashMap params=new HashMap<>(); - params.put("param1","param1"); - params.put("param2","param2"); - params.put("param3","param3"); - mWXSDKInstance.fireModuleEvent("event", this, params); - } - } - /* - * a test method for macaca case, you can fire globalEvent when download finish、device shaked and so on. - * @param event event name - * */ - @JSMethod(uiThread = true) - public void fireNativeGlobalEvent(String event, JSCallback callback) { - Map params=new HashMap(); - params.put("eventParam","value"); - - mWXSDKInstance.fireGlobalEventCallback(event, params); - if (null != callback) { - Map result = new HashMap(); - result.put("ok",true); - callback.invoke(result); - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/location/DefaultLocation.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/location/DefaultLocation.java deleted file mode 100644 index a2df53dc..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/location/DefaultLocation.java +++ /dev/null @@ -1,370 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.extend.module.location; - -import android.Manifest; -import android.content.Context; -import android.content.pm.PackageManager; -import android.location.Address; -import android.location.Criteria; -import android.location.Geocoder; -import android.location.Location; -import android.location.LocationListener; -import android.location.LocationManager; -import android.os.Bundle; -import android.os.Handler; -import android.os.Message; -import android.support.v4.app.ActivityCompat; -import android.text.TextUtils; - -import com.taobao.weex.WXSDKInstance; -import com.taobao.weex.bridge.SimpleJSCallback; -import com.taobao.weex.utils.WXLogUtils; - -import org.json.JSONException; -import org.json.JSONObject; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; - -public class DefaultLocation implements ILocatable { - - private static final String TAG = "DefaultLocation"; - private static final int TIME_OUT_WHAT = 0x11; - - private Map mRegisterSucCallbacks = new HashMap<>(); - private List mWXLocationListeners = new ArrayList<>(); - private WXSDKInstance mWXSDKInstance; - private LocationManager mLocationManager; - - private static final int GPS_TIMEOUT = 15000; - private int MIN_TIME = 20000; - private int MIN_DISTANCE = 5; - - public DefaultLocation(WXSDKInstance instance) { - mWXSDKInstance = instance; - } - - @Override - public void setWXSDKInstance(WXSDKInstance WXSDKInstance) { - mWXSDKInstance = WXSDKInstance; - } - - @Override - public void getCurrentPosition(final String successCallback, final String errorCallback, final String params) { - WXLogUtils.d(TAG, "into--[getCurrentPosition] successCallback:" + successCallback + " \nerrorCallback:" + errorCallback + " \nparams:" + params); - if (!TextUtils.isEmpty(params)) { - try { - JSONObject jsObj = new JSONObject(params); - boolean enableHighAccuracy = jsObj.optBoolean("enableHighAccuracy"); - boolean enableAddress = jsObj.optBoolean("address"); - WXLocationListener listener = findLocation(null, successCallback, errorCallback, enableHighAccuracy, enableAddress); - if (listener != null) { - mWXLocationListeners.add(listener); - } - return; - } catch (JSONException e) { - WXLogUtils.e(TAG, e); - } - } - Map options = new HashMap<>(); - options.put(ERROR_CODE, ErrorCode.PARAMS_ERROR); - options.put(ERROR_MSG, ErrorMsg.PARAMS_ERROR); - if (mWXSDKInstance != null) { - new SimpleJSCallback(mWXSDKInstance.getInstanceId(), errorCallback).invoke(options); - } - } - - private WXLocationListener findLocation(String watchId, String sucCallback, String errorCallback, boolean enableHighAccuracy, boolean enableAddress) { - WXLogUtils.d(TAG, "into--[findLocation] mWatchId:" + watchId + "\nsuccessCallback:" + sucCallback + "\nerrorCallback:" + errorCallback + "\nenableHighAccuracy:" + enableHighAccuracy + "\nmEnableAddress:" + enableAddress); - - if (mLocationManager == null) { - mLocationManager = (LocationManager) mWXSDKInstance.getContext().getSystemService(Context.LOCATION_SERVICE); - } - Criteria criteria = new Criteria(); - if (enableHighAccuracy) { - criteria.setAccuracy(Criteria.ACCURACY_COARSE); - } - //String provider = locationManager.getBestProvider(criteria, false); - if (ActivityCompat.checkSelfPermission(mWXSDKInstance.getContext(), Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(mWXSDKInstance.getContext(), Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { - WXLocationListener WXLocationListener = new WXLocationListener(mLocationManager, mWXSDKInstance, watchId, sucCallback, errorCallback, enableAddress); - if (mLocationManager.getAllProviders().contains(LocationManager.GPS_PROVIDER)) { - mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, MIN_TIME, MIN_DISTANCE, WXLocationListener); - } - if (mLocationManager.getAllProviders().contains(LocationManager.NETWORK_PROVIDER)) { - mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, MIN_TIME, MIN_DISTANCE, WXLocationListener); - } - return WXLocationListener; - } else { - Map options = new HashMap<>(); - options.put(ERROR_CODE, ErrorCode.NO_PERMISSION_ERROR); - options.put(ERROR_MSG, ErrorMsg.NO_PERMISSION_ERROR); - if (mWXSDKInstance != null) { - new SimpleJSCallback(mWXSDKInstance.getInstanceId(), errorCallback).invoke(options); - } - } - return null; - } - - @Override - public void watchPosition(final String successCallback, final String errorCallback, final String params) { - WXLogUtils.d("into--[watchPosition] successCallback:" + successCallback + " errorCallback:" + errorCallback + "\nparams:" + params); - if (!TextUtils.isEmpty(params)) { - try { - JSONObject jsObj = new JSONObject(params); - boolean enableHighAccuracy = jsObj.optBoolean("enableHighAccuracy"); - boolean enableAddress = jsObj.optBoolean("address"); - - String id = UUID.randomUUID().toString(); - WXLocationListener listener = findLocation(id, successCallback, errorCallback, enableHighAccuracy, enableAddress); - if (listener != null) { - mRegisterSucCallbacks.put(id, listener); - } - return; - } catch (JSONException e) { - WXLogUtils.e(TAG, e); - } - } - Map options = new HashMap<>(); - options.put(ERROR_CODE, ErrorCode.PARAMS_ERROR); - options.put(ERROR_MSG, ErrorMsg.PARAMS_ERROR); - if (mWXSDKInstance != null) { - new SimpleJSCallback(mWXSDKInstance.getInstanceId(), errorCallback).invoke(options); - } - } - - @Override - public void clearWatch(String watchId) { - WXLogUtils.d("into--[clearWatch] mWatchId:" + watchId); - if (mWXSDKInstance == null || mWXSDKInstance.isDestroy() || mLocationManager == null) { - return; - } - if (ActivityCompat.checkSelfPermission(mWXSDKInstance.getContext(), Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(mWXSDKInstance.getContext(), Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { - WXLocationListener listener = mRegisterSucCallbacks.get(watchId); - if (listener != null) { - listener.destroy(); - mLocationManager.removeUpdates(listener); - } - mRegisterSucCallbacks.remove(watchId); - } - } - - @Override - public void destroy() { - WXLogUtils.d("into--[destroy]"); - if (mWXSDKInstance == null || mWXSDKInstance.isDestroy() || mLocationManager == null) { - return; - } - - if (mWXLocationListeners != null && mWXLocationListeners.size() > 0) { - if (ActivityCompat.checkSelfPermission(mWXSDKInstance.getContext(), Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(mWXSDKInstance.getContext(), Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { - for (WXLocationListener listener : mWXLocationListeners) { - if (listener != null) { - listener.destroy(); - mLocationManager.removeUpdates(listener); - } - } - mWXLocationListeners.clear(); - } - } - - if (mRegisterSucCallbacks != null && mRegisterSucCallbacks.size() > 0) { - Collection values = mRegisterSucCallbacks.values(); - if (ActivityCompat.checkSelfPermission(mWXSDKInstance.getContext(), Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(mWXSDKInstance.getContext(), Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { - for (WXLocationListener listener : values) { - listener.destroy(); - mLocationManager.removeUpdates(listener); - } - mRegisterSucCallbacks.clear(); - } - } - } - - static class WXLocationListener implements LocationListener, Handler.Callback { - - private Context mContext = null; - private String mWatchId; - private SimpleJSCallback mSucCallback = null; - private SimpleJSCallback mErrorCallback = null; - private boolean mEnableAddress; - private Handler mHandler; - private LocationManager mLocationManager; - - private WXLocationListener(LocationManager locationManager, WXSDKInstance instance, String watchId, String sucCallback, String errorCallback, boolean enableAddress) { - this.mWatchId = watchId; - if (instance != null) { - this.mSucCallback = new SimpleJSCallback(instance.getInstanceId(), sucCallback); - this.mErrorCallback = new SimpleJSCallback(instance.getInstanceId(), errorCallback); - mContext = instance.getContext(); - } - this.mEnableAddress = enableAddress; - mHandler = new Handler(this); - mLocationManager = locationManager; - mHandler.sendEmptyMessageDelayed(TIME_OUT_WHAT, GPS_TIMEOUT); - } - - @Override - public void onLocationChanged(Location location) { - mHandler.removeMessages(TIME_OUT_WHAT); - WXLogUtils.d(TAG, "into--[onLocationChanged] location:" + location == null ? "Location is NULL!" : location.toString()); - - if (location != null) { - Map result = new HashMap<>(); - Map coords = new HashMap<>(); - double longitude = location.getLongitude(); - double latitude = location.getLatitude(); - coords.put("longitude", longitude); - coords.put("latitude", latitude); - coords.put("altitude", location.getAltitude()); - coords.put("accuracy", location.getAccuracy()); - coords.put("heading", location.getBearing()); - coords.put("speed", location.getSpeed()); - result.put(COORDS, coords); - - // 行政区域 - if (mEnableAddress) { - Address addr = getAddress(latitude, longitude); - Map address = new HashMap<>(); - if (addr != null) { - address.put("country", addr.getCountryName()); - address.put("province", addr.getAdminArea()); - address.put("city", addr.getLocality()); - address.put("cityCode", addr.getPostalCode()); - address.put("area", addr.getSubLocality()); - address.put("road", addr.getThoroughfare()); - // 其中getAddressLine(0)表示国家,getAddressLine(1)表示精确到某个区,getAddressLine(2)表示精确到具体的街 - StringBuilder sb = new StringBuilder(); - for (int i = 1; i <= 2; i++) { - if (!TextUtils.isEmpty(addr.getAddressLine(i))) { //防止null导致的拼接错误 - sb.append(addr.getAddressLine(i)); - } - } - address.put("addressLine", sb.toString()); - } - result.put(ADDRESS, address); - } - result.put(ERROR_CODE, ErrorCode.SUCCESS); - result.put(ERROR_MSG, ErrorMsg.SUCCESS); - if (!TextUtils.isEmpty(mWatchId)) { - result.put(WATCH_ID, mWatchId); - } - - if (mSucCallback != null) { - boolean isKeepAlive = TextUtils.isEmpty(mWatchId) ? false : true; - if (isKeepAlive) { - mSucCallback.invokeAndKeepAlive(result); - } else { - mSucCallback.invoke(result); - } - } - } else { - Map options = new HashMap<>(); - options.put(ERROR_CODE, ErrorCode.LOCATION_ERROR); - options.put(ERROR_MSG, ErrorMsg.LOCATION_ERROR); - if (!TextUtils.isEmpty(mWatchId)) { - options.put(WATCH_ID, mWatchId); - } - if (mErrorCallback != null) { - boolean isKeepAlive = TextUtils.isEmpty(mWatchId) ? false : true; - if (isKeepAlive) { - mErrorCallback.invokeAndKeepAlive(options); - } else { - mErrorCallback.invoke(options); - } - } - } - if (TextUtils.isEmpty(mWatchId) && mContext != null) { - if (mLocationManager != null && ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { - destroy(); - mLocationManager.removeUpdates(this); - } - } - } - - @Override - public void onStatusChanged(String provider, int status, Bundle extras) { - WXLogUtils.i(TAG, "into--[onStatusChanged] provider:" + provider + " status:" + status); - } - - @Override - public void onProviderEnabled(String provider) { - WXLogUtils.i(TAG, "into--[onProviderEnabled] provider:" + provider); - } - - @Override - public void onProviderDisabled(String provider) { - WXLogUtils.i(TAG, "into--[onProviderDisabled] provider:" + provider); - } - - @Override - public boolean handleMessage(Message msg) { - if (msg.what == TIME_OUT_WHAT) { - WXLogUtils.d(TAG, "into--[handleMessage] Location Time Out!"); - if (mContext == null || mLocationManager == null) { - return false; - } - if (ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) { - mLocationManager.removeUpdates(this); - } - Map options = new HashMap<>(); - options.put(ERROR_CODE, ErrorCode.LOCATION_TIME_OUT); - options.put(ERROR_MSG, ErrorMsg.LOCATION_TIME_OUT); - if (!TextUtils.isEmpty(mWatchId)) { - options.put(WATCH_ID, mWatchId); - } - if (mErrorCallback != null) { - mErrorCallback.invoke(options); - } - return true; - } - return false; - } - - /** - * get address info - */ - private Address getAddress(double latitude, double longitude) { - WXLogUtils.d(TAG, "into--[getAddress] latitude:" + latitude + " longitude:" + longitude); - try { - if (mContext == null) { - return null; - } - Geocoder gc = new Geocoder(mContext); - List

list = gc.getFromLocation(latitude, longitude, 1); - if (list != null && list.size() > 0) { - return list.get(0); - } - } catch (Exception e) { - WXLogUtils.e(TAG, e); - } - return null; - } - - public void destroy() { - if (mHandler != null) { - mHandler.removeMessages(TIME_OUT_WHAT); - mContext = null; - } - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/location/ILocatable.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/location/ILocatable.java deleted file mode 100644 index 09034e83..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/location/ILocatable.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.extend.module.location; - -import com.taobao.weex.WXSDKInstance; - -/** - */ -public interface ILocatable { - - int REQUEST_CUR_PERMISSION_CODE = 0x12; - int REQUEST_WATCH_PERMISSION_CODE = 0x13; - - - String REQUEST_PERMISSION_CODE = "requestCode"; - String ERROR_CODE = "errorCode"; - String ERROR_MSG = "errorMsg"; - String COORDS = "coords"; - String ADDRESS = "address"; - String WATCH_ID = "watchId"; - - interface ErrorCode { - - int SUCCESS = 90000; - int NO_PERMISSION_ERROR = 90001; - int PARAMS_ERROR = 90002; - int LOCATION_ERROR = 9003; - int LOCATION_TIME_OUT = 9004; - } - - interface ErrorMsg { - - String NO_PERMISSION_ERROR = "NO PERMISSION"; - String PARAMS_ERROR = "PARAMS_ERROR"; - String LOCATION_ERROR = "LOCATION_FAIL"; - String LOCATION_TIME_OUT = "LOCATION_TIME_OUT"; - String SUCCESS = "SUCCESS"; - - } - - /** - * Get current location information, the callback only once - * - * @param successCallback success callback function id. - * @param errorCallback error callback function id.(example:no persimmon) - * @param params JSON parameter(example:address). - */ - void getCurrentPosition(String successCallback, String errorCallback, String params); - - /** - * register global location listener,if location change,you will be notify. - * - * @param successCallback location success callback function id. - * @param errorCallback location error callback (example:no persimmon). - * @param params JSON parameter(example:address). - */ - void watchPosition(String successCallback, String errorCallback, String params); - - /** - * remove global location listener. - * - * @param watchId register id,you can get from watchPosition method。 - */ - void clearWatch(String watchId); - - /** - * set instance - * - * @param instance instance - */ - void setWXSDKInstance(WXSDKInstance instance); - - /** - * this method will call when module destroy. - */ - void destroy(); - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/location/LocationFactory.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/location/LocationFactory.java deleted file mode 100644 index 055dfc93..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/module/location/LocationFactory.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.extend.module.location; - -import com.taobao.weex.WXSDKInstance; - -/** - */ -public class LocationFactory { - - public static ILocatable getLocationProvider(WXSDKInstance context){ - return new DefaultLocation(context); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/view/WXMaskView.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/view/WXMaskView.java deleted file mode 100644 index 5ea766c4..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/extend/view/WXMaskView.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.extend.view; - -import android.content.Context; - -import com.taobao.weex.ui.view.WXFrameLayout; - -/** - * Created by lixinke on 2016/12/26. - */ - -public class WXMaskView extends WXFrameLayout { - - public WXMaskView(Context context) { - super(context); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/HotRefreshManager.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/HotRefreshManager.java deleted file mode 100644 index 5c5dbb57..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/HotRefreshManager.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.https; - -import android.os.Handler; -import android.text.TextUtils; -import android.util.Log; - -import com.alibaba.weex.constants.Constants; -import com.squareup.okhttp.OkHttpClient; -import com.squareup.okhttp.Request; -import com.squareup.okhttp.Response; -import com.squareup.okhttp.ws.WebSocket; -import com.squareup.okhttp.ws.WebSocketCall; -import com.squareup.okhttp.ws.WebSocketListener; - -import java.io.IOException; - -import okio.Buffer; -import okio.BufferedSource; - -/** - */ -public class HotRefreshManager { - - private static final String TAG = "HotRefreshManager"; - - private static HotRefreshManager hotRefreshInstance = new HotRefreshManager(); - private WebSocket mWebSocket = null; - private Handler mHandler = null; - - private HotRefreshManager() { - } - - public static HotRefreshManager getInstance() { - return hotRefreshInstance; - } - - public void setHandler(Handler handler) { - mHandler = handler; - } - - public boolean disConnect() { - if (mWebSocket != null) { - try { - mWebSocket.close(1000, "activity finish!"); - } catch (Exception e) { - e.printStackTrace(); - } - } - return true; - } - - public boolean connect(String url) { - OkHttpClient httpClient = new OkHttpClient(); - Request request = new Request.Builder().url(url).addHeader("sec-websocket-protocol", "echo-protocol").build(); - WebSocketCall.create(httpClient, request).enqueue(new WXWebSocketListener(url)); - - return true; - } - - class WXWebSocketListener implements WebSocketListener { - - private String mUrl; - - WXWebSocketListener(String url) { - mUrl = url; - } - - @Override - public void onOpen(WebSocket webSocket, Request request, Response response) throws IOException { - mWebSocket = webSocket; - } - - @Override - public void onMessage(BufferedSource payload, WebSocket.PayloadType type) throws IOException { - if (type == WebSocket.PayloadType.TEXT) { - String temp = payload.readUtf8(); - Log.e(TAG, "into--[onMessage] msg:" + temp); - payload.close(); - - if (TextUtils.equals("refresh", temp) && mHandler != null) { - mHandler.obtainMessage(Constants.HOT_REFRESH_REFRESH, 0, 0, mUrl).sendToTarget(); - } - } - } - - @Override - public void onPong(Buffer payload) { - - } - - @Override - public void onClose(int code, String reason) { - mWebSocket = null; - } - - @Override - public void onFailure(IOException e) { - mWebSocket = null; - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/WXHttpManager.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/WXHttpManager.java deleted file mode 100644 index a47bbb04..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/WXHttpManager.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.https; - -import android.os.Handler; -import android.os.Message; - -public class WXHttpManager { - - private static WXHttpManager wxHttpManager; - private WXOkHttpDispatcher mOkHttpDispatcher; - private Handler mHandler = new Handler(new Handler.Callback() { - - @Override - public boolean handleMessage(Message msg) { - WXHttpTask httpTask = (WXHttpTask) msg.obj; - if (httpTask == null || httpTask.requestListener == null) { - return true; - } - WXHttpResponse response = httpTask.response; - if (response == null || response.code >= 300) { - httpTask.requestListener.onError(httpTask); - } else { - httpTask.requestListener.onSuccess(httpTask); - } - return true; - } - }); - - private WXHttpManager() { - mOkHttpDispatcher = new WXOkHttpDispatcher(mHandler); - } - - public static WXHttpManager getInstance() { - if (wxHttpManager == null) { - wxHttpManager = new WXHttpManager(); - } - return wxHttpManager; - } - - public void sendRequest(WXHttpTask httpTask) { - mOkHttpDispatcher.dispatchSubmit(httpTask); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/WXHttpResponse.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/WXHttpResponse.java deleted file mode 100644 index bcced314..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/WXHttpResponse.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.https; - -public class WXHttpResponse { - - public int code; - public byte[] data; -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/WXHttpTask.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/WXHttpTask.java deleted file mode 100644 index c1e05596..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/WXHttpTask.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.https; - -public class WXHttpTask { - - public String url; - public WXRequestListener requestListener; - public WXHttpResponse response; -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/WXOkHttpDispatcher.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/WXOkHttpDispatcher.java deleted file mode 100644 index 515a63ba..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/WXOkHttpDispatcher.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.https; - -import android.os.Handler; -import android.os.HandlerThread; -import android.os.Looper; -import android.os.Message; - -import com.squareup.okhttp.OkHttpClient; -import com.squareup.okhttp.Request; -import com.squareup.okhttp.Response; - -import java.util.concurrent.TimeUnit; - -public class WXOkHttpDispatcher { - - static final int DEFAULT_READ_TIMEOUT_MILLIS = 20 * 1000; // 20s - static final int DEFAULT_WRITE_TIMEOUT_MILLIS = 20 * 1000; // 20s - static final int DEFAULT_CONNECT_TIMEOUT_MILLIS = 15 * 1000; // 15s - private static final int SUBMIT = 0x01; - private final OkHttpClient mOkHttpClient; - private final HandlerThread mDispatcherThread; - private Handler mUiHandler; - private DispatcherHandler mDispatcherHandler; - - public WXOkHttpDispatcher(Handler handler) { - mUiHandler = handler; - mOkHttpClient = defaultOkHttpClient(); - mDispatcherThread = new HandlerThread("dispatcherThread"); - mDispatcherThread.start(); - mDispatcherHandler = new DispatcherHandler(mDispatcherThread.getLooper(), mOkHttpClient, mUiHandler); - } - - private static OkHttpClient defaultOkHttpClient() { - OkHttpClient client = new OkHttpClient(); - client.setConnectTimeout(DEFAULT_CONNECT_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS); - client.setReadTimeout(DEFAULT_READ_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS); - client.setWriteTimeout(DEFAULT_WRITE_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS); - return client; - } - - public void dispatchSubmit(WXHttpTask task) { - mDispatcherHandler.sendMessage(mDispatcherHandler.obtainMessage(SUBMIT, task)); - } - - private static class DispatcherHandler extends Handler { - - private OkHttpClient mOkHttpClient; - private Handler mUiHandler; - - public DispatcherHandler(Looper looper, OkHttpClient okHttpClient, Handler handler) { - super(looper); - mOkHttpClient = okHttpClient; - mUiHandler = handler; - } - - @Override - public void handleMessage(Message msg) { - int what = msg.what; - - switch (what) { - case SUBMIT: { - WXHttpTask task = (WXHttpTask) msg.obj; - Request.Builder builder = new Request.Builder().header("User-Agent", "WeAppPlusPlayground/1.0").url(task.url); - WXHttpResponse httpResponse = new WXHttpResponse(); - try { - Response response = mOkHttpClient.newCall(builder.build()).execute(); - httpResponse.code = response.code(); - httpResponse.data = response.body().bytes(); - task.response = httpResponse; - mUiHandler.sendMessage(mUiHandler.obtainMessage(1, task)); - } catch (Throwable e) { - e.printStackTrace(); - httpResponse.code = 1000; - mUiHandler.sendMessage(mUiHandler.obtainMessage(1, task)); - } - } - break; - - default: - break; - } - } - - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/WXRequestListener.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/WXRequestListener.java deleted file mode 100644 index 933eb11f..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/https/WXRequestListener.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package com.alibaba.weex.https; - -public interface WXRequestListener { - - void onSuccess(WXHttpTask task); - - void onError(WXHttpTask task); -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/util/CoverageDataDumper.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/util/CoverageDataDumper.java deleted file mode 100644 index adc04766..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/util/CoverageDataDumper.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package com.alibaba.weex.util; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; - -import com.taobao.weex.utils.WXLogUtils; - -import java.io.File; - -public class CoverageDataDumper extends BroadcastReceiver { - @Override - public void onReceive(Context context, Intent intent) { -// JacocoCodeCoverage.dumpCodeCoverage(context); - JacocoCodeCoverage.dumpCodeCoverageByJacoco(context); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/util/JacocoCodeCoverage.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/util/JacocoCodeCoverage.java deleted file mode 100644 index bcef8561..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java/com/alibaba/weex/util/JacocoCodeCoverage.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package com.alibaba.weex.util; - -import android.content.Context; -import android.util.Log; - -import com.taobao.weex.utils.WXLogUtils; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.lang.reflect.InvocationTargetException; - -public class JacocoCodeCoverage { - public static final String TAG = "CoverageDataDumper"; - - public static void dumpCodeCoverage(Context context){ - - WXLogUtils.d( TAG, "CoverageDataDumper BroadcastReceiver " ); - - try { - Class - .forName( "com.vladium.emma.rt.RT" ) - .getMethod( "dumpCoverageData", File.class, boolean.class, boolean.class ) - .invoke( null, - new File(context.getExternalFilesDir( null ) + "/coverage.ec" ), - true, // merge - false // stopDataCollection - ); - WXLogUtils.d( TAG, "generateCoverageReport: ok! " + - "file in [Android/data/com.alibaba.weex/files]" ); - } - - catch ( Exception e ) { - WXLogUtils.e( TAG, e ); - } - } - - public static void dumpCodeCoverageByJacoco(Context context){ - - WXLogUtils.d(TAG, "generateCoverageReport()"); - - java.io.File coverageFile = new File(context.getExternalFilesDir( null ) + "/coverage.ec"); - OutputStream out = null; - // We may use this if we want to avoid refecltion and we include - // emma.jar - //RT.dumpCoverageData(coverageFile, false, false); - // Use reflection to call emma dump coverage method, to avoid - // always statically compiling against emma jar - try { - Object agent = Class.forName("org.jacoco.agent.rt.RT") - .getMethod("getAgent") - .invoke(null); - out = new FileOutputStream(coverageFile,false); - out.write((byte[]) agent.getClass().getMethod("getExecutionData", boolean.class) - .invoke(agent, false)); - WXLogUtils.d( TAG, "generateCoverageReport: ok! " + - "file in [Android/data/com.alibaba.weex/files]" ); - - } catch (Exception e) { - Log.e(TAG, e.toString()); - } finally { - if (out != null) { - try { - out.close(); - } catch (IOException e) { - Log.e(TAG, e.getMessage().toString()); - } - } - } - } -} - - diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/BarcodeFormat.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/BarcodeFormat.java deleted file mode 100755 index 7f6a0ef5..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/BarcodeFormat.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -/** - * Enumerates barcode formats known to this package. Please keep alphabetized. - * - * @author Sean Owen - */ -public enum BarcodeFormat { - - /** Aztec 2D barcode format. */ - AZTEC, - - /** CODABAR 1D format. */ - CODABAR, - - /** Code 39 1D format. */ - CODE_39, - - /** Code 93 1D format. */ - CODE_93, - - /** Code 128 1D format. */ - CODE_128, - - /** Data Matrix 2D barcode format. */ - DATA_MATRIX, - - /** EAN-8 1D format. */ - EAN_8, - - /** EAN-13 1D format. */ - EAN_13, - - /** ITF (Interleaved Two of Five) 1D format. */ - ITF, - - /** MaxiCode 2D barcode format. */ - MAXICODE, - - /** PDF417 format. */ - PDF_417, - - /** QR Code 2D barcode format. */ - QR_CODE, - - /** RSS 14 */ - RSS_14, - - /** RSS EXPANDED */ - RSS_EXPANDED, - - /** UPC-A 1D format. */ - UPC_A, - - /** UPC-E 1D format. */ - UPC_E, - - /** UPC/EAN extension format. Not a stand-alone format. */ - UPC_EAN_EXTENSION - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/Binarizer.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/Binarizer.java deleted file mode 100755 index 02af0832..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/Binarizer.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -import com.google.zxing.common.BitArray; -import com.google.zxing.common.BitMatrix; - -/** - * This class hierarchy provides a set of methods to convert luminance data to 1 bit data. - * It allows the algorithm to vary polymorphically, for example allowing a very expensive - * thresholding technique for servers and a fast one for mobile. It also permits the implementation - * to vary, e.g. a JNI version for Android and a Java fallback version for other platforms. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public abstract class Binarizer { - - private final LuminanceSource source; - - protected Binarizer(LuminanceSource source) { - this.source = source; - } - - public final LuminanceSource getLuminanceSource() { - return source; - } - - /** - * Converts one row of luminance data to 1 bit data. May actually do the conversion, or return - * cached data. Callers should assume this method is expensive and call it as seldom as possible. - * This method is intended for decoding 1D barcodes and may choose to apply sharpening. - * For callers which only examine one row of pixels at a time, the same BitArray should be reused - * and passed in with each call for performance. However it is legal to keep more than one row - * at a time if needed. - * - * @param y The row to fetch, which must be in [0, bitmap height) - * @param row An optional preallocated array. If null or too small, it will be ignored. - * If used, the Binarizer will call BitArray.clear(). Always use the returned object. - * @return The array of bits for this row (true means black). - * @throws NotFoundException if row can't be binarized - */ - public abstract BitArray getBlackRow(int y, BitArray row) throws NotFoundException; - - /** - * Converts a 2D array of luminance data to 1 bit data. As above, assume this method is expensive - * and do not call it repeatedly. This method is intended for decoding 2D barcodes and may or - * may not apply sharpening. Therefore, a row from this matrix may not be identical to one - * fetched using getBlackRow(), so don't mix and match between them. - * - * @return The 2D array of bits for the image (true means black). - * @throws NotFoundException if image can't be binarized to make a matrix - */ - public abstract BitMatrix getBlackMatrix() throws NotFoundException; - - /** - * Creates a new object with the same type as this Binarizer implementation, but with pristine - * state. This is needed because Binarizer implementations may be stateful, e.g. keeping a cache - * of 1 bit data. See Effective Java for why we can't use Java's clone() method. - * - * @param source The LuminanceSource this Binarizer will operate on. - * @return A new concrete Binarizer implementation object. - */ - public abstract Binarizer createBinarizer(LuminanceSource source); - - public final int getWidth() { - return source.getWidth(); - } - - public final int getHeight() { - return source.getHeight(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/BinaryBitmap.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/BinaryBitmap.java deleted file mode 100755 index c1ef8a13..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/BinaryBitmap.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -import com.google.zxing.common.BitArray; -import com.google.zxing.common.BitMatrix; - -/** - * This class is the core bitmap class used by ZXing to represent 1 bit data. Reader objects - * accept a BinaryBitmap and attempt to decode it. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class BinaryBitmap { - - private final Binarizer binarizer; - private BitMatrix matrix; - - public BinaryBitmap(Binarizer binarizer) { - if (binarizer == null) { - throw new IllegalArgumentException("Binarizer must be non-null."); - } - this.binarizer = binarizer; - } - - /** - * @return The width of the bitmap. - */ - public int getWidth() { - return binarizer.getWidth(); - } - - /** - * @return The height of the bitmap. - */ - public int getHeight() { - return binarizer.getHeight(); - } - - /** - * Converts one row of luminance data to 1 bit data. May actually do the conversion, or return - * cached data. Callers should assume this method is expensive and call it as seldom as possible. - * This method is intended for decoding 1D barcodes and may choose to apply sharpening. - * - * @param y The row to fetch, which must be in [0, bitmap height) - * @param row An optional preallocated array. If null or too small, it will be ignored. - * If used, the Binarizer will call BitArray.clear(). Always use the returned object. - * @return The array of bits for this row (true means black). - * @throws NotFoundException if row can't be binarized - */ - public BitArray getBlackRow(int y, BitArray row) throws NotFoundException { - return binarizer.getBlackRow(y, row); - } - - /** - * Converts a 2D array of luminance data to 1 bit. As above, assume this method is expensive - * and do not call it repeatedly. This method is intended for decoding 2D barcodes and may or - * may not apply sharpening. Therefore, a row from this matrix may not be identical to one - * fetched using getBlackRow(), so don't mix and match between them. - * - * @return The 2D array of bits for the image (true means black). - * @throws NotFoundException if image can't be binarized to make a matrix - */ - public BitMatrix getBlackMatrix() throws NotFoundException { - // The matrix is created on demand the first time it is requested, then cached. There are two - // reasons for this: - // 1. This work will never be done if the caller only installs 1D Reader objects, or if a - // 1D Reader finds a barcode before the 2D Readers run. - // 2. This work will only be done once even if the caller installs multiple 2D Readers. - if (matrix == null) { - matrix = binarizer.getBlackMatrix(); - } - return matrix; - } - - /** - * @return Whether this bitmap can be cropped. - */ - public boolean isCropSupported() { - return binarizer.getLuminanceSource().isCropSupported(); - } - - /** - * Returns a new object with cropped image data. Implementations may keep a reference to the - * original data rather than a copy. Only callable if isCropSupported() is true. - * - * @param left The left coordinate, which must be in [0,getWidth()) - * @param top The top coordinate, which must be in [0,getHeight()) - * @param width The width of the rectangle to crop. - * @param height The height of the rectangle to crop. - * @return A cropped version of this object. - */ - public BinaryBitmap crop(int left, int top, int width, int height) { - LuminanceSource newSource = binarizer.getLuminanceSource().crop(left, top, width, height); - return new BinaryBitmap(binarizer.createBinarizer(newSource)); - } - - /** - * @return Whether this bitmap supports counter-clockwise rotation. - */ - public boolean isRotateSupported() { - return binarizer.getLuminanceSource().isRotateSupported(); - } - - /** - * Returns a new object with rotated image data by 90 degrees counterclockwise. - * Only callable if {@link #isRotateSupported()} is true. - * - * @return A rotated version of this object. - */ - public BinaryBitmap rotateCounterClockwise() { - LuminanceSource newSource = binarizer.getLuminanceSource().rotateCounterClockwise(); - return new BinaryBitmap(binarizer.createBinarizer(newSource)); - } - - /** - * Returns a new object with rotated image data by 45 degrees counterclockwise. - * Only callable if {@link #isRotateSupported()} is true. - * - * @return A rotated version of this object. - */ - public BinaryBitmap rotateCounterClockwise45() { - LuminanceSource newSource = binarizer.getLuminanceSource().rotateCounterClockwise45(); - return new BinaryBitmap(binarizer.createBinarizer(newSource)); - } - - @Override - public String toString() { - try { - return getBlackMatrix().toString(); - } catch (NotFoundException e) { - return ""; - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/ChecksumException.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/ChecksumException.java deleted file mode 100755 index c5acbe3e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/ChecksumException.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -/** - * Thrown when a barcode was successfully detected and decoded, but - * was not returned because its checksum feature failed. - * - * @author Sean Owen - */ -public final class ChecksumException extends ReaderException { - - private static final ChecksumException INSTANCE = new ChecksumException(); - static { - INSTANCE.setStackTrace(NO_TRACE); // since it's meaningless - } - - private ChecksumException() { - // do nothing - } - - private ChecksumException(Throwable cause) { - super(cause); - } - - public static ChecksumException getChecksumInstance() { - return isStackTrace ? new ChecksumException() : INSTANCE; - } - - public static ChecksumException getChecksumInstance(Throwable cause) { - return isStackTrace ? new ChecksumException(cause) : INSTANCE; - } -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/DecodeHintType.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/DecodeHintType.java deleted file mode 100755 index a6658695..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/DecodeHintType.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -import java.util.List; - -/** - * Encapsulates a type of hint that a caller may pass to a barcode reader to help it - * more quickly or accurately decode it. It is up to implementations to decide what, - * if anything, to do with the information that is supplied. - * - * @author Sean Owen - * @author dswitkin@google.com (Daniel Switkin) - * @see Reader#decode(BinaryBitmap,java.util.Map) - */ -public enum DecodeHintType { - - /** - * Unspecified, application-specific hint. Maps to an unspecified {@link Object}. - */ - OTHER(Object.class), - - /** - * Image is a pure monochrome image of a barcode. Doesn't matter what it maps to; - * use {@link Boolean#TRUE}. - */ - PURE_BARCODE(Void.class), - - /** - * Image is known to be of one of a few possible formats. - * Maps to a {@link List} of {@link BarcodeFormat}s. - */ - POSSIBLE_FORMATS(List.class), - - /** - * Spend more time to try to find a barcode; optimize for accuracy, not speed. - * Doesn't matter what it maps to; use {@link Boolean#TRUE}. - */ - TRY_HARDER(Void.class), - - /** - * Specifies what character encoding to use when decoding, where applicable (type String) - */ - CHARACTER_SET(String.class), - - /** - * Allowed lengths of encoded data -- reject anything else. Maps to an {@code int[]}. - */ - ALLOWED_LENGTHS(int[].class), - - /** - * Assume Code 39 codes employ a check digit. Doesn't matter what it maps to; - * use {@link Boolean#TRUE}. - */ - ASSUME_CODE_39_CHECK_DIGIT(Void.class), - - /** - * Assume the barcode is being processed as a GS1 barcode, and modify behavior as needed. - * For example this affects FNC1 handling for Code 128 (aka GS1-128). Doesn't matter what it maps to; - * use {@link Boolean#TRUE}. - */ - ASSUME_GS1(Void.class), - - /** - * If true, return the start and end digits in a Codabar barcode instead of stripping them. They - * are alpha, whereas the rest are numeric. By default, they are stripped, but this causes them - * to not be. Doesn't matter what it maps to; use {@link Boolean#TRUE}. - */ - RETURN_CODABAR_START_END(Void.class), - - /** - * The caller needs to be notified via callback when a possible {@link ResultPoint} - * is found. Maps to a {@link ResultPointCallback}. - */ - NEED_RESULT_POINT_CALLBACK(ResultPointCallback.class), - - - /** - * Allowed extension lengths for EAN or UPC barcodes. Other formats will ignore this. - * Maps to an {@code int[]} of the allowed extension lengths, for example [2], [5], or [2, 5]. - * If it is optional to have an extension, do not set this hint. If this is set, - * and a UPC or EAN barcode is found but an extension is not, then no result will be returned - * at all. - */ - ALLOWED_EAN_EXTENSIONS(int[].class), - - // End of enumeration values. - ; - - /** - * Data type the hint is expecting. - * Among the possible values the {@link Void} stands out as being used for - * hints that do not expect a value to be supplied (flag hints). Such hints - * will possibly have their value ignored, or replaced by a - * {@link Boolean#TRUE}. Hint suppliers should probably use - * {@link Boolean#TRUE} as directed by the actual hint documentation. - */ - private final Class valueType; - - DecodeHintType(Class valueType) { - this.valueType = valueType; - } - - public Class getValueType() { - return valueType; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/Dimension.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/Dimension.java deleted file mode 100755 index b3a2486e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/Dimension.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 2012 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -/** - * Simply encapsulates a width and height. - */ -public final class Dimension { - - private final int width; - private final int height; - - public Dimension(int width, int height) { - if (width < 0 || height < 0) { - throw new IllegalArgumentException(); - } - this.width = width; - this.height = height; - } - - public int getWidth() { - return width; - } - - public int getHeight() { - return height; - } - - @Override - public boolean equals(Object other) { - if (other instanceof Dimension) { - Dimension d = (Dimension) other; - return width == d.width && height == d.height; - } - return false; - } - - @Override - public int hashCode() { - return width * 32713 + height; - } - - @Override - public String toString() { - return width + "x" + height; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/EncodeHintType.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/EncodeHintType.java deleted file mode 100755 index eb7938e4..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/EncodeHintType.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -/** - * These are a set of hints that you may pass to Writers to specify their behavior. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public enum EncodeHintType { - - /** - * Specifies what degree of error correction to use, for example in QR Codes. - * Type depends on the encoder. For example for QR codes it's type - * {@link com.google.zxing.qrcode.decoder.ErrorCorrectionLevel ErrorCorrectionLevel}. - * For Aztec it is of type {@link Integer}, representing the minimal percentage of error correction words. - * For PDF417 it is of type {@link Integer}, valid values being 0 to 8. - * In all cases, it can also be a {@link String} representation of the desired value as well. - * Note: an Aztec symbol should have a minimum of 25% EC words. - */ - ERROR_CORRECTION, - - /** - * Specifies what character encoding to use where applicable (type {@link String}) - */ - CHARACTER_SET, - - /** - * Specifies the matrix shape for Data Matrix (type {@link com.google.zxing.datamatrix.encoder.SymbolShapeHint}) - */ - DATA_MATRIX_SHAPE, - - /** - * Specifies a minimum barcode size (type {@link Dimension}). Only applicable to Data Matrix now. - * - * @deprecated use width/height params in - * {@link com.google.zxing.datamatrix.DataMatrixWriter#encode(String, BarcodeFormat, int, int)} - */ - @Deprecated - MIN_SIZE, - - /** - * Specifies a maximum barcode size (type {@link Dimension}). Only applicable to Data Matrix now. - * - * @deprecated without replacement - */ - @Deprecated - MAX_SIZE, - - /** - * Specifies margin, in pixels, to use when generating the barcode. The meaning can vary - * by format; for example it controls margin before and after the barcode horizontally for - * most 1D formats. (Type {@link Integer}, or {@link String} representation of the integer value). - */ - MARGIN, - - /** - * Specifies whether to use compact mode for PDF417 (type {@link Boolean}, or "true" or "false" - * {@link String} value). - */ - PDF417_COMPACT, - - /** - * Specifies what compaction mode to use for PDF417 (type - * {@link com.google.zxing.pdf417.encoder.Compaction Compaction} or {@link String} value of one of its - * enum values). - */ - PDF417_COMPACTION, - - /** - * Specifies the minimum and maximum number of rows and columns for PDF417 (type - * {@link com.google.zxing.pdf417.encoder.Dimensions Dimensions}). - */ - PDF417_DIMENSIONS, - - /** - * Specifies the required number of layers for an Aztec code. - * A negative number (-1, -2, -3, -4) specifies a compact Aztec code. - * 0 indicates to use the minimum number of layers (the default). - * A positive number (1, 2, .. 32) specifies a normal (non-compact) Aztec code. - * (Type {@link Integer}, or {@link String} representation of the integer value). - */ - AZTEC_LAYERS, -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/FormatException.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/FormatException.java deleted file mode 100755 index b046b822..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/FormatException.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -/** - * Thrown when a barcode was successfully detected, but some aspect of - * the content did not conform to the barcode's format rules. This could have - * been due to a mis-detection. - * - * @author Sean Owen - */ -public final class FormatException extends ReaderException { - - private static final FormatException INSTANCE = new FormatException(); - static { - INSTANCE.setStackTrace(NO_TRACE); // since it's meaningless - } - - private FormatException() { - } - - private FormatException(Throwable cause) { - super(cause); - } - - public static FormatException getFormatInstance() { - return isStackTrace ? new FormatException() : INSTANCE; - } - - public static FormatException getFormatInstance(Throwable cause) { - return isStackTrace ? new FormatException(cause) : INSTANCE; - } -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/InvertedLuminanceSource.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/InvertedLuminanceSource.java deleted file mode 100755 index edaa119b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/InvertedLuminanceSource.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -/** - * A wrapper implementation of {@link LuminanceSource} which inverts the luminances it returns -- black becomes - * white and vice versa, and each value becomes (255-value). - * - * @author Sean Owen - */ -public final class InvertedLuminanceSource extends LuminanceSource { - - private final LuminanceSource delegate; - - public InvertedLuminanceSource(LuminanceSource delegate) { - super(delegate.getWidth(), delegate.getHeight()); - this.delegate = delegate; - } - - @Override - public byte[] getRow(int y, byte[] row) { - row = delegate.getRow(y, row); - int width = getWidth(); - for (int i = 0; i < width; i++) { - row[i] = (byte) (255 - (row[i] & 0xFF)); - } - return row; - } - - @Override - public byte[] getMatrix() { - byte[] matrix = delegate.getMatrix(); - int length = getWidth() * getHeight(); - byte[] invertedMatrix = new byte[length]; - for (int i = 0; i < length; i++) { - invertedMatrix[i] = (byte) (255 - (matrix[i] & 0xFF)); - } - return invertedMatrix; - } - - @Override - public boolean isCropSupported() { - return delegate.isCropSupported(); - } - - @Override - public LuminanceSource crop(int left, int top, int width, int height) { - return new InvertedLuminanceSource(delegate.crop(left, top, width, height)); - } - - @Override - public boolean isRotateSupported() { - return delegate.isRotateSupported(); - } - - /** - * @return original delegate {@link LuminanceSource} since invert undoes itself - */ - @Override - public LuminanceSource invert() { - return delegate; - } - - @Override - public LuminanceSource rotateCounterClockwise() { - return new InvertedLuminanceSource(delegate.rotateCounterClockwise()); - } - - @Override - public LuminanceSource rotateCounterClockwise45() { - return new InvertedLuminanceSource(delegate.rotateCounterClockwise45()); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/LuminanceSource.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/LuminanceSource.java deleted file mode 100755 index 1946d023..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/LuminanceSource.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -/** - * The purpose of this class hierarchy is to abstract different bitmap implementations across - * platforms into a standard interface for requesting greyscale luminance values. The interface - * only provides immutable methods; therefore crop and rotation create copies. This is to ensure - * that one Reader does not modify the original luminance source and leave it in an unknown state - * for other Readers in the chain. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public abstract class LuminanceSource { - - private final int width; - private final int height; - - protected LuminanceSource(int width, int height) { - this.width = width; - this.height = height; - } - - /** - * Fetches one row of luminance data from the underlying platform's bitmap. Values range from - * 0 (black) to 255 (white). Because Java does not have an unsigned byte type, callers will have - * to bitwise and with 0xff for each value. It is preferable for implementations of this method - * to only fetch this row rather than the whole image, since no 2D Readers may be installed and - * getMatrix() may never be called. - * - * @param y The row to fetch, which must be in [0,getHeight()) - * @param row An optional preallocated array. If null or too small, it will be ignored. - * Always use the returned object, and ignore the .length of the array. - * @return An array containing the luminance data. - */ - public abstract byte[] getRow(int y, byte[] row); - - /** - * Fetches luminance data for the underlying bitmap. Values should be fetched using: - * {@code int luminance = array[y * width + x] & 0xff} - * - * @return A row-major 2D array of luminance values. Do not use result.length as it may be - * larger than width * height bytes on some platforms. Do not modify the contents - * of the result. - */ - public abstract byte[] getMatrix(); - - /** - * @return The width of the bitmap. - */ - public final int getWidth() { - return width; - } - - /** - * @return The height of the bitmap. - */ - public final int getHeight() { - return height; - } - - /** - * @return Whether this subclass supports cropping. - */ - public boolean isCropSupported() { - return false; - } - - /** - * Returns a new object with cropped image data. Implementations may keep a reference to the - * original data rather than a copy. Only callable if isCropSupported() is true. - * - * @param left The left coordinate, which must be in [0,getWidth()) - * @param top The top coordinate, which must be in [0,getHeight()) - * @param width The width of the rectangle to crop. - * @param height The height of the rectangle to crop. - * @return A cropped version of this object. - */ - public LuminanceSource crop(int left, int top, int width, int height) { - throw new UnsupportedOperationException("This luminance source does not support cropping."); - } - - /** - * @return Whether this subclass supports counter-clockwise rotation. - */ - public boolean isRotateSupported() { - return false; - } - - /** - * @return a wrapper of this {@code LuminanceSource} which inverts the luminances it returns -- black becomes - * white and vice versa, and each value becomes (255-value). - */ - public LuminanceSource invert() { - return new InvertedLuminanceSource(this); - } - - /** - * Returns a new object with rotated image data by 90 degrees counterclockwise. - * Only callable if {@link #isRotateSupported()} is true. - * - * @return A rotated version of this object. - */ - public LuminanceSource rotateCounterClockwise() { - throw new UnsupportedOperationException("This luminance source does not support rotation by 90 degrees."); - } - - /** - * Returns a new object with rotated image data by 45 degrees counterclockwise. - * Only callable if {@link #isRotateSupported()} is true. - * - * @return A rotated version of this object. - */ - public LuminanceSource rotateCounterClockwise45() { - throw new UnsupportedOperationException("This luminance source does not support rotation by 45 degrees."); - } - - @Override - public final String toString() { - byte[] row = new byte[width]; - StringBuilder result = new StringBuilder(height * (width + 1)); - for (int y = 0; y < height; y++) { - row = getRow(y, row); - for (int x = 0; x < width; x++) { - int luminance = row[x] & 0xFF; - char c; - if (luminance < 0x40) { - c = '#'; - } else if (luminance < 0x80) { - c = '+'; - } else if (luminance < 0xC0) { - c = '.'; - } else { - c = ' '; - } - result.append(c); - } - result.append('\n'); - } - return result.toString(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/MultiFormatReader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/MultiFormatReader.java deleted file mode 100755 index 33ad36af..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/MultiFormatReader.java +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Map; - -import com.google.zxing.aztec.AztecReader; -import com.google.zxing.datamatrix.DataMatrixReader; -import com.google.zxing.maxicode.MaxiCodeReader; -import com.google.zxing.oned.MultiFormatOneDReader; -import com.google.zxing.pdf417.PDF417Reader; -import com.google.zxing.qrcode.QRCodeReader; - -/** - * MultiFormatReader is a convenience class and the main entry point into the library for most uses. - * By default it attempts to decode all barcode formats that the library supports. Optionally, you - * can provide a hints object to request different behavior, for example only decoding QR codes. - * - * @author Sean Owen - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class MultiFormatReader implements Reader { - - private Map hints; - private Reader[] readers; - - /** - * This version of decode honors the intent of Reader.decode(BinaryBitmap) in that it - * passes null as a hint to the decoders. However, that makes it inefficient to call repeatedly. - * Use setHints() followed by decodeWithState() for continuous scan applications. - * - * @param image The pixel data to decode - * @return The contents of the image - * @throws NotFoundException Any errors which occurred - */ - @Override - public Result decode(BinaryBitmap image) throws NotFoundException { - setHints(null); - return decodeInternal(image); - } - - /** - * Decode an image using the hints provided. Does not honor existing state. - * - * @param image The pixel data to decode - * @param hints The hints to use, clearing the previous state. - * @return The contents of the image - * @throws NotFoundException Any errors which occurred - */ - @Override - public Result decode(BinaryBitmap image, Map hints) throws NotFoundException { - setHints(hints); - return decodeInternal(image); - } - - /** - * Decode an image using the state set up by calling setHints() previously. Continuous scan - * clients will get a large speed increase by using this instead of decode(). - * - * @param image The pixel data to decode - * @return The contents of the image - * @throws NotFoundException Any errors which occurred - */ - public Result decodeWithState(BinaryBitmap image) throws NotFoundException { - // Make sure to set up the default state so we don't crash - if (readers == null) { - setHints(null); - } - return decodeInternal(image); - } - - /** - * This method adds state to the MultiFormatReader. By setting the hints once, subsequent calls - * to decodeWithState(image) can reuse the same set of readers without reallocating memory. This - * is important for performance in continuous scan clients. - * - * @param hints The set of hints to use for subsequent calls to decode(image) - */ - public void setHints(Map hints) { - this.hints = hints; - - boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER); - @SuppressWarnings("unchecked") - Collection formats = - hints == null ? null : (Collection) hints.get(DecodeHintType.POSSIBLE_FORMATS); - Collection readers = new ArrayList(); - if (formats != null) { - boolean addOneDReader = - formats.contains(BarcodeFormat.UPC_A) || - formats.contains(BarcodeFormat.UPC_E) || - formats.contains(BarcodeFormat.EAN_13) || - formats.contains(BarcodeFormat.EAN_8) || - formats.contains(BarcodeFormat.CODABAR) || - formats.contains(BarcodeFormat.CODE_39) || - formats.contains(BarcodeFormat.CODE_93) || - formats.contains(BarcodeFormat.CODE_128) || - formats.contains(BarcodeFormat.ITF) || - formats.contains(BarcodeFormat.RSS_14) || - formats.contains(BarcodeFormat.RSS_EXPANDED); - // Put 1D readers upfront in "normal" mode - if (addOneDReader && !tryHarder) { - readers.add(new MultiFormatOneDReader(hints)); - } - if (formats.contains(BarcodeFormat.QR_CODE)) { - readers.add(new QRCodeReader()); - } - if (formats.contains(BarcodeFormat.DATA_MATRIX)) { - readers.add(new DataMatrixReader()); - } - if (formats.contains(BarcodeFormat.AZTEC)) { - readers.add(new AztecReader()); - } - if (formats.contains(BarcodeFormat.PDF_417)) { - readers.add(new PDF417Reader()); - } - if (formats.contains(BarcodeFormat.MAXICODE)) { - readers.add(new MaxiCodeReader()); - } - // At end in "try harder" mode - if (addOneDReader && tryHarder) { - readers.add(new MultiFormatOneDReader(hints)); - } - } - if (readers.isEmpty()) { - if (!tryHarder) { - readers.add(new MultiFormatOneDReader(hints)); - } - - readers.add(new QRCodeReader()); - readers.add(new DataMatrixReader()); - readers.add(new AztecReader()); - readers.add(new PDF417Reader()); - readers.add(new MaxiCodeReader()); - - if (tryHarder) { - readers.add(new MultiFormatOneDReader(hints)); - } - } - this.readers = readers.toArray(new Reader[readers.size()]); - } - - @Override - public void reset() { - if (readers != null) { - for (Reader reader : readers) { - reader.reset(); - } - } - } - - private Result decodeInternal(BinaryBitmap image) throws NotFoundException { - if (readers != null) { - for (Reader reader : readers) { - try { - return reader.decode(image, hints); - } catch (ReaderException re) { - // continue - } - } - } - throw NotFoundException.getNotFoundInstance(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/MultiFormatWriter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/MultiFormatWriter.java deleted file mode 100755 index bd643403..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/MultiFormatWriter.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -import java.util.Map; - -import com.google.zxing.aztec.AztecWriter; -import com.google.zxing.common.BitMatrix; -import com.google.zxing.datamatrix.DataMatrixWriter; -import com.google.zxing.oned.CodaBarWriter; -import com.google.zxing.oned.Code128Writer; -import com.google.zxing.oned.Code39Writer; -import com.google.zxing.oned.Code93Writer; -import com.google.zxing.oned.EAN13Writer; -import com.google.zxing.oned.EAN8Writer; -import com.google.zxing.oned.ITFWriter; -import com.google.zxing.oned.UPCAWriter; -import com.google.zxing.oned.UPCEWriter; -import com.google.zxing.pdf417.PDF417Writer; -import com.google.zxing.qrcode.QRCodeWriter; - -/** - * This is a factory class which finds the appropriate Writer subclass for the BarcodeFormat - * requested and encodes the barcode with the supplied contents. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class MultiFormatWriter implements Writer { - - @Override - public BitMatrix encode(String contents, - BarcodeFormat format, - int width, - int height) throws WriterException { - return encode(contents, format, width, height, null); - } - - @Override - public BitMatrix encode(String contents, - BarcodeFormat format, - int width, int height, - Map hints) throws WriterException { - - Writer writer; - switch (format) { - case EAN_8: - writer = new EAN8Writer(); - break; - case UPC_E: - writer = new UPCEWriter(); - break; - case EAN_13: - writer = new EAN13Writer(); - break; - case UPC_A: - writer = new UPCAWriter(); - break; - case QR_CODE: - writer = new QRCodeWriter(); - break; - case CODE_39: - writer = new Code39Writer(); - break; - case CODE_93: - writer = new Code93Writer(); - break; - case CODE_128: - writer = new Code128Writer(); - break; - case ITF: - writer = new ITFWriter(); - break; - case PDF_417: - writer = new PDF417Writer(); - break; - case CODABAR: - writer = new CodaBarWriter(); - break; - case DATA_MATRIX: - writer = new DataMatrixWriter(); - break; - case AZTEC: - writer = new AztecWriter(); - break; - default: - throw new IllegalArgumentException("No encoder available for format " + format); - } - return writer.encode(contents, format, width, height, hints); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/NotFoundException.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/NotFoundException.java deleted file mode 100755 index 863526af..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/NotFoundException.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -/** - * Thrown when a barcode was not found in the image. It might have been - * partially detected but could not be confirmed. - * - * @author Sean Owen - */ -public final class NotFoundException extends ReaderException { - - private static final NotFoundException INSTANCE = new NotFoundException(); - static { - INSTANCE.setStackTrace(NO_TRACE); // since it's meaningless - } - - private NotFoundException() { - // do nothing - } - - public static NotFoundException getNotFoundInstance() { - return INSTANCE; - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/PlanarYUVLuminanceSource.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/PlanarYUVLuminanceSource.java deleted file mode 100755 index 2049e593..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/PlanarYUVLuminanceSource.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -/** - * This object extends LuminanceSource around an array of YUV data returned from the camera driver, - * with the option to crop to a rectangle within the full data. This can be used to exclude - * superfluous pixels around the perimeter and speed up decoding. - * - * It works for any pixel format where the Y channel is planar and appears first, including - * YCbCr_420_SP and YCbCr_422_SP. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class PlanarYUVLuminanceSource extends LuminanceSource { - - private static final int THUMBNAIL_SCALE_FACTOR = 2; - - private final byte[] yuvData; - private final int dataWidth; - private final int dataHeight; - private final int left; - private final int top; - - public PlanarYUVLuminanceSource(byte[] yuvData, - int dataWidth, - int dataHeight, - int left, - int top, - int width, - int height, - boolean reverseHorizontal) { - super(width, height); - - if (left + width > dataWidth || top + height > dataHeight) { - throw new IllegalArgumentException("Crop rectangle does not fit within image data."); - } - - this.yuvData = yuvData; - this.dataWidth = dataWidth; - this.dataHeight = dataHeight; - this.left = left; - this.top = top; - if (reverseHorizontal) { - reverseHorizontal(width, height); - } - } - - @Override - public byte[] getRow(int y, byte[] row) { - if (y < 0 || y >= getHeight()) { - throw new IllegalArgumentException("Requested row is outside the image: " + y); - } - int width = getWidth(); - if (row == null || row.length < width) { - row = new byte[width]; - } - int offset = (y + top) * dataWidth + left; - System.arraycopy(yuvData, offset, row, 0, width); - return row; - } - - @Override - public byte[] getMatrix() { - int width = getWidth(); - int height = getHeight(); - - // If the caller asks for the entire underlying image, save the copy and give them the - // original data. The docs specifically warn that result.length must be ignored. - if (width == dataWidth && height == dataHeight) { - return yuvData; - } - - int area = width * height; - byte[] matrix = new byte[area]; - int inputOffset = top * dataWidth + left; - - // If the width matches the full width of the underlying data, perform a single copy. - if (width == dataWidth) { - System.arraycopy(yuvData, inputOffset, matrix, 0, area); - return matrix; - } - - // Otherwise copy one cropped row at a time. - byte[] yuv = yuvData; - for (int y = 0; y < height; y++) { - int outputOffset = y * width; - System.arraycopy(yuv, inputOffset, matrix, outputOffset, width); - inputOffset += dataWidth; - } - return matrix; - } - - @Override - public boolean isCropSupported() { - return true; - } - - @Override - public LuminanceSource crop(int left, int top, int width, int height) { - return new PlanarYUVLuminanceSource(yuvData, - dataWidth, - dataHeight, - this.left + left, - this.top + top, - width, - height, - false); - } - - public int[] renderThumbnail() { - int width = getWidth() / THUMBNAIL_SCALE_FACTOR; - int height = getHeight() / THUMBNAIL_SCALE_FACTOR; - int[] pixels = new int[width * height]; - byte[] yuv = yuvData; - int inputOffset = top * dataWidth + left; - - for (int y = 0; y < height; y++) { - int outputOffset = y * width; - for (int x = 0; x < width; x++) { - int grey = yuv[inputOffset + x * THUMBNAIL_SCALE_FACTOR] & 0xff; - pixels[outputOffset + x] = 0xFF000000 | (grey * 0x00010101); - } - inputOffset += dataWidth * THUMBNAIL_SCALE_FACTOR; - } - return pixels; - } - - /** - * @return width of image from {@link #renderThumbnail()} - */ - public int getThumbnailWidth() { - return getWidth() / THUMBNAIL_SCALE_FACTOR; - } - - /** - * @return height of image from {@link #renderThumbnail()} - */ - public int getThumbnailHeight() { - return getHeight() / THUMBNAIL_SCALE_FACTOR; - } - - private void reverseHorizontal(int width, int height) { - byte[] yuvData = this.yuvData; - for (int y = 0, rowStart = top * dataWidth + left; y < height; y++, rowStart += dataWidth) { - int middle = rowStart + width / 2; - for (int x1 = rowStart, x2 = rowStart + width - 1; x1 < middle; x1++, x2--) { - byte temp = yuvData[x1]; - yuvData[x1] = yuvData[x2]; - yuvData[x2] = temp; - } - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/RGBLuminanceSource.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/RGBLuminanceSource.java deleted file mode 100755 index 7c70b35c..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/RGBLuminanceSource.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -/** - * This class is used to help decode images from files which arrive as RGB data from - * an ARGB pixel array. It does not support rotation. - * - * @author dswitkin@google.com (Daniel Switkin) - * @author Betaminos - */ -public final class RGBLuminanceSource extends LuminanceSource { - - private final byte[] luminances; - private final int dataWidth; - private final int dataHeight; - private final int left; - private final int top; - - public RGBLuminanceSource(int width, int height, int[] pixels) { - super(width, height); - - dataWidth = width; - dataHeight = height; - left = 0; - top = 0; - - // In order to measure pure decoding speed, we convert the entire image to a greyscale array - // up front, which is the same as the Y channel of the YUVLuminanceSource in the real app. - luminances = new byte[width * height]; - for (int y = 0; y < height; y++) { - int offset = y * width; - for (int x = 0; x < width; x++) { - int pixel = pixels[offset + x]; - int r = (pixel >> 16) & 0xff; - int g = (pixel >> 8) & 0xff; - int b = pixel & 0xff; - if (r == g && g == b) { - // Image is already greyscale, so pick any channel. - luminances[offset + x] = (byte) r; - } else { - // Calculate luminance cheaply, favoring green. - luminances[offset + x] = (byte) ((r + 2 * g + b) / 4); - } - } - } - } - - private RGBLuminanceSource(byte[] pixels, - int dataWidth, - int dataHeight, - int left, - int top, - int width, - int height) { - super(width, height); - if (left + width > dataWidth || top + height > dataHeight) { - throw new IllegalArgumentException("Crop rectangle does not fit within image data."); - } - this.luminances = pixels; - this.dataWidth = dataWidth; - this.dataHeight = dataHeight; - this.left = left; - this.top = top; - } - - @Override - public byte[] getRow(int y, byte[] row) { - if (y < 0 || y >= getHeight()) { - throw new IllegalArgumentException("Requested row is outside the image: " + y); - } - int width = getWidth(); - if (row == null || row.length < width) { - row = new byte[width]; - } - int offset = (y + top) * dataWidth + left; - System.arraycopy(luminances, offset, row, 0, width); - return row; - } - - @Override - public byte[] getMatrix() { - int width = getWidth(); - int height = getHeight(); - - // If the caller asks for the entire underlying image, save the copy and give them the - // original data. The docs specifically warn that result.length must be ignored. - if (width == dataWidth && height == dataHeight) { - return luminances; - } - - int area = width * height; - byte[] matrix = new byte[area]; - int inputOffset = top * dataWidth + left; - - // If the width matches the full width of the underlying data, perform a single copy. - if (width == dataWidth) { - System.arraycopy(luminances, inputOffset, matrix, 0, area); - return matrix; - } - - // Otherwise copy one cropped row at a time. - byte[] rgb = luminances; - for (int y = 0; y < height; y++) { - int outputOffset = y * width; - System.arraycopy(rgb, inputOffset, matrix, outputOffset, width); - inputOffset += dataWidth; - } - return matrix; - } - - @Override - public boolean isCropSupported() { - return true; - } - - @Override - public LuminanceSource crop(int left, int top, int width, int height) { - return new RGBLuminanceSource(luminances, - dataWidth, - dataHeight, - this.left + left, - this.top + top, - width, - height); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/Reader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/Reader.java deleted file mode 100755 index 8452581d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/Reader.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -import java.util.Map; - -/** - * Implementations of this interface can decode an image of a barcode in some format into - * the String it encodes. For example, {@link com.google.zxing.qrcode.QRCodeReader} can - * decode a QR code. The decoder may optionally receive hints from the caller which may help - * it decode more quickly or accurately. - * - * See {@link com.google.zxing.MultiFormatReader}, which attempts to determine what barcode - * format is present within the image as well, and then decodes it accordingly. - * - * @author Sean Owen - * @author dswitkin@google.com (Daniel Switkin) - */ -public interface Reader { - - /** - * Locates and decodes a barcode in some format within an image. - * - * @param image image of barcode to decode - * @return String which the barcode encodes - * @throws NotFoundException if no potential barcode is found - * @throws ChecksumException if a potential barcode is found but does not pass its checksum - * @throws FormatException if a potential barcode is found but format is invalid - */ - Result decode(BinaryBitmap image) throws NotFoundException, ChecksumException, FormatException; - - /** - * Locates and decodes a barcode in some format within an image. This method also accepts - * hints, each possibly associated to some data, which may help the implementation decode. - * - * @param image image of barcode to decode - * @param hints passed as a {@link Map} from {@link com.google.zxing.DecodeHintType} - * to arbitrary data. The - * meaning of the data depends upon the hint type. The implementation may or may not do - * anything with these hints. - * @return String which the barcode encodes - * @throws NotFoundException if no potential barcode is found - * @throws ChecksumException if a potential barcode is found but does not pass its checksum - * @throws FormatException if a potential barcode is found but format is invalid - */ - Result decode(BinaryBitmap image, Map hints) - throws NotFoundException, ChecksumException, FormatException; - - /** - * Resets any internal state the implementation has after a decode, to prepare it - * for reuse. - */ - void reset(); - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/ReaderException.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/ReaderException.java deleted file mode 100755 index 5f2c12e4..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/ReaderException.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -/** - * The general exception class throw when something goes wrong during decoding of a barcode. - * This includes, but is not limited to, failing checksums / error correction algorithms, being - * unable to locate finder timing patterns, and so on. - * - * @author Sean Owen - */ -public abstract class ReaderException extends Exception { - - // disable stack traces when not running inside test units - protected static final boolean isStackTrace = - System.getProperty("surefire.test.class.path") != null; - protected static final StackTraceElement[] NO_TRACE = new StackTraceElement[0]; - - ReaderException() { - // do nothing - } - - ReaderException(Throwable cause) { - super(cause); - } - - // Prevent stack traces from being taken - // srowen says: huh, my IDE is saying this is not an override. native methods can't be overridden? - // This, at least, does not hurt. Because we use a singleton pattern here, it doesn't matter anyhow. - @Override - public final Throwable fillInStackTrace() { - return null; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/Result.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/Result.java deleted file mode 100755 index aed5cf5c..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/Result.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -import java.util.EnumMap; -import java.util.Map; - -/** - *

Encapsulates the result of decoding a barcode within an image.

- * - * @author Sean Owen - */ -public final class Result { - - private final String text; - private final byte[] rawBytes; - private ResultPoint[] resultPoints; - private final BarcodeFormat format; - private Map resultMetadata; - private final long timestamp; - - public Result(String text, - byte[] rawBytes, - ResultPoint[] resultPoints, - BarcodeFormat format) { - this(text, rawBytes, resultPoints, format, System.currentTimeMillis()); - } - - public Result(String text, - byte[] rawBytes, - ResultPoint[] resultPoints, - BarcodeFormat format, - long timestamp) { - this.text = text; - this.rawBytes = rawBytes; - this.resultPoints = resultPoints; - this.format = format; - this.resultMetadata = null; - this.timestamp = timestamp; - } - - /** - * @return raw text encoded by the barcode - */ - public String getText() { - return text; - } - - /** - * @return raw bytes encoded by the barcode, if applicable, otherwise {@code null} - */ - public byte[] getRawBytes() { - return rawBytes; - } - - /** - * @return points related to the barcode in the image. These are typically points - * identifying finder patterns or the corners of the barcode. The exact meaning is - * specific to the type of barcode that was decoded. - */ - public ResultPoint[] getResultPoints() { - return resultPoints; - } - - /** - * @return {@link BarcodeFormat} representing the format of the barcode that was decoded - */ - public BarcodeFormat getBarcodeFormat() { - return format; - } - - /** - * @return {@link Map} mapping {@link ResultMetadataType} keys to values. May be - * {@code null}. This contains optional metadata about what was detected about the barcode, - * like orientation. - */ - public Map getResultMetadata() { - return resultMetadata; - } - - public void putMetadata(ResultMetadataType type, Object value) { - if (resultMetadata == null) { - resultMetadata = new EnumMap(ResultMetadataType.class); - } - resultMetadata.put(type, value); - } - - public void putAllMetadata(Map metadata) { - if (metadata != null) { - if (resultMetadata == null) { - resultMetadata = metadata; - } else { - resultMetadata.putAll(metadata); - } - } - } - - public void addResultPoints(ResultPoint[] newPoints) { - ResultPoint[] oldPoints = resultPoints; - if (oldPoints == null) { - resultPoints = newPoints; - } else if (newPoints != null && newPoints.length > 0) { - ResultPoint[] allPoints = new ResultPoint[oldPoints.length + newPoints.length]; - System.arraycopy(oldPoints, 0, allPoints, 0, oldPoints.length); - System.arraycopy(newPoints, 0, allPoints, oldPoints.length, newPoints.length); - resultPoints = allPoints; - } - } - - public long getTimestamp() { - return timestamp; - } - - @Override - public String toString() { - return text; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/ResultMetadataType.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/ResultMetadataType.java deleted file mode 100755 index eac968b1..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/ResultMetadataType.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -/** - * Represents some type of metadata about the result of the decoding that the decoder - * wishes to communicate back to the caller. - * - * @author Sean Owen - */ -public enum ResultMetadataType { - - /** - * Unspecified, application-specific metadata. Maps to an unspecified {@link Object}. - */ - OTHER, - - /** - * Denotes the likely approximate orientation of the barcode in the image. This value - * is given as degrees rotated clockwise from the normal, upright orientation. - * For example a 1D barcode which was found by reading top-to-bottom would be - * said to have orientation "90". This key maps to an {@link Integer} whose - * value is in the range [0,360). - */ - ORIENTATION, - - /** - *

2D barcode formats typically encode text, but allow for a sort of 'byte mode' - * which is sometimes used to encode binary data. While {@link Result} makes available - * the complete raw bytes in the barcode for these formats, it does not offer the bytes - * from the byte segments alone.

- * - *

This maps to a {@link java.util.List} of byte arrays corresponding to the - * raw bytes in the byte segments in the barcode, in order.

- */ - BYTE_SEGMENTS, - - /** - * Error correction level used, if applicable. The value type depends on the - * format, but is typically a String. - */ - ERROR_CORRECTION_LEVEL, - - /** - * For some periodicals, indicates the issue number as an {@link Integer}. - */ - ISSUE_NUMBER, - - /** - * For some products, indicates the suggested retail price in the barcode as a - * formatted {@link String}. - */ - SUGGESTED_PRICE , - - /** - * For some products, the possible country of manufacture as a {@link String} denoting the - * ISO country code. Some map to multiple possible countries, like "US/CA". - */ - POSSIBLE_COUNTRY, - - /** - * For some products, the extension text - */ - UPC_EAN_EXTENSION, - - /** - * PDF417-specific metadata - */ - PDF417_EXTRA_METADATA, - - /** - * If the code format supports structured append and the current scanned code is part of one then the - * sequence number is given with it. - */ - STRUCTURED_APPEND_SEQUENCE, - - /** - * If the code format supports structured append and the current scanned code is part of one then the - * parity is given with it. - */ - STRUCTURED_APPEND_PARITY, - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/ResultPoint.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/ResultPoint.java deleted file mode 100755 index 920cd24c..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/ResultPoint.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -import com.google.zxing.common.detector.MathUtils; - -/** - *

Encapsulates a point of interest in an image containing a barcode. Typically, this - * would be the location of a finder pattern or the corner of the barcode, for example.

- * - * @author Sean Owen - */ -public class ResultPoint { - - private final float x; - private final float y; - - public ResultPoint(float x, float y) { - this.x = x; - this.y = y; - } - - public final float getX() { - return x; - } - - public final float getY() { - return y; - } - - @Override - public final boolean equals(Object other) { - if (other instanceof ResultPoint) { - ResultPoint otherPoint = (ResultPoint) other; - return x == otherPoint.x && y == otherPoint.y; - } - return false; - } - - @Override - public final int hashCode() { - return 31 * Float.floatToIntBits(x) + Float.floatToIntBits(y); - } - - @Override - public final String toString() { - StringBuilder result = new StringBuilder(25); - result.append('('); - result.append(x); - result.append(','); - result.append(y); - result.append(')'); - return result.toString(); - } - - /** - * Orders an array of three ResultPoints in an order [A,B,C] such that AB is less than AC - * and BC is less than AC, and the angle between BC and BA is less than 180 degrees. - * - * @param patterns array of three {@code ResultPoint} to order - */ - public static void orderBestPatterns(ResultPoint[] patterns) { - - // Find distances between pattern centers - float zeroOneDistance = distance(patterns[0], patterns[1]); - float oneTwoDistance = distance(patterns[1], patterns[2]); - float zeroTwoDistance = distance(patterns[0], patterns[2]); - - ResultPoint pointA; - ResultPoint pointB; - ResultPoint pointC; - // Assume one closest to other two is B; A and C will just be guesses at first - if (oneTwoDistance >= zeroOneDistance && oneTwoDistance >= zeroTwoDistance) { - pointB = patterns[0]; - pointA = patterns[1]; - pointC = patterns[2]; - } else if (zeroTwoDistance >= oneTwoDistance && zeroTwoDistance >= zeroOneDistance) { - pointB = patterns[1]; - pointA = patterns[0]; - pointC = patterns[2]; - } else { - pointB = patterns[2]; - pointA = patterns[0]; - pointC = patterns[1]; - } - - // Use cross product to figure out whether A and C are correct or flipped. - // This asks whether BC x BA has a positive z component, which is the arrangement - // we want for A, B, C. If it's negative, then we've got it flipped around and - // should swap A and C. - if (crossProductZ(pointA, pointB, pointC) < 0.0f) { - ResultPoint temp = pointA; - pointA = pointC; - pointC = temp; - } - - patterns[0] = pointA; - patterns[1] = pointB; - patterns[2] = pointC; - } - - - /** - * @param pattern1 first pattern - * @param pattern2 second pattern - * @return distance between two points - */ - public static float distance(ResultPoint pattern1, ResultPoint pattern2) { - return MathUtils.distance(pattern1.x, pattern1.y, pattern2.x, pattern2.y); - } - - /** - * Returns the z component of the cross product between vectors BC and BA. - */ - private static float crossProductZ(ResultPoint pointA, - ResultPoint pointB, - ResultPoint pointC) { - float bX = pointB.x; - float bY = pointB.y; - return ((pointC.x - bX) * (pointA.y - bY)) - ((pointC.y - bY) * (pointA.x - bX)); - } - - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/ResultPointCallback.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/ResultPointCallback.java deleted file mode 100755 index 0c85410b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/ResultPointCallback.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -/** - * Callback which is invoked when a possible result point (significant - * point in the barcode image such as a corner) is found. - * - * @see DecodeHintType#NEED_RESULT_POINT_CALLBACK - */ -public interface ResultPointCallback { - - void foundPossibleResultPoint(ResultPoint point); - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/Writer.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/Writer.java deleted file mode 100755 index 35b03ec9..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/Writer.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -import java.util.Map; - -import com.google.zxing.common.BitMatrix; - -/** - * The base class for all objects which encode/generate a barcode image. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public interface Writer { - - /** - * Encode a barcode using the default settings. - * - * @param contents The contents to encode in the barcode - * @param format The barcode format to generate - * @param width The preferred width in pixels - * @param height The preferred height in pixels - * @return {@link BitMatrix} representing encoded barcode image - * @throws WriterException if contents cannot be encoded legally in a format - */ - BitMatrix encode(String contents, BarcodeFormat format, int width, int height) - throws WriterException; - - /** - * @param contents The contents to encode in the barcode - * @param format The barcode format to generate - * @param width The preferred width in pixels - * @param height The preferred height in pixels - * @param hints Additional parameters to supply to the encoder - * @return {@link BitMatrix} representing encoded barcode image - * @throws WriterException if contents cannot be encoded legally in a format - */ - BitMatrix encode(String contents, - BarcodeFormat format, - int width, - int height, - Map hints) - throws WriterException; - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/WriterException.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/WriterException.java deleted file mode 100755 index c61800b9..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/WriterException.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing; - -/** - * A base class which covers the range of exceptions which may occur when encoding a barcode using - * the Writer framework. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class WriterException extends Exception { - - public WriterException() { - } - - public WriterException(String message) { - super(message); - } - - public WriterException(Throwable cause) { - super(cause); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/AztecDetectorResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/AztecDetectorResult.java deleted file mode 100755 index f262e0e6..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/AztecDetectorResult.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.aztec; - -import com.google.zxing.ResultPoint; -import com.google.zxing.common.BitMatrix; -import com.google.zxing.common.DetectorResult; - -public final class AztecDetectorResult extends DetectorResult { - - private final boolean compact; - private final int nbDatablocks; - private final int nbLayers; - - public AztecDetectorResult(BitMatrix bits, - ResultPoint[] points, - boolean compact, - int nbDatablocks, - int nbLayers) { - super(bits, points); - this.compact = compact; - this.nbDatablocks = nbDatablocks; - this.nbLayers = nbLayers; - } - - public int getNbLayers() { - return nbLayers; - } - - public int getNbDatablocks() { - return nbDatablocks; - } - - public boolean isCompact() { - return compact; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/AztecReader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/AztecReader.java deleted file mode 100755 index 591a0cb0..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/AztecReader.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.aztec; - -import java.util.List; -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.BinaryBitmap; -import com.google.zxing.DecodeHintType; -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.Reader; -import com.google.zxing.Result; -import com.google.zxing.ResultMetadataType; -import com.google.zxing.ResultPoint; -import com.google.zxing.ResultPointCallback; -import com.google.zxing.aztec.decoder.Decoder; -import com.google.zxing.aztec.detector.Detector; -import com.google.zxing.common.DecoderResult; - -/** - * This implementation can detect and decode Aztec codes in an image. - * - * @author David Olivier - */ -public final class AztecReader implements Reader { - - /** - * Locates and decodes a Data Matrix code in an image. - * - * @return a String representing the content encoded by the Data Matrix code - * @throws NotFoundException if a Data Matrix code cannot be found - * @throws FormatException if a Data Matrix code cannot be decoded - */ - @Override - public Result decode(BinaryBitmap image) throws NotFoundException, FormatException { - return decode(image, null); - } - - @Override - public Result decode(BinaryBitmap image, Map hints) - throws NotFoundException, FormatException { - - NotFoundException notFoundException = null; - FormatException formatException = null; - Detector detector = new Detector(image.getBlackMatrix()); - ResultPoint[] points = null; - DecoderResult decoderResult = null; - try { - AztecDetectorResult detectorResult = detector.detect(false); - points = detectorResult.getPoints(); - decoderResult = new Decoder().decode(detectorResult); - } catch (NotFoundException e) { - notFoundException = e; - } catch (FormatException e) { - formatException = e; - } - if (decoderResult == null) { - try { - AztecDetectorResult detectorResult = detector.detect(true); - points = detectorResult.getPoints(); - decoderResult = new Decoder().decode(detectorResult); - } catch (NotFoundException | FormatException e) { - if (notFoundException != null) { - throw notFoundException; - } - if (formatException != null) { - throw formatException; - } - throw e; - } - } - - if (hints != null) { - ResultPointCallback rpcb = (ResultPointCallback) hints.get(DecodeHintType.NEED_RESULT_POINT_CALLBACK); - if (rpcb != null) { - for (ResultPoint point : points) { - rpcb.foundPossibleResultPoint(point); - } - } - } - - Result result = new Result(decoderResult.getText(), decoderResult.getRawBytes(), points, BarcodeFormat.AZTEC); - - List byteSegments = decoderResult.getByteSegments(); - if (byteSegments != null) { - result.putMetadata(ResultMetadataType.BYTE_SEGMENTS, byteSegments); - } - String ecLevel = decoderResult.getECLevel(); - if (ecLevel != null) { - result.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, ecLevel); - } - - return result; - } - - @Override - public void reset() { - // do nothing - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/AztecWriter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/AztecWriter.java deleted file mode 100755 index 25423bd3..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/AztecWriter.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.aztec; - -import java.nio.charset.Charset; -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.EncodeHintType; -import com.google.zxing.Writer; -import com.google.zxing.aztec.encoder.AztecCode; -import com.google.zxing.aztec.encoder.Encoder; -import com.google.zxing.common.BitMatrix; - -public final class AztecWriter implements Writer { - - private static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1"); - - @Override - public BitMatrix encode(String contents, BarcodeFormat format, int width, int height) { - return encode(contents, format, width, height, null); - } - - @Override - public BitMatrix encode(String contents, BarcodeFormat format, int width, int height, Map hints) { - Charset charset = DEFAULT_CHARSET; - int eccPercent = Encoder.DEFAULT_EC_PERCENT; - int layers = Encoder.DEFAULT_AZTEC_LAYERS; - if (hints != null) { - if (hints.containsKey(EncodeHintType.CHARACTER_SET)) { - charset = Charset.forName(hints.get(EncodeHintType.CHARACTER_SET).toString()); - } - if (hints.containsKey(EncodeHintType.ERROR_CORRECTION)) { - eccPercent = Integer.parseInt(hints.get(EncodeHintType.ERROR_CORRECTION).toString()); - } - if (hints.containsKey(EncodeHintType.AZTEC_LAYERS)) { - layers = Integer.parseInt(hints.get(EncodeHintType.AZTEC_LAYERS).toString()); - } - } - return encode(contents, format, width, height, charset, eccPercent, layers); - } - - private static BitMatrix encode(String contents, BarcodeFormat format, - int width, int height, - Charset charset, int eccPercent, int layers) { - if (format != BarcodeFormat.AZTEC) { - throw new IllegalArgumentException("Can only encode AZTEC, but got " + format); - } - AztecCode aztec = Encoder.encode(contents.getBytes(charset), eccPercent, layers); - return renderResult(aztec, width, height); - } - - private static BitMatrix renderResult(AztecCode code, int width, int height) { - BitMatrix input = code.getMatrix(); - if (input == null) { - throw new IllegalStateException(); - } - int inputWidth = input.getWidth(); - int inputHeight = input.getHeight(); - int outputWidth = Math.max(width, inputWidth); - int outputHeight = Math.max(height, inputHeight); - - int multiple = Math.min(outputWidth / inputWidth, outputHeight / inputHeight); - int leftPadding = (outputWidth - (inputWidth * multiple)) / 2; - int topPadding = (outputHeight - (inputHeight * multiple)) / 2; - - BitMatrix output = new BitMatrix(outputWidth, outputHeight); - - for (int inputY = 0, outputY = topPadding; inputY < inputHeight; inputY++, outputY += multiple) { - // Write the contents of this row of the barcode - for (int inputX = 0, outputX = leftPadding; inputX < inputWidth; inputX++, outputX += multiple) { - if (input.get(inputX, inputY)) { - output.setRegion(outputX, outputY, multiple, multiple); - } - } - } - return output; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/decoder/Decoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/decoder/Decoder.java deleted file mode 100755 index 9e54ad01..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/decoder/Decoder.java +++ /dev/null @@ -1,338 +0,0 @@ -/* - * Copyright 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.aztec.decoder; - -import java.util.Arrays; - -import com.google.zxing.FormatException; -import com.google.zxing.aztec.AztecDetectorResult; -import com.google.zxing.common.BitMatrix; -import com.google.zxing.common.DecoderResult; -import com.google.zxing.common.reedsolomon.GenericGF; -import com.google.zxing.common.reedsolomon.ReedSolomonDecoder; -import com.google.zxing.common.reedsolomon.ReedSolomonException; - -/** - *

The main class which implements Aztec Code decoding -- as opposed to locating and extracting - * the Aztec Code from an image.

- * - * @author David Olivier - */ -public final class Decoder { - - private enum Table { - UPPER, - LOWER, - MIXED, - DIGIT, - PUNCT, - BINARY - } - - private static final String[] UPPER_TABLE = { - "CTRL_PS", " ", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", - "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "CTRL_LL", "CTRL_ML", "CTRL_DL", "CTRL_BS" - }; - - private static final String[] LOWER_TABLE = { - "CTRL_PS", " ", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", - "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "CTRL_US", "CTRL_ML", "CTRL_DL", "CTRL_BS" - }; - - private static final String[] MIXED_TABLE = { - "CTRL_PS", " ", "\1", "\2", "\3", "\4", "\5", "\6", "\7", "\b", "\t", "\n", - "\13", "\f", "\r", "\33", "\34", "\35", "\36", "\37", "@", "\\", "^", "_", - "`", "|", "~", "\177", "CTRL_LL", "CTRL_UL", "CTRL_PL", "CTRL_BS" - }; - - private static final String[] PUNCT_TABLE = { - "", "\r", "\r\n", ". ", ", ", ": ", "!", "\"", "#", "$", "%", "&", "'", "(", ")", - "*", "+", ",", "-", ".", "/", ":", ";", "<", "=", ">", "?", "[", "]", "{", "}", "CTRL_UL" - }; - - private static final String[] DIGIT_TABLE = { - "CTRL_PS", " ", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ",", ".", "CTRL_UL", "CTRL_US" - }; - - private AztecDetectorResult ddata; - - public DecoderResult decode(AztecDetectorResult detectorResult) throws FormatException { - ddata = detectorResult; - BitMatrix matrix = detectorResult.getBits(); - boolean[] rawbits = extractBits(matrix); - boolean[] correctedBits = correctBits(rawbits); - String result = getEncodedData(correctedBits); - return new DecoderResult(null, result, null, null); - } - - // This method is used for testing the high-level encoder - public static String highLevelDecode(boolean[] correctedBits) { - return getEncodedData(correctedBits); - } - - /** - * Gets the string encoded in the aztec code bits - * - * @return the decoded string - */ - private static String getEncodedData(boolean[] correctedBits) { - int endIndex = correctedBits.length; - Table latchTable = Table.UPPER; // table most recently latched to - Table shiftTable = Table.UPPER; // table to use for the next read - StringBuilder result = new StringBuilder(20); - int index = 0; - while (index < endIndex) { - if (shiftTable == Table.BINARY) { - if (endIndex - index < 5) { - break; - } - int length = readCode(correctedBits, index, 5); - index += 5; - if (length == 0) { - if (endIndex - index < 11) { - break; - } - length = readCode(correctedBits, index, 11) + 31; - index += 11; - } - for (int charCount = 0; charCount < length; charCount++) { - if (endIndex - index < 8) { - index = endIndex; // Force outer loop to exit - break; - } - int code = readCode(correctedBits, index, 8); - result.append((char) code); - index += 8; - } - // Go back to whatever mode we had been in - shiftTable = latchTable; - } else { - int size = shiftTable == Table.DIGIT ? 4 : 5; - if (endIndex - index < size) { - break; - } - int code = readCode(correctedBits, index, size); - index += size; - String str = getCharacter(shiftTable, code); - if (str.startsWith("CTRL_")) { - // Table changes - shiftTable = getTable(str.charAt(5)); - if (str.charAt(6) == 'L') { - latchTable = shiftTable; - } - } else { - result.append(str); - // Go back to whatever mode we had been in - shiftTable = latchTable; - } - } - } - return result.toString(); - } - - /** - * gets the table corresponding to the char passed - */ - private static Table getTable(char t) { - switch (t) { - case 'L': - return Table.LOWER; - case 'P': - return Table.PUNCT; - case 'M': - return Table.MIXED; - case 'D': - return Table.DIGIT; - case 'B': - return Table.BINARY; - case 'U': - default: - return Table.UPPER; - } - } - - /** - * Gets the character (or string) corresponding to the passed code in the given table - * - * @param table the table used - * @param code the code of the character - */ - private static String getCharacter(Table table, int code) { - switch (table) { - case UPPER: - return UPPER_TABLE[code]; - case LOWER: - return LOWER_TABLE[code]; - case MIXED: - return MIXED_TABLE[code]; - case PUNCT: - return PUNCT_TABLE[code]; - case DIGIT: - return DIGIT_TABLE[code]; - default: - // Should not reach here. - throw new IllegalStateException("Bad table"); - } - } - - /** - *

Performs RS error correction on an array of bits.

- * - * @return the corrected array - * @throws FormatException if the input contains too many errors - */ - private boolean[] correctBits(boolean[] rawbits) throws FormatException { - GenericGF gf; - int codewordSize; - - if (ddata.getNbLayers() <= 2) { - codewordSize = 6; - gf = GenericGF.AZTEC_DATA_6; - } else if (ddata.getNbLayers() <= 8) { - codewordSize = 8; - gf = GenericGF.AZTEC_DATA_8; - } else if (ddata.getNbLayers() <= 22) { - codewordSize = 10; - gf = GenericGF.AZTEC_DATA_10; - } else { - codewordSize = 12; - gf = GenericGF.AZTEC_DATA_12; - } - - int numDataCodewords = ddata.getNbDatablocks(); - int numCodewords = rawbits.length / codewordSize; - if (numCodewords < numDataCodewords) { - throw FormatException.getFormatInstance(); - } - int offset = rawbits.length % codewordSize; - int numECCodewords = numCodewords - numDataCodewords; - - int[] dataWords = new int[numCodewords]; - for (int i = 0; i < numCodewords; i++, offset += codewordSize) { - dataWords[i] = readCode(rawbits, offset, codewordSize); - } - - try { - ReedSolomonDecoder rsDecoder = new ReedSolomonDecoder(gf); - rsDecoder.decode(dataWords, numECCodewords); - } catch (ReedSolomonException ex) { - throw FormatException.getFormatInstance(ex); - } - - // Now perform the unstuffing operation. - // First, count how many bits are going to be thrown out as stuffing - int mask = (1 << codewordSize) - 1; - int stuffedBits = 0; - for (int i = 0; i < numDataCodewords; i++) { - int dataWord = dataWords[i]; - if (dataWord == 0 || dataWord == mask) { - throw FormatException.getFormatInstance(); - } else if (dataWord == 1 || dataWord == mask - 1) { - stuffedBits++; - } - } - // Now, actually unpack the bits and remove the stuffing - boolean[] correctedBits = new boolean[numDataCodewords * codewordSize - stuffedBits]; - int index = 0; - for (int i = 0; i < numDataCodewords; i++) { - int dataWord = dataWords[i]; - if (dataWord == 1 || dataWord == mask - 1) { - // next codewordSize-1 bits are all zeros or all ones - Arrays.fill(correctedBits, index, index + codewordSize - 1, dataWord > 1); - index += codewordSize - 1; - } else { - for (int bit = codewordSize - 1; bit >= 0; --bit) { - correctedBits[index++] = (dataWord & (1 << bit)) != 0; - } - } - } - return correctedBits; - } - - /** - * Gets the array of bits from an Aztec Code matrix - * - * @return the array of bits - */ - boolean[] extractBits(BitMatrix matrix) { - boolean compact = ddata.isCompact(); - int layers = ddata.getNbLayers(); - int baseMatrixSize = compact ? 11 + layers * 4 : 14 + layers * 4; // not including alignment lines - int[] alignmentMap = new int[baseMatrixSize]; - boolean[] rawbits = new boolean[totalBitsInLayer(layers, compact)]; - - if (compact) { - for (int i = 0; i < alignmentMap.length; i++) { - alignmentMap[i] = i; - } - } else { - int matrixSize = baseMatrixSize + 1 + 2 * ((baseMatrixSize / 2 - 1) / 15); - int origCenter = baseMatrixSize / 2; - int center = matrixSize / 2; - for (int i = 0; i < origCenter; i++) { - int newOffset = i + i / 15; - alignmentMap[origCenter - i - 1] = center - newOffset - 1; - alignmentMap[origCenter + i] = center + newOffset + 1; - } - } - for (int i = 0, rowOffset = 0; i < layers; i++) { - int rowSize = compact ? (layers - i) * 4 + 9 : (layers - i) * 4 + 12; - // The top-left most point of this layer is (not including alignment lines) - int low = i * 2; - // The bottom-right most point of this layer is (not including alignment lines) - int high = baseMatrixSize - 1 - low; - // We pull bits from the two 2 x rowSize columns and two rowSize x 2 rows - for (int j = 0; j < rowSize; j++) { - int columnOffset = j * 2; - for (int k = 0; k < 2; k++) { - // left column - rawbits[rowOffset + columnOffset + k] = - matrix.get(alignmentMap[low + k], alignmentMap[low + j]); - // bottom row - rawbits[rowOffset + 2 * rowSize + columnOffset + k] = - matrix.get(alignmentMap[low + j], alignmentMap[high - k]); - // right column - rawbits[rowOffset + 4 * rowSize + columnOffset + k] = - matrix.get(alignmentMap[high - k], alignmentMap[high - j]); - // top row - rawbits[rowOffset + 6 * rowSize + columnOffset + k] = - matrix.get(alignmentMap[high - j], alignmentMap[low + k]); - } - } - rowOffset += rowSize * 8; - } - return rawbits; - } - - /** - * Reads a code of given length and at given index in an array of bits - */ - private static int readCode(boolean[] rawbits, int startIndex, int length) { - int res = 0; - for (int i = startIndex; i < startIndex + length; i++) { - res <<= 1; - if (rawbits[i]) { - res |= 0x01; - } - } - return res; - } - - private static int totalBitsInLayer(int layers, boolean compact) { - return ((compact ? 88 : 112) + 16 * layers) * layers; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/detector/Detector.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/detector/Detector.java deleted file mode 100755 index 5cc5c366..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/detector/Detector.java +++ /dev/null @@ -1,600 +0,0 @@ -/* - * Copyright 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.aztec.detector; - -import com.google.zxing.NotFoundException; -import com.google.zxing.ResultPoint; -import com.google.zxing.aztec.AztecDetectorResult; -import com.google.zxing.common.BitMatrix; -import com.google.zxing.common.GridSampler; -import com.google.zxing.common.detector.MathUtils; -import com.google.zxing.common.detector.WhiteRectangleDetector; -import com.google.zxing.common.reedsolomon.GenericGF; -import com.google.zxing.common.reedsolomon.ReedSolomonDecoder; -import com.google.zxing.common.reedsolomon.ReedSolomonException; - -/** - * Encapsulates logic that can detect an Aztec Code in an image, even if the Aztec Code - * is rotated or skewed, or partially obscured. - * - * @author David Olivier - * @author Frank Yellin - */ -public final class Detector { - - private final BitMatrix image; - - private boolean compact; - private int nbLayers; - private int nbDataBlocks; - private int nbCenterLayers; - private int shift; - - public Detector(BitMatrix image) { - this.image = image; - } - - public AztecDetectorResult detect() throws NotFoundException { - return detect(false); - } - - /** - * Detects an Aztec Code in an image. - * - * @param isMirror if true, image is a mirror-image of original - * @return {@link AztecDetectorResult} encapsulating results of detecting an Aztec Code - * @throws NotFoundException if no Aztec Code can be found - */ - public AztecDetectorResult detect(boolean isMirror) throws NotFoundException { - - // 1. Get the center of the aztec matrix - Point pCenter = getMatrixCenter(); - - // 2. Get the center points of the four diagonal points just outside the bull's eye - // [topRight, bottomRight, bottomLeft, topLeft] - ResultPoint[] bullsEyeCorners = getBullsEyeCorners(pCenter); - - if (isMirror) { - ResultPoint temp = bullsEyeCorners[0]; - bullsEyeCorners[0] = bullsEyeCorners[2]; - bullsEyeCorners[2] = temp; - } - - // 3. Get the size of the matrix and other parameters from the bull's eye - extractParameters(bullsEyeCorners); - - // 4. Sample the grid - BitMatrix bits = sampleGrid(image, - bullsEyeCorners[shift % 4], - bullsEyeCorners[(shift + 1) % 4], - bullsEyeCorners[(shift + 2) % 4], - bullsEyeCorners[(shift + 3) % 4]); - - // 5. Get the corners of the matrix. - ResultPoint[] corners = getMatrixCornerPoints(bullsEyeCorners); - - return new AztecDetectorResult(bits, corners, compact, nbDataBlocks, nbLayers); - } - - /** - * Extracts the number of data layers and data blocks from the layer around the bull's eye. - * - * @param bullsEyeCorners the array of bull's eye corners - * @throws NotFoundException in case of too many errors or invalid parameters - */ - private void extractParameters(ResultPoint[] bullsEyeCorners) throws NotFoundException { - if (!isValid(bullsEyeCorners[0]) || !isValid(bullsEyeCorners[1]) || - !isValid(bullsEyeCorners[2]) || !isValid(bullsEyeCorners[3])) { - throw NotFoundException.getNotFoundInstance(); - } - int length = 2 * nbCenterLayers; - // Get the bits around the bull's eye - int[] sides = { - sampleLine(bullsEyeCorners[0], bullsEyeCorners[1], length), // Right side - sampleLine(bullsEyeCorners[1], bullsEyeCorners[2], length), // Bottom - sampleLine(bullsEyeCorners[2], bullsEyeCorners[3], length), // Left side - sampleLine(bullsEyeCorners[3], bullsEyeCorners[0], length) // Top - }; - - // bullsEyeCorners[shift] is the corner of the bulls'eye that has three - // orientation marks. - // sides[shift] is the row/column that goes from the corner with three - // orientation marks to the corner with two. - shift = getRotation(sides, length); - - // Flatten the parameter bits into a single 28- or 40-bit long - long parameterData = 0; - for (int i = 0; i < 4; i++) { - int side = sides[(shift + i) % 4]; - if (compact) { - // Each side of the form ..XXXXXXX. where Xs are parameter data - parameterData <<= 7; - parameterData += (side >> 1) & 0x7F; - } else { - // Each side of the form ..XXXXX.XXXXX. where Xs are parameter data - parameterData <<= 10; - parameterData += ((side >> 2) & (0x1f << 5)) + ((side >> 1) & 0x1F); - } - } - - // Corrects parameter data using RS. Returns just the data portion - // without the error correction. - int correctedData = getCorrectedParameterData(parameterData, compact); - - if (compact) { - // 8 bits: 2 bits layers and 6 bits data blocks - nbLayers = (correctedData >> 6) + 1; - nbDataBlocks = (correctedData & 0x3F) + 1; - } else { - // 16 bits: 5 bits layers and 11 bits data blocks - nbLayers = (correctedData >> 11) + 1; - nbDataBlocks = (correctedData & 0x7FF) + 1; - } - } - - private static final int[] EXPECTED_CORNER_BITS = { - 0xee0, // 07340 XXX .XX X.. ... - 0x1dc, // 00734 ... XXX .XX X.. - 0x83b, // 04073 X.. ... XXX .XX - 0x707, // 03407 .XX X.. ... XXX - }; - - private static int getRotation(int[] sides, int length) throws NotFoundException { - // In a normal pattern, we expect to See - // ** .* D A - // * * - // - // . * - // .. .. C B - // - // Grab the 3 bits from each of the sides the form the locator pattern and concatenate - // into a 12-bit integer. Start with the bit at A - int cornerBits = 0; - for (int side : sides) { - // XX......X where X's are orientation marks - int t = ((side >> (length - 2)) << 1) + (side & 1); - cornerBits = (cornerBits << 3) + t; - } - // Mov the bottom bit to the top, so that the three bits of the locator pattern at A are - // together. cornerBits is now: - // 3 orientation bits at A || 3 orientation bits at B || ... || 3 orientation bits at D - cornerBits = ((cornerBits & 1) << 11) + (cornerBits >> 1); - // The result shift indicates which element of BullsEyeCorners[] goes into the top-left - // corner. Since the four rotation values have a Hamming distance of 8, we - // can easily tolerate two errors. - for (int shift = 0; shift < 4; shift++) { - if (Integer.bitCount(cornerBits ^ EXPECTED_CORNER_BITS[shift]) <= 2) { - return shift; - } - } - throw NotFoundException.getNotFoundInstance(); - } - - /** - * Corrects the parameter bits using Reed-Solomon algorithm. - * - * @param parameterData parameter bits - * @param compact true if this is a compact Aztec code - * @throws NotFoundException if the array contains too many errors - */ - private static int getCorrectedParameterData(long parameterData, boolean compact) throws NotFoundException { - int numCodewords; - int numDataCodewords; - - if (compact) { - numCodewords = 7; - numDataCodewords = 2; - } else { - numCodewords = 10; - numDataCodewords = 4; - } - - int numECCodewords = numCodewords - numDataCodewords; - int[] parameterWords = new int[numCodewords]; - for (int i = numCodewords - 1; i >= 0; --i) { - parameterWords[i] = (int) parameterData & 0xF; - parameterData >>= 4; - } - try { - ReedSolomonDecoder rsDecoder = new ReedSolomonDecoder(GenericGF.AZTEC_PARAM); - rsDecoder.decode(parameterWords, numECCodewords); - } catch (ReedSolomonException ignored) { - throw NotFoundException.getNotFoundInstance(); - } - // Toss the error correction. Just return the data as an integer - int result = 0; - for (int i = 0; i < numDataCodewords; i++) { - result = (result << 4) + parameterWords[i]; - } - return result; - } - - /** - * Finds the corners of a bull-eye centered on the passed point. - * This returns the centers of the diagonal points just outside the bull's eye - * Returns [topRight, bottomRight, bottomLeft, topLeft] - * - * @param pCenter Center point - * @return The corners of the bull-eye - * @throws NotFoundException If no valid bull-eye can be found - */ - private ResultPoint[] getBullsEyeCorners(Point pCenter) throws NotFoundException { - - Point pina = pCenter; - Point pinb = pCenter; - Point pinc = pCenter; - Point pind = pCenter; - - boolean color = true; - - for (nbCenterLayers = 1; nbCenterLayers < 9; nbCenterLayers++) { - Point pouta = getFirstDifferent(pina, color, 1, -1); - Point poutb = getFirstDifferent(pinb, color, 1, 1); - Point poutc = getFirstDifferent(pinc, color, -1, 1); - Point poutd = getFirstDifferent(pind, color, -1, -1); - - //d a - // - //c b - - if (nbCenterLayers > 2) { - float q = distance(poutd, pouta) * nbCenterLayers / (distance(pind, pina) * (nbCenterLayers + 2)); - if (q < 0.75 || q > 1.25 || !isWhiteOrBlackRectangle(pouta, poutb, poutc, poutd)) { - break; - } - } - - pina = pouta; - pinb = poutb; - pinc = poutc; - pind = poutd; - - color = !color; - } - - if (nbCenterLayers != 5 && nbCenterLayers != 7) { - throw NotFoundException.getNotFoundInstance(); - } - - compact = nbCenterLayers == 5; - - // Expand the square by .5 pixel in each direction so that we're on the border - // between the white square and the black square - ResultPoint pinax = new ResultPoint(pina.getX() + 0.5f, pina.getY() - 0.5f); - ResultPoint pinbx = new ResultPoint(pinb.getX() + 0.5f, pinb.getY() + 0.5f); - ResultPoint pincx = new ResultPoint(pinc.getX() - 0.5f, pinc.getY() + 0.5f); - ResultPoint pindx = new ResultPoint(pind.getX() - 0.5f, pind.getY() - 0.5f); - - // Expand the square so that its corners are the centers of the points - // just outside the bull's eye. - return expandSquare(new ResultPoint[]{pinax, pinbx, pincx, pindx}, - 2 * nbCenterLayers - 3, - 2 * nbCenterLayers); - } - - /** - * Finds a candidate center point of an Aztec code from an image - * - * @return the center point - */ - private Point getMatrixCenter() { - - ResultPoint pointA; - ResultPoint pointB; - ResultPoint pointC; - ResultPoint pointD; - - //Get a white rectangle that can be the border of the matrix in center bull's eye or - try { - - ResultPoint[] cornerPoints = new WhiteRectangleDetector(image).detect(); - pointA = cornerPoints[0]; - pointB = cornerPoints[1]; - pointC = cornerPoints[2]; - pointD = cornerPoints[3]; - - } catch (NotFoundException e) { - - // This exception can be in case the initial rectangle is white - // In that case, surely in the bull's eye, we try to expand the rectangle. - int cx = image.getWidth() / 2; - int cy = image.getHeight() / 2; - pointA = getFirstDifferent(new Point(cx + 7, cy - 7), false, 1, -1).toResultPoint(); - pointB = getFirstDifferent(new Point(cx + 7, cy + 7), false, 1, 1).toResultPoint(); - pointC = getFirstDifferent(new Point(cx - 7, cy + 7), false, -1, 1).toResultPoint(); - pointD = getFirstDifferent(new Point(cx - 7, cy - 7), false, -1, -1).toResultPoint(); - - } - - //Compute the center of the rectangle - int cx = MathUtils.round((pointA.getX() + pointD.getX() + pointB.getX() + pointC.getX()) / 4.0f); - int cy = MathUtils.round((pointA.getY() + pointD.getY() + pointB.getY() + pointC.getY()) / 4.0f); - - // Redetermine the white rectangle starting from previously computed center. - // This will ensure that we end up with a white rectangle in center bull's eye - // in order to compute a more accurate center. - try { - ResultPoint[] cornerPoints = new WhiteRectangleDetector(image, 15, cx, cy).detect(); - pointA = cornerPoints[0]; - pointB = cornerPoints[1]; - pointC = cornerPoints[2]; - pointD = cornerPoints[3]; - } catch (NotFoundException e) { - // This exception can be in case the initial rectangle is white - // In that case we try to expand the rectangle. - pointA = getFirstDifferent(new Point(cx + 7, cy - 7), false, 1, -1).toResultPoint(); - pointB = getFirstDifferent(new Point(cx + 7, cy + 7), false, 1, 1).toResultPoint(); - pointC = getFirstDifferent(new Point(cx - 7, cy + 7), false, -1, 1).toResultPoint(); - pointD = getFirstDifferent(new Point(cx - 7, cy - 7), false, -1, -1).toResultPoint(); - } - - // Recompute the center of the rectangle - cx = MathUtils.round((pointA.getX() + pointD.getX() + pointB.getX() + pointC.getX()) / 4.0f); - cy = MathUtils.round((pointA.getY() + pointD.getY() + pointB.getY() + pointC.getY()) / 4.0f); - - return new Point(cx, cy); - } - - /** - * Gets the Aztec code corners from the bull's eye corners and the parameters. - * - * @param bullsEyeCorners the array of bull's eye corners - * @return the array of aztec code corners - */ - private ResultPoint[] getMatrixCornerPoints(ResultPoint[] bullsEyeCorners) { - return expandSquare(bullsEyeCorners, 2 * nbCenterLayers, getDimension()); - } - - /** - * Creates a BitMatrix by sampling the provided image. - * topLeft, topRight, bottomRight, and bottomLeft are the centers of the squares on the - * diagonal just outside the bull's eye. - */ - private BitMatrix sampleGrid(BitMatrix image, - ResultPoint topLeft, - ResultPoint topRight, - ResultPoint bottomRight, - ResultPoint bottomLeft) throws NotFoundException { - - GridSampler sampler = GridSampler.getInstance(); - int dimension = getDimension(); - - float low = dimension / 2.0f - nbCenterLayers; - float high = dimension / 2.0f + nbCenterLayers; - - return sampler.sampleGrid(image, - dimension, - dimension, - low, low, // topleft - high, low, // topright - high, high, // bottomright - low, high, // bottomleft - topLeft.getX(), topLeft.getY(), - topRight.getX(), topRight.getY(), - bottomRight.getX(), bottomRight.getY(), - bottomLeft.getX(), bottomLeft.getY()); - } - - /** - * Samples a line. - * - * @param p1 start point (inclusive) - * @param p2 end point (exclusive) - * @param size number of bits - * @return the array of bits as an int (first bit is high-order bit of result) - */ - private int sampleLine(ResultPoint p1, ResultPoint p2, int size) { - int result = 0; - - float d = distance(p1, p2); - float moduleSize = d / size; - float px = p1.getX(); - float py = p1.getY(); - float dx = moduleSize * (p2.getX() - p1.getX()) / d; - float dy = moduleSize * (p2.getY() - p1.getY()) / d; - for (int i = 0; i < size; i++) { - if (image.get(MathUtils.round(px + i * dx), MathUtils.round(py + i * dy))) { - result |= 1 << (size - i - 1); - } - } - return result; - } - - /** - * @return true if the border of the rectangle passed in parameter is compound of white points only - * or black points only - */ - private boolean isWhiteOrBlackRectangle(Point p1, - Point p2, - Point p3, - Point p4) { - - int corr = 3; - - p1 = new Point(p1.getX() - corr, p1.getY() + corr); - p2 = new Point(p2.getX() - corr, p2.getY() - corr); - p3 = new Point(p3.getX() + corr, p3.getY() - corr); - p4 = new Point(p4.getX() + corr, p4.getY() + corr); - - int cInit = getColor(p4, p1); - - if (cInit == 0) { - return false; - } - - int c = getColor(p1, p2); - - if (c != cInit) { - return false; - } - - c = getColor(p2, p3); - - if (c != cInit) { - return false; - } - - c = getColor(p3, p4); - - return c == cInit; - - } - - /** - * Gets the color of a segment - * - * @return 1 if segment more than 90% black, -1 if segment is more than 90% white, 0 else - */ - private int getColor(Point p1, Point p2) { - float d = distance(p1, p2); - float dx = (p2.getX() - p1.getX()) / d; - float dy = (p2.getY() - p1.getY()) / d; - int error = 0; - - float px = p1.getX(); - float py = p1.getY(); - - boolean colorModel = image.get(p1.getX(), p1.getY()); - - for (int i = 0; i < d; i++) { - px += dx; - py += dy; - if (image.get(MathUtils.round(px), MathUtils.round(py)) != colorModel) { - error++; - } - } - - float errRatio = error / d; - - if (errRatio > 0.1f && errRatio < 0.9f) { - return 0; - } - - return (errRatio <= 0.1f) == colorModel ? 1 : -1; - } - - /** - * Gets the coordinate of the first point with a different color in the given direction - */ - private Point getFirstDifferent(Point init, boolean color, int dx, int dy) { - int x = init.getX() + dx; - int y = init.getY() + dy; - - while (isValid(x, y) && image.get(x, y) == color) { - x += dx; - y += dy; - } - - x -= dx; - y -= dy; - - while (isValid(x, y) && image.get(x, y) == color) { - x += dx; - } - x -= dx; - - while (isValid(x, y) && image.get(x, y) == color) { - y += dy; - } - y -= dy; - - return new Point(x, y); - } - - /** - * Expand the square represented by the corner points by pushing out equally in all directions - * - * @param cornerPoints the corners of the square, which has the bull's eye at its center - * @param oldSide the original length of the side of the square in the target bit matrix - * @param newSide the new length of the size of the square in the target bit matrix - * @return the corners of the expanded square - */ - private static ResultPoint[] expandSquare(ResultPoint[] cornerPoints, float oldSide, float newSide) { - float ratio = newSide / (2 * oldSide); - float dx = cornerPoints[0].getX() - cornerPoints[2].getX(); - float dy = cornerPoints[0].getY() - cornerPoints[2].getY(); - float centerx = (cornerPoints[0].getX() + cornerPoints[2].getX()) / 2.0f; - float centery = (cornerPoints[0].getY() + cornerPoints[2].getY()) / 2.0f; - - ResultPoint result0 = new ResultPoint(centerx + ratio * dx, centery + ratio * dy); - ResultPoint result2 = new ResultPoint(centerx - ratio * dx, centery - ratio * dy); - - dx = cornerPoints[1].getX() - cornerPoints[3].getX(); - dy = cornerPoints[1].getY() - cornerPoints[3].getY(); - centerx = (cornerPoints[1].getX() + cornerPoints[3].getX()) / 2.0f; - centery = (cornerPoints[1].getY() + cornerPoints[3].getY()) / 2.0f; - ResultPoint result1 = new ResultPoint(centerx + ratio * dx, centery + ratio * dy); - ResultPoint result3 = new ResultPoint(centerx - ratio * dx, centery - ratio * dy); - - return new ResultPoint[]{result0, result1, result2, result3}; - } - - private boolean isValid(int x, int y) { - return x >= 0 && x < image.getWidth() && y > 0 && y < image.getHeight(); - } - - private boolean isValid(ResultPoint point) { - int x = MathUtils.round(point.getX()); - int y = MathUtils.round(point.getY()); - return isValid(x, y); - } - - private static float distance(Point a, Point b) { - return MathUtils.distance(a.getX(), a.getY(), b.getX(), b.getY()); - } - - private static float distance(ResultPoint a, ResultPoint b) { - return MathUtils.distance(a.getX(), a.getY(), b.getX(), b.getY()); - } - - private int getDimension() { - if (compact) { - return 4 * nbLayers + 11; - } - if (nbLayers <= 4) { - return 4 * nbLayers + 15; - } - return 4 * nbLayers + 2 * ((nbLayers - 4) / 8 + 1) + 15; - } - - static final class Point { - private final int x; - private final int y; - - ResultPoint toResultPoint() { - return new ResultPoint(getX(), getY()); - } - - Point(int x, int y) { - this.x = x; - this.y = y; - } - - int getX() { - return x; - } - - int getY() { - return y; - } - - @Override - public String toString() { - return "<" + x + ' ' + y + '>'; - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/AztecCode.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/AztecCode.java deleted file mode 100755 index e813b6bf..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/AztecCode.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.aztec.encoder; - -import com.google.zxing.common.BitMatrix; - -/** - * Aztec 2D code representation - * - * @author Rustam Abdullaev - */ -public final class AztecCode { - - private boolean compact; - private int size; - private int layers; - private int codeWords; - private BitMatrix matrix; - - /** - * @return {@code true} if compact instead of full mode - */ - public boolean isCompact() { - return compact; - } - - public void setCompact(boolean compact) { - this.compact = compact; - } - - /** - * @return size in pixels (width and height) - */ - public int getSize() { - return size; - } - - public void setSize(int size) { - this.size = size; - } - - /** - * @return number of levels - */ - public int getLayers() { - return layers; - } - - public void setLayers(int layers) { - this.layers = layers; - } - - /** - * @return number of data codewords - */ - public int getCodeWords() { - return codeWords; - } - - public void setCodeWords(int codeWords) { - this.codeWords = codeWords; - } - - /** - * @return the symbol image - */ - public BitMatrix getMatrix() { - return matrix; - } - - public void setMatrix(BitMatrix matrix) { - this.matrix = matrix; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/BinaryShiftToken.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/BinaryShiftToken.java deleted file mode 100755 index 637ba63a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/BinaryShiftToken.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.aztec.encoder; - -import com.google.zxing.common.BitArray; - -final class BinaryShiftToken extends Token { - - private final short binaryShiftStart; - private final short binaryShiftByteCount; - - BinaryShiftToken(Token previous, - int binaryShiftStart, - int binaryShiftByteCount) { - super(previous); - this.binaryShiftStart = (short) binaryShiftStart; - this.binaryShiftByteCount = (short) binaryShiftByteCount; - } - - @Override - public void appendTo(BitArray bitArray, byte[] text) { - for (int i = 0; i < binaryShiftByteCount; i++) { - if (i == 0 || (i == 31 && binaryShiftByteCount <= 62)) { - // We need a header before the first character, and before - // character 31 when the total byte code is <= 62 - bitArray.appendBits(31, 5); // BINARY_SHIFT - if (binaryShiftByteCount > 62) { - bitArray.appendBits(binaryShiftByteCount - 31, 16); - } else if (i == 0) { - // 1 <= binaryShiftByteCode <= 62 - bitArray.appendBits(Math.min(binaryShiftByteCount, 31), 5); - } else { - // 32 <= binaryShiftCount <= 62 and i == 31 - bitArray.appendBits(binaryShiftByteCount - 31, 5); - } - } - bitArray.appendBits(text[binaryShiftStart + i], 8); - } - } - - @Override - public String toString() { - return "<" + binaryShiftStart + "::" + (binaryShiftStart + binaryShiftByteCount - 1) + '>'; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/Encoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/Encoder.java deleted file mode 100755 index 3a365541..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/Encoder.java +++ /dev/null @@ -1,346 +0,0 @@ -/* - * Copyright 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.aztec.encoder; - -import com.google.zxing.common.BitArray; -import com.google.zxing.common.BitMatrix; -import com.google.zxing.common.reedsolomon.GenericGF; -import com.google.zxing.common.reedsolomon.ReedSolomonEncoder; - -/** - * Generates Aztec 2D barcodes. - * - * @author Rustam Abdullaev - */ -public final class Encoder { - - public static final int DEFAULT_EC_PERCENT = 33; // default minimal percentage of error check words - public static final int DEFAULT_AZTEC_LAYERS = 0; - private static final int MAX_NB_BITS = 32; - private static final int MAX_NB_BITS_COMPACT = 4; - - private static final int[] WORD_SIZE = { - 4, 6, 6, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12 - }; - - private Encoder() { - } - - /** - * Encodes the given binary content as an Aztec symbol - * - * @param data input data string - * @return Aztec symbol matrix with metadata - */ - public static AztecCode encode(byte[] data) { - return encode(data, DEFAULT_EC_PERCENT, DEFAULT_AZTEC_LAYERS); - } - - /** - * Encodes the given binary content as an Aztec symbol - * - * @param data input data string - * @param minECCPercent minimal percentage of error check words (According to ISO/IEC 24778:2008, - * a minimum of 23% + 3 words is recommended) - * @param userSpecifiedLayers if non-zero, a user-specified value for the number of layers - * @return Aztec symbol matrix with metadata - */ - public static AztecCode encode(byte[] data, int minECCPercent, int userSpecifiedLayers) { - // High-level encode - BitArray bits = new HighLevelEncoder(data).encode(); - - // stuff bits and choose symbol size - int eccBits = bits.getSize() * minECCPercent / 100 + 11; - int totalSizeBits = bits.getSize() + eccBits; - boolean compact; - int layers; - int totalBitsInLayer; - int wordSize; - BitArray stuffedBits; - if (userSpecifiedLayers != DEFAULT_AZTEC_LAYERS) { - compact = userSpecifiedLayers < 0; - layers = Math.abs(userSpecifiedLayers); - if (layers > (compact ? MAX_NB_BITS_COMPACT : MAX_NB_BITS)) { - throw new IllegalArgumentException( - String.format("Illegal value %s for layers", userSpecifiedLayers)); - } - totalBitsInLayer = totalBitsInLayer(layers, compact); - wordSize = WORD_SIZE[layers]; - int usableBitsInLayers = totalBitsInLayer - (totalBitsInLayer % wordSize); - stuffedBits = stuffBits(bits, wordSize); - if (stuffedBits.getSize() + eccBits > usableBitsInLayers) { - throw new IllegalArgumentException("Data to large for user specified layer"); - } - if (compact && stuffedBits.getSize() > wordSize * 64) { - // Compact format only allows 64 data words, though C4 can hold more words than that - throw new IllegalArgumentException("Data to large for user specified layer"); - } - } else { - wordSize = 0; - stuffedBits = null; - // We look at the possible table sizes in the order Compact1, Compact2, Compact3, - // Compact4, Normal4,... Normal(i) for i < 4 isn't typically used since Compact(i+1) - // is the same size, but has more data. - for (int i = 0; ; i++) { - if (i > MAX_NB_BITS) { - throw new IllegalArgumentException("Data too large for an Aztec code"); - } - compact = i <= 3; - layers = compact ? i + 1 : i; - totalBitsInLayer = totalBitsInLayer(layers, compact); - if (totalSizeBits > totalBitsInLayer) { - continue; - } - // [Re]stuff the bits if this is the first opportunity, or if the - // wordSize has changed - if (wordSize != WORD_SIZE[layers]) { - wordSize = WORD_SIZE[layers]; - stuffedBits = stuffBits(bits, wordSize); - } - int usableBitsInLayers = totalBitsInLayer - (totalBitsInLayer % wordSize); - if (compact && stuffedBits.getSize() > wordSize * 64) { - // Compact format only allows 64 data words, though C4 can hold more words than that - continue; - } - if (stuffedBits.getSize() + eccBits <= usableBitsInLayers) { - break; - } - } - } - BitArray messageBits = generateCheckWords(stuffedBits, totalBitsInLayer, wordSize); - - // generate mode message - int messageSizeInWords = stuffedBits.getSize() / wordSize; - BitArray modeMessage = generateModeMessage(compact, layers, messageSizeInWords); - - // allocate symbol - int baseMatrixSize = compact ? 11 + layers * 4 : 14 + layers * 4; // not including alignment lines - int[] alignmentMap = new int[baseMatrixSize]; - int matrixSize; - if (compact) { - // no alignment marks in compact mode, alignmentMap is a no-op - matrixSize = baseMatrixSize; - for (int i = 0; i < alignmentMap.length; i++) { - alignmentMap[i] = i; - } - } else { - matrixSize = baseMatrixSize + 1 + 2 * ((baseMatrixSize / 2 - 1) / 15); - int origCenter = baseMatrixSize / 2; - int center = matrixSize / 2; - for (int i = 0; i < origCenter; i++) { - int newOffset = i + i / 15; - alignmentMap[origCenter - i - 1] = center - newOffset - 1; - alignmentMap[origCenter + i] = center + newOffset + 1; - } - } - BitMatrix matrix = new BitMatrix(matrixSize); - - // draw data bits - for (int i = 0, rowOffset = 0; i < layers; i++) { - int rowSize = compact ? (layers - i) * 4 + 9 : (layers - i) * 4 + 12; - for (int j = 0; j < rowSize; j++) { - int columnOffset = j * 2; - for (int k = 0; k < 2; k++) { - if (messageBits.get(rowOffset + columnOffset + k)) { - matrix.set(alignmentMap[i * 2 + k], alignmentMap[i * 2 + j]); - } - if (messageBits.get(rowOffset + rowSize * 2 + columnOffset + k)) { - matrix.set(alignmentMap[i * 2 + j], alignmentMap[baseMatrixSize - 1 - i * 2 - k]); - } - if (messageBits.get(rowOffset + rowSize * 4 + columnOffset + k)) { - matrix.set(alignmentMap[baseMatrixSize - 1 - i * 2 - k], alignmentMap[baseMatrixSize - 1 - i * 2 - j]); - } - if (messageBits.get(rowOffset + rowSize * 6 + columnOffset + k)) { - matrix.set(alignmentMap[baseMatrixSize - 1 - i * 2 - j], alignmentMap[i * 2 + k]); - } - } - } - rowOffset += rowSize * 8; - } - - // draw mode message - drawModeMessage(matrix, compact, matrixSize, modeMessage); - - // draw alignment marks - if (compact) { - drawBullsEye(matrix, matrixSize / 2, 5); - } else { - drawBullsEye(matrix, matrixSize / 2, 7); - for (int i = 0, j = 0; i < baseMatrixSize / 2 - 1; i += 15, j += 16) { - for (int k = (matrixSize / 2) & 1; k < matrixSize; k += 2) { - matrix.set(matrixSize / 2 - j, k); - matrix.set(matrixSize / 2 + j, k); - matrix.set(k, matrixSize / 2 - j); - matrix.set(k, matrixSize / 2 + j); - } - } - } - - AztecCode aztec = new AztecCode(); - aztec.setCompact(compact); - aztec.setSize(matrixSize); - aztec.setLayers(layers); - aztec.setCodeWords(messageSizeInWords); - aztec.setMatrix(matrix); - return aztec; - } - - private static void drawBullsEye(BitMatrix matrix, int center, int size) { - for (int i = 0; i < size; i += 2) { - for (int j = center - i; j <= center + i; j++) { - matrix.set(j, center - i); - matrix.set(j, center + i); - matrix.set(center - i, j); - matrix.set(center + i, j); - } - } - matrix.set(center - size, center - size); - matrix.set(center - size + 1, center - size); - matrix.set(center - size, center - size + 1); - matrix.set(center + size, center - size); - matrix.set(center + size, center - size + 1); - matrix.set(center + size, center + size - 1); - } - - static BitArray generateModeMessage(boolean compact, int layers, int messageSizeInWords) { - BitArray modeMessage = new BitArray(); - if (compact) { - modeMessage.appendBits(layers - 1, 2); - modeMessage.appendBits(messageSizeInWords - 1, 6); - modeMessage = generateCheckWords(modeMessage, 28, 4); - } else { - modeMessage.appendBits(layers - 1, 5); - modeMessage.appendBits(messageSizeInWords - 1, 11); - modeMessage = generateCheckWords(modeMessage, 40, 4); - } - return modeMessage; - } - - private static void drawModeMessage(BitMatrix matrix, boolean compact, int matrixSize, BitArray modeMessage) { - int center = matrixSize / 2; - if (compact) { - for (int i = 0; i < 7; i++) { - int offset = center - 3 + i; - if (modeMessage.get(i)) { - matrix.set(offset, center - 5); - } - if (modeMessage.get(i + 7)) { - matrix.set(center + 5, offset); - } - if (modeMessage.get(20 - i)) { - matrix.set(offset, center + 5); - } - if (modeMessage.get(27 - i)) { - matrix.set(center - 5, offset); - } - } - } else { - for (int i = 0; i < 10; i++) { - int offset = center - 5 + i + i / 5; - if (modeMessage.get(i)) { - matrix.set(offset, center - 7); - } - if (modeMessage.get(i + 10)) { - matrix.set(center + 7, offset); - } - if (modeMessage.get(29 - i)) { - matrix.set(offset, center + 7); - } - if (modeMessage.get(39 - i)) { - matrix.set(center - 7, offset); - } - } - } - } - - private static BitArray generateCheckWords(BitArray bitArray, int totalBits, int wordSize) { - // bitArray is guaranteed to be a multiple of the wordSize, so no padding needed - int messageSizeInWords = bitArray.getSize() / wordSize; - ReedSolomonEncoder rs = new ReedSolomonEncoder(getGF(wordSize)); - int totalWords = totalBits / wordSize; - int[] messageWords = bitsToWords(bitArray, wordSize, totalWords); - rs.encode(messageWords, totalWords - messageSizeInWords); - int startPad = totalBits % wordSize; - BitArray messageBits = new BitArray(); - messageBits.appendBits(0, startPad); - for (int messageWord : messageWords) { - messageBits.appendBits(messageWord, wordSize); - } - return messageBits; - } - - private static int[] bitsToWords(BitArray stuffedBits, int wordSize, int totalWords) { - int[] message = new int[totalWords]; - int i; - int n; - for (i = 0, n = stuffedBits.getSize() / wordSize; i < n; i++) { - int value = 0; - for (int j = 0; j < wordSize; j++) { - value |= stuffedBits.get(i * wordSize + j) ? (1 << wordSize - j - 1) : 0; - } - message[i] = value; - } - return message; - } - - private static GenericGF getGF(int wordSize) { - switch (wordSize) { - case 4: - return GenericGF.AZTEC_PARAM; - case 6: - return GenericGF.AZTEC_DATA_6; - case 8: - return GenericGF.AZTEC_DATA_8; - case 10: - return GenericGF.AZTEC_DATA_10; - case 12: - return GenericGF.AZTEC_DATA_12; - default: - throw new IllegalArgumentException("Unsupported word size " + wordSize); - } - } - - static BitArray stuffBits(BitArray bits, int wordSize) { - BitArray out = new BitArray(); - - int n = bits.getSize(); - int mask = (1 << wordSize) - 2; - for (int i = 0; i < n; i += wordSize) { - int word = 0; - for (int j = 0; j < wordSize; j++) { - if (i + j >= n || bits.get(i + j)) { - word |= 1 << (wordSize - 1 - j); - } - } - if ((word & mask) == mask) { - out.appendBits(word & mask, wordSize); - i--; - } else if ((word & mask) == 0) { - out.appendBits(word | 1, wordSize); - i--; - } else { - out.appendBits(word, wordSize); - } - } - return out; - } - - private static int totalBitsInLayer(int layers, boolean compact) { - return ((compact ? 88 : 112) + 16 * layers) * layers; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/HighLevelEncoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/HighLevelEncoder.java deleted file mode 100755 index 6332063c..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/HighLevelEncoder.java +++ /dev/null @@ -1,307 +0,0 @@ -/* - * Copyright 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.aztec.encoder; - -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; - -import com.google.zxing.common.BitArray; - -/** - * This produces nearly optimal encodings of text into the first-level of - * encoding used by Aztec code. - * - * It uses a dynamic algorithm. For each prefix of the string, it determines - * a set of encodings that could lead to this prefix. We repeatedly add a - * character and generate a new set of optimal encodings until we have read - * through the entire input. - * - * @author Frank Yellin - * @author Rustam Abdullaev - */ -public final class HighLevelEncoder { - - static final String[] MODE_NAMES = {"UPPER", "LOWER", "DIGIT", "MIXED", "PUNCT"}; - - static final int MODE_UPPER = 0; // 5 bits - static final int MODE_LOWER = 1; // 5 bits - static final int MODE_DIGIT = 2; // 4 bits - static final int MODE_MIXED = 3; // 5 bits - static final int MODE_PUNCT = 4; // 5 bits - - // The Latch Table shows, for each pair of Modes, the optimal method for - // getting from one mode to another. In the worst possible case, this can - // be up to 14 bits. In the best possible case, we are already there! - // The high half-word of each entry gives the number of bits. - // The low half-word of each entry are the actual bits necessary to change - static final int[][] LATCH_TABLE = { - { - 0, - (5 << 16) + 28, // UPPER -> LOWER - (5 << 16) + 30, // UPPER -> DIGIT - (5 << 16) + 29, // UPPER -> MIXED - (10 << 16) + (29 << 5) + 30, // UPPER -> MIXED -> PUNCT - }, - { - (9 << 16) + (30 << 4) + 14, // LOWER -> DIGIT -> UPPER - 0, - (5 << 16) + 30, // LOWER -> DIGIT - (5 << 16) + 29, // LOWER -> MIXED - (10 << 16) + (29 << 5) + 30, // LOWER -> MIXED -> PUNCT - }, - { - (4 << 16) + 14, // DIGIT -> UPPER - (9 << 16) + (14 << 5) + 28, // DIGIT -> UPPER -> LOWER - 0, - (9 << 16) + (14 << 5) + 29, // DIGIT -> UPPER -> MIXED - (14 << 16) + (14 << 10) + (29 << 5) + 30, - // DIGIT -> UPPER -> MIXED -> PUNCT - }, - { - (5 << 16) + 29, // MIXED -> UPPER - (5 << 16) + 28, // MIXED -> LOWER - (10 << 16) + (29 << 5) + 30, // MIXED -> UPPER -> DIGIT - 0, - (5 << 16) + 30, // MIXED -> PUNCT - }, - { - (5 << 16) + 31, // PUNCT -> UPPER - (10 << 16) + (31 << 5) + 28, // PUNCT -> UPPER -> LOWER - (10 << 16) + (31 << 5) + 30, // PUNCT -> UPPER -> DIGIT - (10 << 16) + (31 << 5) + 29, // PUNCT -> UPPER -> MIXED - 0, - }, - }; - - // A reverse mapping from [mode][char] to the encoding for that character - // in that mode. An entry of 0 indicates no mapping exists. - private static final int[][] CHAR_MAP = new int[5][256]; - static { - CHAR_MAP[MODE_UPPER][' '] = 1; - for (int c = 'A'; c <= 'Z'; c++) { - CHAR_MAP[MODE_UPPER][c] = c - 'A' + 2; - } - CHAR_MAP[MODE_LOWER][' '] = 1; - for (int c = 'a'; c <= 'z'; c++) { - CHAR_MAP[MODE_LOWER][c] = c - 'a' + 2; - } - CHAR_MAP[MODE_DIGIT][' '] = 1; - for (int c = '0'; c <= '9'; c++) { - CHAR_MAP[MODE_DIGIT][c] = c - '0' + 2; - } - CHAR_MAP[MODE_DIGIT][','] = 12; - CHAR_MAP[MODE_DIGIT]['.'] = 13; - int[] mixedTable = { - '\0', ' ', '\1', '\2', '\3', '\4', '\5', '\6', '\7', '\b', '\t', '\n', - '\13', '\f', '\r', '\33', '\34', '\35', '\36', '\37', '@', '\\', '^', - '_', '`', '|', '~', '\177' - }; - for (int i = 0; i < mixedTable.length; i++) { - CHAR_MAP[MODE_MIXED][mixedTable[i]] = i; - } - int[] punctTable = { - '\0', '\r', '\0', '\0', '\0', '\0', '!', '\'', '#', '$', '%', '&', '\'', - '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', - '[', ']', '{', '}' - }; - for (int i = 0; i < punctTable.length; i++) { - if (punctTable[i] > 0) { - CHAR_MAP[MODE_PUNCT][punctTable[i]] = i; - } - } - } - - // A map showing the available shift codes. (The shifts to BINARY are not - // shown - static final int[][] SHIFT_TABLE = new int[6][6]; // mode shift codes, per table - static { - for (int[] table : SHIFT_TABLE) { - Arrays.fill(table, -1); - } - SHIFT_TABLE[MODE_UPPER][MODE_PUNCT] = 0; - - SHIFT_TABLE[MODE_LOWER][MODE_PUNCT] = 0; - SHIFT_TABLE[MODE_LOWER][MODE_UPPER] = 28; - - SHIFT_TABLE[MODE_MIXED][MODE_PUNCT] = 0; - - SHIFT_TABLE[MODE_DIGIT][MODE_PUNCT] = 0; - SHIFT_TABLE[MODE_DIGIT][MODE_UPPER] = 15; - } - - private final byte[] text; - - public HighLevelEncoder(byte[] text) { - this.text = text; - } - - /** - * @return text represented by this encoder encoded as a {@link BitArray} - */ - public BitArray encode() { - Collection states = Collections.singletonList(State.INITIAL_STATE); - for (int index = 0; index < text.length; index++) { - int pairCode; - int nextChar = index + 1 < text.length ? text[index + 1] : 0; - switch (text[index]) { - case '\r': - pairCode = nextChar == '\n' ? 2 : 0; - break; - case '.' : - pairCode = nextChar == ' ' ? 3 : 0; - break; - case ',' : - pairCode = nextChar == ' ' ? 4 : 0; - break; - case ':' : - pairCode = nextChar == ' ' ? 5 : 0; - break; - default: - pairCode = 0; - } - if (pairCode > 0) { - // We have one of the four special PUNCT pairs. Treat them specially. - // Get a new set of states for the two new characters. - states = updateStateListForPair(states, index, pairCode); - index++; - } else { - // Get a new set of states for the new character. - states = updateStateListForChar(states, index); - } - } - // We are left with a set of states. Find the shortest one. - State minState = Collections.min(states, new Comparator() { - @Override - public int compare(State a, State b) { - return a.getBitCount() - b.getBitCount(); - } - }); - // Convert it to a bit array, and return. - return minState.toBitArray(text); - } - - // We update a set of states for a new character by updating each state - // for the new character, merging the results, and then removing the - // non-optimal states. - private Collection updateStateListForChar(Iterable states, int index) { - Collection result = new LinkedList<>(); - for (State state : states) { - updateStateForChar(state, index, result); - } - return simplifyStates(result); - } - - // Return a set of states that represent the possible ways of updating this - // state for the next character. The resulting set of states are added to - // the "result" list. - private void updateStateForChar(State state, int index, Collection result) { - char ch = (char) (text[index] & 0xFF); - boolean charInCurrentTable = CHAR_MAP[state.getMode()][ch] > 0; - State stateNoBinary = null; - for (int mode = 0; mode <= MODE_PUNCT; mode++) { - int charInMode = CHAR_MAP[mode][ch]; - if (charInMode > 0) { - if (stateNoBinary == null) { - // Only create stateNoBinary the first time it's required. - stateNoBinary = state.endBinaryShift(index); - } - // Try generating the character by latching to its mode - if (!charInCurrentTable || mode == state.getMode() || mode == MODE_DIGIT) { - // If the character is in the current table, we don't want to latch to - // any other mode except possibly digit (which uses only 4 bits). Any - // other latch would be equally successful *after* this character, and - // so wouldn't save any bits. - State latchState = stateNoBinary.latchAndAppend(mode, charInMode); - result.add(latchState); - } - // Try generating the character by switching to its mode. - if (!charInCurrentTable && SHIFT_TABLE[state.getMode()][mode] >= 0) { - // It never makes sense to temporarily shift to another mode if the - // character exists in the current mode. That can never save bits. - State shiftState = stateNoBinary.shiftAndAppend(mode, charInMode); - result.add(shiftState); - } - } - } - if (state.getBinaryShiftByteCount() > 0 || CHAR_MAP[state.getMode()][ch] == 0) { - // It's never worthwhile to go into binary shift mode if you're not already - // in binary shift mode, and the character exists in your current mode. - // That can never save bits over just outputting the char in the current mode. - State binaryState = state.addBinaryShiftChar(index); - result.add(binaryState); - } - } - - private static Collection updateStateListForPair(Iterable states, int index, int pairCode) { - Collection result = new LinkedList<>(); - for (State state : states) { - updateStateForPair(state, index, pairCode, result); - } - return simplifyStates(result); - } - - private static void updateStateForPair(State state, int index, int pairCode, Collection result) { - State stateNoBinary = state.endBinaryShift(index); - // Possibility 1. Latch to MODE_PUNCT, and then append this code - result.add(stateNoBinary.latchAndAppend(MODE_PUNCT, pairCode)); - if (state.getMode() != MODE_PUNCT) { - // Possibility 2. Shift to MODE_PUNCT, and then append this code. - // Every state except MODE_PUNCT (handled above) can shift - result.add(stateNoBinary.shiftAndAppend(MODE_PUNCT, pairCode)); - } - if (pairCode == 3 || pairCode == 4) { - // both characters are in DIGITS. Sometimes better to just add two digits - State digitState = stateNoBinary - .latchAndAppend(MODE_DIGIT, 16 - pairCode) // period or comma in DIGIT - .latchAndAppend(MODE_DIGIT, 1); // space in DIGIT - result.add(digitState); - } - if (state.getBinaryShiftByteCount() > 0) { - // It only makes sense to do the characters as binary if we're already - // in binary mode. - State binaryState = state.addBinaryShiftChar(index).addBinaryShiftChar(index + 1); - result.add(binaryState); - } - } - - private static Collection simplifyStates(Iterable states) { - List result = new LinkedList<>(); - for (State newState : states) { - boolean add = true; - for (Iterator iterator = result.iterator(); iterator.hasNext();) { - State oldState = iterator.next(); - if (oldState.isBetterThanOrEqualTo(newState)) { - add = false; - break; - } - if (newState.isBetterThanOrEqualTo(oldState)) { - iterator.remove(); - } - } - if (add) { - result.add(newState); - } - } - return result; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/SimpleToken.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/SimpleToken.java deleted file mode 100755 index 047d962a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/SimpleToken.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.aztec.encoder; - -import com.google.zxing.common.BitArray; - -final class SimpleToken extends Token { - - // For normal words, indicates value and bitCount - private final short value; - private final short bitCount; - - SimpleToken(Token previous, int value, int bitCount) { - super(previous); - this.value = (short) value; - this.bitCount = (short) bitCount; - } - - @Override - void appendTo(BitArray bitArray, byte[] text) { - bitArray.appendBits(value, bitCount); - } - - @Override - public String toString() { - int value = this.value & ((1 << bitCount) - 1); - value |= 1 << bitCount; - return '<' + Integer.toBinaryString(value | (1 << bitCount)).substring(1) + '>'; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/State.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/State.java deleted file mode 100755 index 927da63a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/State.java +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Copyright 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.aztec.encoder; - -import java.util.Deque; -import java.util.LinkedList; - -import com.google.zxing.common.BitArray; - -/** - * State represents all information about a sequence necessary to generate the current output. - * Note that a state is immutable. - */ -final class State { - - static final State INITIAL_STATE = new State(Token.EMPTY, HighLevelEncoder.MODE_UPPER, 0, 0); - - // The current mode of the encoding (or the mode to which we'll return if - // we're in Binary Shift mode. - private final int mode; - // The list of tokens that we output. If we are in Binary Shift mode, this - // token list does *not* yet included the token for those bytes - private final Token token; - // If non-zero, the number of most recent bytes that should be output - // in Binary Shift mode. - private final int binaryShiftByteCount; - // The total number of bits generated (including Binary Shift). - private final int bitCount; - - private State(Token token, int mode, int binaryBytes, int bitCount) { - this.token = token; - this.mode = mode; - this.binaryShiftByteCount = binaryBytes; - this.bitCount = bitCount; - // Make sure we match the token - //int binaryShiftBitCount = (binaryShiftByteCount * 8) + - // (binaryShiftByteCount == 0 ? 0 : - // binaryShiftByteCount <= 31 ? 10 : - // binaryShiftByteCount <= 62 ? 20 : 21); - //assert this.bitCount == token.getTotalBitCount() + binaryShiftBitCount; - } - - int getMode() { - return mode; - } - - Token getToken() { - return token; - } - - int getBinaryShiftByteCount() { - return binaryShiftByteCount; - } - - int getBitCount() { - return bitCount; - } - - // Create a new state representing this state with a latch to a (not - // necessary different) mode, and then a code. - State latchAndAppend(int mode, int value) { - //assert binaryShiftByteCount == 0; - int bitCount = this.bitCount; - Token token = this.token; - if (mode != this.mode) { - int latch = HighLevelEncoder.LATCH_TABLE[this.mode][mode]; - token = token.add(latch & 0xFFFF, latch >> 16); - bitCount += latch >> 16; - } - int latchModeBitCount = mode == HighLevelEncoder.MODE_DIGIT ? 4 : 5; - token = token.add(value, latchModeBitCount); - return new State(token, mode, 0, bitCount + latchModeBitCount); - } - - // Create a new state representing this state, with a temporary shift - // to a different mode to output a single value. - State shiftAndAppend(int mode, int value) { - //assert binaryShiftByteCount == 0 && this.mode != mode; - Token token = this.token; - int thisModeBitCount = this.mode == HighLevelEncoder.MODE_DIGIT ? 4 : 5; - // Shifts exist only to UPPER and PUNCT, both with tokens size 5. - token = token.add(HighLevelEncoder.SHIFT_TABLE[this.mode][mode], thisModeBitCount); - token = token.add(value, 5); - return new State(token, this.mode, 0, this.bitCount + thisModeBitCount + 5); - } - - // Create a new state representing this state, but an additional character - // output in Binary Shift mode. - State addBinaryShiftChar(int index) { - Token token = this.token; - int mode = this.mode; - int bitCount = this.bitCount; - if (this.mode == HighLevelEncoder.MODE_PUNCT || this.mode == HighLevelEncoder.MODE_DIGIT) { - //assert binaryShiftByteCount == 0; - int latch = HighLevelEncoder.LATCH_TABLE[mode][HighLevelEncoder.MODE_UPPER]; - token = token.add(latch & 0xFFFF, latch >> 16); - bitCount += latch >> 16; - mode = HighLevelEncoder.MODE_UPPER; - } - int deltaBitCount = - (binaryShiftByteCount == 0 || binaryShiftByteCount == 31) ? 18 : - (binaryShiftByteCount == 62) ? 9 : 8; - State result = new State(token, mode, binaryShiftByteCount + 1, bitCount + deltaBitCount); - if (result.binaryShiftByteCount == 2047 + 31) { - // The string is as long as it's allowed to be. We should end it. - result = result.endBinaryShift(index + 1); - } - return result; - } - - // Create the state identical to this one, but we are no longer in - // Binary Shift mode. - State endBinaryShift(int index) { - if (binaryShiftByteCount == 0) { - return this; - } - Token token = this.token; - token = token.addBinaryShift(index - binaryShiftByteCount, binaryShiftByteCount); - //assert token.getTotalBitCount() == this.bitCount; - return new State(token, mode, 0, this.bitCount); - } - - // Returns true if "this" state is better (or equal) to be in than "that" - // state under all possible circumstances. - boolean isBetterThanOrEqualTo(State other) { - int mySize = this.bitCount + (HighLevelEncoder.LATCH_TABLE[this.mode][other.mode] >> 16); - if (other.binaryShiftByteCount > 0 && - (this.binaryShiftByteCount == 0 || this.binaryShiftByteCount > other.binaryShiftByteCount)) { - mySize += 10; // Cost of entering Binary Shift mode. - } - return mySize <= other.bitCount; - } - - BitArray toBitArray(byte[] text) { - // Reverse the tokens, so that they are in the order that they should - // be output - Deque symbols = new LinkedList<>(); - for (Token token = endBinaryShift(text.length).token; token != null; token = token.getPrevious()) { - symbols.addFirst(token); - } - BitArray bitArray = new BitArray(); - // Add each token to the result. - for (Token symbol : symbols) { - symbol.appendTo(bitArray, text); - } - //assert bitArray.getSize() == this.bitCount; - return bitArray; - } - - @Override - public String toString() { - return String.format("%s bits=%d bytes=%d", HighLevelEncoder.MODE_NAMES[mode], bitCount, binaryShiftByteCount); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/Token.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/Token.java deleted file mode 100755 index 62d336e9..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/aztec/encoder/Token.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.aztec.encoder; - -import com.google.zxing.common.BitArray; - -abstract class Token { - - static final Token EMPTY = new SimpleToken(null, 0, 0); - - private final Token previous; - - Token(Token previous) { - this.previous = previous; - } - - final Token getPrevious() { - return previous; - } - - final Token add(int value, int bitCount) { - return new SimpleToken(this, value, bitCount); - } - - final Token addBinaryShift(int start, int byteCount) { - //int bitCount = (byteCount * 8) + (byteCount <= 31 ? 10 : byteCount <= 62 ? 20 : 21); - return new BinaryShiftToken(this, start, byteCount); - } - - abstract void appendTo(BitArray bitArray, byte[] text); - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/AmbientLightManager.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/AmbientLightManager.java deleted file mode 100755 index cc4e405b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/AmbientLightManager.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (C) 2012 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - -import android.content.Context; -import android.content.SharedPreferences; -import android.hardware.Sensor; -import android.hardware.SensorEvent; -import android.hardware.SensorEventListener; -import android.hardware.SensorManager; -import android.preference.PreferenceManager; - -import com.google.zxing.client.android.camera.CameraManager; -import com.google.zxing.client.android.camera.FrontLightMode; - -/** - * Detects ambient light and switches on the front light when very dark, and off again when sufficiently light. - * - * @author Sean Owen - * @author Nikolaus Huber - */ -final class AmbientLightManager implements SensorEventListener { - - private static final float TOO_DARK_LUX = 45.0f; - private static final float BRIGHT_ENOUGH_LUX = 450.0f; - - private final Context context; - private CameraManager cameraManager; - private Sensor lightSensor; - - AmbientLightManager(Context context) { - this.context = context; - } - - void start(CameraManager cameraManager) { - this.cameraManager = cameraManager; - SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); - if (FrontLightMode.readPref(sharedPrefs) == FrontLightMode.AUTO) { - SensorManager sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE); - lightSensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); - if (lightSensor != null) { - sensorManager.registerListener(this, lightSensor, SensorManager.SENSOR_DELAY_NORMAL); - } - } - } - - void stop() { - if (lightSensor != null) { - SensorManager sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE); - sensorManager.unregisterListener(this); - cameraManager = null; - lightSensor = null; - } - } - - @Override - public void onSensorChanged(SensorEvent sensorEvent) { - float ambientLightLux = sensorEvent.values[0]; - if (cameraManager != null) { - if (ambientLightLux <= TOO_DARK_LUX) { - cameraManager.setTorch(true); - } else if (ambientLightLux >= BRIGHT_ENOUGH_LUX) { - cameraManager.setTorch(false); - } - } - } - - @Override - public void onAccuracyChanged(Sensor sensor, int accuracy) { - // do nothing - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/BeepManager.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/BeepManager.java deleted file mode 100755 index 7cf7467b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/BeepManager.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - -import android.app.Activity; -import android.content.Context; -import android.content.SharedPreferences; -import android.content.res.AssetFileDescriptor; -import android.media.AudioManager; -import android.media.MediaPlayer; -import android.os.Vibrator; -import android.preference.PreferenceManager; -import android.util.Log; - -import com.alibaba.weex.R; - -import java.io.Closeable; -import java.io.IOException; - - -/** - * Manages beeps and vibrations for {@link CaptureActivity}. - */ -final class BeepManager implements MediaPlayer.OnErrorListener, Closeable { - - private static final String TAG = BeepManager.class.getSimpleName(); - - private static final float BEEP_VOLUME = 0.10f; - private static final long VIBRATE_DURATION = 200L; - - private final Activity activity; - private MediaPlayer mediaPlayer; - private boolean playBeep; - private boolean vibrate; - - BeepManager(Activity activity) { - this.activity = activity; - this.mediaPlayer = null; - updatePrefs(); - } - - synchronized void updatePrefs() { - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity); - playBeep = shouldBeep(prefs, activity); - vibrate = prefs.getBoolean(PreferencesActivity.KEY_VIBRATE, false); - if (playBeep && mediaPlayer == null) { - // The volume on STREAM_SYSTEM is not adjustable, and users found it too loud, - // so we now play on the music stream. - activity.setVolumeControlStream(AudioManager.STREAM_MUSIC); - mediaPlayer = buildMediaPlayer(activity); - } - } - - synchronized void playBeepSoundAndVibrate() { - if (playBeep && mediaPlayer != null) { - mediaPlayer.start(); - } - if (vibrate) { - Vibrator vibrator = (Vibrator) activity.getSystemService(Context.VIBRATOR_SERVICE); - vibrator.vibrate(VIBRATE_DURATION); - } - } - - private static boolean shouldBeep(SharedPreferences prefs, Context activity) { - boolean shouldPlayBeep = prefs.getBoolean(PreferencesActivity.KEY_PLAY_BEEP, true); - if (shouldPlayBeep) { - // See if sound settings overrides this - AudioManager audioService = (AudioManager) activity.getSystemService(Context.AUDIO_SERVICE); - if (audioService.getRingerMode() != AudioManager.RINGER_MODE_NORMAL) { - shouldPlayBeep = false; - } - } - return shouldPlayBeep; - } - - private MediaPlayer buildMediaPlayer(Context activity) { - MediaPlayer mediaPlayer = new MediaPlayer(); - try { - AssetFileDescriptor file = activity.getResources().openRawResourceFd(R.raw.beep); - try { - mediaPlayer.setDataSource(file.getFileDescriptor(), file.getStartOffset(), file.getLength()); - } finally { - file.close(); - } - mediaPlayer.setOnErrorListener(this); - mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); - mediaPlayer.setLooping(false); - mediaPlayer.setVolume(BEEP_VOLUME, BEEP_VOLUME); - mediaPlayer.prepare(); - return mediaPlayer; - } catch (IOException ioe) { - Log.w(TAG, ioe); - mediaPlayer.release(); - return null; - } - } - - @Override - public synchronized boolean onError(MediaPlayer mp, int what, int extra) { - if (what == MediaPlayer.MEDIA_ERROR_SERVER_DIED) { - // we are finished, so put up an appropriate error toast if required and finish - activity.finish(); - } else { - // possibly media player error, so release and recreate - close(); - updatePrefs(); - } - return true; - } - - @Override - public synchronized void close() { - if (mediaPlayer != null) { - mediaPlayer.release(); - mediaPlayer = null; - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/CaptureActivity.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/CaptureActivity.java deleted file mode 100755 index a919f013..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/CaptureActivity.java +++ /dev/null @@ -1,822 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - -import android.Manifest; -import android.app.Activity; -import android.app.AlertDialog; -import android.content.Intent; -import android.content.SharedPreferences; -import android.content.pm.ActivityInfo; -import android.content.pm.PackageManager; -import android.content.res.Configuration; -import android.graphics.Bitmap; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.net.Uri; -import android.os.Bundle; -import android.os.Handler; -import android.os.Message; -import android.preference.PreferenceManager; -import android.support.annotation.NonNull; -import android.support.v4.app.ActivityCompat; -import android.text.TextUtils; -import android.util.Log; -import android.view.KeyEvent; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.Surface; -import android.view.SurfaceHolder; -import android.view.SurfaceView; -import android.view.View; -import android.view.Window; -import android.view.WindowManager; -import android.widget.TextView; -import android.widget.Toast; - -import com.alibaba.weex.R; -import com.alibaba.weex.WXPageActivity; -import com.google.zxing.BarcodeFormat; -import com.google.zxing.DecodeHintType; -import com.google.zxing.Result; -import com.google.zxing.ResultMetadataType; -import com.google.zxing.ResultPoint; -import com.google.zxing.client.android.camera.CameraManager; -import com.google.zxing.client.android.clipboard.ClipboardInterface; -import com.google.zxing.client.android.history.HistoryActivity; -import com.google.zxing.client.android.history.HistoryItem; -import com.google.zxing.client.android.history.HistoryManager; -import com.google.zxing.client.android.result.ResultHandler; -import com.google.zxing.client.android.result.ResultHandlerFactory; -import com.taobao.weex.WXEnvironment; -import com.taobao.weex.WXSDKEngine; - -import java.io.IOException; -import java.util.Collection; -import java.util.EnumSet; -import java.util.Map; - - -/** - * This activity opens the camera and does the actual scanning on a background - * thread. It draws a viewfinder to help the user place the barcode correctly, - * shows feedback as the image processing is happening, and then overlays the - * results when a scan is successful. - * - * @author dswitkin@google.com (Daniel Switkin) - * @author Sean Owen - */ -public final class CaptureActivity extends Activity implements - SurfaceHolder.Callback { - - private static final String TAG = CaptureActivity.class.getSimpleName(); - - private static final long DEFAULT_INTENT_RESULT_DURATION_MS = 1500L; - private static final long BULK_MODE_SCAN_DELAY_MS = 1000L; - - private static final int MY_PERMISSION_REQUEST_CAMERA = 0x1001; - - private static final String[] ZXING_URLS = { - "http://zxing.appspot.com/scan", "zxing://scan/"}; - - public static final int HISTORY_REQUEST_CODE = 0x0000bacc; - - private static final Collection DISPLAYABLE_METADATA_TYPES = EnumSet - .of(ResultMetadataType.ISSUE_NUMBER, - ResultMetadataType.SUGGESTED_PRICE, - ResultMetadataType.ERROR_CORRECTION_LEVEL, - ResultMetadataType.POSSIBLE_COUNTRY); - - private CameraManager cameraManager; - private CaptureActivityHandler handler; - private Result savedResultToShow; - private ViewfinderView viewfinderView; - private TextView statusView; - private View resultView; - private Result lastResult; - private boolean hasSurface; - private boolean copyToClipboard; - private IntentSource source; - private String sourceUrl; - private ScanFromWebPageManager scanFromWebPageManager; - private Collection decodeFormats; - private Map decodeHints; - private String characterSet; - private HistoryManager historyManager; - private InactivityTimer inactivityTimer; - private BeepManager beepManager; - private AmbientLightManager ambientLightManager; - - private String mDirectionType; - - ViewfinderView getViewfinderView() { - return viewfinderView; - } - - public Handler getHandler() { - return handler; - } - - CameraManager getCameraManager() { - return cameraManager; - } - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - - Window window = getWindow(); - window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); - - PreferenceManager.setDefaultValues(this, R.xml.preferences, false); - - if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) { - setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); - } else { - setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); - } - - mDirectionType = getIntent().getStringExtra("type"); - - if (TextUtils.isEmpty(mDirectionType)) { - mDirectionType = "activity"; - } - - if (!(ActivityCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED)) { - requestCameraPermission(); - } else { - initView(); - } - } - - private void initView() { - setContentView(R.layout.capture); - - hasSurface = false; - inactivityTimer = new InactivityTimer(this); - beepManager = new BeepManager(this); - ambientLightManager = new AmbientLightManager(this); - } - - private void requestCameraPermission() { - if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)) { - Toast.makeText(this, R.string.request_camera_permission, Toast.LENGTH_LONG).show(); - requestPermissions(new String[]{Manifest.permission.CAMERA}, MY_PERMISSION_REQUEST_CAMERA); - } else { - Toast.makeText(this, R.string.request_camera_permission, Toast.LENGTH_LONG).show(); - requestPermissions(new String[]{Manifest.permission.CAMERA}, MY_PERMISSION_REQUEST_CAMERA); - } - } - - @Override - protected void onResume() { - super.onResume(); - - // historyManager must be initialized here to update the history - // preference - historyManager = new HistoryManager(this); - historyManager.trimHistory(); - - // CameraManager must be initialized here, not in onCreate(). This is - // necessary because we don't - // want to open the camera driver and measure the screen size if we're - // going to show the help on - // first launch. That led to bugs where the scanning rectangle was the - // wrong size and partially - // off screen. - cameraManager = new CameraManager(getApplication()); - - viewfinderView = (ViewfinderView) findViewById(R.id.viewfinder_view); - viewfinderView.setCameraManager(cameraManager); - - resultView = findViewById(R.id.result_view); - statusView = (TextView) findViewById(R.id.status_view); - - handler = null; - lastResult = null; - - SharedPreferences prefs = PreferenceManager - .getDefaultSharedPreferences(this); - - resetStatusView(); - - beepManager.updatePrefs(); - ambientLightManager.start(cameraManager); - - inactivityTimer.onResume(); - - Intent intent = getIntent(); - - copyToClipboard = prefs.getBoolean( - PreferencesActivity.KEY_COPY_TO_CLIPBOARD, true) - && (intent == null || intent.getBooleanExtra( - Intents.Scan.SAVE_HISTORY, true)); - - source = IntentSource.NONE; - sourceUrl = null; - scanFromWebPageManager = null; - decodeFormats = null; - characterSet = null; - - if (intent != null) { - - String action = intent.getAction(); - String dataString = intent.getDataString(); - - if (Intents.Scan.ACTION.equals(action)) { - - // Scan the formats the intent requested, and return the result - // to the calling activity. - source = IntentSource.NATIVE_APP_INTENT; - decodeFormats = DecodeFormatManager.parseDecodeFormats(intent); - decodeHints = DecodeHintManager.parseDecodeHints(intent); - - if (intent.hasExtra(Intents.Scan.WIDTH) - && intent.hasExtra(Intents.Scan.HEIGHT)) { - int width = intent.getIntExtra(Intents.Scan.WIDTH, 0); - int height = intent.getIntExtra(Intents.Scan.HEIGHT, 0); - if (width > 0 && height > 0) { - cameraManager.setManualFramingRect(width, height); - } - } - - if (intent.hasExtra(Intents.Scan.CAMERA_ID)) { - int cameraId = intent.getIntExtra(Intents.Scan.CAMERA_ID, - -1); - if (cameraId >= 0) { - cameraManager.setManualCameraId(cameraId); - } - } - - String customPromptMessage = intent - .getStringExtra(Intents.Scan.PROMPT_MESSAGE); - if (customPromptMessage != null) { - statusView.setText(customPromptMessage); - } - - } else if (dataString != null - && dataString.contains("http://www.google") - && dataString.contains("/m/products/scan")) { - - // Scan only products and send the result to mobile Product - // Search. - source = IntentSource.PRODUCT_SEARCH_LINK; - sourceUrl = dataString; - decodeFormats = DecodeFormatManager.PRODUCT_FORMATS; - - } else if (isZXingURL(dataString)) { - - // Scan formats requested in query string (all formats if none - // specified). - // If a return URL is specified, send the results there. - // Otherwise, handle it ourselves. - source = IntentSource.ZXING_LINK; - sourceUrl = dataString; - Uri inputUri = Uri.parse(dataString); - scanFromWebPageManager = new ScanFromWebPageManager(inputUri); - decodeFormats = DecodeFormatManager - .parseDecodeFormats(inputUri); - // Allow a sub-set of the hints to be specified by the caller. - decodeHints = DecodeHintManager.parseDecodeHints(inputUri); - - } - - characterSet = intent.getStringExtra(Intents.Scan.CHARACTER_SET); - - } - - SurfaceView surfaceView = (SurfaceView) findViewById(R.id.preview_view); - SurfaceHolder surfaceHolder = surfaceView.getHolder(); - if (hasSurface) { - // The activity was paused but not stopped, so the surface still - // exists. Therefore - // surfaceCreated() won't be called, so init the camera here. - initCamera(surfaceHolder); - } else { - // Install the callback and wait for surfaceCreated() to init the - // camera. - surfaceHolder.addCallback(this); - } - } - - private int getCurrentOrientation() { - int rotation = getWindowManager().getDefaultDisplay().getRotation(); - if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { - switch (rotation) { - case Surface.ROTATION_0: - case Surface.ROTATION_90: - return ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE; - default: - return ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE; - } - } else { - switch (rotation) { - case Surface.ROTATION_0: - case Surface.ROTATION_270: - return ActivityInfo.SCREEN_ORIENTATION_PORTRAIT; - default: - return ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT; - } - } - } - - private static boolean isZXingURL(String dataString) { - if (dataString == null) { - return false; - } - for (String url : ZXING_URLS) { - if (dataString.startsWith(url)) { - return true; - } - } - return false; - } - - @Override - protected void onPause() { - if (handler != null) { - handler.quitSynchronously(); - handler = null; - } - inactivityTimer.onPause(); - ambientLightManager.stop(); - beepManager.close(); - cameraManager.closeDriver(); - // historyManager = null; // Keep for onActivityResult - if (!hasSurface) { - SurfaceView surfaceView = (SurfaceView) findViewById(R.id.preview_view); - SurfaceHolder surfaceHolder = surfaceView.getHolder(); - surfaceHolder.removeCallback(this); - } - super.onPause(); - } - - @Override - protected void onDestroy() { - inactivityTimer.shutdown(); - super.onDestroy(); - } - - @Override - public boolean onKeyDown(int keyCode, KeyEvent event) { - switch (keyCode) { - case KeyEvent.KEYCODE_BACK: - if (source == IntentSource.NATIVE_APP_INTENT) { - setResult(RESULT_CANCELED); - finish(); - return true; - } - if ((source == IntentSource.NONE || source == IntentSource.ZXING_LINK) - && lastResult != null) { - restartPreviewAfterDelay(0L); - return true; - } - break; - case KeyEvent.KEYCODE_FOCUS: - case KeyEvent.KEYCODE_CAMERA: - // Handle these events so they don't launch the Camera app - return true; - // Use volume up/down to turn on light - case KeyEvent.KEYCODE_VOLUME_DOWN: - cameraManager.setTorch(false); - return true; - case KeyEvent.KEYCODE_VOLUME_UP: - cameraManager.setTorch(true); - return true; - } - return super.onKeyDown(keyCode, event); - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - MenuInflater menuInflater = getMenuInflater(); - menuInflater.inflate(R.menu.capture, menu); - return super.onCreateOptionsMenu(menu); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - Intent intent = new Intent(Intent.ACTION_VIEW); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - int i = item.getItemId(); - if (i == R.id.menu_history) { - intent.setClassName(this, HistoryActivity.class.getName()); - startActivityForResult(intent, HISTORY_REQUEST_CODE); - - // case R.id.menu_settings: - // intent.setClassName(this, PreferencesActivity.class.getName()); - // startActivity(intent); - // break; - // case R.id.menu_help: - // intent.setClassName(this, HelpActivity.class.getName()); - // startActivity(intent); - // break; - } else if (i == R.id.menu_native_test) { - Uri data = Uri.parse("tbplay://market.m.taobao.com/game/110123"); - intent.setData(data); - startActivity(intent); - } else { - return super.onOptionsItemSelected(item); - } - return true; - } - - @Override - public void onActivityResult(int requestCode, int resultCode, Intent intent) { - if (resultCode == RESULT_OK && requestCode == HISTORY_REQUEST_CODE - && historyManager != null) { - int itemNumber = intent - .getIntExtra(Intents.History.ITEM_NUMBER, -1); - if (itemNumber >= 0) { - HistoryItem historyItem = historyManager - .buildHistoryItem(itemNumber); - decodeOrStoreSavedBitmap(null, historyItem.getResult()); - } - } - } - - private void decodeOrStoreSavedBitmap(Bitmap bitmap, Result result) { - // Bitmap isn't used yet -- will be used soon - if (handler == null) { - savedResultToShow = result; - } else { - if (result != null) { - savedResultToShow = result; - } - if (savedResultToShow != null) { - Message message = Message.obtain(handler, - R.id.decode_succeeded, savedResultToShow); - handler.sendMessage(message); - } - savedResultToShow = null; - } - } - - @Override - public void surfaceCreated(SurfaceHolder holder) { - if (holder == null) { - Log.e(TAG, - "*** WARNING *** surfaceCreated() gave us a null surface!"); - } - if (!hasSurface) { - hasSurface = true; - initCamera(holder); - } - } - - @Override - public void surfaceDestroyed(SurfaceHolder holder) { - hasSurface = false; - } - - @Override - public void surfaceChanged(SurfaceHolder holder, int format, int width, - int height) { - - } - - /** - * A valid barcode has been found, so give an indication of success and show - * the results. - * - * @param rawResult The contents of the barcode. - * @param scaleFactor amount by which thumbnail was scaled - * @param barcode A greyscale bitmap of the camera data which was decoded. - */ - public void handleDecode(Result rawResult, Bitmap barcode, float scaleFactor) { - inactivityTimer.onActivity(); - lastResult = rawResult; - ResultHandler resultHandler = ResultHandlerFactory.makeResultHandler( - this, rawResult); - - boolean fromLiveScan = barcode != null; - if (fromLiveScan) { - historyManager.addHistoryItem(rawResult, resultHandler); - // Then not from history, so beep/vibrate and we have an image to - // draw on - beepManager.playBeepSoundAndVibrate(); - drawResultPoints(barcode, scaleFactor, rawResult); - } - - switch (source) { - case NATIVE_APP_INTENT: - case PRODUCT_SEARCH_LINK: - handleDecodeExternally(rawResult, resultHandler, barcode); - break; - case ZXING_LINK: - if (scanFromWebPageManager == null - || !scanFromWebPageManager.isScanFromWebPage()) { - handleDecodeInternally(rawResult, resultHandler, barcode); - } else { - handleDecodeExternally(rawResult, resultHandler, barcode); - } - break; - case NONE: - SharedPreferences prefs = PreferenceManager - .getDefaultSharedPreferences(this); - if (fromLiveScan - && prefs.getBoolean(PreferencesActivity.KEY_BULK_MODE, - false)) { - Toast.makeText( - getApplicationContext(), - getResources() - .getString(R.string.msg_bulk_mode_scanned) - + " (" + rawResult.getText() + ')', - Toast.LENGTH_SHORT).show(); - // Wait a moment or else it will scan the same barcode - // continuously about 3 times - restartPreviewAfterDelay(BULK_MODE_SCAN_DELAY_MS); - } else { - handleDecodeInternally(rawResult, resultHandler, barcode); - } - break; - } - } - - /** - * Superimpose a line for 1D or dots for 2D to highlight the key features of - * the barcode. - * - * @param barcode A bitmap of the captured image. - * @param scaleFactor amount by which thumbnail was scaled - * @param rawResult The decoded results which contains the points to draw. - */ - private void drawResultPoints(Bitmap barcode, float scaleFactor, - Result rawResult) { - ResultPoint[] points = rawResult.getResultPoints(); - if (points != null && points.length > 0) { - Canvas canvas = new Canvas(barcode); - Paint paint = new Paint(); - paint.setColor(getResources().getColor(R.color.result_points)); - if (points.length == 2) { - paint.setStrokeWidth(4.0f); - drawLine(canvas, paint, points[0], points[1], scaleFactor); - } else if (points.length == 4 - && (rawResult.getBarcodeFormat() == BarcodeFormat.UPC_A || rawResult - .getBarcodeFormat() == BarcodeFormat.EAN_13)) { - // Hacky special case -- draw two lines, for the barcode and - // metadata - drawLine(canvas, paint, points[0], points[1], scaleFactor); - drawLine(canvas, paint, points[2], points[3], scaleFactor); - } else { - paint.setStrokeWidth(10.0f); - for (ResultPoint point : points) { - if (point != null) { - canvas.drawPoint(scaleFactor * point.getX(), - scaleFactor * point.getY(), paint); - } - } - } - } - } - - private static void drawLine(Canvas canvas, Paint paint, ResultPoint a, - ResultPoint b, float scaleFactor) { - if (a != null && b != null) { - canvas.drawLine(scaleFactor * a.getX(), scaleFactor * a.getY(), - scaleFactor * b.getX(), scaleFactor * b.getY(), paint); - } - } - - // Put up our own UI for how to handle the decoded contents. - private void handleDecodeInternally(Result rawResult, ResultHandler resultHandler, Bitmap barcode) { - String code = rawResult.getText(); - if (!TextUtils.isEmpty(code)) { - Uri uri = Uri.parse(code); - if (uri.getPath().contains("dynamic/replace")) { - Intent intent = new Intent("weex.intent.action.dynamic", uri); - intent.addCategory("weex.intent.category.dynamic"); - startActivity(intent); - finish(); - } else if (uri.getQueryParameterNames().contains("_wx_devtool")) { - WXEnvironment.sRemoteDebugProxyUrl = uri.getQueryParameter("_wx_devtool"); - WXEnvironment.sDebugServerConnectable = true; - WXSDKEngine.reload(); - Toast.makeText(this, "devtool", Toast.LENGTH_SHORT).show(); - finish(); - return; - } else if (code.contains("_wx_debug")) { -// uri = Uri.parse(code); -// String debug_url = uri.getQueryParameter("_wx_debug"); -// WXSDKEngine.switchDebugModel(true, debug_url); - finish(); - } else { - Toast.makeText(this, rawResult.getText(), Toast.LENGTH_SHORT).show(); -// Intent intent; - Intent intent = new Intent(CaptureActivity.this, WXPageActivity.class); -// if (mDirectionType.equals("view")) { -// intent = new Intent(CaptureActivity.this, GViewActivity.class); -// } else if (mDirectionType.equals("multiview")) { -// intent = new Intent(CaptureActivity.this, GMultiViewActivity.class); -// } else{ -// intent = new Intent(CaptureActivity.this, GNativeActivity.class); -// } - intent.putExtra("url", code); - intent.setData(Uri.parse(code)); - startActivity(intent); - } - } - } - - - // Briefly show the contents of the barcode, then handle the result outside - // Barcode Scanner. - private void handleDecodeExternally(Result rawResult, - ResultHandler resultHandler, Bitmap barcode) { - - if (barcode != null) { - viewfinderView.drawResultBitmap(barcode); - } - - long resultDurationMS; - if (getIntent() == null) { - resultDurationMS = DEFAULT_INTENT_RESULT_DURATION_MS; - } else { - resultDurationMS = getIntent().getLongExtra( - Intents.Scan.RESULT_DISPLAY_DURATION_MS, - DEFAULT_INTENT_RESULT_DURATION_MS); - } - - if (resultDurationMS > 0) { - String rawResultString = String.valueOf(rawResult); - if (rawResultString.length() > 32) { - rawResultString = rawResultString.substring(0, 32) + " ..."; - } - statusView.setText(getString(resultHandler.getDisplayTitle()) - + " : " + rawResultString); - } - - if (copyToClipboard && !resultHandler.areContentsSecure()) { - CharSequence text = resultHandler.getDisplayContents(); - ClipboardInterface.setText(text, this); - } - - if (source == IntentSource.NATIVE_APP_INTENT) { - - // Hand back whatever action they requested - this can be changed to - // Intents.Scan.ACTION when - // the deprecated intent is retired. - Intent intent = new Intent(getIntent().getAction()); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - intent.putExtra(Intents.Scan.RESULT, rawResult.toString()); - intent.putExtra(Intents.Scan.RESULT_FORMAT, rawResult - .getBarcodeFormat().toString()); - byte[] rawBytes = rawResult.getRawBytes(); - if (rawBytes != null && rawBytes.length > 0) { - intent.putExtra(Intents.Scan.RESULT_BYTES, rawBytes); - } - Map metadata = rawResult.getResultMetadata(); - if (metadata != null) { - if (metadata.containsKey(ResultMetadataType.UPC_EAN_EXTENSION)) { - intent.putExtra(Intents.Scan.RESULT_UPC_EAN_EXTENSION, - metadata.get(ResultMetadataType.UPC_EAN_EXTENSION) - .toString()); - } - Number orientation = (Number) metadata - .get(ResultMetadataType.ORIENTATION); - if (orientation != null) { - intent.putExtra(Intents.Scan.RESULT_ORIENTATION, - orientation.intValue()); - } - String ecLevel = (String) metadata - .get(ResultMetadataType.ERROR_CORRECTION_LEVEL); - if (ecLevel != null) { - intent.putExtra(Intents.Scan.RESULT_ERROR_CORRECTION_LEVEL, - ecLevel); - } - @SuppressWarnings("unchecked") - Iterable byteSegments = (Iterable) metadata - .get(ResultMetadataType.BYTE_SEGMENTS); - if (byteSegments != null) { - int i = 0; - for (byte[] byteSegment : byteSegments) { - intent.putExtra( - Intents.Scan.RESULT_BYTE_SEGMENTS_PREFIX + i, - byteSegment); - i++; - } - } - } - sendReplyMessage(R.id.return_scan_result, intent, resultDurationMS); - - } else if (source == IntentSource.PRODUCT_SEARCH_LINK) { - - // Reformulate the URL which triggered us into a query, so that the - // request goes to the same - // TLD as the scan URL. - int end = sourceUrl.lastIndexOf("/scan"); - String replyURL = sourceUrl.substring(0, end) + "?q=" - + resultHandler.getDisplayContents() + "&source=zxing"; - sendReplyMessage(R.id.launch_product_query, replyURL, - resultDurationMS); - - } else if (source == IntentSource.ZXING_LINK) { - - if (scanFromWebPageManager != null - && scanFromWebPageManager.isScanFromWebPage()) { - String replyURL = scanFromWebPageManager.buildReplyURL( - rawResult, resultHandler); - scanFromWebPageManager = null; - sendReplyMessage(R.id.launch_product_query, replyURL, - resultDurationMS); - } - - } - } - - private void sendReplyMessage(int id, Object arg, long delayMS) { - if (handler != null) { - Message message = Message.obtain(handler, id, arg); - if (delayMS > 0L) { - handler.sendMessageDelayed(message, delayMS); - } else { - handler.sendMessage(message); - } - } - } - - private void initCamera(SurfaceHolder surfaceHolder) { - if (surfaceHolder == null) { - throw new IllegalStateException("No SurfaceHolder provided"); - } - if (cameraManager.isOpen()) { - Log.w(TAG, - "initCamera() while already open -- late SurfaceView callback?"); - return; - } - try { - cameraManager.openDriver(surfaceHolder); - // Creating the handler starts the preview, which can also throw a - // RuntimeException. - if (handler == null) { - handler = new CaptureActivityHandler(this, decodeFormats, - decodeHints, characterSet, cameraManager); - } - decodeOrStoreSavedBitmap(null, null); - } catch (IOException ioe) { - Log.w(TAG, ioe); - displayFrameworkBugMessageAndExit(); - } catch (RuntimeException e) { - // Barcode Scanner has seen crashes in the wild of this variety: - // java.?lang.?RuntimeException: Fail to connect to camera service - Log.w(TAG, "Unexpected error initializing camera", e); - displayFrameworkBugMessageAndExit(); - } - } - - private void displayFrameworkBugMessageAndExit() { - AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setTitle(getString(R.string.app_name)); - builder.setMessage(getString(R.string.msg_camera_framework_bug)); - builder.setPositiveButton(R.string.button_ok, new FinishListener(this)); - builder.setOnCancelListener(new FinishListener(this)); - builder.show(); - } - - public void restartPreviewAfterDelay(long delayMS) { - if (handler != null) { - handler.sendEmptyMessageDelayed(R.id.restart_preview, delayMS); - } - resetStatusView(); - } - - private void resetStatusView() { - resultView.setVisibility(View.GONE); - statusView.setText(R.string.msg_default_status); - statusView.setVisibility(View.VISIBLE); - viewfinderView.setVisibility(View.VISIBLE); - lastResult = null; - } - - public void drawViewfinder() { - viewfinderView.drawViewfinder(); - } - - @Override - public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { - if (requestCode != MY_PERMISSION_REQUEST_CAMERA) { - return; - } - - if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { - initView(); - } else { - Toast.makeText(this, R.string.camera_permission_refused, Toast.LENGTH_LONG).show(); - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/CaptureActivityHandler.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/CaptureActivityHandler.java deleted file mode 100755 index 3ff78ee8..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/CaptureActivityHandler.java +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - -import android.app.Activity; -import android.content.ActivityNotFoundException; -import android.content.Intent; -import android.content.pm.PackageManager; -import android.content.pm.ResolveInfo; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.net.Uri; -import android.os.Bundle; -import android.os.Handler; -import android.os.Message; -import android.provider.Browser; -import android.util.Log; - -import com.alibaba.weex.R; -import com.google.zxing.BarcodeFormat; -import com.google.zxing.DecodeHintType; -import com.google.zxing.Result; -import com.google.zxing.client.android.camera.CameraManager; - -import java.util.Collection; -import java.util.Map; - -/** - * This class handles all the messaging which comprises the state machine for capture. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class CaptureActivityHandler extends Handler { - - private static final String TAG = CaptureActivityHandler.class.getSimpleName(); - - private final CaptureActivity activity; - private final DecodeThread decodeThread; - private State state; - private final CameraManager cameraManager; - - private enum State { - PREVIEW, - SUCCESS, - DONE - } - - CaptureActivityHandler(CaptureActivity activity, - Collection decodeFormats, - Map baseHints, - String characterSet, - CameraManager cameraManager) { - this.activity = activity; - decodeThread = new DecodeThread(activity, decodeFormats, baseHints, characterSet, - new ViewfinderResultPointCallback(activity.getViewfinderView())); - decodeThread.start(); - state = State.SUCCESS; - - // Start ourselves capturing previews and decoding. - this.cameraManager = cameraManager; - cameraManager.startPreview(); - restartPreviewAndDecode(); - } - - @Override - public void handleMessage(Message message) { - if (message.what == R.id.restart_preview) { - restartPreviewAndDecode(); - - } else if (message.what == R.id.decode_succeeded) { - state = State.SUCCESS; - Bundle bundle = message.getData(); - Bitmap barcode = null; - float scaleFactor = 1.0f; - if (bundle != null) { - byte[] compressedBitmap = bundle.getByteArray(DecodeThread.BARCODE_BITMAP); - if (compressedBitmap != null) { - barcode = BitmapFactory.decodeByteArray(compressedBitmap, 0, compressedBitmap.length, null); - // Mutable copy: - barcode = barcode.copy(Bitmap.Config.ARGB_8888, true); - } - scaleFactor = bundle.getFloat(DecodeThread.BARCODE_SCALED_FACTOR); - } - activity.handleDecode((Result) message.obj, barcode, scaleFactor); - - } else if (message.what == R.id.decode_failed) {// We're decoding as fast as possible, so when one decode fails, start another. - state = State.PREVIEW; - cameraManager.requestPreviewFrame(decodeThread.getHandler(), R.id.decode); - - } else if (message.what == R.id.return_scan_result) { - activity.setResult(Activity.RESULT_OK, (Intent) message.obj); - activity.finish(); - - } else if (message.what == R.id.launch_product_query) { - String url = (String) message.obj; - - Intent intent = new Intent(Intent.ACTION_VIEW); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - intent.setData(Uri.parse(url)); - - ResolveInfo resolveInfo = - activity.getPackageManager().resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY); - String browserPackageName = null; - if (resolveInfo != null && resolveInfo.activityInfo != null) { - browserPackageName = resolveInfo.activityInfo.packageName; - Log.d(TAG, "Using browser in package " + browserPackageName); - } - - // Needed for default Android browser / Chrome only apparently - if ("com.android.browser".equals(browserPackageName) || "com.android.chrome".equals(browserPackageName)) { - intent.setPackage(browserPackageName); - intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - intent.putExtra(Browser.EXTRA_APPLICATION_ID, browserPackageName); - } - - try { - activity.startActivity(intent); - } catch (ActivityNotFoundException ignored) { - Log.w(TAG, "Can't find anything to handle VIEW of URI " + url); - } - - } - } - - public void quitSynchronously() { - state = State.DONE; - cameraManager.stopPreview(); - Message quit = Message.obtain(decodeThread.getHandler(), R.id.quit); - quit.sendToTarget(); - try { - // Wait at most half a second; should be enough time, and onPause() will timeout quickly - decodeThread.join(500L); - } catch (InterruptedException e) { - // continue - } - - // Be absolutely sure we don't send any queued up messages - removeMessages(R.id.decode_succeeded); - removeMessages(R.id.decode_failed); - } - - private void restartPreviewAndDecode() { - if (state == State.SUCCESS) { - state = State.PREVIEW; - cameraManager.requestPreviewFrame(decodeThread.getHandler(), R.id.decode); - activity.drawViewfinder(); - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/Contents.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/Contents.java deleted file mode 100755 index 1cfff173..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/Contents.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - -import android.provider.ContactsContract; - -/** - * The set of constants to use when sending Barcode Scanner an Intent which requests a barcode - * to be encoded. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class Contents { - private Contents() { - } - - public static final class Type { - /** - * Plain text. Use Intent.putExtra(DATA, string). This can be used for URLs too, but string - * must include "http://" or "https://". - */ - public static final String TEXT = "TEXT_TYPE"; - - /** - * An email type. Use Intent.putExtra(DATA, string) where string is the email address. - */ - public static final String EMAIL = "EMAIL_TYPE"; - - /** - * Use Intent.putExtra(DATA, string) where string is the phone number to call. - */ - public static final String PHONE = "PHONE_TYPE"; - - /** - * An SMS type. Use Intent.putExtra(DATA, string) where string is the number to SMS. - */ - public static final String SMS = "SMS_TYPE"; - - /** - * A contact. Send a request to encode it as follows: - * {@code - * import android.provider.Contacts; - * - * Intent intent = new Intent(Intents.Encode.ACTION); - * intent.putExtra(Intents.Encode.TYPE, CONTACT); - * Bundle bundle = new Bundle(); - * bundle.putString(ContactsContract.Intents.Insert.NAME, "Jenny"); - * bundle.putString(ContactsContract.Intents.Insert.PHONE, "8675309"); - * bundle.putString(ContactsContract.Intents.Insert.EMAIL, "jenny@the80s.com"); - * bundle.putString(ContactsContract.Intents.Insert.POSTAL, "123 Fake St. San Francisco, CA 94102"); - * intent.putExtra(Intents.Encode.DATA, bundle); - * } - */ - public static final String CONTACT = "CONTACT_TYPE"; - - /** - * A geographic location. Use as follows: - * Bundle bundle = new Bundle(); - * bundle.putFloat("LAT", latitude); - * bundle.putFloat("LONG", longitude); - * intent.putExtra(Intents.Encode.DATA, bundle); - */ - public static final String LOCATION = "LOCATION_TYPE"; - - private Type() { - } - } - - public static final String URL_KEY = "URL_KEY"; - - public static final String NOTE_KEY = "NOTE_KEY"; - - /** - * When using Type.CONTACT, these arrays provide the keys for adding or retrieving multiple - * phone numbers and addresses. - */ - public static final String[] PHONE_KEYS = { - ContactsContract.Intents.Insert.PHONE, - ContactsContract.Intents.Insert.SECONDARY_PHONE, - ContactsContract.Intents.Insert.TERTIARY_PHONE - }; - - public static final String[] PHONE_TYPE_KEYS = { - ContactsContract.Intents.Insert.PHONE_TYPE, - ContactsContract.Intents.Insert.SECONDARY_PHONE_TYPE, - ContactsContract.Intents.Insert.TERTIARY_PHONE_TYPE - }; - - public static final String[] EMAIL_KEYS = { - ContactsContract.Intents.Insert.EMAIL, - ContactsContract.Intents.Insert.SECONDARY_EMAIL, - ContactsContract.Intents.Insert.TERTIARY_EMAIL - }; - - public static final String[] EMAIL_TYPE_KEYS = { - ContactsContract.Intents.Insert.EMAIL_TYPE, - ContactsContract.Intents.Insert.SECONDARY_EMAIL_TYPE, - ContactsContract.Intents.Insert.TERTIARY_EMAIL_TYPE - }; - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/DecodeFormatManager.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/DecodeFormatManager.java deleted file mode 100755 index 8c5194bc..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/DecodeFormatManager.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - -import java.util.Arrays; -import java.util.EnumSet; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.regex.Pattern; - -import android.content.Intent; -import android.net.Uri; - -import com.google.zxing.BarcodeFormat; - -final class DecodeFormatManager { - - private static final Pattern COMMA_PATTERN = Pattern.compile(","); - - static final Set PRODUCT_FORMATS; - static final Set INDUSTRIAL_FORMATS; - private static final Set ONE_D_FORMATS; - static final Set QR_CODE_FORMATS = EnumSet.of(BarcodeFormat.QR_CODE); - static final Set DATA_MATRIX_FORMATS = EnumSet.of(BarcodeFormat.DATA_MATRIX); - static final Set AZTEC_FORMATS = EnumSet.of(BarcodeFormat.AZTEC); - static final Set PDF417_FORMATS = EnumSet.of(BarcodeFormat.PDF_417); - static { - PRODUCT_FORMATS = EnumSet.of(BarcodeFormat.UPC_A, - BarcodeFormat.UPC_E, - BarcodeFormat.EAN_13, - BarcodeFormat.EAN_8, - BarcodeFormat.RSS_14, - BarcodeFormat.RSS_EXPANDED); - INDUSTRIAL_FORMATS = EnumSet.of(BarcodeFormat.CODE_39, - BarcodeFormat.CODE_93, - BarcodeFormat.CODE_128, - BarcodeFormat.ITF, - BarcodeFormat.CODABAR); - ONE_D_FORMATS = EnumSet.copyOf(PRODUCT_FORMATS); - ONE_D_FORMATS.addAll(INDUSTRIAL_FORMATS); - } - private static final Map> FORMATS_FOR_MODE; - static { - FORMATS_FOR_MODE = new HashMap<>(); - FORMATS_FOR_MODE.put(Intents.Scan.ONE_D_MODE, ONE_D_FORMATS); - FORMATS_FOR_MODE.put(Intents.Scan.PRODUCT_MODE, PRODUCT_FORMATS); - FORMATS_FOR_MODE.put(Intents.Scan.QR_CODE_MODE, QR_CODE_FORMATS); - FORMATS_FOR_MODE.put(Intents.Scan.DATA_MATRIX_MODE, DATA_MATRIX_FORMATS); - FORMATS_FOR_MODE.put(Intents.Scan.AZTEC_MODE, AZTEC_FORMATS); - FORMATS_FOR_MODE.put(Intents.Scan.PDF417_MODE, PDF417_FORMATS); - } - - private DecodeFormatManager() {} - - static Set parseDecodeFormats(Intent intent) { - Iterable scanFormats = null; - CharSequence scanFormatsString = intent.getStringExtra(Intents.Scan.FORMATS); - if (scanFormatsString != null) { - scanFormats = Arrays.asList(COMMA_PATTERN.split(scanFormatsString)); - } - return parseDecodeFormats(scanFormats, intent.getStringExtra(Intents.Scan.MODE)); - } - - static Set parseDecodeFormats(Uri inputUri) { - List formats = inputUri.getQueryParameters(Intents.Scan.FORMATS); - if (formats != null && formats.size() == 1 && formats.get(0) != null){ - formats = Arrays.asList(COMMA_PATTERN.split(formats.get(0))); - } - return parseDecodeFormats(formats, inputUri.getQueryParameter(Intents.Scan.MODE)); - } - - private static Set parseDecodeFormats(Iterable scanFormats, String decodeMode) { - if (scanFormats != null) { - Set formats = EnumSet.noneOf(BarcodeFormat.class); - try { - for (String format : scanFormats) { - formats.add(BarcodeFormat.valueOf(format)); - } - return formats; - } catch (IllegalArgumentException iae) { - // ignore it then - } - } - if (decodeMode != null) { - return FORMATS_FOR_MODE.get(decodeMode); - } - return null; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/DecodeHandler.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/DecodeHandler.java deleted file mode 100755 index 9a8770a3..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/DecodeHandler.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - -import android.graphics.Bitmap; -import android.os.Bundle; -import android.os.Handler; -import android.os.Looper; -import android.os.Message; -import android.util.Log; - -import com.alibaba.weex.R; -import com.google.zxing.BinaryBitmap; -import com.google.zxing.DecodeHintType; -import com.google.zxing.MultiFormatReader; -import com.google.zxing.PlanarYUVLuminanceSource; -import com.google.zxing.ReaderException; -import com.google.zxing.Result; -import com.google.zxing.common.HybridBinarizer; - -import java.io.ByteArrayOutputStream; -import java.util.Map; - -final class DecodeHandler extends Handler { - - private static final String TAG = DecodeHandler.class.getSimpleName(); - - private final CaptureActivity activity; - private final MultiFormatReader multiFormatReader; - private boolean running = true; - - DecodeHandler(CaptureActivity activity, Map hints) { - multiFormatReader = new MultiFormatReader(); - multiFormatReader.setHints(hints); - this.activity = activity; - } - - @Override - public void handleMessage(Message message) { - if (!running) { - return; - } - if (message.what == R.id.decode) { - decode((byte[]) message.obj, message.arg1, message.arg2); - - } else if (message.what == R.id.quit) { - running = false; - Looper.myLooper().quit(); - - } - } - - /** - * Decode the data within the viewfinder rectangle, and time how long it took. For efficiency, - * reuse the same reader objects from one decode to the next. - * - * @param data The YUV preview frame. - * @param width The width of the preview frame. - * @param height The height of the preview frame. - */ - private void decode(byte[] data, int width, int height) { - long start = System.currentTimeMillis(); - Result rawResult = null; -// PlanarYUVLuminanceSource source = activity.getCameraManager().buildLuminanceSource(data, width, height); - - byte[] rotatedData = new byte[data.length]; - for (int y = 0; y < height; y++) { - for (int x = 0; x < width; x++) - rotatedData[x * height + height - y - 1] = data[x + y * width]; - } - int tmp = width; - width = height; - height = tmp; - PlanarYUVLuminanceSource source = activity.getCameraManager().buildLuminanceSource(rotatedData, width, height); - - if (source != null) { - BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source)); - try { - rawResult = multiFormatReader.decodeWithState(bitmap); - } catch (ReaderException re) { - // continue - } finally { - multiFormatReader.reset(); - } - } - - Handler handler = activity.getHandler(); - if (rawResult != null) { - // Don't log the barcode contents for security. - long end = System.currentTimeMillis(); - Log.d(TAG, "Found barcode in " + (end - start) + " ms"); - if (handler != null) { - Message message = Message.obtain(handler, R.id.decode_succeeded, rawResult); - Bundle bundle = new Bundle(); - bundleThumbnail(source, bundle); - message.setData(bundle); - message.sendToTarget(); - } - } else { - if (handler != null) { - Message message = Message.obtain(handler, R.id.decode_failed); - message.sendToTarget(); - } - } - } - - private static void bundleThumbnail(PlanarYUVLuminanceSource source, Bundle bundle) { - int[] pixels = source.renderThumbnail(); - int width = source.getThumbnailWidth(); - int height = source.getThumbnailHeight(); - Bitmap bitmap = Bitmap.createBitmap(pixels, 0, width, width, height, Bitmap.Config.ARGB_8888); - ByteArrayOutputStream out = new ByteArrayOutputStream(); - bitmap.compress(Bitmap.CompressFormat.JPEG, 50, out); - bundle.putByteArray(DecodeThread.BARCODE_BITMAP, out.toByteArray()); - bundle.putFloat(DecodeThread.BARCODE_SCALED_FACTOR, (float) width / source.getWidth()); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/DecodeHintManager.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/DecodeHintManager.java deleted file mode 100755 index 39305fe3..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/DecodeHintManager.java +++ /dev/null @@ -1,236 +0,0 @@ -/* - * Copyright (C) 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - -import java.util.EnumMap; -import java.util.HashMap; -import java.util.Map; -import java.util.regex.Pattern; - -import android.content.Intent; -import android.net.Uri; -import android.os.Bundle; -import android.util.Log; - -import com.google.zxing.DecodeHintType; - -/** - * @author Lachezar Dobrev - */ -final class DecodeHintManager { - - private static final String TAG = DecodeHintManager.class.getSimpleName(); - - // This pattern is used in decoding integer arrays. - private static final Pattern COMMA = Pattern.compile(","); - - private DecodeHintManager() {} - - /** - *

Split a query string into a list of name-value pairs.

- * - *

This is an alternative to the {@link Uri#getQueryParameterNames()} and - * {@link Uri#getQueryParameters(String)}, which are quirky and not suitable - * for exist-only Uri parameters.

- * - *

This method ignores multiple parameters with the same name and returns the - * first one only. This is technically incorrect, but should be acceptable due - * to the method of processing Hints: no multiple values for a hint.

- * - * @param query query to split - * @return name-value pairs - */ - private static Map splitQuery(String query) { - Map map = new HashMap<>(); - int pos = 0; - while (pos < query.length()) { - if (query.charAt(pos) == '&') { - // Skip consecutive ampersand separators. - pos ++; - continue; - } - int amp = query.indexOf('&', pos); - int equ = query.indexOf('=', pos); - if (amp < 0) { - // This is the last element in the query, no more ampersand elements. - String name; - String text; - if (equ < 0) { - // No equal sign - name = query.substring(pos); - name = name.replace('+', ' '); // Preemptively decode + - name = Uri.decode(name); - text = ""; - } else { - // Split name and text. - name = query.substring(pos, equ); - name = name.replace('+', ' '); // Preemptively decode + - name = Uri.decode(name); - text = query.substring(equ + 1); - text = text.replace('+', ' '); // Preemptively decode + - text = Uri.decode(text); - } - if (!map.containsKey(name)) { - map.put(name, text); - } - break; - } - if (equ < 0 || equ > amp) { - // No equal sign until the &: this is a simple parameter with no value. - String name = query.substring(pos, amp); - name = name.replace('+', ' '); // Preemptively decode + - name = Uri.decode(name); - if (!map.containsKey(name)) { - map.put(name, ""); - } - pos = amp + 1; - continue; - } - String name = query.substring(pos, equ); - name = name.replace('+', ' '); // Preemptively decode + - name = Uri.decode(name); - String text = query.substring(equ+1, amp); - text = text.replace('+', ' '); // Preemptively decode + - text = Uri.decode(text); - if (!map.containsKey(name)) { - map.put(name, text); - } - pos = amp + 1; - } - return map; - } - - static Map parseDecodeHints(Uri inputUri) { - String query = inputUri.getEncodedQuery(); - if (query == null || query.isEmpty()) { - return null; - } - - // Extract parameters - Map parameters = splitQuery(query); - - Map hints = new EnumMap<>(DecodeHintType.class); - - for (DecodeHintType hintType: DecodeHintType.values()) { - - if (hintType == DecodeHintType.CHARACTER_SET || - hintType == DecodeHintType.NEED_RESULT_POINT_CALLBACK || - hintType == DecodeHintType.POSSIBLE_FORMATS) { - continue; // This hint is specified in another way - } - - String parameterName = hintType.name(); - String parameterText = parameters.get(parameterName); - if (parameterText == null) { - continue; - } - if (hintType.getValueType().equals(Object.class)) { - // This is an unspecified type of hint content. Use the value as is. - // TODO: Can we make a different assumption on this? - hints.put(hintType, parameterText); - continue; - } - if (hintType.getValueType().equals(Void.class)) { - // Void hints are just flags: use the constant specified by DecodeHintType - hints.put(hintType, Boolean.TRUE); - continue; - } - if (hintType.getValueType().equals(String.class)) { - // A string hint: use the decoded value. - hints.put(hintType, parameterText); - continue; - } - if (hintType.getValueType().equals(Boolean.class)) { - // A boolean hint: a few values for false, everything else is true. - // An empty parameter is simply a flag-style parameter, assuming true - if (parameterText.isEmpty()) { - hints.put(hintType, Boolean.TRUE); - } else if ("0".equals(parameterText) || - "false".equalsIgnoreCase(parameterText) || - "no".equalsIgnoreCase(parameterText)) { - hints.put(hintType, Boolean.FALSE); - } else { - hints.put(hintType, Boolean.TRUE); - } - - continue; - } - if (hintType.getValueType().equals(int[].class)) { - // An integer array. Used to specify valid lengths. - // Strip a trailing comma as in Java style array initialisers. - if (!parameterText.isEmpty() && parameterText.charAt(parameterText.length() - 1) == ',') { - parameterText = parameterText.substring(0, parameterText.length() - 1); - } - String[] values = COMMA.split(parameterText); - int[] array = new int[values.length]; - for (int i = 0; i < values.length; i++) { - try { - array[i] = Integer.parseInt(values[i]); - } catch (NumberFormatException ignored) { - Log.w(TAG, "Skipping array of integers hint " + hintType + " due to invalid numeric value: '" + values[i] + '\''); - array = null; - break; - } - } - if (array != null) { - hints.put(hintType, array); - } - continue; - } - Log.w(TAG, "Unsupported hint type '" + hintType + "' of type " + hintType.getValueType()); - } - - Log.i(TAG, "Hints from the URI: " + hints); - return hints; - } - - static Map parseDecodeHints(Intent intent) { - Bundle extras = intent.getExtras(); - if (extras == null || extras.isEmpty()) { - return null; - } - Map hints = new EnumMap<>(DecodeHintType.class); - - for (DecodeHintType hintType: DecodeHintType.values()) { - - if (hintType == DecodeHintType.CHARACTER_SET || - hintType == DecodeHintType.NEED_RESULT_POINT_CALLBACK || - hintType == DecodeHintType.POSSIBLE_FORMATS) { - continue; // This hint is specified in another way - } - - String hintName = hintType.name(); - if (extras.containsKey(hintName)) { - if (hintType.getValueType().equals(Void.class)) { - // Void hints are just flags: use the constant specified by the DecodeHintType - hints.put(hintType, Boolean.TRUE); - } else { - Object hintData = extras.get(hintName); - if (hintType.getValueType().isInstance(hintData)) { - hints.put(hintType, hintData); - } else { - Log.w(TAG, "Ignoring hint " + hintType + " because it is not assignable from " + hintData); - } - } - } - } - - Log.i(TAG, "Hints from the Intent: " + hints); - return hints; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/DecodeThread.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/DecodeThread.java deleted file mode 100755 index a2a0e81a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/DecodeThread.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - -import java.util.Collection; -import java.util.EnumMap; -import java.util.EnumSet; -import java.util.Map; -import java.util.concurrent.CountDownLatch; - -import android.content.SharedPreferences; -import android.os.Handler; -import android.os.Looper; -import android.preference.PreferenceManager; -import android.util.Log; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.DecodeHintType; -import com.google.zxing.ResultPointCallback; - -/** - * This thread does all the heavy lifting of decoding the images. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -final class DecodeThread extends Thread { - - public static final String BARCODE_BITMAP = "barcode_bitmap"; - public static final String BARCODE_SCALED_FACTOR = "barcode_scaled_factor"; - - private final CaptureActivity activity; - private final Map hints; - private Handler handler; - private final CountDownLatch handlerInitLatch; - - DecodeThread(CaptureActivity activity, - Collection decodeFormats, - Map baseHints, - String characterSet, - ResultPointCallback resultPointCallback) { - - this.activity = activity; - handlerInitLatch = new CountDownLatch(1); - - hints = new EnumMap<>(DecodeHintType.class); - if (baseHints != null) { - hints.putAll(baseHints); - } - - // The prefs can't change while the thread is running, so pick them up once here. - if (decodeFormats == null || decodeFormats.isEmpty()) { - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity); - decodeFormats = EnumSet.noneOf(BarcodeFormat.class); - if (prefs.getBoolean(PreferencesActivity.KEY_DECODE_1D_PRODUCT, true)) { - decodeFormats.addAll(DecodeFormatManager.PRODUCT_FORMATS); - } - if (prefs.getBoolean(PreferencesActivity.KEY_DECODE_1D_INDUSTRIAL, true)) { - decodeFormats.addAll(DecodeFormatManager.INDUSTRIAL_FORMATS); - } - if (prefs.getBoolean(PreferencesActivity.KEY_DECODE_QR, true)) { - decodeFormats.addAll(DecodeFormatManager.QR_CODE_FORMATS); - } - if (prefs.getBoolean(PreferencesActivity.KEY_DECODE_DATA_MATRIX, true)) { - decodeFormats.addAll(DecodeFormatManager.DATA_MATRIX_FORMATS); - } - if (prefs.getBoolean(PreferencesActivity.KEY_DECODE_AZTEC, false)) { - decodeFormats.addAll(DecodeFormatManager.AZTEC_FORMATS); - } - if (prefs.getBoolean(PreferencesActivity.KEY_DECODE_PDF417, false)) { - decodeFormats.addAll(DecodeFormatManager.PDF417_FORMATS); - } - } - hints.put(DecodeHintType.POSSIBLE_FORMATS, decodeFormats); - - if (characterSet != null) { - hints.put(DecodeHintType.CHARACTER_SET, characterSet); - } - hints.put(DecodeHintType.NEED_RESULT_POINT_CALLBACK, resultPointCallback); - Log.i("DecodeThread", "Hints: " + hints); - } - - Handler getHandler() { - try { - handlerInitLatch.await(); - } catch (InterruptedException ie) { - // continue? - } - return handler; - } - - @Override - public void run() { - Looper.prepare(); - handler = new DecodeHandler(activity, hints); - handlerInitLatch.countDown(); - Looper.loop(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/FinishListener.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/FinishListener.java deleted file mode 100755 index 5d598861..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/FinishListener.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - -import android.app.Activity; -import android.content.DialogInterface; - -/** - * Simple listener used to exit the app in a few cases. - * - * @author Sean Owen - */ -public final class FinishListener implements DialogInterface.OnClickListener, DialogInterface.OnCancelListener { - - private final Activity activityToFinish; - - public FinishListener(Activity activityToFinish) { - this.activityToFinish = activityToFinish; - } - - @Override - public void onCancel(DialogInterface dialogInterface) { - run(); - } - - @Override - public void onClick(DialogInterface dialogInterface, int i) { - run(); - } - - private void run() { - activityToFinish.finish(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/HelpActivity.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/HelpActivity.java deleted file mode 100755 index f7d3973c..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/HelpActivity.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - - -import android.app.Activity; -import android.os.Bundle; -import android.view.KeyEvent; -import android.webkit.WebView; - -import com.alibaba.weex.R; - - -/** - * An HTML-based help screen. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class HelpActivity extends Activity { - - private static final String BASE_URL = - "file:///android_asset/html-" + LocaleManager.getTranslatedAssetLanguage() + '/'; - - private WebView webView; - - @Override - protected void onCreate(Bundle icicle) { - super.onCreate(icicle); - setContentView(R.layout.help); - - webView = (WebView) findViewById(R.id.help_contents); - - if (icicle == null) { - webView.loadUrl(BASE_URL + "index.html"); - } else { - webView.restoreState(icicle); - } - } - - @Override - public boolean onKeyDown(int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) { - webView.goBack(); - return true; - } - return super.onKeyDown(keyCode, event); - } - - @Override - protected void onSaveInstanceState(Bundle icicle) { - super.onSaveInstanceState(icicle); - webView.saveState(icicle); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/HttpHelper.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/HttpHelper.java deleted file mode 100755 index 6e3de990..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/HttpHelper.java +++ /dev/null @@ -1,228 +0,0 @@ -/* - * Copyright 2011 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.Reader; -import java.net.HttpURLConnection; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; -import java.net.URLConnection; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashSet; - -import android.util.Log; - -/** - * Utility methods for retrieving content over HTTP using the more-supported {@code java.net} classes - * in Android. - */ -public final class HttpHelper { - - private static final String TAG = HttpHelper.class.getSimpleName(); - - private static final Collection REDIRECTOR_DOMAINS = new HashSet<>(Arrays.asList( - "amzn.to", "bit.ly", "bitly.com", "fb.me", "goo.gl", "is.gd", "j.mp", "lnkd.in", "ow.ly", - "R.BEETAGG.COM", "r.beetagg.com", "SCN.BY", "su.pr", "t.co", "tinyurl.com", "tr.im" - )); - - private HttpHelper() { - } - - public enum ContentType { - /** HTML-like content type, including HTML, XHTML, etc. */ - HTML, - /** JSON content */ - JSON, - /** XML */ - XML, - /** Plain text content */ - TEXT, - } - - /** - * Downloads the entire resource instead of part. - * - * @param uri URI to retrieve - * @param type expected text-like MIME type of that content - * @return content as a {@code String} - * @throws IOException if the content can't be retrieved because of a bad URI, network problem, etc. - * @see #downloadViaHttp(String, ContentType, int) - */ - public static CharSequence downloadViaHttp(String uri, ContentType type) throws IOException { - return downloadViaHttp(uri, type, Integer.MAX_VALUE); - } - - /** - * @param uri URI to retrieve - * @param type expected text-like MIME type of that content - * @param maxChars approximate maximum characters to read from the source - * @return content as a {@code String} - * @throws IOException if the content can't be retrieved because of a bad URI, network problem, etc. - */ - public static CharSequence downloadViaHttp(String uri, ContentType type, int maxChars) throws IOException { - String contentTypes; - switch (type) { - case HTML: - contentTypes = "application/xhtml+xml,text/html,text/*,*/*"; - break; - case JSON: - contentTypes = "application/json,text/*,*/*"; - break; - case XML: - contentTypes = "application/xml,text/*,*/*"; - break; - case TEXT: - default: - contentTypes = "text/*,*/*"; - } - return downloadViaHttp(uri, contentTypes, maxChars); - } - - private static CharSequence downloadViaHttp(String uri, String contentTypes, int maxChars) throws IOException { - int redirects = 0; - while (redirects < 5) { - URL url = new URL(uri); - HttpURLConnection connection = safelyOpenConnection(url); - connection.setInstanceFollowRedirects(true); // Won't work HTTP -> HTTPS or vice versa - connection.setRequestProperty("Accept", contentTypes); - connection.setRequestProperty("Accept-Charset", "utf-8,*"); - connection.setRequestProperty("User-Agent", "ZXing (Android)"); - try { - int responseCode = safelyConnect(connection); - switch (responseCode) { - case HttpURLConnection.HTTP_OK: - return consume(connection, maxChars); - case HttpURLConnection.HTTP_MOVED_TEMP: - String location = connection.getHeaderField("Location"); - if (location != null) { - uri = location; - redirects++; - continue; - } - throw new IOException("No Location"); - default: - throw new IOException("Bad HTTP response: " + responseCode); - } - } finally { - connection.disconnect(); - } - } - throw new IOException("Too many redirects"); - } - - private static String getEncoding(URLConnection connection) { - String contentTypeHeader = connection.getHeaderField("Content-Type"); - if (contentTypeHeader != null) { - int charsetStart = contentTypeHeader.indexOf("charset="); - if (charsetStart >= 0) { - return contentTypeHeader.substring(charsetStart + "charset=".length()); - } - } - return "UTF-8"; - } - - private static CharSequence consume(URLConnection connection, int maxChars) throws IOException { - String encoding = getEncoding(connection); - StringBuilder out = new StringBuilder(); - Reader in = null; - try { - in = new InputStreamReader(connection.getInputStream(), encoding); - char[] buffer = new char[1024]; - int charsRead; - while (out.length() < maxChars && (charsRead = in.read(buffer)) > 0) { - out.append(buffer, 0, charsRead); - } - } finally { - if (in != null) { - try { - in.close(); - } catch (IOException | NullPointerException ioe) { - // continue - } - } - } - return out; - } - - public static URI unredirect(URI uri) throws IOException { - if (!REDIRECTOR_DOMAINS.contains(uri.getHost())) { - return uri; - } - URL url = uri.toURL(); - HttpURLConnection connection = safelyOpenConnection(url); - connection.setInstanceFollowRedirects(false); - connection.setDoInput(false); - connection.setRequestMethod("HEAD"); - connection.setRequestProperty("User-Agent", "ZXing (Android)"); - try { - int responseCode = safelyConnect(connection); - switch (responseCode) { - case HttpURLConnection.HTTP_MULT_CHOICE: - case HttpURLConnection.HTTP_MOVED_PERM: - case HttpURLConnection.HTTP_MOVED_TEMP: - case HttpURLConnection.HTTP_SEE_OTHER: - case 307: // No constant for 307 Temporary Redirect ? - String location = connection.getHeaderField("Location"); - if (location != null) { - try { - return new URI(location); - } catch (URISyntaxException e) { - // nevermind - } - } - } - return uri; - } finally { - connection.disconnect(); - } - } - - private static HttpURLConnection safelyOpenConnection(URL url) throws IOException { - URLConnection conn; - try { - conn = url.openConnection(); - } catch (NullPointerException npe) { - // Another strange bug in Android? - Log.w(TAG, "Bad URI? " + url); - throw new IOException(npe); - } - if (!(conn instanceof HttpURLConnection)) { - throw new IOException(); - } - return (HttpURLConnection) conn; - } - - private static int safelyConnect(HttpURLConnection connection) throws IOException { - try { - connection.connect(); - } catch (NullPointerException | IllegalArgumentException | IndexOutOfBoundsException | SecurityException e) { - // this is an Android bug: http://code.google.com/p/android/issues/detail?id=16895 - throw new IOException(e); - } - try { - return connection.getResponseCode(); - } catch (NullPointerException | StringIndexOutOfBoundsException | IllegalArgumentException e) { - // this is maybe this Android bug: http://code.google.com/p/android/issues/detail?id=15554 - throw new IOException(e); - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/InactivityTimer.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/InactivityTimer.java deleted file mode 100755 index 5e33d902..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/InactivityTimer.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - -import android.app.Activity; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.os.AsyncTask; -import android.os.BatteryManager; -import android.util.Log; - -/** - * Finishes an activity after a period of inactivity if the device is on battery power. - */ -final class InactivityTimer { - - private static final String TAG = InactivityTimer.class.getSimpleName(); - - private static final long INACTIVITY_DELAY_MS = 5 * 60 * 1000L; - - private final Activity activity; - private final BroadcastReceiver powerStatusReceiver; - private boolean registered; - private AsyncTask inactivityTask; - - InactivityTimer(Activity activity) { - this.activity = activity; - powerStatusReceiver = new PowerStatusReceiver(); - registered = false; - onActivity(); - } - - synchronized void onActivity() { - cancel(); - inactivityTask = new InactivityAsyncTask(); - inactivityTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - } - - public synchronized void onPause() { - cancel(); - if (registered) { - activity.unregisterReceiver(powerStatusReceiver); - registered = false; - } else { - Log.w(TAG, "PowerStatusReceiver was never registered?"); - } - } - - public synchronized void onResume() { - if (registered) { - Log.w(TAG, "PowerStatusReceiver was already registered?"); - } else { - activity.registerReceiver(powerStatusReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); - registered = true; - } - onActivity(); - } - - private synchronized void cancel() { - AsyncTask task = inactivityTask; - if (task != null) { - task.cancel(true); - inactivityTask = null; - } - } - - void shutdown() { - cancel(); - } - - private final class PowerStatusReceiver extends BroadcastReceiver { - @Override - public void onReceive(Context context, Intent intent){ - if (Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) { - // 0 indicates that we're on battery - boolean onBatteryNow = intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) <= 0; - if (onBatteryNow) { - InactivityTimer.this.onActivity(); - } else { - InactivityTimer.this.cancel(); - } - } - } - } - - private final class InactivityAsyncTask extends AsyncTask { - @Override - protected Object doInBackground(Object... objects) { - try { - Thread.sleep(INACTIVITY_DELAY_MS); - Log.i(TAG, "Finishing activity due to inactivity"); - activity.finish(); - } catch (InterruptedException e) { - // continue without killing - } - return null; - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/IntentSource.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/IntentSource.java deleted file mode 100755 index 3222db6b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/IntentSource.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 2011 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - -enum IntentSource { - - NATIVE_APP_INTENT, - PRODUCT_SEARCH_LINK, - ZXING_LINK, - NONE - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/Intents.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/Intents.java deleted file mode 100755 index 6e59e808..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/Intents.java +++ /dev/null @@ -1,278 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - -/** - * This class provides the constants to use when sending an Intent to Barcode Scanner. - * These strings are effectively API and cannot be changed. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class Intents { - private Intents() { - } - - public static final class Scan { - /** - * Send this intent to open the Barcodes app in scanning mode, find a barcode, and return - * the results. - */ - public static final String ACTION = "com.google.zxing.client.android.SCAN"; - - /** - * By default, sending this will decode all barcodes that we understand. However it - * may be useful to limit scanning to certain formats. Use - * {@link android.content.Intent#putExtra(String, String)} with one of the values below. - * - * Setting this is effectively shorthand for setting explicit formats with {@link #FORMATS}. - * It is overridden by that setting. - */ - public static final String MODE = "SCAN_MODE"; - - /** - * Decode only UPC and EAN barcodes. This is the right choice for shopping apps which get - * prices, reviews, etc. for products. - */ - public static final String PRODUCT_MODE = "PRODUCT_MODE"; - - /** - * Decode only 1D barcodes. - */ - public static final String ONE_D_MODE = "ONE_D_MODE"; - - /** - * Decode only QR codes. - */ - public static final String QR_CODE_MODE = "QR_CODE_MODE"; - - /** - * Decode only Data Matrix codes. - */ - public static final String DATA_MATRIX_MODE = "DATA_MATRIX_MODE"; - - /** - * Decode only Aztec. - */ - public static final String AZTEC_MODE = "AZTEC_MODE"; - - /** - * Decode only PDF417. - */ - public static final String PDF417_MODE = "PDF417_MODE"; - - /** - * Comma-separated list of formats to scan for. The values must match the names of - * {@link com.google.zxing.BarcodeFormat}s, e.g. {@link com.google.zxing.BarcodeFormat#EAN_13}. - * Example: "EAN_13,EAN_8,QR_CODE". This overrides {@link #MODE}. - */ - public static final String FORMATS = "SCAN_FORMATS"; - - /** - * Optional parameter to specify the id of the camera from which to recognize barcodes. - * Overrides the default camera that would otherwise would have been selected. - * If provided, should be an int. - */ - public static final String CAMERA_ID = "SCAN_CAMERA_ID"; - - /** - * @see com.google.zxing.DecodeHintType#CHARACTER_SET - */ - public static final String CHARACTER_SET = "CHARACTER_SET"; - - /** - * Optional parameters to specify the width and height of the scanning rectangle in pixels. - * The app will try to honor these, but will clamp them to the size of the preview frame. - * You should specify both or neither, and pass the size as an int. - */ - public static final String WIDTH = "SCAN_WIDTH"; - public static final String HEIGHT = "SCAN_HEIGHT"; - - /** - * Desired duration in milliseconds for which to pause after a successful scan before - * returning to the calling intent. Specified as a long, not an integer! - * For example: 1000L, not 1000. - */ - public static final String RESULT_DISPLAY_DURATION_MS = "RESULT_DISPLAY_DURATION_MS"; - - /** - * Prompt to show on-screen when scanning by intent. Specified as a {@link String}. - */ - public static final String PROMPT_MESSAGE = "PROMPT_MESSAGE"; - - /** - * If a barcode is found, Barcodes returns {@link android.app.Activity#RESULT_OK} to - * {@link android.app.Activity#onActivityResult(int, int, android.content.Intent)} - * of the app which requested the scan via - * {@link android.app.Activity#startActivityForResult(android.content.Intent, int)} - * The barcodes contents can be retrieved with - * {@link android.content.Intent#getStringExtra(String)}. - * If the user presses Back, the result code will be {@link android.app.Activity#RESULT_CANCELED}. - */ - public static final String RESULT = "SCAN_RESULT"; - - /** - * Call {@link android.content.Intent#getStringExtra(String)} with {@link #RESULT_FORMAT} - * to determine which barcode format was found. - * See {@link com.google.zxing.BarcodeFormat} for possible values. - */ - public static final String RESULT_FORMAT = "SCAN_RESULT_FORMAT"; - - /** - * Call {@link android.content.Intent#getStringExtra(String)} with {@link #RESULT_UPC_EAN_EXTENSION} - * to return the content of any UPC extension barcode that was also found. Only applicable - * to {@link com.google.zxing.BarcodeFormat#UPC_A} and {@link com.google.zxing.BarcodeFormat#EAN_13} - * formats. - */ - public static final String RESULT_UPC_EAN_EXTENSION = "SCAN_RESULT_UPC_EAN_EXTENSION"; - - /** - * Call {@link android.content.Intent#getByteArrayExtra(String)} with {@link #RESULT_BYTES} - * to get a {@code byte[]} of raw bytes in the barcode, if available. - */ - public static final String RESULT_BYTES = "SCAN_RESULT_BYTES"; - - /** - * Key for the value of {@link com.google.zxing.ResultMetadataType#ORIENTATION}, if available. - * Call {@link android.content.Intent#getIntArrayExtra(String)} with {@link #RESULT_ORIENTATION}. - */ - public static final String RESULT_ORIENTATION = "SCAN_RESULT_ORIENTATION"; - - /** - * Key for the value of {@link com.google.zxing.ResultMetadataType#ERROR_CORRECTION_LEVEL}, if available. - * Call {@link android.content.Intent#getStringExtra(String)} with {@link #RESULT_ERROR_CORRECTION_LEVEL}. - */ - public static final String RESULT_ERROR_CORRECTION_LEVEL = "SCAN_RESULT_ERROR_CORRECTION_LEVEL"; - - /** - * Prefix for keys that map to the values of {@link com.google.zxing.ResultMetadataType#BYTE_SEGMENTS}, - * if available. The actual values will be set under a series of keys formed by adding 0, 1, 2, ... - * to this prefix. So the first byte segment is under key "SCAN_RESULT_BYTE_SEGMENTS_0" for example. - * Call {@link android.content.Intent#getByteArrayExtra(String)} with these keys. - */ - public static final String RESULT_BYTE_SEGMENTS_PREFIX = "SCAN_RESULT_BYTE_SEGMENTS_"; - - /** - * Setting this to false will not save scanned codes in the history. Specified as a {@code boolean}. - */ - public static final String SAVE_HISTORY = "SAVE_HISTORY"; - - private Scan() { - } - } - - public static final class History { - - public static final String ITEM_NUMBER = "ITEM_NUMBER"; - - private History() { - } - } - - public static final class Encode { - /** - * Send this intent to encode a piece of data as a QR code and display it full screen, so - * that another person can scan the barcode from your screen. - */ - public static final String ACTION = "com.google.zxing.client.android.ENCODE"; - - /** - * The data to encode. Use {@link android.content.Intent#putExtra(String, String)} or - * {@link android.content.Intent#putExtra(String, android.os.Bundle)}, - * depending on the type and format specified. Non-QR Code formats should - * just use a String here. For QR Code, see Contents for details. - */ - public static final String DATA = "ENCODE_DATA"; - - /** - * The type of data being supplied if the format is QR Code. Use - * {@link android.content.Intent#putExtra(String, String)} with one of {@link Contents.Type}. - */ - public static final String TYPE = "ENCODE_TYPE"; - - /** - * The barcode format to be displayed. If this isn't specified or is blank, - * it defaults to QR Code. Use {@link android.content.Intent#putExtra(String, String)}, where - * format is one of {@link com.google.zxing.BarcodeFormat}. - */ - public static final String FORMAT = "ENCODE_FORMAT"; - - /** - * Normally the contents of the barcode are displayed to the user in a TextView. Setting this - * boolean to false will hide that TextView, showing only the encode barcode. - */ - public static final String SHOW_CONTENTS = "ENCODE_SHOW_CONTENTS"; - - private Encode() { - } - } - - public static final class SearchBookContents { - /** - * Use Google Book Search to search the contents of the book provided. - */ - public static final String ACTION = "com.google.zxing.client.android.SEARCH_BOOK_CONTENTS"; - - /** - * The book to search, identified by ISBN number. - */ - public static final String ISBN = "ISBN"; - - /** - * An optional field which is the text to search for. - */ - public static final String QUERY = "QUERY"; - - private SearchBookContents() { - } - } - - public static final class WifiConnect { - /** - * Internal intent used to trigger connection to a wi-fi network. - */ - public static final String ACTION = "com.google.zxing.client.android.WIFI_CONNECT"; - - /** - * The network to connect to, all the configuration provided here. - */ - public static final String SSID = "SSID"; - - /** - * The network to connect to, all the configuration provided here. - */ - public static final String TYPE = "TYPE"; - - /** - * The network to connect to, all the configuration provided here. - */ - public static final String PASSWORD = "PASSWORD"; - - private WifiConnect() { - } - } - - public static final class Share { - /** - * Give the user a choice of items to encode as a barcode, then render it as a QR Code and - * display onscreen for a friend to scan with their phone. - */ - public static final String ACTION = "com.google.zxing.client.android.SHARE"; - - private Share() { - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/LocaleManager.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/LocaleManager.java deleted file mode 100755 index 5d74c5df..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/LocaleManager.java +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - -import java.util.Arrays; -import java.util.Collection; -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; - -import android.content.Context; -import android.content.SharedPreferences; -import android.preference.PreferenceManager; - -/** - * Handles any locale-specific logic for the client. - * - * @author Sean Owen - */ -public final class LocaleManager { - - private static final String DEFAULT_TLD = "com"; - private static final String DEFAULT_COUNTRY = "US"; - private static final String DEFAULT_LANGUAGE = "en"; - - /** - * Locales (well, countries) where Google web search is available. - * These should be kept in sync with our translations. - */ - private static final Map GOOGLE_COUNTRY_TLD; - static { - GOOGLE_COUNTRY_TLD = new HashMap<>(); - GOOGLE_COUNTRY_TLD.put("AR", "com.ar"); // ARGENTINA - GOOGLE_COUNTRY_TLD.put("AU", "com.au"); // AUSTRALIA - GOOGLE_COUNTRY_TLD.put("BR", "com.br"); // BRAZIL - GOOGLE_COUNTRY_TLD.put("BG", "bg"); // BULGARIA - GOOGLE_COUNTRY_TLD.put(Locale.CANADA.getCountry(), "ca"); - GOOGLE_COUNTRY_TLD.put(Locale.CHINA.getCountry(), "cn"); - GOOGLE_COUNTRY_TLD.put("CZ", "cz"); // CZECH REPUBLIC - GOOGLE_COUNTRY_TLD.put("DK", "dk"); // DENMARK - GOOGLE_COUNTRY_TLD.put("FI", "fi"); // FINLAND - GOOGLE_COUNTRY_TLD.put(Locale.FRANCE.getCountry(), "fr"); - GOOGLE_COUNTRY_TLD.put(Locale.GERMANY.getCountry(), "de"); - GOOGLE_COUNTRY_TLD.put("GR", "gr"); // GREECE - GOOGLE_COUNTRY_TLD.put("HU", "hu"); // HUNGARY - GOOGLE_COUNTRY_TLD.put("ID", "co.id"); // INDONESIA - GOOGLE_COUNTRY_TLD.put("IL", "co.il"); // ISRAEL - GOOGLE_COUNTRY_TLD.put(Locale.ITALY.getCountry(), "it"); - GOOGLE_COUNTRY_TLD.put(Locale.JAPAN.getCountry(), "co.jp"); - GOOGLE_COUNTRY_TLD.put(Locale.KOREA.getCountry(), "co.kr"); - GOOGLE_COUNTRY_TLD.put("NL", "nl"); // NETHERLANDS - GOOGLE_COUNTRY_TLD.put("PL", "pl"); // POLAND - GOOGLE_COUNTRY_TLD.put("PT", "pt"); // PORTUGAL - GOOGLE_COUNTRY_TLD.put("RO", "ro"); // ROMANIA - GOOGLE_COUNTRY_TLD.put("RU", "ru"); // RUSSIA - GOOGLE_COUNTRY_TLD.put("SK", "sk"); // SLOVAK REPUBLIC - GOOGLE_COUNTRY_TLD.put("SI", "si"); // SLOVENIA - GOOGLE_COUNTRY_TLD.put("ES", "es"); // SPAIN - GOOGLE_COUNTRY_TLD.put("SE", "se"); // SWEDEN - GOOGLE_COUNTRY_TLD.put("CH", "ch"); // SWITZERLAND - GOOGLE_COUNTRY_TLD.put(Locale.TAIWAN.getCountry(), "tw"); - GOOGLE_COUNTRY_TLD.put("TR", "com.tr"); // TURKEY - GOOGLE_COUNTRY_TLD.put("UA", "com.ua"); // UKRAINE - GOOGLE_COUNTRY_TLD.put(Locale.UK.getCountry(), "co.uk"); - GOOGLE_COUNTRY_TLD.put(Locale.US.getCountry(), "com"); - } - - /** - * Google Product Search for mobile is available in fewer countries than web search. See here: - * http://support.google.com/merchants/bin/answer.py?hl=en-GB&answer=160619 - */ - private static final Map GOOGLE_PRODUCT_SEARCH_COUNTRY_TLD; - static { - GOOGLE_PRODUCT_SEARCH_COUNTRY_TLD = new HashMap<>(); - GOOGLE_PRODUCT_SEARCH_COUNTRY_TLD.put("AU", "com.au"); // AUSTRALIA - //GOOGLE_PRODUCT_SEARCH_COUNTRY_TLD.put(Locale.CHINA.getCountry(), "cn"); - GOOGLE_PRODUCT_SEARCH_COUNTRY_TLD.put(Locale.FRANCE.getCountry(), "fr"); - GOOGLE_PRODUCT_SEARCH_COUNTRY_TLD.put(Locale.GERMANY.getCountry(), "de"); - GOOGLE_PRODUCT_SEARCH_COUNTRY_TLD.put(Locale.ITALY.getCountry(), "it"); - GOOGLE_PRODUCT_SEARCH_COUNTRY_TLD.put(Locale.JAPAN.getCountry(), "co.jp"); - GOOGLE_PRODUCT_SEARCH_COUNTRY_TLD.put("NL", "nl"); // NETHERLANDS - GOOGLE_PRODUCT_SEARCH_COUNTRY_TLD.put("ES", "es"); // SPAIN - GOOGLE_PRODUCT_SEARCH_COUNTRY_TLD.put("CH", "ch"); // SWITZERLAND - GOOGLE_PRODUCT_SEARCH_COUNTRY_TLD.put(Locale.UK.getCountry(), "co.uk"); - GOOGLE_PRODUCT_SEARCH_COUNTRY_TLD.put(Locale.US.getCountry(), "com"); - } - - /** - * Book search is offered everywhere that web search is available. - */ - private static final Map GOOGLE_BOOK_SEARCH_COUNTRY_TLD = GOOGLE_COUNTRY_TLD; - - private static final Collection TRANSLATED_HELP_ASSET_LANGUAGES = - Arrays.asList("de", "en", "es", "fr", "it", "ja", "ko", "nl", "pt", "ru", "uk", "zh-rCN", "zh-rTW", "zh-rHK"); - - private LocaleManager() {} - - /** - * @param context application's {@link Context} - * @return country-specific TLD suffix appropriate for the current default locale - * (e.g. "co.uk" for the United Kingdom) - */ - public static String getCountryTLD(Context context) { - return doGetTLD(GOOGLE_COUNTRY_TLD, context); - } - - /** - * The same as above, but specifically for Google Product Search. - * - * @param context application's {@link Context} - * @return The top-level domain to use. - */ - public static String getProductSearchCountryTLD(Context context) { - return doGetTLD(GOOGLE_PRODUCT_SEARCH_COUNTRY_TLD, context); - } - - /** - * The same as above, but specifically for Google Book Search. - * - * @param context application's {@link Context} - * @return The top-level domain to use. - */ - public static String getBookSearchCountryTLD(Context context) { - return doGetTLD(GOOGLE_BOOK_SEARCH_COUNTRY_TLD, context); - } - - /** - * Does a given URL point to Google Book Search, regardless of domain. - * - * @param url The address to check. - * @return True if this is a Book Search URL. - */ - public static boolean isBookSearchUrl(String url) { - return url.startsWith("http://google.com/books") || url.startsWith("http://books.google."); - } - - private static String getSystemCountry() { - Locale locale = Locale.getDefault(); - return locale == null ? DEFAULT_COUNTRY : locale.getCountry(); - } - - private static String getSystemLanguage() { - Locale locale = Locale.getDefault(); - if (locale == null) { - return DEFAULT_LANGUAGE; - } - String language = locale.getLanguage(); - // Special case Chinese - if (Locale.SIMPLIFIED_CHINESE.getLanguage().equals(language)) { - return language + "-r" + getSystemCountry(); - } - return language; - } - - public static String getTranslatedAssetLanguage() { - String language = getSystemLanguage(); - return TRANSLATED_HELP_ASSET_LANGUAGES.contains(language) ? language : DEFAULT_LANGUAGE; - } - - private static String doGetTLD(Map map, Context context) { - String tld = map.get(getCountry(context)); - return tld == null ? DEFAULT_TLD : tld; - } - - public static String getCountry(Context context) { - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - String countryOverride = prefs.getString(PreferencesActivity.KEY_SEARCH_COUNTRY, "-"); - if (countryOverride != null && !countryOverride.isEmpty() && !"-".equals(countryOverride)) { - return countryOverride; - } - return getSystemCountry(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/PreferencesActivity.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/PreferencesActivity.java deleted file mode 100755 index 8d0dc645..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/PreferencesActivity.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - -import android.app.Activity; -import android.os.Bundle; - -/** - * The main settings activity. - * - * @author dswitkin@google.com (Daniel Switkin) - * @author Sean Owen - */ -public final class PreferencesActivity extends Activity { - - public static final String KEY_DECODE_1D_PRODUCT = "preferences_decode_1D_product"; - public static final String KEY_DECODE_1D_INDUSTRIAL = "preferences_decode_1D_industrial"; - public static final String KEY_DECODE_QR = "preferences_decode_QR"; - public static final String KEY_DECODE_DATA_MATRIX = "preferences_decode_Data_Matrix"; - public static final String KEY_DECODE_AZTEC = "preferences_decode_Aztec"; - public static final String KEY_DECODE_PDF417 = "preferences_decode_PDF417"; - - public static final String KEY_CUSTOM_PRODUCT_SEARCH = "preferences_custom_product_search"; - - public static final String KEY_PLAY_BEEP = "preferences_play_beep"; - public static final String KEY_VIBRATE = "preferences_vibrate"; - public static final String KEY_COPY_TO_CLIPBOARD = "preferences_copy_to_clipboard"; - public static final String KEY_FRONT_LIGHT_MODE = "preferences_front_light_mode"; - public static final String KEY_BULK_MODE = "preferences_bulk_mode"; - public static final String KEY_REMEMBER_DUPLICATES = "preferences_remember_duplicates"; - public static final String KEY_ENABLE_HISTORY = "preferences_history"; - public static final String KEY_SUPPLEMENTAL = "preferences_supplemental"; - public static final String KEY_AUTO_FOCUS = "preferences_auto_focus"; - public static final String KEY_INVERT_SCAN = "preferences_invert_scan"; - public static final String KEY_SEARCH_COUNTRY = "preferences_search_country"; - public static final String KEY_DISABLE_AUTO_ORIENTATION = "preferences_orientation"; - - public static final String KEY_DISABLE_CONTINUOUS_FOCUS = "preferences_disable_continuous_focus"; - public static final String KEY_DISABLE_EXPOSURE = "preferences_disable_exposure"; - public static final String KEY_DISABLE_METERING = "preferences_disable_metering"; - public static final String KEY_DISABLE_BARCODE_SCENE_MODE = "preferences_disable_barcode_scene_mode"; - public static final String KEY_AUTO_OPEN_WEB = "preferences_auto_open_web"; - - @Override - protected void onCreate(Bundle icicle) { - super.onCreate(icicle); - getFragmentManager().beginTransaction().replace(android.R.id.content, new PreferencesFragment()).commit(); - } - - // Apparently this will be necessary when targeting API 19+: - /* - @Override - protected boolean isValidFragment(String fragmentName) { - return true; - } - */ - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/PreferencesFragment.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/PreferencesFragment.java deleted file mode 100755 index 8fecd8a5..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/PreferencesFragment.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (C) 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - -import android.app.AlertDialog; -import android.content.SharedPreferences; -import android.os.Bundle; -import android.preference.CheckBoxPreference; -import android.preference.EditTextPreference; -import android.preference.Preference; -import android.preference.PreferenceFragment; -import android.preference.PreferenceScreen; - -import com.alibaba.weex.R; - -import java.net.URI; -import java.net.URISyntaxException; -import java.util.ArrayList; -import java.util.Collection; - - -public final class PreferencesFragment - extends PreferenceFragment - implements SharedPreferences.OnSharedPreferenceChangeListener { - - private CheckBoxPreference[] checkBoxPrefs; - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - addPreferencesFromResource(R.xml.preferences); - - PreferenceScreen preferences = getPreferenceScreen(); - preferences.getSharedPreferences().registerOnSharedPreferenceChangeListener(this); - checkBoxPrefs = findDecodePrefs(preferences, - PreferencesActivity.KEY_DECODE_1D_PRODUCT, - PreferencesActivity.KEY_DECODE_1D_INDUSTRIAL, - PreferencesActivity.KEY_DECODE_QR, - PreferencesActivity.KEY_DECODE_DATA_MATRIX, - PreferencesActivity.KEY_DECODE_AZTEC, - PreferencesActivity.KEY_DECODE_PDF417); - disableLastCheckedPref(); - - EditTextPreference customProductSearch = (EditTextPreference) - preferences.findPreference(PreferencesActivity.KEY_CUSTOM_PRODUCT_SEARCH); - customProductSearch.setOnPreferenceChangeListener(new CustomSearchURLValidator()); - } - - private static CheckBoxPreference[] findDecodePrefs(PreferenceScreen preferences, String... keys) { - CheckBoxPreference[] prefs = new CheckBoxPreference[keys.length]; - for (int i = 0; i < keys.length; i++) { - prefs[i] = (CheckBoxPreference) preferences.findPreference(keys[i]); - } - return prefs; - } - - @Override - public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { - disableLastCheckedPref(); - } - - private void disableLastCheckedPref() { - Collection checked = new ArrayList<>(checkBoxPrefs.length); - for (CheckBoxPreference pref : checkBoxPrefs) { - if (pref.isChecked()) { - checked.add(pref); - } - } - boolean disable = checked.size() <= 1; - for (CheckBoxPreference pref : checkBoxPrefs) { - pref.setEnabled(!(disable && checked.contains(pref))); - } - } - - private class CustomSearchURLValidator implements Preference.OnPreferenceChangeListener { - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - if (!isValid(newValue)) { - AlertDialog.Builder builder = - new AlertDialog.Builder(PreferencesFragment.this.getActivity()); - builder.setTitle(R.string.msg_error); - builder.setMessage(R.string.msg_invalid_value); - builder.setCancelable(true); - builder.show(); - return false; - } - return true; - } - - private boolean isValid(Object newValue) { - // Allow empty/null value - if (newValue == null) { - return true; - } - String valueString = newValue.toString(); - if (valueString.isEmpty()) { - return true; - } - // Before validating, remove custom placeholders, which will not - // be considered valid parts of the URL in some locations: - // Blank %t and %s: - valueString = valueString.replaceAll("%[st]", ""); - // Blank %f but not if followed by digit or a-f as it may be a hex sequence - valueString = valueString.replaceAll("%f(?![0-9a-f])", ""); - // Require a scheme otherwise: - try { - URI uri = new URI(valueString); - return uri.getScheme() != null; - } catch (URISyntaxException use) { - return false; - } - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/ScanFromWebPageManager.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/ScanFromWebPageManager.java deleted file mode 100755 index c8d13967..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/ScanFromWebPageManager.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (C) 2012 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; - -import android.net.Uri; - -import com.google.zxing.Result; -import com.google.zxing.client.android.result.ResultHandler; - -/** - * Manages functionality related to responding to requests to scan from an HTTP link in a web page. - * See ScanningFromWebPages. - * - * @author Sean Owen - */ -final class ScanFromWebPageManager { - - private static final CharSequence CODE_PLACEHOLDER = "{CODE}"; - private static final CharSequence RAW_CODE_PLACEHOLDER = "{RAWCODE}"; - private static final CharSequence META_PLACEHOLDER = "{META}"; - private static final CharSequence FORMAT_PLACEHOLDER = "{FORMAT}"; - private static final CharSequence TYPE_PLACEHOLDER = "{TYPE}"; - - private static final String RETURN_URL_PARAM = "ret"; - private static final String RAW_PARAM = "raw"; - - private final String returnUrlTemplate; - private final boolean returnRaw; - - ScanFromWebPageManager(Uri inputUri) { - returnUrlTemplate = inputUri.getQueryParameter(RETURN_URL_PARAM); - returnRaw = inputUri.getQueryParameter(RAW_PARAM) != null; - } - - boolean isScanFromWebPage() { - return returnUrlTemplate != null; - } - - String buildReplyURL(Result rawResult, ResultHandler resultHandler) { - String result = returnUrlTemplate; - result = replace(CODE_PLACEHOLDER, - returnRaw ? rawResult.getText() : resultHandler.getDisplayContents(), result); - result = replace(RAW_CODE_PLACEHOLDER, rawResult.getText(), result); - result = replace(FORMAT_PLACEHOLDER, rawResult.getBarcodeFormat().toString(), result); - result = replace(TYPE_PLACEHOLDER, resultHandler.getType().toString(), result); - result = replace(META_PLACEHOLDER, String.valueOf(rawResult.getResultMetadata()), result); - return result; - } - - private static String replace(CharSequence placeholder, CharSequence with, String pattern) { - CharSequence escapedWith = with == null ? "" : with; - try { - escapedWith = URLEncoder.encode(escapedWith.toString(), "UTF-8"); - } catch (UnsupportedEncodingException e) { - // can't happen; UTF-8 is always supported. Continue, I guess, without encoding - } - return pattern.replace(placeholder, escapedWith); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/ViewfinderResultPointCallback.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/ViewfinderResultPointCallback.java deleted file mode 100755 index 48009a90..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/ViewfinderResultPointCallback.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - -import com.google.zxing.ResultPoint; -import com.google.zxing.ResultPointCallback; - -final class ViewfinderResultPointCallback implements ResultPointCallback { - - private final ViewfinderView viewfinderView; - - ViewfinderResultPointCallback(ViewfinderView viewfinderView) { - this.viewfinderView = viewfinderView; - } - - @Override - public void foundPossibleResultPoint(ResultPoint point) { - viewfinderView.addPossibleResultPoint(point); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/ViewfinderView.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/ViewfinderView.java deleted file mode 100755 index 84a0e06a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/ViewfinderView.java +++ /dev/null @@ -1,191 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android; - -import android.annotation.SuppressLint; -import android.content.Context; -import android.content.res.Resources; -import android.graphics.Bitmap; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.graphics.Rect; -import android.util.AttributeSet; -import android.view.View; - -import com.alibaba.weex.R; -import com.google.zxing.ResultPoint; -import com.google.zxing.client.android.camera.CameraManager; - -import java.util.ArrayList; -import java.util.List; - -/** - * This view is overlaid on top of the camera preview. It adds the viewfinder rectangle and partial - * transparency outside it, as well as the laser scanner animation and result points. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class ViewfinderView extends View { - - private static final int[] SCANNER_ALPHA = {0, 64, 128, 192, 255, 192, 128, 64}; - private static final long ANIMATION_DELAY = 80L; - private static final int CURRENT_POINT_OPACITY = 0xA0; - private static final int MAX_RESULT_POINTS = 20; - private static final int POINT_SIZE = 6; - - private CameraManager cameraManager; - private final Paint paint; - private Bitmap resultBitmap; - private final int maskColor; - private final int resultColor; - private final int laserColor; - private final int resultPointColor; - private int scannerAlpha; - private List possibleResultPoints; - private List lastPossibleResultPoints; - - // This constructor is used when the class is built from an XML resource. - public ViewfinderView(Context context, AttributeSet attrs) { - super(context, attrs); - - // Initialize these once for performance rather than calling them every time in onDraw(). - paint = new Paint(Paint.ANTI_ALIAS_FLAG); - Resources resources = getResources(); - maskColor = resources.getColor(R.color.viewfinder_mask); - resultColor = resources.getColor(R.color.result_view); - laserColor = resources.getColor(R.color.viewfinder_laser); - resultPointColor = resources.getColor(R.color.possible_result_points); - scannerAlpha = 0; - possibleResultPoints = new ArrayList<>(5); - lastPossibleResultPoints = null; - } - - public void setCameraManager(CameraManager cameraManager) { - this.cameraManager = cameraManager; - } - - @SuppressLint("DrawAllocation") - @Override - public void onDraw(Canvas canvas) { - if (cameraManager == null) { - return; // not ready yet, early draw before done configuring - } - Rect frame = cameraManager.getFramingRect(); - Rect previewFrame = cameraManager.getFramingRectInPreview(); - if (frame == null || previewFrame == null) { - return; - } - int width = canvas.getWidth(); - int height = canvas.getHeight(); - - // Draw the exterior (i.e. outside the framing rect) darkened - paint.setColor(resultBitmap != null ? resultColor : maskColor); - canvas.drawRect(0, 0, width, frame.top, paint); - canvas.drawRect(0, frame.top, frame.left, frame.bottom + 1, paint); - canvas.drawRect(frame.right + 1, frame.top, width, frame.bottom + 1, paint); - canvas.drawRect(0, frame.bottom + 1, width, height, paint); - - if (resultBitmap != null) { - // Draw the opaque result bitmap over the scanning rectangle - paint.setAlpha(CURRENT_POINT_OPACITY); - canvas.drawBitmap(resultBitmap, null, frame, paint); - } else { - - // Draw a red "laser scanner" line through the middle to show decoding is active - paint.setColor(laserColor); - paint.setAlpha(SCANNER_ALPHA[scannerAlpha]); - scannerAlpha = (scannerAlpha + 1) % SCANNER_ALPHA.length; - int middle = frame.height() / 2 + frame.top; - canvas.drawRect(frame.left + 2, middle - 1, frame.right - 1, middle + 2, paint); - - float scaleX = frame.width() / (float) previewFrame.width(); - float scaleY = frame.height() / (float) previewFrame.height(); - - List currentPossible = possibleResultPoints; - List currentLast = lastPossibleResultPoints; - int frameLeft = frame.left; - int frameTop = frame.top; - if (currentPossible.isEmpty()) { - lastPossibleResultPoints = null; - } else { - possibleResultPoints = new ArrayList<>(5); - lastPossibleResultPoints = currentPossible; - paint.setAlpha(CURRENT_POINT_OPACITY); - paint.setColor(resultPointColor); - synchronized (currentPossible) { - for (ResultPoint point : currentPossible) { - canvas.drawCircle(frameLeft + (int) (point.getX() * scaleX), - frameTop + (int) (point.getY() * scaleY), - POINT_SIZE, paint); - } - } - } - if (currentLast != null) { - paint.setAlpha(CURRENT_POINT_OPACITY / 2); - paint.setColor(resultPointColor); - synchronized (currentLast) { - float radius = POINT_SIZE / 2.0f; - for (ResultPoint point : currentLast) { - canvas.drawCircle(frameLeft + (int) (point.getX() * scaleX), - frameTop + (int) (point.getY() * scaleY), - radius, paint); - } - } - } - - // Request another update at the animation interval, but only repaint the laser line, - // not the entire viewfinder mask. - postInvalidateDelayed(ANIMATION_DELAY, - frame.left - POINT_SIZE, - frame.top - POINT_SIZE, - frame.right + POINT_SIZE, - frame.bottom + POINT_SIZE); - } - } - - public void drawViewfinder() { - Bitmap resultBitmap = this.resultBitmap; - this.resultBitmap = null; - if (resultBitmap != null) { - resultBitmap.recycle(); - } - invalidate(); - } - - /** - * Draw a bitmap with the result points highlighted instead of the live scanning display. - * - * @param barcode An image of the decoded barcode. - */ - public void drawResultBitmap(Bitmap barcode) { - resultBitmap = barcode; - invalidate(); - } - - public void addPossibleResultPoint(ResultPoint point) { - List points = possibleResultPoints; - synchronized (points) { - points.add(point); - int size = points.size(); - if (size > MAX_RESULT_POINTS) { - // trim it - points.subList(0, size - MAX_RESULT_POINTS / 2).clear(); - } - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/book/BrowseBookListener.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/book/BrowseBookListener.java deleted file mode 100755 index 7d8a7c8d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/book/BrowseBookListener.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (C) 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.book; - -import java.util.List; - -import android.content.Intent; -import android.net.Uri; -import android.view.View; -import android.widget.AdapterView; - -import com.google.zxing.client.android.LocaleManager; - -final class BrowseBookListener implements AdapterView.OnItemClickListener { - - private final SearchBookContentsActivity activity; - private final List items; - - BrowseBookListener(SearchBookContentsActivity activity, List items) { - this.activity = activity; - this.items = items; - } - - @Override - public void onItemClick(AdapterView parent, View v, int position, long id) { - if (position < 1) { - // Clicked header, ignore it - return; - } - int itemOffset = position - 1; - if (itemOffset >= items.size()) { - return; - } - String pageId = items.get(itemOffset).getPageId(); - String query = SearchBookContentsResult.getQuery(); - if (LocaleManager.isBookSearchUrl(activity.getISBN()) && !pageId.isEmpty()) { - String uri = activity.getISBN(); - int equals = uri.indexOf('='); - String volumeId = uri.substring(equals + 1); - String readBookURI = "http://books.google." + - LocaleManager.getBookSearchCountryTLD(activity) + - "/books?id=" + volumeId + "&pg=" + pageId + "&vq=" + query; - Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(readBookURI)); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - activity.startActivity(intent); - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/book/SearchBookContentsActivity.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/book/SearchBookContentsActivity.java deleted file mode 100755 index c33dbac1..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/book/SearchBookContentsActivity.java +++ /dev/null @@ -1,274 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.book; - -import android.app.Activity; -import android.content.Intent; -import android.os.AsyncTask; -import android.os.Bundle; -import android.util.Log; -import android.view.KeyEvent; -import android.view.LayoutInflater; -import android.view.View; -import android.webkit.CookieManager; -import android.webkit.CookieSyncManager; -import android.widget.EditText; -import android.widget.ListView; -import android.widget.TextView; - -import com.alibaba.weex.R; -import com.google.zxing.client.android.HttpHelper; -import com.google.zxing.client.android.Intents; -import com.google.zxing.client.android.LocaleManager; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.regex.Pattern; - -/** - * Uses Google Book Search to find a word or phrase in the requested book. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class SearchBookContentsActivity extends Activity { - - private static final String TAG = SearchBookContentsActivity.class.getSimpleName(); - - private static final Pattern TAG_PATTERN = Pattern.compile("\\<.*?\\>"); - private static final Pattern LT_ENTITY_PATTERN = Pattern.compile("<"); - private static final Pattern GT_ENTITY_PATTERN = Pattern.compile(">"); - private static final Pattern QUOTE_ENTITY_PATTERN = Pattern.compile("'"); - private static final Pattern QUOT_ENTITY_PATTERN = Pattern.compile("""); - - private String isbn; - private EditText queryTextView; - private View queryButton; - private ListView resultListView; - private TextView headerView; - private AsyncTask networkTask; - - private final View.OnClickListener buttonListener = new View.OnClickListener() { - @Override - public void onClick(View view) { - launchSearch(); - } - }; - - private final View.OnKeyListener keyListener = new View.OnKeyListener() { - @Override - public boolean onKey(View view, int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN) { - launchSearch(); - return true; - } - return false; - } - }; - - String getISBN() { - return isbn; - } - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - - // Make sure that expired cookies are removed on launch. - CookieSyncManager.createInstance(this); - CookieManager.getInstance().removeExpiredCookie(); - - Intent intent = getIntent(); - if (intent == null || !intent.getAction().equals(Intents.SearchBookContents.ACTION)) { - finish(); - return; - } - - isbn = intent.getStringExtra(Intents.SearchBookContents.ISBN); - if (LocaleManager.isBookSearchUrl(isbn)) { - setTitle(getString(R.string.sbc_name)); - } else { - setTitle(getString(R.string.sbc_name) + ": ISBN " + isbn); - } - - setContentView(R.layout.search_book_contents); - queryTextView = (EditText) findViewById(R.id.query_text_view); - - String initialQuery = intent.getStringExtra(Intents.SearchBookContents.QUERY); - if (initialQuery != null && !initialQuery.isEmpty()) { - // Populate the search box but don't trigger the search - queryTextView.setText(initialQuery); - } - queryTextView.setOnKeyListener(keyListener); - - queryButton = findViewById(R.id.query_button); - queryButton.setOnClickListener(buttonListener); - - resultListView = (ListView) findViewById(R.id.result_list_view); - LayoutInflater factory = LayoutInflater.from(this); - headerView = (TextView) factory.inflate(R.layout.search_book_contents_header, - resultListView, false); - resultListView.addHeaderView(headerView); - } - - @Override - protected void onResume() { - super.onResume(); - queryTextView.selectAll(); - } - - @Override - protected void onPause() { - AsyncTask oldTask = networkTask; - if (oldTask != null) { - oldTask.cancel(true); - networkTask = null; - } - super.onPause(); - } - - private void launchSearch() { - String query = queryTextView.getText().toString(); - if (query != null && !query.isEmpty()) { - AsyncTask oldTask = networkTask; - if (oldTask != null) { - oldTask.cancel(true); - } - networkTask = new NetworkTask(); - networkTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, query, isbn); - headerView.setText(R.string.msg_sbc_searching_book); - resultListView.setAdapter(null); - queryTextView.setEnabled(false); - queryButton.setEnabled(false); - } - } - - private final class NetworkTask extends AsyncTask { - - @Override - protected JSONObject doInBackground(String... args) { - try { - // These return a JSON result which describes if and where the query was found. This API may - // break or disappear at any time in the future. Since this is an API call rather than a - // website, we don't use LocaleManager to change the TLD. - String theQuery = args[0]; - String theIsbn = args[1]; - String uri; - if (LocaleManager.isBookSearchUrl(theIsbn)) { - int equals = theIsbn.indexOf('='); - String volumeId = theIsbn.substring(equals + 1); - uri = "http://www.google.com/books?id=" + volumeId + "&jscmd=SearchWithinVolume2&q=" + theQuery; - } else { - uri = "http://www.google.com/books?vid=isbn" + theIsbn + "&jscmd=SearchWithinVolume2&q=" + theQuery; - } - CharSequence content = HttpHelper.downloadViaHttp(uri, HttpHelper.ContentType.JSON); - return new JSONObject(content.toString()); - } catch (IOException ioe) { - Log.w(TAG, "Error accessing book search", ioe); - return null; - } catch (JSONException je) { - Log.w(TAG, "Error accessing book search", je); - return null; - } - } - - @Override - protected void onPostExecute(JSONObject result) { - if (result == null) { - headerView.setText(R.string.msg_sbc_failed); - } else { - handleSearchResults(result); - } - queryTextView.setEnabled(true); - queryTextView.selectAll(); - queryButton.setEnabled(true); - } - - // Currently there is no way to distinguish between a query which had no results and a book - // which is not searchable - both return zero results. - private void handleSearchResults(JSONObject json) { - try { - int count = json.getInt("number_of_results"); - headerView.setText(getString(R.string.msg_sbc_results) + " : " + count); - if (count > 0) { - JSONArray results = json.getJSONArray("search_results"); - SearchBookContentsResult.setQuery(queryTextView.getText().toString()); - List items = new ArrayList<>(count); - for (int x = 0; x < count; x++) { - items.add(parseResult(results.getJSONObject(x))); - } - resultListView.setOnItemClickListener(new BrowseBookListener(SearchBookContentsActivity.this, items)); - resultListView.setAdapter(new SearchBookContentsAdapter(SearchBookContentsActivity.this, items)); - } else { - String searchable = json.optString("searchable"); - if ("false".equals(searchable)) { - headerView.setText(R.string.msg_sbc_book_not_searchable); - } - resultListView.setAdapter(null); - } - } catch (JSONException e) { - Log.w(TAG, "Bad JSON from book search", e); - resultListView.setAdapter(null); - headerView.setText(R.string.msg_sbc_failed); - } - } - - // Available fields: page_id, page_number, snippet_text - private SearchBookContentsResult parseResult(JSONObject json) { - - String pageId; - String pageNumber; - String snippet; - try { - pageId = json.getString("page_id"); - pageNumber = json.optString("page_number"); - snippet = json.optString("snippet_text"); - } catch (JSONException e) { - Log.w(TAG, e); - // Never seen in the wild, just being complete. - return new SearchBookContentsResult(getString(R.string.msg_sbc_no_page_returned), "", "", false); - } - - if (pageNumber == null || pageNumber.isEmpty()) { - // This can happen for text on the jacket, and possibly other reasons. - pageNumber = ""; - } else { - pageNumber = getString(R.string.msg_sbc_page) + ' ' + pageNumber; - } - - boolean valid = snippet != null && !snippet.isEmpty(); - if (valid) { - // Remove all HTML tags and encoded characters. - snippet = TAG_PATTERN.matcher(snippet).replaceAll(""); - snippet = LT_ENTITY_PATTERN.matcher(snippet).replaceAll("<"); - snippet = GT_ENTITY_PATTERN.matcher(snippet).replaceAll(">"); - snippet = QUOTE_ENTITY_PATTERN.matcher(snippet).replaceAll("'"); - snippet = QUOT_ENTITY_PATTERN.matcher(snippet).replaceAll("\""); - } else { - snippet = '(' + getString(R.string.msg_sbc_snippet_unavailable) + ')'; - } - - return new SearchBookContentsResult(pageId, pageNumber, snippet, valid); - } - - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/book/SearchBookContentsAdapter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/book/SearchBookContentsAdapter.java deleted file mode 100755 index 49eaba73..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/book/SearchBookContentsAdapter.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.book; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ArrayAdapter; - -import com.alibaba.weex.R; - -import java.util.List; - - -/** - * Manufactures list items which represent SBC results. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -final class SearchBookContentsAdapter extends ArrayAdapter { - - SearchBookContentsAdapter(Context context, List items) { - super(context, R.layout.search_book_contents_list_item, 0, items); - } - - @Override - public View getView(int position, View view, ViewGroup viewGroup) { - SearchBookContentsListItem listItem; - - if (view == null) { - LayoutInflater factory = LayoutInflater.from(getContext()); - listItem = (SearchBookContentsListItem) factory.inflate( - R.layout.search_book_contents_list_item, viewGroup, false); - } else { - if (view instanceof SearchBookContentsListItem) { - listItem = (SearchBookContentsListItem) view; - } else { - return view; - } - } - - SearchBookContentsResult result = getItem(position); - listItem.set(result); - return listItem; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/book/SearchBookContentsListItem.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/book/SearchBookContentsListItem.java deleted file mode 100755 index 357d7efa..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/book/SearchBookContentsListItem.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.book; - -import android.content.Context; -import android.graphics.Typeface; -import android.text.Spannable; -import android.text.SpannableString; -import android.text.style.StyleSpan; -import android.util.AttributeSet; -import android.widget.LinearLayout; -import android.widget.TextView; - -import com.alibaba.weex.R; - -import java.util.Locale; - - -/** - * A list item which displays the page number and snippet of this search result. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class SearchBookContentsListItem extends LinearLayout { - private TextView pageNumberView; - private TextView snippetView; - - SearchBookContentsListItem(Context context) { - super(context); - } - - public SearchBookContentsListItem(Context context, AttributeSet attrs) { - super(context, attrs); - } - - @Override - protected void onFinishInflate() { - super.onFinishInflate(); - pageNumberView = (TextView) findViewById(R.id.page_number_view); - snippetView = (TextView) findViewById(R.id.snippet_view); - } - - public void set(SearchBookContentsResult result) { - pageNumberView.setText(result.getPageNumber()); - String snippet = result.getSnippet(); - if (snippet.isEmpty()) { - snippetView.setText(""); - } else { - if (result.getValidSnippet()) { - String lowerQuery = SearchBookContentsResult.getQuery().toLowerCase(Locale.getDefault()); - String lowerSnippet = snippet.toLowerCase(Locale.getDefault()); - Spannable styledSnippet = new SpannableString(snippet); - StyleSpan boldSpan = new StyleSpan(Typeface.BOLD); - int queryLength = lowerQuery.length(); - int offset = 0; - while (true) { - int pos = lowerSnippet.indexOf(lowerQuery, offset); - if (pos < 0) { - break; - } - styledSnippet.setSpan(boldSpan, pos, pos + queryLength, 0); - offset = pos + queryLength; - } - snippetView.setText(styledSnippet); - } else { - // This may be an error message, so don't try to bold the query terms within it - snippetView.setText(snippet); - } - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/book/SearchBookContentsResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/book/SearchBookContentsResult.java deleted file mode 100755 index ffaafb33..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/book/SearchBookContentsResult.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.book; - -/** - * The underlying data for a SBC result. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -final class SearchBookContentsResult { - - private static String query = null; - - private final String pageId; - private final String pageNumber; - private final String snippet; - private final boolean validSnippet; - - SearchBookContentsResult(String pageId, - String pageNumber, - String snippet, - boolean validSnippet) { - this.pageId = pageId; - this.pageNumber = pageNumber; - this.snippet = snippet; - this.validSnippet = validSnippet; - } - - public static void setQuery(String query) { - SearchBookContentsResult.query = query; - } - - public String getPageId() { - return pageId; - } - - public String getPageNumber() { - return pageNumber; - } - - public String getSnippet() { - return snippet; - } - - public boolean getValidSnippet() { - return validSnippet; - } - - public static String getQuery() { - return query; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/AutoFocusManager.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/AutoFocusManager.java deleted file mode 100755 index b83e7caa..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/AutoFocusManager.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright (C) 2012 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.camera; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.concurrent.RejectedExecutionException; - -import android.content.Context; -import android.content.SharedPreferences; -import android.hardware.Camera; -import android.os.AsyncTask; -import android.preference.PreferenceManager; -import android.util.Log; - -import com.google.zxing.client.android.PreferencesActivity; - -final class AutoFocusManager implements Camera.AutoFocusCallback { - - private static final String TAG = AutoFocusManager.class.getSimpleName(); - - private static final long AUTO_FOCUS_INTERVAL_MS = 2000L; - private static final Collection FOCUS_MODES_CALLING_AF; - static { - FOCUS_MODES_CALLING_AF = new ArrayList<>(2); - FOCUS_MODES_CALLING_AF.add(Camera.Parameters.FOCUS_MODE_AUTO); - FOCUS_MODES_CALLING_AF.add(Camera.Parameters.FOCUS_MODE_MACRO); - } - - private boolean stopped; - private boolean focusing; - private final boolean useAutoFocus; - private final Camera camera; - private AsyncTask outstandingTask; - - AutoFocusManager(Context context, Camera camera) { - this.camera = camera; - SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); - String currentFocusMode = camera.getParameters().getFocusMode(); - useAutoFocus = - sharedPrefs.getBoolean(PreferencesActivity.KEY_AUTO_FOCUS, true) && - FOCUS_MODES_CALLING_AF.contains(currentFocusMode); - Log.i(TAG, "Current focus mode '" + currentFocusMode + "'; use auto focus? " + useAutoFocus); - start(); - } - - @Override - public synchronized void onAutoFocus(boolean success, Camera theCamera) { - focusing = false; - autoFocusAgainLater(); - } - - private synchronized void autoFocusAgainLater() { - if (!stopped && outstandingTask == null) { - AutoFocusTask newTask = new AutoFocusTask(); - try { - newTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - outstandingTask = newTask; - } catch (RejectedExecutionException ree) { - Log.w(TAG, "Could not request auto focus", ree); - } - } - } - - synchronized void start() { - if (useAutoFocus) { - outstandingTask = null; - if (!stopped && !focusing) { - try { - camera.autoFocus(this); - focusing = true; - } catch (RuntimeException re) { - // Have heard RuntimeException reported in Android 4.0.x+; continue? - Log.w(TAG, "Unexpected exception while focusing", re); - // Try again later to keep cycle going - autoFocusAgainLater(); - } - } - } - } - - private synchronized void cancelOutstandingTask() { - if (outstandingTask != null) { - if (outstandingTask.getStatus() != AsyncTask.Status.FINISHED) { - outstandingTask.cancel(true); - } - outstandingTask = null; - } - } - - synchronized void stop() { - stopped = true; - if (useAutoFocus) { - cancelOutstandingTask(); - // Doesn't hurt to call this even if not focusing - try { - camera.cancelAutoFocus(); - } catch (RuntimeException re) { - // Have heard RuntimeException reported in Android 4.0.x+; continue? - Log.w(TAG, "Unexpected exception while cancelling focusing", re); - } - } - } - - private final class AutoFocusTask extends AsyncTask { - @Override - protected Object doInBackground(Object... voids) { - try { - Thread.sleep(AUTO_FOCUS_INTERVAL_MS); - } catch (InterruptedException e) { - // continue - } - start(); - return null; - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/CameraConfigurationManager.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/CameraConfigurationManager.java deleted file mode 100755 index 45af1a03..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/CameraConfigurationManager.java +++ /dev/null @@ -1,252 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.camera; - -import android.content.Context; -import android.content.SharedPreferences; -import android.graphics.Point; -import android.hardware.Camera; -import android.preference.PreferenceManager; -import android.util.Log; -import android.view.Display; -import android.view.Surface; -import android.view.WindowManager; - -import com.google.zxing.client.android.PreferencesActivity; -import com.google.zxing.client.android.camera.open.CameraFacing; -import com.google.zxing.client.android.camera.open.OpenCamera; - -/** - * A class which deals with reading, parsing, and setting the camera parameters which are used to - * configure the camera hardware. - */ -final class CameraConfigurationManager { - - private static final String TAG = "CameraConfiguration"; - - private final Context context; - private int cwNeededRotation; - private int cwRotationFromDisplayToCamera; - private Point screenResolution; - private Point cameraResolution; - private Point bestPreviewSize; - private Point previewSizeOnScreen; - - CameraConfigurationManager(Context context) { - this.context = context; - } - - /** - * Reads, one time, values from the camera that are needed by the app. - */ - void initFromCameraParameters(OpenCamera camera) { - Camera.Parameters parameters = camera.getCamera().getParameters(); - WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); - Display display = manager.getDefaultDisplay(); - - int displayRotation = display.getRotation(); - int cwRotationFromNaturalToDisplay; - switch (displayRotation) { - case Surface.ROTATION_0: - cwRotationFromNaturalToDisplay = 0; - break; - case Surface.ROTATION_90: - cwRotationFromNaturalToDisplay = 90; - break; - case Surface.ROTATION_180: - cwRotationFromNaturalToDisplay = 180; - break; - case Surface.ROTATION_270: - cwRotationFromNaturalToDisplay = 270; - break; - default: - // Have seen this return incorrect values like -90 - if (displayRotation % 90 == 0) { - cwRotationFromNaturalToDisplay = (360 + displayRotation) % 360; - } else { - throw new IllegalArgumentException("Bad rotation: " + displayRotation); - } - } - Log.i(TAG, "Display at: " + cwRotationFromNaturalToDisplay); - - int cwRotationFromNaturalToCamera = camera.getOrientation(); - Log.i(TAG, "Camera at: " + cwRotationFromNaturalToCamera); - - // Still not 100% sure about this. But acts like we need to flip this: - if (camera.getFacing() == CameraFacing.FRONT) { - cwRotationFromNaturalToCamera = (360 - cwRotationFromNaturalToCamera) % 360; - Log.i(TAG, "Front camera overriden to: " + cwRotationFromNaturalToCamera); - } - - /* - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - String overrideRotationString; - if (camera.getFacing() == CameraFacing.FRONT) { - overrideRotationString = prefs.getString(PreferencesActivity.KEY_FORCE_CAMERA_ORIENTATION_FRONT, null); - } else { - overrideRotationString = prefs.getString(PreferencesActivity.KEY_FORCE_CAMERA_ORIENTATION, null); - } - if (overrideRotationString != null && !"-".equals(overrideRotationString)) { - Log.i(TAG, "Overriding camera manually to " + overrideRotationString); - cwRotationFromNaturalToCamera = Integer.parseInt(overrideRotationString); - } - */ - - cwRotationFromDisplayToCamera = - (360 + cwRotationFromNaturalToCamera - cwRotationFromNaturalToDisplay) % 360; - Log.i(TAG, "Final display orientation: " + cwRotationFromDisplayToCamera); - if (camera.getFacing() == CameraFacing.FRONT) { - Log.i(TAG, "Compensating rotation for front camera"); - cwNeededRotation = (360 - cwRotationFromDisplayToCamera) % 360; - } else { - cwNeededRotation = cwRotationFromDisplayToCamera; - } - Log.i(TAG, "Clockwise rotation from display to camera: " + cwNeededRotation); - - Point theScreenResolution = new Point(); - display.getSize(theScreenResolution); - screenResolution = theScreenResolution; - Log.i(TAG, "Screen resolution in current orientation: " + screenResolution); - cameraResolution = CameraConfigurationUtils.findBestPreviewSizeValue(parameters, screenResolution); - Log.i(TAG, "Camera resolution: " + cameraResolution); - bestPreviewSize = CameraConfigurationUtils.findBestPreviewSizeValue(parameters, screenResolution); - Log.i(TAG, "Best available preview size: " + bestPreviewSize); - - boolean isScreenPortrait = screenResolution.x < screenResolution.y; - boolean isPreviewSizePortrait = bestPreviewSize.x < bestPreviewSize.y; - - if (isScreenPortrait == isPreviewSizePortrait) { - previewSizeOnScreen = bestPreviewSize; - } else { - previewSizeOnScreen = new Point(bestPreviewSize.y, bestPreviewSize.x); - } - Log.i(TAG, "Preview size on screen: " + previewSizeOnScreen); - } - - void setDesiredCameraParameters(OpenCamera camera, boolean safeMode) { - - Camera theCamera = camera.getCamera(); - Camera.Parameters parameters = theCamera.getParameters(); - - if (parameters == null) { - Log.w(TAG, "Device error: no camera parameters are available. Proceeding without configuration."); - return; - } - - Log.i(TAG, "Initial camera parameters: " + parameters.flatten()); - - if (safeMode) { - Log.w(TAG, "In camera config safe mode -- most settings will not be honored"); - } - - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - - initializeTorch(parameters, prefs, safeMode); - - CameraConfigurationUtils.setFocus( - parameters, - prefs.getBoolean(PreferencesActivity.KEY_AUTO_FOCUS, true), - prefs.getBoolean(PreferencesActivity.KEY_DISABLE_CONTINUOUS_FOCUS, true), - safeMode); - - if (!safeMode) { - if (prefs.getBoolean(PreferencesActivity.KEY_INVERT_SCAN, false)) { - CameraConfigurationUtils.setInvertColor(parameters); - } - - if (!prefs.getBoolean(PreferencesActivity.KEY_DISABLE_BARCODE_SCENE_MODE, true)) { - CameraConfigurationUtils.setBarcodeSceneMode(parameters); - } - - if (!prefs.getBoolean(PreferencesActivity.KEY_DISABLE_METERING, true)) { - CameraConfigurationUtils.setVideoStabilization(parameters); - CameraConfigurationUtils.setFocusArea(parameters); - CameraConfigurationUtils.setMetering(parameters); - } - - } - - parameters.setPreviewSize(bestPreviewSize.x, bestPreviewSize.y); - - theCamera.setDisplayOrientation(90); - theCamera.setParameters(parameters); - - theCamera.setDisplayOrientation(cwRotationFromDisplayToCamera); - - Camera.Parameters afterParameters = theCamera.getParameters(); - Camera.Size afterSize = afterParameters.getPreviewSize(); - if (afterSize != null && (bestPreviewSize.x != afterSize.width || bestPreviewSize.y != afterSize.height)) { - Log.w(TAG, "Camera said it supported preview size " + bestPreviewSize.x + 'x' + bestPreviewSize.y + - ", but after setting it, preview size is " + afterSize.width + 'x' + afterSize.height); - bestPreviewSize.x = afterSize.width; - bestPreviewSize.y = afterSize.height; - } - } - - Point getBestPreviewSize() { - return bestPreviewSize; - } - - Point getPreviewSizeOnScreen() { - return previewSizeOnScreen; - } - - Point getCameraResolution() { - return cameraResolution; - } - - Point getScreenResolution() { - return screenResolution; - } - - int getCWNeededRotation() { - return cwNeededRotation; - } - - boolean getTorchState(Camera camera) { - if (camera != null) { - Camera.Parameters parameters = camera.getParameters(); - if (parameters != null) { - String flashMode = camera.getParameters().getFlashMode(); - return flashMode != null && - (Camera.Parameters.FLASH_MODE_ON.equals(flashMode) || - Camera.Parameters.FLASH_MODE_TORCH.equals(flashMode)); - } - } - return false; - } - - void setTorch(Camera camera, boolean newSetting) { - Camera.Parameters parameters = camera.getParameters(); - doSetTorch(parameters, newSetting, false); - camera.setParameters(parameters); - } - - private void initializeTorch(Camera.Parameters parameters, SharedPreferences prefs, boolean safeMode) { - boolean currentSetting = FrontLightMode.readPref(prefs) == FrontLightMode.ON; - doSetTorch(parameters, currentSetting, safeMode); - } - - private void doSetTorch(Camera.Parameters parameters, boolean newSetting, boolean safeMode) { - CameraConfigurationUtils.setTorch(parameters, newSetting); - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - if (!safeMode && !prefs.getBoolean(PreferencesActivity.KEY_DISABLE_EXPOSURE, true)) { - CameraConfigurationUtils.setBestExposure(parameters, newSetting); - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/CameraConfigurationUtils.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/CameraConfigurationUtils.java deleted file mode 100755 index 32260a18..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/CameraConfigurationUtils.java +++ /dev/null @@ -1,447 +0,0 @@ -/* - * Copyright (C) 2014 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.camera; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.Iterator; -import java.util.List; -import java.util.regex.Pattern; - -import android.annotation.TargetApi; -import android.graphics.Point; -import android.graphics.Rect; -import android.hardware.Camera; -import android.os.Build; -import android.util.Log; - -/** - * Utility methods for configuring the Android camera. - * - * @author Sean Owen - */ -@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) -public final class CameraConfigurationUtils { - - private static final String TAG = "CameraConfiguration"; - - private static final Pattern SEMICOLON = Pattern.compile(";"); - - private static final int MIN_PREVIEW_PIXELS = 480 * 320; // normal screen - private static final float MAX_EXPOSURE_COMPENSATION = 1.5f; - private static final float MIN_EXPOSURE_COMPENSATION = 0.0f; - private static final double MAX_ASPECT_DISTORTION = 0.15; - private static final int MIN_FPS = 10; - private static final int MAX_FPS = 20; - private static final int AREA_PER_1000 = 400; - - private CameraConfigurationUtils() { - } - - public static void setFocus(Camera.Parameters parameters, - boolean autoFocus, - boolean disableContinuous, - boolean safeMode) { - List supportedFocusModes = parameters.getSupportedFocusModes(); - String focusMode = null; - if (autoFocus) { - if (safeMode || disableContinuous) { - focusMode = findSettableValue("focus mode", - supportedFocusModes, - Camera.Parameters.FOCUS_MODE_AUTO); - } else { - focusMode = findSettableValue("focus mode", - supportedFocusModes, - Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE, - Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO, - Camera.Parameters.FOCUS_MODE_AUTO); - } - } - // Maybe selected auto-focus but not available, so fall through here: - if (!safeMode && focusMode == null) { - focusMode = findSettableValue("focus mode", - supportedFocusModes, - Camera.Parameters.FOCUS_MODE_MACRO, - Camera.Parameters.FOCUS_MODE_EDOF); - } - if (focusMode != null) { - if (focusMode.equals(parameters.getFocusMode())) { - Log.i(TAG, "Focus mode already set to " + focusMode); - } else { - parameters.setFocusMode(focusMode); - } - } - } - - public static void setTorch(Camera.Parameters parameters, boolean on) { - List supportedFlashModes = parameters.getSupportedFlashModes(); - String flashMode; - if (on) { - flashMode = findSettableValue("flash mode", - supportedFlashModes, - Camera.Parameters.FLASH_MODE_TORCH, - Camera.Parameters.FLASH_MODE_ON); - } else { - flashMode = findSettableValue("flash mode", - supportedFlashModes, - Camera.Parameters.FLASH_MODE_OFF); - } - if (flashMode != null) { - if (flashMode.equals(parameters.getFlashMode())) { - Log.i(TAG, "Flash mode already set to " + flashMode); - } else { - Log.i(TAG, "Setting flash mode to " + flashMode); - parameters.setFlashMode(flashMode); - } - } - } - - public static void setBestExposure(Camera.Parameters parameters, boolean lightOn) { - int minExposure = parameters.getMinExposureCompensation(); - int maxExposure = parameters.getMaxExposureCompensation(); - float step = parameters.getExposureCompensationStep(); - if ((minExposure != 0 || maxExposure != 0) && step > 0.0f) { - // Set low when light is on - float targetCompensation = lightOn ? MIN_EXPOSURE_COMPENSATION : MAX_EXPOSURE_COMPENSATION; - int compensationSteps = Math.round(targetCompensation / step); - float actualCompensation = step * compensationSteps; - // Clamp value: - compensationSteps = Math.max(Math.min(compensationSteps, maxExposure), minExposure); - if (parameters.getExposureCompensation() == compensationSteps) { - Log.i(TAG, "Exposure compensation already set to " + compensationSteps + " / " + actualCompensation); - } else { - Log.i(TAG, "Setting exposure compensation to " + compensationSteps + " / " + actualCompensation); - parameters.setExposureCompensation(compensationSteps); - } - } else { - Log.i(TAG, "Camera does not support exposure compensation"); - } - } - - public static void setBestPreviewFPS(Camera.Parameters parameters) { - setBestPreviewFPS(parameters, MIN_FPS, MAX_FPS); - } - - public static void setBestPreviewFPS(Camera.Parameters parameters, int minFPS, int maxFPS) { - List supportedPreviewFpsRanges = parameters.getSupportedPreviewFpsRange(); - Log.i(TAG, "Supported FPS ranges: " + toString(supportedPreviewFpsRanges)); - if (supportedPreviewFpsRanges != null && !supportedPreviewFpsRanges.isEmpty()) { - int[] suitableFPSRange = null; - for (int[] fpsRange : supportedPreviewFpsRanges) { - int thisMin = fpsRange[Camera.Parameters.PREVIEW_FPS_MIN_INDEX]; - int thisMax = fpsRange[Camera.Parameters.PREVIEW_FPS_MAX_INDEX]; - if (thisMin >= minFPS * 1000 && thisMax <= maxFPS * 1000) { - suitableFPSRange = fpsRange; - break; - } - } - if (suitableFPSRange == null) { - Log.i(TAG, "No suitable FPS range?"); - } else { - int[] currentFpsRange = new int[2]; - parameters.getPreviewFpsRange(currentFpsRange); - if (Arrays.equals(currentFpsRange, suitableFPSRange)) { - Log.i(TAG, "FPS range already set to " + Arrays.toString(suitableFPSRange)); - } else { - Log.i(TAG, "Setting FPS range to " + Arrays.toString(suitableFPSRange)); - parameters.setPreviewFpsRange(suitableFPSRange[Camera.Parameters.PREVIEW_FPS_MIN_INDEX], - suitableFPSRange[Camera.Parameters.PREVIEW_FPS_MAX_INDEX]); - } - } - } - } - - public static void setFocusArea(Camera.Parameters parameters) { - if (parameters.getMaxNumFocusAreas() > 0) { - Log.i(TAG, "Old focus areas: " + toString(parameters.getFocusAreas())); - List middleArea = buildMiddleArea(AREA_PER_1000); - Log.i(TAG, "Setting focus area to : " + toString(middleArea)); - parameters.setFocusAreas(middleArea); - } else { - Log.i(TAG, "Device does not support focus areas"); - } - } - - public static void setMetering(Camera.Parameters parameters) { - if (parameters.getMaxNumMeteringAreas() > 0) { - Log.i(TAG, "Old metering areas: " + parameters.getMeteringAreas()); - List middleArea = buildMiddleArea(AREA_PER_1000); - Log.i(TAG, "Setting metering area to : " + toString(middleArea)); - parameters.setMeteringAreas(middleArea); - } else { - Log.i(TAG, "Device does not support metering areas"); - } - } - - private static List buildMiddleArea(int areaPer1000) { - return Collections.singletonList( - new Camera.Area(new Rect(-areaPer1000, -areaPer1000, areaPer1000, areaPer1000), 1)); - } - - public static void setVideoStabilization(Camera.Parameters parameters) { - if (parameters.isVideoStabilizationSupported()) { - if (parameters.getVideoStabilization()) { - Log.i(TAG, "Video stabilization already enabled"); - } else { - Log.i(TAG, "Enabling video stabilization..."); - parameters.setVideoStabilization(true); - } - } else { - Log.i(TAG, "This device does not support video stabilization"); - } - } - - public static void setBarcodeSceneMode(Camera.Parameters parameters) { - if (Camera.Parameters.SCENE_MODE_BARCODE.equals(parameters.getSceneMode())) { - Log.i(TAG, "Barcode scene mode already set"); - return; - } - String sceneMode = findSettableValue("scene mode", - parameters.getSupportedSceneModes(), - Camera.Parameters.SCENE_MODE_BARCODE); - if (sceneMode != null) { - parameters.setSceneMode(sceneMode); - } - } - - public static void setZoom(Camera.Parameters parameters, double targetZoomRatio) { - if (parameters.isZoomSupported()) { - Integer zoom = indexOfClosestZoom(parameters, targetZoomRatio); - if (zoom == null) { - return; - } - if (parameters.getZoom() == zoom) { - Log.i(TAG, "Zoom is already set to " + zoom); - } else { - Log.i(TAG, "Setting zoom to " + zoom); - parameters.setZoom(zoom); - } - } else { - Log.i(TAG, "Zoom is not supported"); - } - } - - private static Integer indexOfClosestZoom(Camera.Parameters parameters, double targetZoomRatio) { - List ratios = parameters.getZoomRatios(); - Log.i(TAG, "Zoom ratios: " + ratios); - int maxZoom = parameters.getMaxZoom(); - if (ratios == null || ratios.isEmpty() || ratios.size() != maxZoom + 1) { - Log.w(TAG, "Invalid zoom ratios!"); - return null; - } - double target100 = 100.0 * targetZoomRatio; - double smallestDiff = Double.POSITIVE_INFINITY; - int closestIndex = 0; - for (int i = 0; i < ratios.size(); i++) { - double diff = Math.abs(ratios.get(i) - target100); - if (diff < smallestDiff) { - smallestDiff = diff; - closestIndex = i; - } - } - Log.i(TAG, "Chose zoom ratio of " + (ratios.get(closestIndex) / 100.0)); - return closestIndex; - } - - public static void setInvertColor(Camera.Parameters parameters) { - if (Camera.Parameters.EFFECT_NEGATIVE.equals(parameters.getColorEffect())) { - Log.i(TAG, "Negative effect already set"); - return; - } - String colorMode = findSettableValue("color effect", - parameters.getSupportedColorEffects(), - Camera.Parameters.EFFECT_NEGATIVE); - if (colorMode != null) { - parameters.setColorEffect(colorMode); - } - } - - public static Point findBestPreviewSizeValue(Camera.Parameters parameters, Point screenResolution) { - - List rawSupportedSizes = parameters.getSupportedPreviewSizes(); - if (rawSupportedSizes == null) { - Log.w(TAG, "Device returned no supported preview sizes; using default"); - Camera.Size defaultSize = parameters.getPreviewSize(); - if (defaultSize == null) { - throw new IllegalStateException("Parameters contained no preview size!"); - } - return new Point(defaultSize.width, defaultSize.height); - } - - // Sort by size, descending - List supportedPreviewSizes = new ArrayList(rawSupportedSizes); - Collections.sort(supportedPreviewSizes, new Comparator() { - @Override - public int compare(Camera.Size a, Camera.Size b) { - int aPixels = a.height * a.width; - int bPixels = b.height * b.width; - if (bPixels < aPixels) { - return -1; - } - if (bPixels > aPixels) { - return 1; - } - return 0; - } - }); - - if (Log.isLoggable(TAG, Log.INFO)) { - StringBuilder previewSizesString = new StringBuilder(); - for (Camera.Size supportedPreviewSize : supportedPreviewSizes) { - previewSizesString.append(supportedPreviewSize.width).append('x') - .append(supportedPreviewSize.height).append(' '); - } - Log.i(TAG, "Supported preview sizes: " + previewSizesString); - } - - double screenAspectRatio = (double) screenResolution.x / (double) screenResolution.y; - - // Remove sizes that are unsuitable - Iterator it = supportedPreviewSizes.iterator(); - while (it.hasNext()) { - Camera.Size supportedPreviewSize = it.next(); - int realWidth = supportedPreviewSize.width; - int realHeight = supportedPreviewSize.height; - if (realWidth * realHeight < MIN_PREVIEW_PIXELS) { - it.remove(); - continue; - } - - boolean isCandidatePortrait = realWidth < realHeight; - int maybeFlippedWidth = isCandidatePortrait ? realHeight : realWidth; - int maybeFlippedHeight = isCandidatePortrait ? realWidth : realHeight; - double aspectRatio = (double) maybeFlippedWidth / (double) maybeFlippedHeight; - double distortion = Math.abs(aspectRatio - screenAspectRatio); - if (distortion > MAX_ASPECT_DISTORTION) { - it.remove(); - continue; - } - - if (maybeFlippedWidth == screenResolution.x && maybeFlippedHeight == screenResolution.y) { - Point exactPoint = new Point(realWidth, realHeight); - Log.i(TAG, "Found preview size exactly matching screen size: " + exactPoint); - return exactPoint; - } - } - - // If no exact match, use largest preview size. This was not a great idea on older devices because - // of the additional computation needed. We're likely to get here on newer Android 4+ devices, where - // the CPU is much more powerful. - if (!supportedPreviewSizes.isEmpty()) { - Camera.Size largestPreview = supportedPreviewSizes.get(0); - Point largestSize = new Point(largestPreview.width, largestPreview.height); - Log.i(TAG, "Using largest suitable preview size: " + largestSize); - return largestSize; - } - - // If there is nothing at all suitable, return current preview size - Camera.Size defaultPreview = parameters.getPreviewSize(); - if (defaultPreview == null) { - throw new IllegalStateException("Parameters contained no preview size!"); - } - Point defaultSize = new Point(defaultPreview.width, defaultPreview.height); - Log.i(TAG, "No suitable preview sizes, using default: " + defaultSize); - return defaultSize; - } - - private static String findSettableValue(String name, - Collection supportedValues, - String... desiredValues) { - Log.i(TAG, "Requesting " + name + " value from among: " + Arrays.toString(desiredValues)); - Log.i(TAG, "Supported " + name + " values: " + supportedValues); - if (supportedValues != null) { - for (String desiredValue : desiredValues) { - if (supportedValues.contains(desiredValue)) { - Log.i(TAG, "Can set " + name + " to: " + desiredValue); - return desiredValue; - } - } - } - Log.i(TAG, "No supported values match"); - return null; - } - - private static String toString(Collection arrays) { - if (arrays == null || arrays.isEmpty()) { - return "[]"; - } - StringBuilder buffer = new StringBuilder(); - buffer.append('['); - Iterator it = arrays.iterator(); - while (it.hasNext()) { - buffer.append(Arrays.toString(it.next())); - if (it.hasNext()) { - buffer.append(", "); - } - } - buffer.append(']'); - return buffer.toString(); - } - - private static String toString(Iterable areas) { - if (areas == null) { - return null; - } - StringBuilder result = new StringBuilder(); - for (Camera.Area area : areas) { - result.append(area.rect).append(':').append(area.weight).append(' '); - } - return result.toString(); - } - - public static String collectStats(Camera.Parameters parameters) { - return collectStats(parameters.flatten()); - } - - public static String collectStats(CharSequence flattenedParams) { - StringBuilder result = new StringBuilder(1000); - - result.append("BOARD=").append(Build.BOARD).append('\n'); - result.append("BRAND=").append(Build.BRAND).append('\n'); - result.append("CPU_ABI=").append(Build.CPU_ABI).append('\n'); - result.append("DEVICE=").append(Build.DEVICE).append('\n'); - result.append("DISPLAY=").append(Build.DISPLAY).append('\n'); - result.append("FINGERPRINT=").append(Build.FINGERPRINT).append('\n'); - result.append("HOST=").append(Build.HOST).append('\n'); - result.append("ID=").append(Build.ID).append('\n'); - result.append("MANUFACTURER=").append(Build.MANUFACTURER).append('\n'); - result.append("MODEL=").append(Build.MODEL).append('\n'); - result.append("PRODUCT=").append(Build.PRODUCT).append('\n'); - result.append("TAGS=").append(Build.TAGS).append('\n'); - result.append("TIME=").append(Build.TIME).append('\n'); - result.append("TYPE=").append(Build.TYPE).append('\n'); - result.append("USER=").append(Build.USER).append('\n'); - result.append("VERSION.CODENAME=").append(Build.VERSION.CODENAME).append('\n'); - result.append("VERSION.INCREMENTAL=").append(Build.VERSION.INCREMENTAL).append('\n'); - result.append("VERSION.RELEASE=").append(Build.VERSION.RELEASE).append('\n'); - result.append("VERSION.SDK_INT=").append(Build.VERSION.SDK_INT).append('\n'); - - if (flattenedParams != null) { - String[] params = SEMICOLON.split(flattenedParams); - Arrays.sort(params); - for (String param : params) { - result.append(param).append('\n'); - } - } - - return result.toString(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/CameraManager.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/CameraManager.java deleted file mode 100755 index 110f6617..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/CameraManager.java +++ /dev/null @@ -1,338 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.camera; - -import java.io.IOException; - -import android.content.Context; -import android.graphics.Point; -import android.graphics.Rect; -import android.hardware.Camera; -import android.os.Handler; -import android.util.Log; -import android.view.SurfaceHolder; - -import com.google.zxing.PlanarYUVLuminanceSource; -import com.google.zxing.client.android.camera.open.OpenCamera; -import com.google.zxing.client.android.camera.open.OpenCameraInterface; - -/** - * This object wraps the Camera service object and expects to be the only one talking to it. The - * implementation encapsulates the steps needed to take preview-sized images, which are used for - * both preview and decoding. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class CameraManager { - - private static final String TAG = CameraManager.class.getSimpleName(); - - private static final int MIN_FRAME_WIDTH = 240; - private static final int MIN_FRAME_HEIGHT = 240; - private static final int MAX_FRAME_WIDTH = 1200; // = 5/8 * 1920 - private static final int MAX_FRAME_HEIGHT = 675; // = 5/8 * 1080 - - private final Context context; - private final CameraConfigurationManager configManager; - private OpenCamera camera; - private AutoFocusManager autoFocusManager; - private Rect framingRect; - private Rect framingRectInPreview; - private boolean initialized; - private boolean previewing; - private int requestedCameraId = OpenCameraInterface.NO_REQUESTED_CAMERA; - private int requestedFramingRectWidth; - private int requestedFramingRectHeight; - /** - * Preview frames are delivered here, which we pass on to the registered handler. Make sure to - * clear the handler so it will only receive one message. - */ - private final PreviewCallback previewCallback; - - public CameraManager(Context context) { - this.context = context; - this.configManager = new CameraConfigurationManager(context); - previewCallback = new PreviewCallback(configManager); - } - - /** - * Opens the camera driver and initializes the hardware parameters. - * - * @param holder The surface object which the camera will draw preview frames into. - * @throws IOException Indicates the camera driver failed to open. - */ - public synchronized void openDriver(SurfaceHolder holder) throws IOException { - OpenCamera theCamera = camera; - if (theCamera == null) { - theCamera = OpenCameraInterface.open(requestedCameraId); - if (theCamera == null) { - throw new IOException("Camera.open() failed to return object from driver"); - } - camera = theCamera; - } - - if (!initialized) { - initialized = true; - configManager.initFromCameraParameters(theCamera); - if (requestedFramingRectWidth > 0 && requestedFramingRectHeight > 0) { - setManualFramingRect(requestedFramingRectWidth, requestedFramingRectHeight); - requestedFramingRectWidth = 0; - requestedFramingRectHeight = 0; - } - } - - Camera cameraObject = theCamera.getCamera(); - Camera.Parameters parameters = cameraObject.getParameters(); - String parametersFlattened = parameters == null ? null : parameters.flatten(); // Save these, temporarily - try { - configManager.setDesiredCameraParameters(theCamera, false); - } catch (RuntimeException re) { - // Driver failed - Log.w(TAG, "Camera rejected parameters. Setting only minimal safe-mode parameters"); - Log.i(TAG, "Resetting to saved camera params: " + parametersFlattened); - // Reset: - if (parametersFlattened != null) { - parameters = cameraObject.getParameters(); - parameters.unflatten(parametersFlattened); - try { - cameraObject.setParameters(parameters); - configManager.setDesiredCameraParameters(theCamera, true); - } catch (RuntimeException re2) { - // Well, darn. Give up - Log.w(TAG, "Camera rejected even safe-mode parameters! No configuration"); - } - } - } - cameraObject.setPreviewDisplay(holder); - - } - - public synchronized boolean isOpen() { - return camera != null; - } - - /** - * Closes the camera driver if still in use. - */ - public synchronized void closeDriver() { - if (camera != null) { - camera.getCamera().release(); - camera = null; - // Make sure to clear these each time we close the camera, so that any scanning rect - // requested by intent is forgotten. - framingRect = null; - framingRectInPreview = null; - } - } - - /** - * Asks the camera hardware to begin drawing preview frames to the screen. - */ - public synchronized void startPreview() { - OpenCamera theCamera = camera; - if (theCamera != null && !previewing) { - theCamera.getCamera().startPreview(); - previewing = true; - autoFocusManager = new AutoFocusManager(context, theCamera.getCamera()); - } - } - - /** - * Tells the camera to stop drawing preview frames. - */ - public synchronized void stopPreview() { - if (autoFocusManager != null) { - autoFocusManager.stop(); - autoFocusManager = null; - } - if (camera != null && previewing) { - camera.getCamera().stopPreview(); - previewCallback.setHandler(null, 0); - previewing = false; - } - } - - /** - * Convenience method for {@link com.google.zxing.client.android.CaptureActivity} - * - * @param newSetting if {@code true}, light should be turned on if currently off. And vice versa. - */ - public synchronized void setTorch(boolean newSetting) { - OpenCamera theCamera = camera; - if (theCamera != null) { - if (newSetting != configManager.getTorchState(theCamera.getCamera())) { - boolean wasAutoFocusManager = autoFocusManager != null; - if (wasAutoFocusManager) { - autoFocusManager.stop(); - autoFocusManager = null; - } - configManager.setTorch(theCamera.getCamera(), newSetting); - if (wasAutoFocusManager) { - autoFocusManager = new AutoFocusManager(context, theCamera.getCamera()); - autoFocusManager.start(); - } - } - } - } - - /** - * A single preview frame will be returned to the handler supplied. The data will arrive as byte[] - * in the message.obj field, with width and height encoded as message.arg1 and message.arg2, - * respectively. - * - * @param handler The handler to send the message to. - * @param message The what field of the message to be sent. - */ - public synchronized void requestPreviewFrame(Handler handler, int message) { - OpenCamera theCamera = camera; - if (theCamera != null && previewing) { - previewCallback.setHandler(handler, message); - theCamera.getCamera().setOneShotPreviewCallback(previewCallback); - } - } - - /** - * Calculates the framing rect which the UI should draw to show the user where to place the - * barcode. This target helps with alignment as well as forces the user to hold the device - * far enough away to ensure the image will be in focus. - * - * @return The rectangle to draw on screen in window coordinates. - */ - public synchronized Rect getFramingRect() { - if (framingRect == null) { - if (camera == null) { - return null; - } - Point screenResolution = configManager.getScreenResolution(); - if (screenResolution == null) { - // Called early, before init even finished - return null; - } - - int width = findDesiredDimensionInRange(screenResolution.x, MIN_FRAME_WIDTH, MAX_FRAME_WIDTH); - int height = findDesiredDimensionInRange(screenResolution.y, MIN_FRAME_HEIGHT, MAX_FRAME_HEIGHT); - - int leftOffset = (screenResolution.x - width) / 2; - int topOffset = (screenResolution.y - height) / 2; - framingRect = new Rect(leftOffset, topOffset, leftOffset + width, topOffset + height); - Log.d(TAG, "Calculated framing rect: " + framingRect); - } - return framingRect; - } - - private static int findDesiredDimensionInRange(int resolution, int hardMin, int hardMax) { - int dim = 5 * resolution / 8; // Target 5/8 of each dimension - if (dim < hardMin) { - return hardMin; - } - if (dim > hardMax) { - return hardMax; - } - return dim; - } - - /** - * Like {@link #getFramingRect} but coordinates are in terms of the preview frame, - * not UI / screen. - * - * @return {@link Rect} expressing barcode scan area in terms of the preview size - */ - public synchronized Rect getFramingRectInPreview() { - if (framingRectInPreview == null) { - Rect framingRect = getFramingRect(); - if (framingRect == null) { - return null; - } - Rect rect = new Rect(framingRect); - Point cameraResolution = configManager.getCameraResolution(); - Point screenResolution = configManager.getScreenResolution(); - if (cameraResolution == null || screenResolution == null) { - // Called early, before init even finished - return null; - } -// rect.left = rect.left * cameraResolution.x / screenResolution.x; -// rect.right = rect.right * cameraResolution.x / screenResolution.x; -// rect.top = rect.top * cameraResolution.y / screenResolution.y; -// rect.bottom = rect.bottom * cameraResolution.y / screenResolution.y; - rect.left = rect.left * cameraResolution.y / screenResolution.x; - rect.right = rect.right * cameraResolution.y / screenResolution.x; - rect.top = rect.top * cameraResolution.x / screenResolution.y; - rect.bottom = rect.bottom * cameraResolution.x / screenResolution.y; - - framingRectInPreview = rect; - } - return framingRectInPreview; - } - - - /** - * Allows third party apps to specify the camera ID, rather than determine - * it automatically based on available cameras and their orientation. - * - * @param cameraId camera ID of the camera to use. A negative value means "no preference". - */ - public synchronized void setManualCameraId(int cameraId) { - requestedCameraId = cameraId; - } - - /** - * Allows third party apps to specify the scanning rectangle dimensions, rather than determine - * them automatically based on screen resolution. - * - * @param width The width in pixels to scan. - * @param height The height in pixels to scan. - */ - public synchronized void setManualFramingRect(int width, int height) { - if (initialized) { - Point screenResolution = configManager.getScreenResolution(); - if (width > screenResolution.x) { - width = screenResolution.x; - } - if (height > screenResolution.y) { - height = screenResolution.y; - } - int leftOffset = (screenResolution.x - width) / 2; - int topOffset = (screenResolution.y - height) / 2; - framingRect = new Rect(leftOffset, topOffset, leftOffset + width, topOffset + height); - Log.d(TAG, "Calculated manual framing rect: " + framingRect); - framingRectInPreview = null; - } else { - requestedFramingRectWidth = width; - requestedFramingRectHeight = height; - } - } - - /** - * A factory method to build the appropriate LuminanceSource object based on the format - * of the preview buffers, as described by Camera.Parameters. - * - * @param data A preview frame. - * @param width The width of the image. - * @param height The height of the image. - * @return A PlanarYUVLuminanceSource instance. - */ - public PlanarYUVLuminanceSource buildLuminanceSource(byte[] data, int width, int height) { - Rect rect = getFramingRectInPreview(); - if (rect == null) { - return null; - } - // Go ahead and assume it's YUV rather than die. - return new PlanarYUVLuminanceSource(data, width, height, rect.left, rect.top, - rect.width(), rect.height(), false); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/FrontLightMode.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/FrontLightMode.java deleted file mode 100755 index 013339a8..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/FrontLightMode.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 2012 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.camera; - -import android.content.SharedPreferences; - -import com.google.zxing.client.android.PreferencesActivity; - -/** - * Enumerates settings of the preference controlling the front light. - */ -public enum FrontLightMode { - - /** Always on. */ - ON, - /** On only when ambient light is low. */ - AUTO, - /** Always off. */ - OFF; - - private static FrontLightMode parse(String modeString) { - return modeString == null ? OFF : valueOf(modeString); - } - - public static FrontLightMode readPref(SharedPreferences sharedPrefs) { - return parse(sharedPrefs.getString(PreferencesActivity.KEY_FRONT_LIGHT_MODE, OFF.toString())); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/PreviewCallback.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/PreviewCallback.java deleted file mode 100755 index 7dc70357..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/PreviewCallback.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.camera; - -import android.graphics.Point; -import android.hardware.Camera; -import android.os.Handler; -import android.os.Message; -import android.util.Log; - -final class PreviewCallback implements Camera.PreviewCallback { - - private static final String TAG = PreviewCallback.class.getSimpleName(); - - private final CameraConfigurationManager configManager; - private Handler previewHandler; - private int previewMessage; - - PreviewCallback(CameraConfigurationManager configManager) { - this.configManager = configManager; - } - - void setHandler(Handler previewHandler, int previewMessage) { - this.previewHandler = previewHandler; - this.previewMessage = previewMessage; - } - - @Override - public void onPreviewFrame(byte[] data, Camera camera) { - Point cameraResolution = configManager.getCameraResolution(); - Handler thePreviewHandler = previewHandler; - if (cameraResolution != null && thePreviewHandler != null) { - Message message = thePreviewHandler.obtainMessage(previewMessage, cameraResolution.x, - cameraResolution.y, data); - message.sendToTarget(); - previewHandler = null; - } else { - Log.d(TAG, "Got preview callback, but no handler or resolution available"); - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/open/CameraFacing.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/open/CameraFacing.java deleted file mode 100755 index 20fd4e3c..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/open/CameraFacing.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2015 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.camera.open; - -public enum CameraFacing { - - BACK, // must be value 0! - FRONT, // must be value 1! - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/open/OpenCamera.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/open/OpenCamera.java deleted file mode 100755 index ddac7345..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/open/OpenCamera.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2015 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.camera.open; - -import android.hardware.Camera; - -public final class OpenCamera { - - private final int index; - private final Camera camera; - private final CameraFacing facing; - private final int orientation; - - public OpenCamera(int index, Camera camera, CameraFacing facing, int orientation) { - this.index = index; - this.camera = camera; - this.facing = facing; - this.orientation = orientation; - } - - public Camera getCamera() { - return camera; - } - - public CameraFacing getFacing() { - return facing; - } - - public int getOrientation() { - return orientation; - } - - @Override - public String toString() { - return "Camera #" + index + " : " + facing + ',' + orientation; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/open/OpenCameraInterface.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/open/OpenCameraInterface.java deleted file mode 100755 index 24e0f13a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/camera/open/OpenCameraInterface.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright (C) 2012 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.camera.open; - -import android.hardware.Camera; -import android.util.Log; - -public final class OpenCameraInterface { - - private static final String TAG = OpenCameraInterface.class.getName(); - - private OpenCameraInterface() { - } - - /** For {@link #open(int)}, means no preference for which camera to open. */ - public static final int NO_REQUESTED_CAMERA = -1; - - /** - * Opens the requested camera with {@link Camera#open(int)}, if one exists. - * - * @param cameraId camera ID of the camera to use. A negative value - * or {@link #NO_REQUESTED_CAMERA} means "no preference", in which case a rear-facing - * camera is returned if possible or else any camera - * @return handle to {@link OpenCamera} that was opened - */ - public static OpenCamera open(int cameraId) { - - int numCameras = Camera.getNumberOfCameras(); - if (numCameras == 0) { - Log.w(TAG, "No cameras!"); - return null; - } - - boolean explicitRequest = cameraId >= 0; - - Camera.CameraInfo selectedCameraInfo = null; - int index; - if (explicitRequest) { - index = cameraId; - selectedCameraInfo = new Camera.CameraInfo(); - Camera.getCameraInfo(index, selectedCameraInfo); - } else { - index = 0; - while (index < numCameras) { - Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); - Camera.getCameraInfo(index, cameraInfo); - CameraFacing reportedFacing = CameraFacing.values()[cameraInfo.facing]; - if (reportedFacing == CameraFacing.BACK) { - selectedCameraInfo = cameraInfo; - break; - } - index++; - } - } - - Camera camera; - if (index < numCameras) { - Log.i(TAG, "Opening camera #" + index); - camera = Camera.open(index); - } else { - if (explicitRequest) { - Log.w(TAG, "Requested camera does not exist: " + cameraId); - camera = null; - } else { - Log.i(TAG, "No camera facing " + CameraFacing.BACK + "; returning camera #0"); - camera = Camera.open(0); - selectedCameraInfo = new Camera.CameraInfo(); - Camera.getCameraInfo(0, selectedCameraInfo); - } - } - - if (camera == null) { - return null; - } - return new OpenCamera(index, - camera, - CameraFacing.values()[selectedCameraInfo.facing], - selectedCameraInfo.orientation); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/clipboard/ClipboardInterface.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/clipboard/ClipboardInterface.java deleted file mode 100755 index 3ba06037..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/clipboard/ClipboardInterface.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2012 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.clipboard; - -import android.content.ClipData; -import android.content.ClipboardManager; -import android.content.Context; -import android.util.Log; - -public final class ClipboardInterface { - - private static final String TAG = ClipboardInterface.class.getSimpleName(); - - private ClipboardInterface() { - } - - public static CharSequence getText(Context context) { - ClipboardManager clipboard = getManager(context); - ClipData clip = clipboard.getPrimaryClip(); - return hasText(context) ? clip.getItemAt(0).coerceToText(context) : null; - } - - public static void setText(CharSequence text, Context context) { - if (text != null) { - try { - getManager(context).setPrimaryClip(ClipData.newPlainText(null, text)); - } catch (NullPointerException | IllegalStateException e) { - // Have seen this in the wild, bizarrely - Log.w(TAG, "Clipboard bug", e); - } - } - } - - public static boolean hasText(Context context) { - ClipboardManager clipboard = getManager(context); - ClipData clip = clipboard.getPrimaryClip(); - return clip != null && clip.getItemCount() > 0; - } - - private static ClipboardManager getManager(Context context) { - return (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/ContactEncoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/ContactEncoder.java deleted file mode 100755 index 41639a97..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/ContactEncoder.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (C) 2011 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.encode; - -import java.util.Collection; -import java.util.HashSet; -import java.util.List; - -/** - * Implementations encode according to some scheme for encoding contact information, like VCard or - * MECARD. - * - * @author Sean Owen - */ -abstract class ContactEncoder { - - /** - * @return first, the best effort encoding of all data in the appropriate format; second, a - * display-appropriate version of the contact information - */ - abstract String[] encode(List names, - String organization, - List addresses, - List phones, - List phoneTypes, - List emails, - List urls, - String note); - - /** - * @return null if s is null or empty, or result of s.trim() otherwise - */ - static String trim(String s) { - if (s == null) { - return null; - } - String result = s.trim(); - return result.isEmpty() ? null : result; - } - - static void append(StringBuilder newContents, - StringBuilder newDisplayContents, - String prefix, - String value, - Formatter fieldFormatter, - char terminator) { - String trimmed = trim(value); - if (trimmed != null) { - newContents.append(prefix).append(fieldFormatter.format(trimmed, 0)).append(terminator); - newDisplayContents.append(trimmed).append('\n'); - } - } - - static void appendUpToUnique(StringBuilder newContents, - StringBuilder newDisplayContents, - String prefix, - List values, - int max, - Formatter displayFormatter, - Formatter fieldFormatter, - char terminator) { - if (values == null) { - return; - } - int count = 0; - Collection uniques = new HashSet<>(2); - for (int i = 0; i < values.size(); i++) { - String value = values.get(i); - String trimmed = trim(value); - if (trimmed != null && !trimmed.isEmpty() && !uniques.contains(trimmed)) { - newContents.append(prefix).append(fieldFormatter.format(trimmed, i)).append(terminator); - CharSequence display = displayFormatter == null ? trimmed : displayFormatter.format(trimmed, i); - newDisplayContents.append(display).append('\n'); - if (++count == max) { - break; - } - uniques.add(trimmed); - } - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/EncodeActivity.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/EncodeActivity.java deleted file mode 100755 index 28866aa7..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/EncodeActivity.java +++ /dev/null @@ -1,242 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.encode; - -import android.app.Activity; -import android.app.AlertDialog; -import android.content.Intent; -import android.graphics.Bitmap; -import android.graphics.Point; -import android.net.Uri; -import android.os.Bundle; -import android.os.Environment; -import android.util.Log; -import android.view.Display; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.WindowManager; -import android.widget.ImageView; -import android.widget.TextView; - -import com.alibaba.weex.R; -import com.google.zxing.WriterException; -import com.google.zxing.client.android.Contents; -import com.google.zxing.client.android.FinishListener; -import com.google.zxing.client.android.Intents; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.regex.Pattern; - -/** - * This class encodes data from an Intent into a QR code, and then displays it full screen so that - * another person can scan it with their device. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class EncodeActivity extends Activity { - - private static final String TAG = EncodeActivity.class.getSimpleName(); - - private static final int MAX_BARCODE_FILENAME_LENGTH = 24; - private static final Pattern NOT_ALPHANUMERIC = Pattern.compile("[^A-Za-z0-9]"); - private static final String USE_VCARD_KEY = "USE_VCARD"; - - private QRCodeEncoder qrCodeEncoder; - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - Intent intent = getIntent(); - if (intent == null) { - finish(); - } else { - String action = intent.getAction(); - if (Intents.Encode.ACTION.equals(action) || Intent.ACTION_SEND.equals(action)) { - setContentView(R.layout.encode); - } else { - finish(); - } - } - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - MenuInflater menuInflater = getMenuInflater(); - menuInflater.inflate(R.menu.encode, menu); - boolean useVcard = qrCodeEncoder != null && qrCodeEncoder.isUseVCard(); - int encodeNameResource = useVcard ? R.string.menu_encode_mecard : R.string.menu_encode_vcard; - MenuItem encodeItem = menu.findItem(R.id.menu_encode); - encodeItem.setTitle(encodeNameResource); - Intent intent = getIntent(); - if (intent != null) { - String type = intent.getStringExtra(Intents.Encode.TYPE); - encodeItem.setVisible(Contents.Type.CONTACT.equals(type)); - } - return super.onCreateOptionsMenu(menu); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - int i = item.getItemId(); - if (i == R.id.menu_share) { - share(); - return true; - } else if (i == R.id.menu_encode) { - Intent intent = getIntent(); - if (intent == null) { - return false; - } - intent.putExtra(USE_VCARD_KEY, !qrCodeEncoder.isUseVCard()); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - startActivity(intent); - finish(); - return true; - } else { - return false; - } - } - - private void share() { - QRCodeEncoder encoder = qrCodeEncoder; - if (encoder == null) { // Odd - Log.w(TAG, "No existing barcode to send?"); - return; - } - - String contents = encoder.getContents(); - if (contents == null) { - Log.w(TAG, "No existing barcode to send?"); - return; - } - - Bitmap bitmap; - try { - bitmap = encoder.encodeAsBitmap(); - } catch (WriterException we) { - Log.w(TAG, we); - return; - } - if (bitmap == null) { - return; - } - - File bsRoot = new File(Environment.getExternalStorageDirectory(), "BarcodeScanner"); - File barcodesRoot = new File(bsRoot, "Barcodes"); - if (!barcodesRoot.exists() && !barcodesRoot.mkdirs()) { - Log.w(TAG, "Couldn't make dir " + barcodesRoot); - showErrorMessage(R.string.msg_unmount_usb); - return; - } - File barcodeFile = new File(barcodesRoot, makeBarcodeFileName(contents) + ".png"); - if (!barcodeFile.delete()) { - Log.w(TAG, "Could not delete " + barcodeFile); - // continue anyway - } - FileOutputStream fos = null; - try { - fos = new FileOutputStream(barcodeFile); - bitmap.compress(Bitmap.CompressFormat.PNG, 0, fos); - } catch (FileNotFoundException fnfe) { - Log.w(TAG, "Couldn't access file " + barcodeFile + " due to " + fnfe); - showErrorMessage(R.string.msg_unmount_usb); - return; - } finally { - if (fos != null) { - try { - fos.close(); - } catch (IOException ioe) { - // do nothing - } - } - } - - Intent intent = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:")); - intent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.app_name) + " - " + encoder.getTitle()); - intent.putExtra(Intent.EXTRA_TEXT, contents); - intent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + barcodeFile.getAbsolutePath())); - intent.setType("image/png"); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - startActivity(Intent.createChooser(intent, null)); - } - - private static CharSequence makeBarcodeFileName(CharSequence contents) { - String fileName = NOT_ALPHANUMERIC.matcher(contents).replaceAll("_"); - if (fileName.length() > MAX_BARCODE_FILENAME_LENGTH) { - fileName = fileName.substring(0, MAX_BARCODE_FILENAME_LENGTH); - } - return fileName; - } - - @Override - protected void onResume() { - super.onResume(); - // This assumes the view is full screen, which is a good assumption - WindowManager manager = (WindowManager) getSystemService(WINDOW_SERVICE); - Display display = manager.getDefaultDisplay(); - Point displaySize = new Point(); - display.getSize(displaySize); - int width = displaySize.x; - int height = displaySize.y; - int smallerDimension = width < height ? width : height; - smallerDimension = smallerDimension * 7 / 8; - - Intent intent = getIntent(); - if (intent == null) { - return; - } - - try { - boolean useVCard = intent.getBooleanExtra(USE_VCARD_KEY, false); - qrCodeEncoder = new QRCodeEncoder(this, intent, smallerDimension, useVCard); - Bitmap bitmap = qrCodeEncoder.encodeAsBitmap(); - if (bitmap == null) { - Log.w(TAG, "Could not encode barcode"); - showErrorMessage(R.string.msg_encode_contents_failed); - qrCodeEncoder = null; - return; - } - - ImageView view = (ImageView) findViewById(R.id.image_view); - view.setImageBitmap(bitmap); - - TextView contents = (TextView) findViewById(R.id.contents_text_view); - if (intent.getBooleanExtra(Intents.Encode.SHOW_CONTENTS, true)) { - contents.setText(qrCodeEncoder.getDisplayContents()); - setTitle(qrCodeEncoder.getTitle()); - } else { - contents.setText(""); - setTitle(""); - } - } catch (WriterException e) { - Log.w(TAG, "Could not encode barcode", e); - showErrorMessage(R.string.msg_encode_contents_failed); - qrCodeEncoder = null; - } - } - - private void showErrorMessage(int message) { - AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setMessage(message); - builder.setPositiveButton(R.string.button_ok, new FinishListener(this)); - builder.setOnCancelListener(new FinishListener(this)); - builder.show(); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/Formatter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/Formatter.java deleted file mode 100755 index 9e0ae85a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/Formatter.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2011 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.encode; - -/** - * Encapsulates some simple formatting logic, to aid refactoring in {@link ContactEncoder}. - * - * @author Sean Owen - */ -interface Formatter { - - /** - * @param value value to format - * @param index index of value in a list of values to be formatted - * @return formatted value - */ - CharSequence format(CharSequence value, int index); - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/MECARDContactEncoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/MECARDContactEncoder.java deleted file mode 100755 index 4facf774..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/MECARDContactEncoder.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 2011 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.encode; - -import java.util.List; -import java.util.regex.Pattern; - -import android.telephony.PhoneNumberUtils; - -/** - * Encodes contact information according to the MECARD format. - * - * @author Sean Owen - */ -final class MECARDContactEncoder extends ContactEncoder { - - private static final char TERMINATOR = ';'; - - @Override - public String[] encode(List names, - String organization, - List addresses, - List phones, - List phoneTypes, - List emails, - List urls, - String note) { - StringBuilder newContents = new StringBuilder(100); - newContents.append("MECARD:"); - - StringBuilder newDisplayContents = new StringBuilder(100); - - Formatter fieldFormatter = new MECARDFieldFormatter(); - - appendUpToUnique(newContents, newDisplayContents, "N", names, 1, new - MECARDNameDisplayFormatter(), fieldFormatter, TERMINATOR); - - append(newContents, newDisplayContents, "ORG", organization, fieldFormatter, TERMINATOR); - - appendUpToUnique(newContents, newDisplayContents, "ADR", addresses, 1, null, fieldFormatter, TERMINATOR); - - appendUpToUnique(newContents, newDisplayContents, "TEL", phones, Integer.MAX_VALUE, - new MECARDTelDisplayFormatter(), fieldFormatter, TERMINATOR); - - appendUpToUnique(newContents, newDisplayContents, "EMAIL", emails, Integer.MAX_VALUE, null, - fieldFormatter, TERMINATOR); - - appendUpToUnique(newContents, newDisplayContents, "URL", urls, Integer.MAX_VALUE, null, - fieldFormatter, TERMINATOR); - - append(newContents, newDisplayContents, "NOTE", note, fieldFormatter, TERMINATOR); - - newContents.append(';'); - - return new String[] { newContents.toString(), newDisplayContents.toString() }; - } - - private static class MECARDFieldFormatter implements Formatter { - private static final Pattern RESERVED_MECARD_CHARS = Pattern.compile("([\\\\:;])"); - private static final Pattern NEWLINE = Pattern.compile("\\n"); - @Override - public CharSequence format(CharSequence value, int index) { - return ':' + NEWLINE.matcher(RESERVED_MECARD_CHARS.matcher(value).replaceAll("\\\\$1")).replaceAll(""); - } - } - - private static class MECARDTelDisplayFormatter implements Formatter { - private static final Pattern NOT_DIGITS = Pattern.compile("[^0-9]+"); - @Override - public CharSequence format(CharSequence value, int index) { - return NOT_DIGITS.matcher(PhoneNumberUtils.formatNumber(value.toString())).replaceAll(""); - } - } - - private static class MECARDNameDisplayFormatter implements Formatter { - private static final Pattern COMMA = Pattern.compile(","); - @Override - public CharSequence format(CharSequence value, int index) { - return COMMA.matcher(value).replaceAll(""); - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/QRCodeEncoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/QRCodeEncoder.java deleted file mode 100755 index d4d8bd2d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/QRCodeEncoder.java +++ /dev/null @@ -1,389 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.encode; - -import android.content.Context; -import android.content.Intent; -import android.graphics.Bitmap; -import android.net.Uri; -import android.os.Bundle; -import android.provider.ContactsContract; -import android.telephony.PhoneNumberUtils; -import android.util.Log; - -import com.alibaba.weex.R; -import com.google.zxing.BarcodeFormat; -import com.google.zxing.EncodeHintType; -import com.google.zxing.MultiFormatWriter; -import com.google.zxing.Result; -import com.google.zxing.WriterException; -import com.google.zxing.client.android.Contents; -import com.google.zxing.client.android.Intents; -import com.google.zxing.client.result.AddressBookParsedResult; -import com.google.zxing.client.result.ParsedResult; -import com.google.zxing.client.result.ResultParser; -import com.google.zxing.common.BitMatrix; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.EnumMap; -import java.util.List; -import java.util.Map; - -/** - * This class does the work of decoding the user's request and extracting all the data - * to be encoded in a barcode. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -final class QRCodeEncoder { - - private static final String TAG = QRCodeEncoder.class.getSimpleName(); - - private static final int WHITE = 0xFFFFFFFF; - private static final int BLACK = 0xFF000000; - - private final Context activity; - private String contents; - private String displayContents; - private String title; - private BarcodeFormat format; - private final int dimension; - private final boolean useVCard; - - QRCodeEncoder(Context activity, Intent intent, int dimension, boolean useVCard) throws WriterException { - this.activity = activity; - this.dimension = dimension; - this.useVCard = useVCard; - String action = intent.getAction(); - if (action.equals(Intents.Encode.ACTION)) { - encodeContentsFromZXingIntent(intent); - } else if (action.equals(Intent.ACTION_SEND)) { - encodeContentsFromShareIntent(intent); - } - } - - String getContents() { - return contents; - } - - String getDisplayContents() { - return displayContents; - } - - String getTitle() { - return title; - } - - boolean isUseVCard() { - return useVCard; - } - - // It would be nice if the string encoding lived in the core ZXing library, - // but we use platform specific code like PhoneNumberUtils, so it can't. - private boolean encodeContentsFromZXingIntent(Intent intent) { - // Default to QR_CODE if no format given. - String formatString = intent.getStringExtra(Intents.Encode.FORMAT); - format = null; - if (formatString != null) { - try { - format = BarcodeFormat.valueOf(formatString); - } catch (IllegalArgumentException iae) { - // Ignore it then - } - } - if (format == null || format == BarcodeFormat.QR_CODE) { - String type = intent.getStringExtra(Intents.Encode.TYPE); - if (type == null || type.isEmpty()) { - return false; - } - this.format = BarcodeFormat.QR_CODE; - encodeQRCodeContents(intent, type); - } else { - String data = intent.getStringExtra(Intents.Encode.DATA); - if (data != null && !data.isEmpty()) { - contents = data; - displayContents = data; - title = activity.getString(R.string.contents_text); - } - } - return contents != null && !contents.isEmpty(); - } - - // Handles send intents from multitude of Android applications - private void encodeContentsFromShareIntent(Intent intent) throws WriterException { - // Check if this is a plain text encoding, or contact - if (intent.hasExtra(Intent.EXTRA_STREAM)) { - encodeFromStreamExtra(intent); - } else { - encodeFromTextExtras(intent); - } - } - - private void encodeFromTextExtras(Intent intent) throws WriterException { - // Notice: Google Maps shares both URL and details in one text, bummer! - String theContents = ContactEncoder.trim(intent.getStringExtra(Intent.EXTRA_TEXT)); - if (theContents == null) { - theContents = ContactEncoder.trim(intent.getStringExtra("android.intent.extra.HTML_TEXT")); - // Intent.EXTRA_HTML_TEXT - if (theContents == null) { - theContents = ContactEncoder.trim(intent.getStringExtra(Intent.EXTRA_SUBJECT)); - if (theContents == null) { - String[] emails = intent.getStringArrayExtra(Intent.EXTRA_EMAIL); - if (emails != null) { - theContents = ContactEncoder.trim(emails[0]); - } else { - theContents = "?"; - } - } - } - } - - // Trim text to avoid URL breaking. - if (theContents == null || theContents.isEmpty()) { - throw new WriterException("Empty EXTRA_TEXT"); - } - contents = theContents; - // We only do QR code. - format = BarcodeFormat.QR_CODE; - if (intent.hasExtra(Intent.EXTRA_SUBJECT)) { - displayContents = intent.getStringExtra(Intent.EXTRA_SUBJECT); - } else if (intent.hasExtra(Intent.EXTRA_TITLE)) { - displayContents = intent.getStringExtra(Intent.EXTRA_TITLE); - } else { - displayContents = contents; - } - title = activity.getString(R.string.contents_text); - } - - // Handles send intents from the Contacts app, retrieving a contact as a VCARD. - private void encodeFromStreamExtra(Intent intent) throws WriterException { - format = BarcodeFormat.QR_CODE; - Bundle bundle = intent.getExtras(); - if (bundle == null) { - throw new WriterException("No extras"); - } - Uri uri = bundle.getParcelable(Intent.EXTRA_STREAM); - if (uri == null) { - throw new WriterException("No EXTRA_STREAM"); - } - byte[] vcard; - String vcardString; - InputStream stream = null; - try { - stream = activity.getContentResolver().openInputStream(uri); - if (stream == null) { - throw new WriterException("Can't open stream for " + uri); - } - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - byte[] buffer = new byte[2048]; - int bytesRead; - while ((bytesRead = stream.read(buffer)) > 0) { - baos.write(buffer, 0, bytesRead); - } - vcard = baos.toByteArray(); - vcardString = new String(vcard, 0, vcard.length, "UTF-8"); - } catch (IOException ioe) { - throw new WriterException(ioe); - } finally { - if (stream != null) { - try { - stream.close(); - } catch (IOException e) { - // continue - } - } - } - Log.d(TAG, "Encoding share intent content:"); - Log.d(TAG, vcardString); - Result result = new Result(vcardString, vcard, null, BarcodeFormat.QR_CODE); - ParsedResult parsedResult = ResultParser.parseResult(result); - if (!(parsedResult instanceof AddressBookParsedResult)) { - throw new WriterException("Result was not an address"); - } - encodeQRCodeContents((AddressBookParsedResult) parsedResult); - if (contents == null || contents.isEmpty()) { - throw new WriterException("No content to encode"); - } - } - - private void encodeQRCodeContents(Intent intent, String type) { - switch (type) { - case Contents.Type.TEXT: - String textData = intent.getStringExtra(Intents.Encode.DATA); - if (textData != null && !textData.isEmpty()) { - contents = textData; - displayContents = textData; - title = activity.getString(R.string.contents_text); - } - break; - - case Contents.Type.EMAIL: - String emailData = ContactEncoder.trim(intent.getStringExtra(Intents.Encode.DATA)); - if (emailData != null) { - contents = "mailto:" + emailData; - displayContents = emailData; - title = activity.getString(R.string.contents_email); - } - break; - - case Contents.Type.PHONE: - String phoneData = ContactEncoder.trim(intent.getStringExtra(Intents.Encode.DATA)); - if (phoneData != null) { - contents = "tel:" + phoneData; - displayContents = PhoneNumberUtils.formatNumber(phoneData); - title = activity.getString(R.string.contents_phone); - } - break; - - case Contents.Type.SMS: - String smsData = ContactEncoder.trim(intent.getStringExtra(Intents.Encode.DATA)); - if (smsData != null) { - contents = "sms:" + smsData; - displayContents = PhoneNumberUtils.formatNumber(smsData); - title = activity.getString(R.string.contents_sms); - } - break; - - case Contents.Type.CONTACT: - Bundle contactBundle = intent.getBundleExtra(Intents.Encode.DATA); - if (contactBundle != null) { - - String name = contactBundle.getString(ContactsContract.Intents.Insert.NAME); - String organization = contactBundle.getString(ContactsContract.Intents.Insert.COMPANY); - String address = contactBundle.getString(ContactsContract.Intents.Insert.POSTAL); - List phones = getAllBundleValues(contactBundle, Contents.PHONE_KEYS); - List phoneTypes = getAllBundleValues(contactBundle, Contents.PHONE_TYPE_KEYS); - List emails = getAllBundleValues(contactBundle, Contents.EMAIL_KEYS); - String url = contactBundle.getString(Contents.URL_KEY); - List urls = url == null ? null : Collections.singletonList(url); - String note = contactBundle.getString(Contents.NOTE_KEY); - - ContactEncoder encoder = useVCard ? new VCardContactEncoder() : new MECARDContactEncoder(); - String[] encoded = encoder.encode(Collections.singletonList(name), - organization, - Collections.singletonList(address), - phones, - phoneTypes, - emails, - urls, - note); - // Make sure we've encoded at least one field. - if (!encoded[1].isEmpty()) { - contents = encoded[0]; - displayContents = encoded[1]; - title = activity.getString(R.string.contents_contact); - } - - } - break; - - case Contents.Type.LOCATION: - Bundle locationBundle = intent.getBundleExtra(Intents.Encode.DATA); - if (locationBundle != null) { - // These must use Bundle.getFloat(), not getDouble(), it's part of the API. - float latitude = locationBundle.getFloat("LAT", Float.MAX_VALUE); - float longitude = locationBundle.getFloat("LONG", Float.MAX_VALUE); - if (latitude != Float.MAX_VALUE && longitude != Float.MAX_VALUE) { - contents = "geo:" + latitude + ',' + longitude; - displayContents = latitude + "," + longitude; - title = activity.getString(R.string.contents_location); - } - } - break; - } - } - - private static List getAllBundleValues(Bundle bundle, String[] keys) { - List values = new ArrayList<>(keys.length); - for (String key : keys) { - Object value = bundle.get(key); - values.add(value == null ? null : value.toString()); - } - return values; - } - - private void encodeQRCodeContents(AddressBookParsedResult contact) { - ContactEncoder encoder = useVCard ? new VCardContactEncoder() : new MECARDContactEncoder(); - String[] encoded = encoder.encode(toList(contact.getNames()), - contact.getOrg(), - toList(contact.getAddresses()), - toList(contact.getPhoneNumbers()), - null, - toList(contact.getEmails()), - toList(contact.getURLs()), - null); - // Make sure we've encoded at least one field. - if (!encoded[1].isEmpty()) { - contents = encoded[0]; - displayContents = encoded[1]; - title = activity.getString(R.string.contents_contact); - } - } - - private static List toList(String[] values) { - return values == null ? null : Arrays.asList(values); - } - - Bitmap encodeAsBitmap() throws WriterException { - String contentsToEncode = contents; - if (contentsToEncode == null) { - return null; - } - Map hints = null; - String encoding = guessAppropriateEncoding(contentsToEncode); - if (encoding != null) { - hints = new EnumMap<>(EncodeHintType.class); - hints.put(EncodeHintType.CHARACTER_SET, encoding); - } - BitMatrix result; - try { - result = new MultiFormatWriter().encode(contentsToEncode, format, dimension, dimension, hints); - } catch (IllegalArgumentException iae) { - // Unsupported format - return null; - } - int width = result.getWidth(); - int height = result.getHeight(); - int[] pixels = new int[width * height]; - for (int y = 0; y < height; y++) { - int offset = y * width; - for (int x = 0; x < width; x++) { - pixels[offset + x] = result.get(x, y) ? BLACK : WHITE; - } - } - - Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); - bitmap.setPixels(pixels, 0, width, 0, 0, width, height); - return bitmap; - } - - private static String guessAppropriateEncoding(CharSequence contents) { - // Very crude at the moment - for (int i = 0; i < contents.length(); i++) { - if (contents.charAt(i) > 0xFF) { - return "UTF-8"; - } - } - return null; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/VCardContactEncoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/VCardContactEncoder.java deleted file mode 100755 index 00bd9e26..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/VCardContactEncoder.java +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (C) 2011 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.encode; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import android.provider.ContactsContract; - -/** - * Encodes contact information according to the vCard format. - * - * @author Sean Owen - */ -final class VCardContactEncoder extends ContactEncoder { - - private static final char TERMINATOR = '\n'; - - @Override - public String[] encode(List names, - String organization, - List addresses, - List phones, - List phoneTypes, - List emails, - List urls, - String note) { - StringBuilder newContents = new StringBuilder(100); - newContents.append("BEGIN:VCARD").append(TERMINATOR); - newContents.append("VERSION:3.0").append(TERMINATOR); - - StringBuilder newDisplayContents = new StringBuilder(100); - - Formatter fieldFormatter = new VCardFieldFormatter(); - - appendUpToUnique(newContents, newDisplayContents, "N", names, 1, null, fieldFormatter, TERMINATOR); - - append(newContents, newDisplayContents, "ORG", organization, fieldFormatter, TERMINATOR); - - appendUpToUnique(newContents, newDisplayContents, "ADR", addresses, 1, null, fieldFormatter, TERMINATOR); - - List>> phoneMetadata = buildPhoneMetadata(phones, phoneTypes); - appendUpToUnique(newContents, newDisplayContents, "TEL", phones, Integer.MAX_VALUE, - new VCardTelDisplayFormatter(phoneMetadata), - new VCardFieldFormatter(phoneMetadata), TERMINATOR); - - appendUpToUnique(newContents, newDisplayContents, "EMAIL", emails, Integer.MAX_VALUE, null, - fieldFormatter, TERMINATOR); - - appendUpToUnique(newContents, newDisplayContents, "URL", urls, Integer.MAX_VALUE, null, - fieldFormatter, TERMINATOR); - - append(newContents, newDisplayContents, "NOTE", note, fieldFormatter, TERMINATOR); - - newContents.append("END:VCARD").append(TERMINATOR); - - return new String[] { newContents.toString(), newDisplayContents.toString() }; - } - - static List>> buildPhoneMetadata(Collection phones, List phoneTypes) { - if (phoneTypes == null || phoneTypes.isEmpty()) { - return null; - } - List>> metadataForIndex = new ArrayList<>(); - for (int i = 0; i < phones.size(); i++) { - if (phoneTypes.size() <= i) { - metadataForIndex.add(null); - } else { - Map> metadata = new HashMap<>(); - metadataForIndex.add(metadata); - Set typeTokens = new HashSet<>(); - metadata.put("TYPE", typeTokens); - String typeString = phoneTypes.get(i); - Integer androidType = maybeIntValue(typeString); - if (androidType == null) { - typeTokens.add(typeString); - } else { - String purpose = vCardPurposeLabelForAndroidType(androidType); - String context = vCardContextLabelForAndroidType(androidType); - if (purpose != null) { - typeTokens.add(purpose); - } - if (context != null) { - typeTokens.add(context); - } - } - } - } - return metadataForIndex; - } - - private static Integer maybeIntValue(String value) { - try { - return Integer.valueOf(value); - } catch (NumberFormatException nfe) { - return null; - } - } - - private static String vCardPurposeLabelForAndroidType(int androidType) { - switch (androidType) { - case ContactsContract.CommonDataKinds.Phone.TYPE_FAX_HOME: - case ContactsContract.CommonDataKinds.Phone.TYPE_FAX_WORK: - case ContactsContract.CommonDataKinds.Phone.TYPE_OTHER_FAX: - return "fax"; - case ContactsContract.CommonDataKinds.Phone.TYPE_PAGER: - case ContactsContract.CommonDataKinds.Phone.TYPE_WORK_PAGER: - return "pager"; - case ContactsContract.CommonDataKinds.Phone.TYPE_TTY_TDD: - return "textphone"; - case ContactsContract.CommonDataKinds.Phone.TYPE_MMS: - return "text"; - default: - return null; - } - } - - private static String vCardContextLabelForAndroidType(int androidType) { - switch (androidType) { - case ContactsContract.CommonDataKinds.Phone.TYPE_HOME: - case ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE: - case ContactsContract.CommonDataKinds.Phone.TYPE_FAX_HOME: - case ContactsContract.CommonDataKinds.Phone.TYPE_PAGER: - return "home"; - case ContactsContract.CommonDataKinds.Phone.TYPE_COMPANY_MAIN: - case ContactsContract.CommonDataKinds.Phone.TYPE_WORK: - case ContactsContract.CommonDataKinds.Phone.TYPE_WORK_MOBILE: - case ContactsContract.CommonDataKinds.Phone.TYPE_FAX_WORK: - case ContactsContract.CommonDataKinds.Phone.TYPE_WORK_PAGER: - return "work"; - default: - return null; - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/VCardFieldFormatter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/VCardFieldFormatter.java deleted file mode 100755 index 070a4cd5..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/VCardFieldFormatter.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (C) 2014 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.encode; - -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.regex.Pattern; - -/** - * @author Sean Owen - */ -final class VCardFieldFormatter implements Formatter { - - private static final Pattern RESERVED_VCARD_CHARS = Pattern.compile("([\\\\,;])"); - private static final Pattern NEWLINE = Pattern.compile("\\n"); - - private final List>> metadataForIndex; - - VCardFieldFormatter() { - this(null); - } - - VCardFieldFormatter(List>> metadataForIndex) { - this.metadataForIndex = metadataForIndex; - } - - @Override - public CharSequence format(CharSequence value, int index) { - value = RESERVED_VCARD_CHARS.matcher(value).replaceAll("\\\\$1"); - value = NEWLINE.matcher(value).replaceAll(""); - Map> metadata = - metadataForIndex == null || metadataForIndex.size() <= index ? null : metadataForIndex.get(index); - value = formatMetadata(value, metadata); - return value; - } - - private static CharSequence formatMetadata(CharSequence value, Map> metadata) { - StringBuilder withMetadata = new StringBuilder(); - if (metadata != null) { - for (Map.Entry> metadatum : metadata.entrySet()) { - Set values = metadatum.getValue(); - if (values == null || values.isEmpty()) { - continue; - } - withMetadata.append(';').append(metadatum.getKey()).append('='); - if (values.size() > 1) { - withMetadata.append('"'); - } - Iterator valuesIt = values.iterator(); - withMetadata.append(valuesIt.next()); - while (valuesIt.hasNext()) { - withMetadata.append(',').append(valuesIt.next()); - } - if (values.size() > 1) { - withMetadata.append('"'); - } - } - } - withMetadata.append(':').append(value); - return withMetadata; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/VCardTelDisplayFormatter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/VCardTelDisplayFormatter.java deleted file mode 100755 index 21d2e7fd..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/encode/VCardTelDisplayFormatter.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (C) 2014 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.encode; - -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import android.telephony.PhoneNumberUtils; - -/** - * @author Sean Owen - */ -final class VCardTelDisplayFormatter implements Formatter { - - private final List>> metadataForIndex; - - VCardTelDisplayFormatter() { - this(null); - } - - VCardTelDisplayFormatter(List>> metadataForIndex) { - this.metadataForIndex = metadataForIndex; - } - - @Override - public CharSequence format(CharSequence value, int index) { - value = PhoneNumberUtils.formatNumber(value.toString()); - Map> metadata = - metadataForIndex == null || metadataForIndex.size() <= index ? null : metadataForIndex.get(index); - value = formatMetadata(value, metadata); - return value; - } - - private static CharSequence formatMetadata(CharSequence value, Map> metadata) { - if (metadata == null || metadata.isEmpty()) { - return value; - } - StringBuilder withMetadata = new StringBuilder(); - for (Map.Entry> metadatum : metadata.entrySet()) { - Set values = metadatum.getValue(); - if (values == null || values.isEmpty()) { - continue; - } - Iterator valuesIt = values.iterator(); - withMetadata.append(valuesIt.next()); - while (valuesIt.hasNext()) { - withMetadata.append(',').append(valuesIt.next()); - } - } - if (withMetadata.length() > 0) { - withMetadata.append(' '); - } - withMetadata.append(value); - return withMetadata; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/history/DBHelper.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/history/DBHelper.java deleted file mode 100755 index 290d8677..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/history/DBHelper.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.history; - -import android.content.Context; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteOpenHelper; - -/** - * @author Sean Owen - */ -final class DBHelper extends SQLiteOpenHelper { - - private static final int DB_VERSION = 5; - private static final String DB_NAME = "barcode_scanner_history.db"; - static final String TABLE_NAME = "history"; - static final String ID_COL = "id"; - static final String TEXT_COL = "text"; - static final String FORMAT_COL = "format"; - static final String DISPLAY_COL = "display"; - static final String TIMESTAMP_COL = "timestamp"; - static final String DETAILS_COL = "details"; - - DBHelper(Context context) { - super(context, DB_NAME, null, DB_VERSION); - } - - @Override - public void onCreate(SQLiteDatabase sqLiteDatabase) { - sqLiteDatabase.execSQL( - "CREATE TABLE " + TABLE_NAME + " (" + - ID_COL + " INTEGER PRIMARY KEY, " + - TEXT_COL + " TEXT, " + - FORMAT_COL + " TEXT, " + - DISPLAY_COL + " TEXT, " + - TIMESTAMP_COL + " INTEGER, " + - DETAILS_COL + " TEXT);"); - } - - @Override - public void onUpgrade(SQLiteDatabase sqLiteDatabase, int oldVersion, int newVersion) { - sqLiteDatabase.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); - onCreate(sqLiteDatabase); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/history/HistoryActivity.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/history/HistoryActivity.java deleted file mode 100755 index 555bf539..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/history/HistoryActivity.java +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Copyright 2012 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.history; - -import android.app.Activity; -import android.app.AlertDialog; -import android.app.ListActivity; -import android.content.ActivityNotFoundException; -import android.content.DialogInterface; -import android.content.Intent; -import android.net.Uri; -import android.os.Bundle; -import android.os.Parcelable; -import android.util.Log; -import android.view.ContextMenu; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; -import android.view.View; -import android.widget.AdapterView; -import android.widget.ArrayAdapter; -import android.widget.ListView; - -import com.alibaba.weex.R; -import com.google.zxing.client.android.CaptureActivity; -import com.google.zxing.client.android.Intents; - -public final class HistoryActivity extends ListActivity { - - private static final String TAG = HistoryActivity.class.getSimpleName(); - - private HistoryManager historyManager; - private ArrayAdapter adapter; - private CharSequence originalTitle; - - @Override - protected void onCreate(Bundle icicle) { - super.onCreate(icicle); - this.historyManager = new HistoryManager(this); - adapter = new HistoryItemAdapter(this); - setListAdapter(adapter); - View listview = getListView(); - registerForContextMenu(listview); - originalTitle = getTitle(); - } - - @Override - protected void onResume() { - super.onResume(); - reloadHistoryItems(); - } - - private void reloadHistoryItems() { - Iterable items = historyManager.buildHistoryItems(); - adapter.clear(); - for (HistoryItem item : items) { - adapter.add(item); - } - setTitle(originalTitle + " (" + adapter.getCount() + ')'); - if (adapter.isEmpty()) { - adapter.add(new HistoryItem(null, null, null)); - } - } - - @Override - protected void onListItemClick(ListView l, View v, int position, long id) { - if (adapter.getItem(position).getResult() != null) { - Intent intent = new Intent(this, CaptureActivity.class); - intent.putExtra(Intents.History.ITEM_NUMBER, position); - setResult(Activity.RESULT_OK, intent); - finish(); - } - } - - @Override - public void onCreateContextMenu(ContextMenu menu, - View v, - ContextMenu.ContextMenuInfo menuInfo) { - int position = ((AdapterView.AdapterContextMenuInfo) menuInfo).position; - if (position >= adapter.getCount() || adapter.getItem(position).getResult() != null) { - menu.add(Menu.NONE, position, position, R.string.history_clear_one_history_text); - } // else it's just that dummy "Empty" message - } - - @Override - public boolean onContextItemSelected(MenuItem item) { - int position = item.getItemId(); - historyManager.deleteHistoryItem(position); - reloadHistoryItems(); - return true; - } - - @Override - public boolean onCreateOptionsMenu(Menu menu) { - if (historyManager.hasHistoryItems()) { - MenuInflater menuInflater = getMenuInflater(); - menuInflater.inflate(R.menu.history, menu); - } - return super.onCreateOptionsMenu(menu); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - int i = item.getItemId(); - if (i == R.id.menu_history_send) { - CharSequence history = historyManager.buildHistory(); - Parcelable historyFile = HistoryManager.saveHistory(history.toString()); - if (historyFile == null) { - AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setMessage(R.string.msg_unmount_usb); - builder.setPositiveButton(R.string.button_ok, null); - builder.show(); - } else { - Intent intent = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:")); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - String subject = getResources().getString(R.string.history_email_title); - intent.putExtra(Intent.EXTRA_SUBJECT, subject); - intent.putExtra(Intent.EXTRA_TEXT, subject); - intent.putExtra(Intent.EXTRA_STREAM, historyFile); - intent.setType("text/csv"); - try { - startActivity(intent); - } catch (ActivityNotFoundException anfe) { - Log.w(TAG, anfe.toString()); - } - } - - } else if (i == R.id.menu_history_clear_text) { - AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setMessage(R.string.msg_sure); - builder.setCancelable(true); - builder.setPositiveButton(R.string.button_ok, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int i2) { - historyManager.clearHistory(); - dialog.dismiss(); - finish(); - } - }); - builder.setNegativeButton(R.string.button_cancel, null); - builder.show(); - - } else { - return super.onOptionsItemSelected(item); - } - return true; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/history/HistoryItem.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/history/HistoryItem.java deleted file mode 100755 index 45da8bd3..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/history/HistoryItem.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2012 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.history; - -import com.google.zxing.Result; - -public final class HistoryItem { - - private final Result result; - private final String display; - private final String details; - - HistoryItem(Result result, String display, String details) { - this.result = result; - this.display = display; - this.details = details; - } - - public Result getResult() { - return result; - } - - public String getDisplayAndDetails() { - StringBuilder displayResult = new StringBuilder(); - if (display == null || display.isEmpty()) { - displayResult.append(result.getText()); - } else { - displayResult.append(display); - } - if (details != null && !details.isEmpty()) { - displayResult.append(" : ").append(details); - } - return displayResult.toString(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/history/HistoryItemAdapter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/history/HistoryItemAdapter.java deleted file mode 100755 index 1ebb21cd..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/history/HistoryItemAdapter.java +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright 2012 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.history; - -import android.content.Context; -import android.content.res.Resources; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ArrayAdapter; -import android.widget.LinearLayout; -import android.widget.TextView; - -import com.alibaba.weex.R; -import com.google.zxing.Result; - -import java.util.ArrayList; - -final class HistoryItemAdapter extends ArrayAdapter { - - private final Context activity; - - HistoryItemAdapter(Context activity) { - super(activity, R.layout.history_list_item, new ArrayList()); - this.activity = activity; - } - - @Override - public View getView(int position, View view, ViewGroup viewGroup) { - View layout; - if (view instanceof LinearLayout) { - layout = view; - } else { - LayoutInflater factory = LayoutInflater.from(activity); - layout = factory.inflate(R.layout.history_list_item, viewGroup, false); - } - - HistoryItem item = getItem(position); - Result result = item.getResult(); - - CharSequence title; - CharSequence detail; - if (result != null) { - title = result.getText(); - detail = item.getDisplayAndDetails(); - } else { - Resources resources = getContext().getResources(); - title = resources.getString(R.string.history_empty); - detail = resources.getString(R.string.history_empty_detail); - } - - ((TextView) layout.findViewById(R.id.history_title)).setText(title); - ((TextView) layout.findViewById(R.id.history_detail)).setText(detail); - - return layout; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/history/HistoryManager.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/history/HistoryManager.java deleted file mode 100755 index 281ae82a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/history/HistoryManager.java +++ /dev/null @@ -1,366 +0,0 @@ -/* - * Copyright (C) 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.history; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStreamWriter; -import java.nio.charset.Charset; -import java.text.DateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -import android.app.Activity; -import android.content.ContentValues; -import android.content.SharedPreferences; -import android.database.Cursor; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteException; -import android.database.sqlite.SQLiteOpenHelper; -import android.net.Uri; -import android.os.Environment; -import android.preference.PreferenceManager; -import android.util.Log; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.Result; -import com.google.zxing.client.android.Intents; -import com.google.zxing.client.android.PreferencesActivity; -import com.google.zxing.client.android.result.ResultHandler; - -/** - *

Manages functionality related to scan history.

- * - * @author Sean Owen - */ -public final class HistoryManager { - - private static final String TAG = HistoryManager.class.getSimpleName(); - - private static final int MAX_ITEMS = 2000; - - private static final String[] COLUMNS = { - DBHelper.TEXT_COL, - DBHelper.DISPLAY_COL, - DBHelper.FORMAT_COL, - DBHelper.TIMESTAMP_COL, - DBHelper.DETAILS_COL, - }; - - private static final String[] COUNT_COLUMN = { "COUNT(1)" }; - - private static final String[] ID_COL_PROJECTION = { DBHelper.ID_COL }; - private static final String[] ID_DETAIL_COL_PROJECTION = { DBHelper.ID_COL, DBHelper.DETAILS_COL }; - - private final Activity activity; - private final boolean enableHistory; - - public HistoryManager(Activity activity) { - this.activity = activity; - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity); - enableHistory = prefs.getBoolean(PreferencesActivity.KEY_ENABLE_HISTORY, true); - } - - public boolean hasHistoryItems() { - SQLiteOpenHelper helper = new DBHelper(activity); - SQLiteDatabase db = null; - Cursor cursor = null; - try { - db = helper.getReadableDatabase(); - cursor = db.query(DBHelper.TABLE_NAME, COUNT_COLUMN, null, null, null, null, null); - cursor.moveToFirst(); - return cursor.getInt(0) > 0; - } finally { - close(cursor, db); - } - } - - public List buildHistoryItems() { - SQLiteOpenHelper helper = new DBHelper(activity); - List items = new ArrayList<>(); - SQLiteDatabase db = null; - Cursor cursor = null; - try { - db = helper.getReadableDatabase(); - cursor = db.query(DBHelper.TABLE_NAME, COLUMNS, null, null, null, null, DBHelper.TIMESTAMP_COL + " DESC"); - while (cursor.moveToNext()) { - String text = cursor.getString(0); - String display = cursor.getString(1); - String format = cursor.getString(2); - long timestamp = cursor.getLong(3); - String details = cursor.getString(4); - Result result = new Result(text, null, null, BarcodeFormat.valueOf(format), timestamp); - items.add(new HistoryItem(result, display, details)); - } - } finally { - close(cursor, db); - } - return items; - } - - public HistoryItem buildHistoryItem(int number) { - SQLiteOpenHelper helper = new DBHelper(activity); - SQLiteDatabase db = null; - Cursor cursor = null; - try { - db = helper.getReadableDatabase(); - cursor = db.query(DBHelper.TABLE_NAME, COLUMNS, null, null, null, null, DBHelper.TIMESTAMP_COL + " DESC"); - cursor.move(number + 1); - String text = cursor.getString(0); - String display = cursor.getString(1); - String format = cursor.getString(2); - long timestamp = cursor.getLong(3); - String details = cursor.getString(4); - Result result = new Result(text, null, null, BarcodeFormat.valueOf(format), timestamp); - return new HistoryItem(result, display, details); - } finally { - close(cursor, db); - } - } - - public void deleteHistoryItem(int number) { - SQLiteOpenHelper helper = new DBHelper(activity); - SQLiteDatabase db = null; - Cursor cursor = null; - try { - db = helper.getWritableDatabase(); - cursor = db.query(DBHelper.TABLE_NAME, - ID_COL_PROJECTION, - null, null, null, null, - DBHelper.TIMESTAMP_COL + " DESC"); - cursor.move(number + 1); - db.delete(DBHelper.TABLE_NAME, DBHelper.ID_COL + '=' + cursor.getString(0), null); - } finally { - close(cursor, db); - } - } - - public void addHistoryItem(Result result, ResultHandler handler) { - // Do not save this item to the history if the preference is turned off, or the contents are - // considered secure. - if (!activity.getIntent().getBooleanExtra(Intents.Scan.SAVE_HISTORY, true) || - handler.areContentsSecure() || !enableHistory) { - return; - } - - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity); - if (!prefs.getBoolean(PreferencesActivity.KEY_REMEMBER_DUPLICATES, false)) { - deletePrevious(result.getText()); - } - - ContentValues values = new ContentValues(); - values.put(DBHelper.TEXT_COL, result.getText()); - values.put(DBHelper.FORMAT_COL, result.getBarcodeFormat().toString()); - values.put(DBHelper.DISPLAY_COL, handler.getDisplayContents().toString()); - values.put(DBHelper.TIMESTAMP_COL, System.currentTimeMillis()); - - SQLiteOpenHelper helper = new DBHelper(activity); - SQLiteDatabase db = null; - try { - db = helper.getWritableDatabase(); - // Insert the new entry into the DB. - db.insert(DBHelper.TABLE_NAME, DBHelper.TIMESTAMP_COL, values); - } finally { - close(null, db); - } - } - - public void addHistoryItemDetails(String itemID, String itemDetails) { - // As we're going to do an update only we don't need need to worry - // about the preferences; if the item wasn't saved it won't be udpated - SQLiteOpenHelper helper = new DBHelper(activity); - SQLiteDatabase db = null; - Cursor cursor = null; - try { - db = helper.getWritableDatabase(); - cursor = db.query(DBHelper.TABLE_NAME, - ID_DETAIL_COL_PROJECTION, - DBHelper.TEXT_COL + "=?", - new String[] { itemID }, - null, - null, - DBHelper.TIMESTAMP_COL + " DESC", - "1"); - String oldID = null; - String oldDetails = null; - if (cursor.moveToNext()) { - oldID = cursor.getString(0); - oldDetails = cursor.getString(1); - } - - if (oldID != null) { - String newDetails; - if (oldDetails == null) { - newDetails = itemDetails; - } else if (oldDetails.contains(itemDetails)) { - newDetails = null; - } else { - newDetails = oldDetails + " : " + itemDetails; - } - if (newDetails != null) { - ContentValues values = new ContentValues(); - values.put(DBHelper.DETAILS_COL, newDetails); - db.update(DBHelper.TABLE_NAME, values, DBHelper.ID_COL + "=?", new String[] { oldID }); - } - } - - } finally { - close(cursor, db); - } - } - - private void deletePrevious(String text) { - SQLiteOpenHelper helper = new DBHelper(activity); - SQLiteDatabase db = null; - try { - db = helper.getWritableDatabase(); - db.delete(DBHelper.TABLE_NAME, DBHelper.TEXT_COL + "=?", new String[] { text }); - } finally { - close(null, db); - } - } - - public void trimHistory() { - SQLiteOpenHelper helper = new DBHelper(activity); - SQLiteDatabase db = null; - Cursor cursor = null; - try { - db = helper.getWritableDatabase(); - cursor = db.query(DBHelper.TABLE_NAME, - ID_COL_PROJECTION, - null, null, null, null, - DBHelper.TIMESTAMP_COL + " DESC"); - cursor.move(MAX_ITEMS); - while (cursor.moveToNext()) { - String id = cursor.getString(0); - Log.i(TAG, "Deleting scan history ID " + id); - db.delete(DBHelper.TABLE_NAME, DBHelper.ID_COL + '=' + id, null); - } - } catch (SQLiteException sqle) { - // We're seeing an error here when called in CaptureActivity.onCreate() in rare cases - // and don't understand it. First theory is that it's transient so can be safely ignored. - Log.w(TAG, sqle); - // continue - } finally { - close(cursor, db); - } - } - - /** - *

Builds a text representation of the scanning history. Each scan is encoded on one - * line, terminated by a line break (\r\n). The values in each line are comma-separated, - * and double-quoted. Double-quotes within values are escaped with a sequence of two - * double-quotes. The fields output are:

- * - *
    - *
  1. Raw text
  2. - *
  3. Display text
  4. - *
  5. Format (e.g. QR_CODE)
  6. - *
  7. Unix timestamp (milliseconds since the epoch)
  8. - *
  9. Formatted version of timestamp
  10. - *
  11. Supplemental info (e.g. price info for a product barcode)
  12. - *
- */ - CharSequence buildHistory() { - SQLiteOpenHelper helper = new DBHelper(activity); - SQLiteDatabase db = null; - Cursor cursor = null; - try { - db = helper.getWritableDatabase(); - cursor = db.query(DBHelper.TABLE_NAME, - COLUMNS, - null, null, null, null, - DBHelper.TIMESTAMP_COL + " DESC"); - - DateFormat format = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM); - StringBuilder historyText = new StringBuilder(1000); - while (cursor.moveToNext()) { - - historyText.append('"').append(massageHistoryField(cursor.getString(0))).append("\","); - historyText.append('"').append(massageHistoryField(cursor.getString(1))).append("\","); - historyText.append('"').append(massageHistoryField(cursor.getString(2))).append("\","); - historyText.append('"').append(massageHistoryField(cursor.getString(3))).append("\","); - - // Add timestamp again, formatted - long timestamp = cursor.getLong(3); - historyText.append('"').append(massageHistoryField( - format.format(new Date(timestamp)))).append("\","); - - // Above we're preserving the old ordering of columns which had formatted data in position 5 - - historyText.append('"').append(massageHistoryField(cursor.getString(4))).append("\"\r\n"); - } - return historyText; - } finally { - close(cursor, db); - } - } - - void clearHistory() { - SQLiteOpenHelper helper = new DBHelper(activity); - SQLiteDatabase db = null; - try { - db = helper.getWritableDatabase(); - db.delete(DBHelper.TABLE_NAME, null, null); - } finally { - close(null, db); - } - } - - static Uri saveHistory(String history) { - File bsRoot = new File(Environment.getExternalStorageDirectory(), "BarcodeScanner"); - File historyRoot = new File(bsRoot, "History"); - if (!historyRoot.exists() && !historyRoot.mkdirs()) { - Log.w(TAG, "Couldn't make dir " + historyRoot); - return null; - } - File historyFile = new File(historyRoot, "history-" + System.currentTimeMillis() + ".csv"); - OutputStreamWriter out = null; - try { - out = new OutputStreamWriter(new FileOutputStream(historyFile), Charset.forName("UTF-8")); - out.write(history); - return Uri.parse("file://" + historyFile.getAbsolutePath()); - } catch (IOException ioe) { - Log.w(TAG, "Couldn't access file " + historyFile + " due to " + ioe); - return null; - } finally { - if (out != null) { - try { - out.close(); - } catch (IOException ioe) { - // do nothing - } - } - } - } - - private static String massageHistoryField(String value) { - return value == null ? "" : value.replace("\"","\"\""); - } - - private static void close(Cursor cursor, SQLiteDatabase database) { - if (cursor != null) { - cursor.close(); - } - if (database != null) { - database.close(); - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/AddressBookResultHandler.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/AddressBookResultHandler.java deleted file mode 100755 index 70d48a21..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/AddressBookResultHandler.java +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.result; - -import android.app.Activity; -import android.telephony.PhoneNumberUtils; -import android.text.Spannable; -import android.text.SpannableString; -import android.text.style.StyleSpan; - -import com.alibaba.weex.R; -import com.google.zxing.client.result.AddressBookParsedResult; -import com.google.zxing.client.result.ParsedResult; - -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Locale; - -/** - * Handles address book entries. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class AddressBookResultHandler extends ResultHandler { - - private static final DateFormat[] DATE_FORMATS = { - new SimpleDateFormat("yyyyMMdd", Locale.ENGLISH), - new SimpleDateFormat("yyyyMMdd'T'HHmmss", Locale.ENGLISH), - new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH), - new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss", Locale.ENGLISH), - }; - static { - for (DateFormat format : DATE_FORMATS) { - format.setLenient(false); - } - } - - private static final int[] BUTTON_TEXTS = { - R.string.button_add_contact, - R.string.button_show_map, - R.string.button_dial, - R.string.button_email, - }; - - private final boolean[] fields; - private int buttonCount; - - // This takes all the work out of figuring out which buttons/actions should be in which - // positions, based on which fields are present in this barcode. - private int mapIndexToAction(int index) { - if (index < buttonCount) { - int count = -1; - for (int x = 0; x < MAX_BUTTON_COUNT; x++) { - if (fields[x]) { - count++; - } - if (count == index) { - return x; - } - } - } - return -1; - } - - public AddressBookResultHandler(Activity activity, ParsedResult result) { - super(activity, result); - AddressBookParsedResult addressResult = (AddressBookParsedResult) result; - String[] addresses = addressResult.getAddresses(); - boolean hasAddress = addresses != null && addresses.length > 0 && addresses[0] != null && !addresses[0].isEmpty(); - String[] phoneNumbers = addressResult.getPhoneNumbers(); - boolean hasPhoneNumber = phoneNumbers != null && phoneNumbers.length > 0; - String[] emails = addressResult.getEmails(); - boolean hasEmailAddress = emails != null && emails.length > 0; - - fields = new boolean[MAX_BUTTON_COUNT]; - fields[0] = true; // Add contact is always available - fields[1] = hasAddress; - fields[2] = hasPhoneNumber; - fields[3] = hasEmailAddress; - - buttonCount = 0; - for (int x = 0; x < MAX_BUTTON_COUNT; x++) { - if (fields[x]) { - buttonCount++; - } - } - } - - @Override - public int getButtonCount() { - return buttonCount; - } - - @Override - public int getButtonText(int index) { - return BUTTON_TEXTS[mapIndexToAction(index)]; - } - - @Override - public void handleButtonPress(int index) { - AddressBookParsedResult addressResult = (AddressBookParsedResult) getResult(); - String[] addresses = addressResult.getAddresses(); - String address1 = addresses == null || addresses.length < 1 ? null : addresses[0]; - String[] addressTypes = addressResult.getAddressTypes(); - String address1Type = addressTypes == null || addressTypes.length < 1 ? null : addressTypes[0]; - int action = mapIndexToAction(index); - switch (action) { - case 0: - addContact(addressResult.getNames(), - addressResult.getNicknames(), - addressResult.getPronunciation(), - addressResult.getPhoneNumbers(), - addressResult.getPhoneTypes(), - addressResult.getEmails(), - addressResult.getEmailTypes(), - addressResult.getNote(), - addressResult.getInstantMessenger(), - address1, - address1Type, - addressResult.getOrg(), - addressResult.getTitle(), - addressResult.getURLs(), - addressResult.getBirthday(), - addressResult.getGeo()); - break; - case 1: - searchMap(address1); - break; - case 2: - dialPhone(addressResult.getPhoneNumbers()[0]); - break; - case 3: - sendEmail(addressResult.getEmails(), null, null, null, null); - break; - default: - break; - } - } - - private static Date parseDate(String s) { - for (DateFormat currentFormat : DATE_FORMATS) { - try { - return currentFormat.parse(s); - } catch (ParseException e) { - // continue - } - } - return null; - } - - // Overriden so we can hyphenate phone numbers, format birthdays, and bold the name. - @Override - public CharSequence getDisplayContents() { - AddressBookParsedResult result = (AddressBookParsedResult) getResult(); - StringBuilder contents = new StringBuilder(100); - ParsedResult.maybeAppend(result.getNames(), contents); - int namesLength = contents.length(); - - String pronunciation = result.getPronunciation(); - if (pronunciation != null && !pronunciation.isEmpty()) { - contents.append("\n("); - contents.append(pronunciation); - contents.append(')'); - } - - ParsedResult.maybeAppend(result.getTitle(), contents); - ParsedResult.maybeAppend(result.getOrg(), contents); - ParsedResult.maybeAppend(result.getAddresses(), contents); - String[] numbers = result.getPhoneNumbers(); - if (numbers != null) { - for (String number : numbers) { - if (number != null) { - ParsedResult.maybeAppend(PhoneNumberUtils.formatNumber(number), contents); - } - } - } - ParsedResult.maybeAppend(result.getEmails(), contents); - ParsedResult.maybeAppend(result.getURLs(), contents); - - String birthday = result.getBirthday(); - if (birthday != null && !birthday.isEmpty()) { - Date date = parseDate(birthday); - if (date != null) { - ParsedResult.maybeAppend(DateFormat.getDateInstance(DateFormat.MEDIUM).format(date.getTime()), contents); - } - } - ParsedResult.maybeAppend(result.getNote(), contents); - - if (namesLength > 0) { - // Bold the full name to make it stand out a bit. - Spannable styled = new SpannableString(contents.toString()); - styled.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, namesLength, 0); - return styled; - } else { - return contents.toString(); - } - } - - @Override - public int getDisplayTitle() { - return R.string.result_address_book; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/CalendarResultHandler.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/CalendarResultHandler.java deleted file mode 100755 index 29d9520c..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/CalendarResultHandler.java +++ /dev/null @@ -1,186 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.result; - -import android.app.Activity; -import android.content.ActivityNotFoundException; -import android.content.Intent; -import android.util.Log; - -import com.alibaba.weex.R; -import com.google.zxing.client.result.CalendarParsedResult; -import com.google.zxing.client.result.ParsedResult; - -import java.text.DateFormat; -import java.util.Date; - -/** - * Handles calendar entries encoded in QR Codes. - * - * @author dswitkin@google.com (Daniel Switkin) - * @author Sean Owen - */ -public final class CalendarResultHandler extends ResultHandler { - - private static final String TAG = CalendarResultHandler.class.getSimpleName(); - - private static final int[] buttons = { - R.string.button_add_calendar - }; - - public CalendarResultHandler(Activity activity, ParsedResult result) { - super(activity, result); - } - - @Override - public int getButtonCount() { - return buttons.length; - } - - @Override - public int getButtonText(int index) { - return buttons[index]; - } - - @Override - public void handleButtonPress(int index) { - if (index == 0) { - CalendarParsedResult calendarResult = (CalendarParsedResult) getResult(); - - String description = calendarResult.getDescription(); - String organizer = calendarResult.getOrganizer(); - if (organizer != null) { // No separate Intent key, put in description - if (description == null) { - description = organizer; - } else { - description = description + '\n' + organizer; - } - } - - addCalendarEvent(calendarResult.getSummary(), - calendarResult.getStart(), - calendarResult.isStartAllDay(), - calendarResult.getEnd(), - calendarResult.getLocation(), - description, - calendarResult.getAttendees()); - } - } - - /** - * Sends an intent to create a new calendar event by prepopulating the Add Event UI. Older - * versions of the system have a bug where the event title will not be filled out. - * - * @param summary A description of the event - * @param start The start time - * @param allDay if true, event is considered to be all day starting from start time - * @param end The end time (optional) - * @param location a text description of the event location - * @param description a text description of the event itself - * @param attendees attendees to invite - */ - private void addCalendarEvent(String summary, - Date start, - boolean allDay, - Date end, - String location, - String description, - String[] attendees) { - Intent intent = new Intent(Intent.ACTION_INSERT); - intent.setType("vnd.android.cursor.item/event"); - long startMilliseconds = start.getTime(); - intent.putExtra("beginTime", startMilliseconds); - if (allDay) { - intent.putExtra("allDay", true); - } - long endMilliseconds; - if (end == null) { - if (allDay) { - // + 1 day - endMilliseconds = startMilliseconds + 24 * 60 * 60 * 1000; - } else { - endMilliseconds = startMilliseconds; - } - } else { - endMilliseconds = end.getTime(); - } - intent.putExtra("endTime", endMilliseconds); - intent.putExtra("title", summary); - intent.putExtra("eventLocation", location); - intent.putExtra("description", description); - if (attendees != null) { - intent.putExtra(Intent.EXTRA_EMAIL, attendees); - // Documentation says this is either a String[] or comma-separated String, which is right? - } - - try { - // Do this manually at first - rawLaunchIntent(intent); - } catch (ActivityNotFoundException anfe) { - Log.w(TAG, "No calendar app available that responds to " + Intent.ACTION_INSERT); - // For calendar apps that don't like "INSERT": - intent.setAction(Intent.ACTION_EDIT); - launchIntent(intent); // Fail here for real if nothing can handle it - } - } - - - @Override - public CharSequence getDisplayContents() { - - CalendarParsedResult calResult = (CalendarParsedResult) getResult(); - StringBuilder result = new StringBuilder(100); - - ParsedResult.maybeAppend(calResult.getSummary(), result); - - Date start = calResult.getStart(); - ParsedResult.maybeAppend(format(calResult.isStartAllDay(), start), result); - - Date end = calResult.getEnd(); - if (end != null) { - if (calResult.isEndAllDay() && !start.equals(end)) { - // Show only year/month/day - // if it's all-day and this is the end date, it's exclusive, so show the user - // that it ends on the day before to make more intuitive sense. - // But don't do it if the event already (incorrectly?) specifies the same start/end - end = new Date(end.getTime() - 24 * 60 * 60 * 1000); - } - ParsedResult.maybeAppend(format(calResult.isEndAllDay(), end), result); - } - - ParsedResult.maybeAppend(calResult.getLocation(), result); - ParsedResult.maybeAppend(calResult.getOrganizer(), result); - ParsedResult.maybeAppend(calResult.getAttendees(), result); - ParsedResult.maybeAppend(calResult.getDescription(), result); - return result.toString(); - } - - private static String format(boolean allDay, Date date) { - if (date == null) { - return null; - } - DateFormat format = allDay - ? DateFormat.getDateInstance(DateFormat.MEDIUM) - : DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM); - return format.format(date); - } - - @Override - public int getDisplayTitle() { - return R.string.result_calendar; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/EmailAddressResultHandler.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/EmailAddressResultHandler.java deleted file mode 100755 index d05db007..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/EmailAddressResultHandler.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.result; - -import android.app.Activity; - -import com.alibaba.weex.R; -import com.google.zxing.client.result.EmailAddressParsedResult; -import com.google.zxing.client.result.ParsedResult; - -/** - * Handles email addresses. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class EmailAddressResultHandler extends ResultHandler { - private static final int[] buttons = { - R.string.button_email, - R.string.button_add_contact - }; - - public EmailAddressResultHandler(Activity activity, ParsedResult result) { - super(activity, result); - } - - @Override - public int getButtonCount() { - return buttons.length; - } - - @Override - public int getButtonText(int index) { - return buttons[index]; - } - - @Override - public void handleButtonPress(int index) { - EmailAddressParsedResult emailResult = (EmailAddressParsedResult) getResult(); - switch (index) { - case 0: - sendEmail(emailResult.getTos(), - emailResult.getCCs(), - emailResult.getBCCs(), - emailResult.getSubject(), - emailResult.getBody()); - break; - case 1: - addEmailOnlyContact(emailResult.getTos(), null); - break; - } - } - - @Override - public int getDisplayTitle() { - return R.string.result_email_address; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/GeoResultHandler.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/GeoResultHandler.java deleted file mode 100755 index 1fed4e57..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/GeoResultHandler.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.result; - -import android.app.Activity; - -import com.alibaba.weex.R; -import com.google.zxing.client.result.GeoParsedResult; -import com.google.zxing.client.result.ParsedResult; - -/** - * Handles geographic coordinates (typically encoded as geo: URLs). - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class GeoResultHandler extends ResultHandler { - private static final int[] buttons = { - R.string.button_show_map, - R.string.button_get_directions - }; - - public GeoResultHandler(Activity activity, ParsedResult result) { - super(activity, result); - } - - @Override - public int getButtonCount() { - return buttons.length; - } - - @Override - public int getButtonText(int index) { - return buttons[index]; - } - - @Override - public void handleButtonPress(int index) { - GeoParsedResult geoResult = (GeoParsedResult) getResult(); - switch (index) { - case 0: - openMap(geoResult.getGeoURI()); - break; - case 1: - getDirections(geoResult.getLatitude(), geoResult.getLongitude()); - break; - } - } - - @Override - public int getDisplayTitle() { - return R.string.result_geo; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/ISBNResultHandler.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/ISBNResultHandler.java deleted file mode 100755 index dbe2f1b9..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/ISBNResultHandler.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.result; - -import android.app.Activity; - -import com.alibaba.weex.R; -import com.google.zxing.Result; -import com.google.zxing.client.result.ISBNParsedResult; -import com.google.zxing.client.result.ParsedResult; - -/** - * Handles books encoded by their ISBN values. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class ISBNResultHandler extends ResultHandler { - private static final int[] buttons = { - R.string.button_product_search, - R.string.button_book_search, - R.string.button_search_book_contents, - R.string.button_custom_product_search - }; - - public ISBNResultHandler(Activity activity, ParsedResult result, Result rawResult) { - super(activity, result, rawResult); - } - - @Override - public int getButtonCount() { - return hasCustomProductSearch() ? buttons.length : buttons.length - 1; - } - - @Override - public int getButtonText(int index) { - return buttons[index]; - } - - @Override - public void handleButtonPress(int index) { - ISBNParsedResult isbnResult = (ISBNParsedResult) getResult(); - switch (index) { - case 0: - openProductSearch(isbnResult.getISBN()); - break; - case 1: - openBookSearch(isbnResult.getISBN()); - break; - case 2: - searchBookContents(isbnResult.getISBN()); - break; - case 3: - openURL(fillInCustomSearchURL(isbnResult.getISBN())); - break; - } - } - - @Override - public int getDisplayTitle() { - return R.string.result_isbn; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/ProductResultHandler.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/ProductResultHandler.java deleted file mode 100755 index c8e51590..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/ProductResultHandler.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.result; - -import android.app.Activity; - -import com.alibaba.weex.R; -import com.google.zxing.Result; -import com.google.zxing.client.result.ExpandedProductParsedResult; -import com.google.zxing.client.result.ParsedResult; -import com.google.zxing.client.result.ProductParsedResult; - -/** - * Handles generic products which are not books. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class ProductResultHandler extends ResultHandler { - private static final int[] buttons = { - R.string.button_product_search, - R.string.button_web_search, - R.string.button_custom_product_search - }; - - public ProductResultHandler(Activity activity, ParsedResult result, Result rawResult) { - super(activity, result, rawResult); - } - - @Override - public int getButtonCount() { - return hasCustomProductSearch() ? buttons.length : buttons.length - 1; - } - - @Override - public int getButtonText(int index) { - return buttons[index]; - } - - @Override - public void handleButtonPress(int index) { - String productID = getProductIDFromResult(getResult()); - switch (index) { - case 0: - openProductSearch(productID); - break; - case 1: - webSearch(productID); - break; - case 2: - openURL(fillInCustomSearchURL(productID)); - break; - } - } - - private static String getProductIDFromResult(ParsedResult rawResult) { - if (rawResult instanceof ProductParsedResult) { - return ((ProductParsedResult) rawResult).getNormalizedProductID(); - } - if (rawResult instanceof ExpandedProductParsedResult) { - return ((ExpandedProductParsedResult) rawResult).getRawText(); - } - throw new IllegalArgumentException(rawResult.getClass().toString()); - } - - @Override - public int getDisplayTitle() { - return R.string.result_product; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/ResultButtonListener.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/ResultButtonListener.java deleted file mode 100755 index 2e107c42..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/ResultButtonListener.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.result; - -import android.view.View; - -/** - * Handles the result of barcode decoding in the context of the Android platform, by dispatching the - * proper intents to open other activities like GMail, Maps, etc. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class ResultButtonListener implements View.OnClickListener { - private final ResultHandler resultHandler; - private final int index; - - public ResultButtonListener(ResultHandler resultHandler, int index) { - this.resultHandler = resultHandler; - this.index = index; - } - - @Override - public void onClick(View view) { - resultHandler.handleButtonPress(index); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/ResultHandler.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/ResultHandler.java deleted file mode 100755 index 92187e8e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/ResultHandler.java +++ /dev/null @@ -1,513 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.result; - -import android.app.Activity; -import android.app.AlertDialog; -import android.content.ActivityNotFoundException; -import android.content.ContentValues; -import android.content.Intent; -import android.content.SharedPreferences; -import android.net.Uri; -import android.preference.PreferenceManager; -import android.provider.ContactsContract; -import android.util.Log; - -import com.alibaba.weex.R; -import com.google.zxing.Result; -import com.google.zxing.client.android.Contents; -import com.google.zxing.client.android.Intents; -import com.google.zxing.client.android.LocaleManager; -import com.google.zxing.client.android.PreferencesActivity; -import com.google.zxing.client.android.book.SearchBookContentsActivity; -import com.google.zxing.client.result.ParsedResult; -import com.google.zxing.client.result.ParsedResultType; -import com.google.zxing.client.result.ResultParser; - -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; -import java.util.ArrayList; -import java.util.Locale; - -/** - * A base class for the Android-specific barcode handlers. These allow the app to polymorphically - * suggest the appropriate actions for each data type. - * - * This class also contains a bunch of utility methods to take common actions like opening a URL. - * They could easily be moved into a helper object, but it can't be static because the Activity - * instance is needed to launch an intent. - * - * @author dswitkin@google.com (Daniel Switkin) - * @author Sean Owen - */ -public abstract class ResultHandler { - - private static final String TAG = ResultHandler.class.getSimpleName(); - - private static final String[] EMAIL_TYPE_STRINGS = {"home", "work", "mobile"}; - private static final String[] PHONE_TYPE_STRINGS = {"home", "work", "mobile", "fax", "pager", "main"}; - private static final String[] ADDRESS_TYPE_STRINGS = {"home", "work"}; - private static final int[] EMAIL_TYPE_VALUES = { - ContactsContract.CommonDataKinds.Email.TYPE_HOME, - ContactsContract.CommonDataKinds.Email.TYPE_WORK, - ContactsContract.CommonDataKinds.Email.TYPE_MOBILE, - }; - private static final int[] PHONE_TYPE_VALUES = { - ContactsContract.CommonDataKinds.Phone.TYPE_HOME, - ContactsContract.CommonDataKinds.Phone.TYPE_WORK, - ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE, - ContactsContract.CommonDataKinds.Phone.TYPE_FAX_WORK, - ContactsContract.CommonDataKinds.Phone.TYPE_PAGER, - ContactsContract.CommonDataKinds.Phone.TYPE_MAIN, - }; - private static final int[] ADDRESS_TYPE_VALUES = { - ContactsContract.CommonDataKinds.StructuredPostal.TYPE_HOME, - ContactsContract.CommonDataKinds.StructuredPostal.TYPE_WORK, - }; - private static final int NO_TYPE = -1; - - public static final int MAX_BUTTON_COUNT = 4; - - private final ParsedResult result; - private final Activity activity; - private final Result rawResult; - private final String customProductSearch; - - ResultHandler(Activity activity, ParsedResult result) { - this(activity, result, null); - } - - ResultHandler(Activity activity, ParsedResult result, Result rawResult) { - this.result = result; - this.activity = activity; - this.rawResult = rawResult; - this.customProductSearch = parseCustomSearchURL(); - } - - public final ParsedResult getResult() { - return result; - } - - final boolean hasCustomProductSearch() { - return customProductSearch != null; - } - - final Activity getActivity() { - return activity; - } - - /** - * Indicates how many buttons the derived class wants shown. - * - * @return The integer button count. - */ - public abstract int getButtonCount(); - - /** - * The text of the nth action button. - * - * @param index From 0 to getButtonCount() - 1 - * @return The button text as a resource ID - */ - public abstract int getButtonText(int index); - - public Integer getDefaultButtonID() { - return null; - } - - /** - * Execute the action which corresponds to the nth button. - * - * @param index The button that was clicked. - */ - public abstract void handleButtonPress(int index); - - /** - * Some barcode contents are considered secure, and should not be saved to history, copied to - * the clipboard, or otherwise persisted. - * - * @return If true, do not create any permanent record of these contents. - */ - public boolean areContentsSecure() { - return false; - } - - /** - * Create a possibly styled string for the contents of the current barcode. - * - * @return The text to be displayed. - */ - public CharSequence getDisplayContents() { - String contents = result.getDisplayResult(); - return contents.replace("\r", ""); - } - - /** - * A string describing the kind of barcode that was found, e.g. "Found contact info". - * - * @return The resource ID of the string. - */ - public abstract int getDisplayTitle(); - - /** - * A convenience method to get the parsed type. Should not be overridden. - * - * @return The parsed type, e.g. URI or ISBN - */ - public final ParsedResultType getType() { - return result.getType(); - } - - final void addPhoneOnlyContact(String[] phoneNumbers,String[] phoneTypes) { - addContact(null, null, null, phoneNumbers, phoneTypes, null, null, null, null, null, null, null, null, null, null, null); - } - - final void addEmailOnlyContact(String[] emails, String[] emailTypes) { - addContact(null, null, null, null, null, emails, emailTypes, null, null, null, null, null, null, null, null, null); - } - - final void addContact(String[] names, - String[] nicknames, - String pronunciation, - String[] phoneNumbers, - String[] phoneTypes, - String[] emails, - String[] emailTypes, - String note, - String instantMessenger, - String address, - String addressType, - String org, - String title, - String[] urls, - String birthday, - String[] geo) { - - // Only use the first name in the array, if present. - Intent intent = new Intent(Intent.ACTION_INSERT_OR_EDIT, ContactsContract.Contacts.CONTENT_URI); - intent.setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE); - putExtra(intent, ContactsContract.Intents.Insert.NAME, names != null ? names[0] : null); - - putExtra(intent, ContactsContract.Intents.Insert.PHONETIC_NAME, pronunciation); - - int phoneCount = Math.min(phoneNumbers != null ? phoneNumbers.length : 0, Contents.PHONE_KEYS.length); - for (int x = 0; x < phoneCount; x++) { - putExtra(intent, Contents.PHONE_KEYS[x], phoneNumbers[x]); - if (phoneTypes != null && x < phoneTypes.length) { - int type = toPhoneContractType(phoneTypes[x]); - if (type >= 0) { - intent.putExtra(Contents.PHONE_TYPE_KEYS[x], type); - } - } - } - - int emailCount = Math.min(emails != null ? emails.length : 0, Contents.EMAIL_KEYS.length); - for (int x = 0; x < emailCount; x++) { - putExtra(intent, Contents.EMAIL_KEYS[x], emails[x]); - if (emailTypes != null && x < emailTypes.length) { - int type = toEmailContractType(emailTypes[x]); - if (type >= 0) { - intent.putExtra(Contents.EMAIL_TYPE_KEYS[x], type); - } - } - } - - ArrayList data = new ArrayList<>(); - if (urls != null) { - for (String url : urls) { - if (url != null && !url.isEmpty()) { - ContentValues row = new ContentValues(2); - row.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Website.CONTENT_ITEM_TYPE); - row.put(ContactsContract.CommonDataKinds.Website.URL, url); - data.add(row); - break; - } - } - } - - if (birthday != null) { - ContentValues row = new ContentValues(3); - row.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE); - row.put(ContactsContract.CommonDataKinds.Event.TYPE, ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY); - row.put(ContactsContract.CommonDataKinds.Event.START_DATE, birthday); - data.add(row); - } - - if (nicknames != null) { - for (String nickname : nicknames) { - if (nickname != null && !nickname.isEmpty()) { - ContentValues row = new ContentValues(3); - row.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Nickname.CONTENT_ITEM_TYPE); - row.put(ContactsContract.CommonDataKinds.Nickname.TYPE, - ContactsContract.CommonDataKinds.Nickname.TYPE_DEFAULT); - row.put(ContactsContract.CommonDataKinds.Nickname.NAME, nickname); - data.add(row); - break; - } - } - } - - if (!data.isEmpty()) { - intent.putParcelableArrayListExtra(ContactsContract.Intents.Insert.DATA, data); - } - - StringBuilder aggregatedNotes = new StringBuilder(); - if (note != null) { - aggregatedNotes.append('\n').append(note); - } - if (geo != null) { - aggregatedNotes.append('\n').append(geo[0]).append(',').append(geo[1]); - } - - if (aggregatedNotes.length() > 0) { - // Remove extra leading '\n' - putExtra(intent, ContactsContract.Intents.Insert.NOTES, aggregatedNotes.substring(1)); - } - - putExtra(intent, ContactsContract.Intents.Insert.IM_HANDLE, instantMessenger); - putExtra(intent, ContactsContract.Intents.Insert.POSTAL, address); - if (addressType != null) { - int type = toAddressContractType(addressType); - if (type >= 0) { - intent.putExtra(ContactsContract.Intents.Insert.POSTAL_TYPE, type); - } - } - putExtra(intent, ContactsContract.Intents.Insert.COMPANY, org); - putExtra(intent, ContactsContract.Intents.Insert.JOB_TITLE, title); - launchIntent(intent); - } - - private static int toEmailContractType(String typeString) { - return doToContractType(typeString, EMAIL_TYPE_STRINGS, EMAIL_TYPE_VALUES); - } - - private static int toPhoneContractType(String typeString) { - return doToContractType(typeString, PHONE_TYPE_STRINGS, PHONE_TYPE_VALUES); - } - - private static int toAddressContractType(String typeString) { - return doToContractType(typeString, ADDRESS_TYPE_STRINGS, ADDRESS_TYPE_VALUES); - } - - private static int doToContractType(String typeString, String[] types, int[] values) { - if (typeString == null) { - return NO_TYPE; - } - for (int i = 0; i < types.length; i++) { - String type = types[i]; - if (typeString.startsWith(type) || typeString.startsWith(type.toUpperCase(Locale.ENGLISH))) { - return values[i]; - } - } - return NO_TYPE; - } - - final void shareByEmail(String contents) { - sendEmail(null, null, null, null, contents); - } - - final void sendEmail(String[] to, - String[] cc, - String[] bcc, - String subject, - String body) { - Intent intent = new Intent(Intent.ACTION_SEND, Uri.parse("mailto:")); - if (to != null && to.length != 0) { - intent.putExtra(Intent.EXTRA_EMAIL, to); - } - if (cc != null && cc.length != 0) { - intent.putExtra(Intent.EXTRA_CC, cc); - } - if (bcc != null && bcc.length != 0) { - intent.putExtra(Intent.EXTRA_BCC, bcc); - } - putExtra(intent, Intent.EXTRA_SUBJECT, subject); - putExtra(intent, Intent.EXTRA_TEXT, body); - intent.setType("text/plain"); - launchIntent(intent); - } - - final void shareBySMS(String contents) { - sendSMSFromUri("smsto:", contents); - } - - final void sendSMS(String phoneNumber, String body) { - sendSMSFromUri("smsto:" + phoneNumber, body); - } - - final void sendSMSFromUri(String uri, String body) { - Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse(uri)); - putExtra(intent, "sms_body", body); - // Exit the app once the SMS is sent - intent.putExtra("compose_mode", true); - launchIntent(intent); - } - - final void sendMMS(String phoneNumber, String subject, String body) { - sendMMSFromUri("mmsto:" + phoneNumber, subject, body); - } - - final void sendMMSFromUri(String uri, String subject, String body) { - Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse(uri)); - // The Messaging app needs to see a valid subject or else it will treat this an an SMS. - if (subject == null || subject.isEmpty()) { - putExtra(intent, "subject", activity.getString(R.string.msg_default_mms_subject)); - } else { - putExtra(intent, "subject", subject); - } - putExtra(intent, "sms_body", body); - intent.putExtra("compose_mode", true); - launchIntent(intent); - } - - final void dialPhone(String phoneNumber) { - launchIntent(new Intent(Intent.ACTION_DIAL, Uri.parse("tel:" + phoneNumber))); - } - - final void dialPhoneFromUri(String uri) { - launchIntent(new Intent(Intent.ACTION_DIAL, Uri.parse(uri))); - } - - final void openMap(String geoURI) { - launchIntent(new Intent(Intent.ACTION_VIEW, Uri.parse(geoURI))); - } - - /** - * Do a geo search using the address as the query. - * - * @param address The address to find - */ - final void searchMap(String address) { - launchIntent(new Intent(Intent.ACTION_VIEW, Uri.parse("geo:0,0?q=" + Uri.encode(address)))); - } - - final void getDirections(double latitude, double longitude) { - launchIntent(new Intent(Intent.ACTION_VIEW, Uri.parse("http://maps.google." + - LocaleManager.getCountryTLD(activity) + "/maps?f=d&daddr=" + latitude + ',' + longitude))); - } - - // Uses the mobile-specific version of Product Search, which is formatted for small screens. - final void openProductSearch(String upc) { - Uri uri = Uri.parse("http://www.google." + LocaleManager.getProductSearchCountryTLD(activity) + - "/m/products?q=" + upc + "&source=zxing"); - launchIntent(new Intent(Intent.ACTION_VIEW, uri)); - } - - final void openBookSearch(String isbn) { - Uri uri = Uri.parse("http://books.google." + LocaleManager.getBookSearchCountryTLD(activity) + - "/books?vid=isbn" + isbn); - launchIntent(new Intent(Intent.ACTION_VIEW, uri)); - } - - final void searchBookContents(String isbnOrUrl) { - Intent intent = new Intent(Intents.SearchBookContents.ACTION); - intent.setClassName(activity, SearchBookContentsActivity.class.getName()); - putExtra(intent, Intents.SearchBookContents.ISBN, isbnOrUrl); - launchIntent(intent); - } - - final void openURL(String url) { - // Strangely, some Android browsers don't seem to register to handle HTTP:// or HTTPS://. - // Lower-case these as it should always be OK to lower-case these schemes. - if (url.startsWith("HTTP://")) { - url = "http" + url.substring(4); - } else if (url.startsWith("HTTPS://")) { - url = "https" + url.substring(5); - } - Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); - try { - launchIntent(intent); - } catch (ActivityNotFoundException ignored) { - Log.w(TAG, "Nothing available to handle " + intent); - } - } - - final void webSearch(String query) { - Intent intent = new Intent(Intent.ACTION_WEB_SEARCH); - intent.putExtra("query", query); - launchIntent(intent); - } - - /** - * Like {@link #launchIntent(Intent)} but will tell you if it is not handle-able - * via {@link ActivityNotFoundException}. - * - * @throws ActivityNotFoundException - */ - final void rawLaunchIntent(Intent intent) { - if (intent != null) { - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - Log.d(TAG, "Launching intent: " + intent + " with extras: " + intent.getExtras()); - activity.startActivity(intent); - } - } - - /** - * Like {@link #rawLaunchIntent(Intent)} but will show a user dialog if nothing is available to handle. - */ - final void launchIntent(Intent intent) { - try { - rawLaunchIntent(intent); - } catch (ActivityNotFoundException ignored) { - AlertDialog.Builder builder = new AlertDialog.Builder(activity); - builder.setTitle(R.string.app_name); - builder.setMessage(R.string.msg_intent_failed); - builder.setPositiveButton(R.string.button_ok, null); - builder.show(); - } - } - - private static void putExtra(Intent intent, String key, String value) { - if (value != null && !value.isEmpty()) { - intent.putExtra(key, value); - } - } - - private String parseCustomSearchURL() { - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity); - String customProductSearch = prefs.getString(PreferencesActivity.KEY_CUSTOM_PRODUCT_SEARCH, - null); - if (customProductSearch != null && customProductSearch.trim().isEmpty()) { - return null; - } - return customProductSearch; - } - - final String fillInCustomSearchURL(String text) { - if (customProductSearch == null) { - return text; // ? - } - try { - text = URLEncoder.encode(text, "UTF-8"); - } catch (UnsupportedEncodingException e) { - // can't happen; UTF-8 is always supported. Continue, I guess, without encoding - } - String url = customProductSearch; - if (rawResult != null) { - // Replace %f but only if it doesn't seem to be a hex escape sequence. This remains - // problematic but avoids the more surprising problem of breaking escapes - url = url.replaceFirst("%f(?![0-9a-f])", rawResult.getBarcodeFormat().toString()); - if (url.contains("%t")) { - ParsedResult parsedResultAgain = ResultParser.parseResult(rawResult); - url = url.replace("%t", parsedResultAgain.getType().toString()); - } - } - // Replace %s last as it might contain itself %f or %t - return url.replace("%s", text); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/ResultHandlerFactory.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/ResultHandlerFactory.java deleted file mode 100755 index a31d0898..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/ResultHandlerFactory.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.result; - -import com.google.zxing.Result; -import com.google.zxing.client.android.CaptureActivity; -import com.google.zxing.client.result.ParsedResult; -import com.google.zxing.client.result.ResultParser; - -/** - * Manufactures Android-specific handlers based on the barcode content's type. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class ResultHandlerFactory { - private ResultHandlerFactory() { - } - - public static ResultHandler makeResultHandler(CaptureActivity activity, Result rawResult) { - ParsedResult result = parseResult(rawResult); - switch (result.getType()) { - case ADDRESSBOOK: - return new AddressBookResultHandler(activity, result); - case EMAIL_ADDRESS: - return new EmailAddressResultHandler(activity, result); - case PRODUCT: - return new ProductResultHandler(activity, result, rawResult); - case URI: - return new URIResultHandler(activity, result); - case WIFI: - return new WifiResultHandler(activity, result); - case GEO: - return new GeoResultHandler(activity, result); - case TEL: - return new TelResultHandler(activity, result); - case SMS: - return new SMSResultHandler(activity, result); - case CALENDAR: - return new CalendarResultHandler(activity, result); - case ISBN: - return new ISBNResultHandler(activity, result, rawResult); - default: - return new TextResultHandler(activity, result, rawResult); - } - } - - private static ParsedResult parseResult(Result rawResult) { - return ResultParser.parseResult(rawResult); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/SMSResultHandler.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/SMSResultHandler.java deleted file mode 100755 index 22bce750..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/SMSResultHandler.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.result; - -import android.app.Activity; -import android.telephony.PhoneNumberUtils; - -import com.alibaba.weex.R; -import com.google.zxing.client.result.ParsedResult; -import com.google.zxing.client.result.SMSParsedResult; - -/** - * Handles SMS addresses, offering a choice of composing a new SMS or MMS message. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class SMSResultHandler extends ResultHandler { - private static final int[] buttons = { - R.string.button_sms, - R.string.button_mms - }; - - public SMSResultHandler(Activity activity, ParsedResult result) { - super(activity, result); - } - - @Override - public int getButtonCount() { - return buttons.length; - } - - @Override - public int getButtonText(int index) { - return buttons[index]; - } - - @Override - public void handleButtonPress(int index) { - SMSParsedResult smsResult = (SMSParsedResult) getResult(); - String number = smsResult.getNumbers()[0]; - switch (index) { - case 0: - // Don't know of a way yet to express a SENDTO intent with multiple recipients - sendSMS(number, smsResult.getBody()); - break; - case 1: - sendMMS(number, smsResult.getSubject(), smsResult.getBody()); - break; - } - } - - @Override - public CharSequence getDisplayContents() { - SMSParsedResult smsResult = (SMSParsedResult) getResult(); - String[] rawNumbers = smsResult.getNumbers(); - String[] formattedNumbers = new String[rawNumbers.length]; - for (int i = 0; i < rawNumbers.length; i++) { - formattedNumbers[i] = PhoneNumberUtils.formatNumber(rawNumbers[i]); - } - StringBuilder contents = new StringBuilder(50); - ParsedResult.maybeAppend(formattedNumbers, contents); - ParsedResult.maybeAppend(smsResult.getSubject(), contents); - ParsedResult.maybeAppend(smsResult.getBody(), contents); - return contents.toString(); - } - - @Override - public int getDisplayTitle() { - return R.string.result_sms; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/TelResultHandler.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/TelResultHandler.java deleted file mode 100755 index a42e7cf3..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/TelResultHandler.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.result; - -import android.app.Activity; -import android.telephony.PhoneNumberUtils; - -import com.alibaba.weex.R; -import com.google.zxing.client.result.ParsedResult; -import com.google.zxing.client.result.TelParsedResult; - -/** - * Offers relevant actions for telephone numbers. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class TelResultHandler extends ResultHandler { - private static final int[] buttons = { - R.string.button_dial, - R.string.button_add_contact - }; - - public TelResultHandler(Activity activity, ParsedResult result) { - super(activity, result); - } - - @Override - public int getButtonCount() { - return buttons.length; - } - - @Override - public int getButtonText(int index) { - return buttons[index]; - } - - @Override - public void handleButtonPress(int index) { - TelParsedResult telResult = (TelParsedResult) getResult(); - switch (index) { - case 0: - dialPhoneFromUri(telResult.getTelURI()); - // When dialer comes up, it allows underlying display activity to continue or something, - // but app can't get camera in this state. Avoid issues by just quitting, only in the - // case of a phone number - getActivity().finish(); - break; - case 1: - String[] numbers = new String[1]; - numbers[0] = telResult.getNumber(); - addPhoneOnlyContact(numbers, null); - break; - } - } - - // Overriden so we can take advantage of Android's phone number hyphenation routines. - @Override - public CharSequence getDisplayContents() { - String contents = getResult().getDisplayResult(); - contents = contents.replace("\r", ""); - return PhoneNumberUtils.formatNumber(contents); - } - - @Override - public int getDisplayTitle() { - return R.string.result_tel; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/TextResultHandler.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/TextResultHandler.java deleted file mode 100755 index 32bda84b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/TextResultHandler.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.result; - -import android.app.Activity; - -import com.alibaba.weex.R; -import com.google.zxing.Result; -import com.google.zxing.client.result.ParsedResult; - -/** - * This class handles TextParsedResult as well as unknown formats. It's the fallback handler. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class TextResultHandler extends ResultHandler { - - private static final int[] buttons = { - R.string.button_web_search, - R.string.button_share_by_email, - R.string.button_share_by_sms, - R.string.button_custom_product_search, - }; - - public TextResultHandler(Activity activity, ParsedResult result, Result rawResult) { - super(activity, result, rawResult); - } - - @Override - public int getButtonCount() { - return hasCustomProductSearch() ? buttons.length : buttons.length - 1; - } - - @Override - public int getButtonText(int index) { - return buttons[index]; - } - - @Override - public void handleButtonPress(int index) { - String text = getResult().getDisplayResult(); - switch (index) { - case 0: - webSearch(text); - break; - case 1: - shareByEmail(text); - break; - case 2: - shareBySMS(text); - break; - case 3: - openURL(fillInCustomSearchURL(text)); - break; - } - } - - @Override - public int getDisplayTitle() { - return R.string.result_text; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/URIResultHandler.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/URIResultHandler.java deleted file mode 100755 index 6d065839..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/URIResultHandler.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.result; - -import android.app.Activity; - -import com.alibaba.weex.R; -import com.google.zxing.client.android.LocaleManager; -import com.google.zxing.client.result.ParsedResult; -import com.google.zxing.client.result.URIParsedResult; - -import java.util.Locale; - -/** - * Offers appropriate actions for URLS. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class URIResultHandler extends ResultHandler { - // URIs beginning with entries in this array will not be saved to history or copied to the - // clipboard for security. - private static final String[] SECURE_PROTOCOLS = { - "otpauth:" - }; - - private static final int[] buttons = { - R.string.button_open_browser, - R.string.button_share_by_email, - R.string.button_share_by_sms, - R.string.button_search_book_contents, - }; - - public URIResultHandler(Activity activity, ParsedResult result) { - super(activity, result); - } - - @Override - public int getButtonCount() { - if (LocaleManager.isBookSearchUrl(((URIParsedResult) getResult()).getURI())) { - return buttons.length; - } - return buttons.length - 1; - } - - @Override - public int getButtonText(int index) { - return buttons[index]; - } - - @Override - public Integer getDefaultButtonID() { - return 0; - } - - @Override - public void handleButtonPress(int index) { - URIParsedResult uriResult = (URIParsedResult) getResult(); - String uri = uriResult.getURI(); - switch (index) { - case 0: - openURL(uri); - break; - case 1: - shareByEmail(uri); - break; - case 2: - shareBySMS(uri); - break; - case 3: - searchBookContents(uri); - break; - } - } - - @Override - public int getDisplayTitle() { - return R.string.result_uri; - } - - @Override - public boolean areContentsSecure() { - URIParsedResult uriResult = (URIParsedResult) getResult(); - String uri = uriResult.getURI().toLowerCase(Locale.ENGLISH); - for (String secure : SECURE_PROTOCOLS) { - if (uri.startsWith(secure)) { - return true; - } - } - return false; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/WifiResultHandler.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/WifiResultHandler.java deleted file mode 100755 index ab76af38..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/WifiResultHandler.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.result; - -import android.app.Activity; -import android.content.Context; -import android.net.wifi.WifiManager; -import android.os.AsyncTask; -import android.util.Log; -import android.widget.Toast; - -import com.alibaba.weex.R; -import com.google.zxing.client.android.CaptureActivity; -import com.google.zxing.client.android.wifi.WifiConfigManager; -import com.google.zxing.client.result.ParsedResult; -import com.google.zxing.client.result.WifiParsedResult; - -/** - * Handles wifi access information. - * - * @author Vikram Aggarwal - * @author Sean Owen - */ -public final class WifiResultHandler extends ResultHandler { - - private static final String TAG = WifiResultHandler.class.getSimpleName(); - - private final CaptureActivity parent; - - public WifiResultHandler(CaptureActivity activity, ParsedResult result) { - super(activity, result); - parent = activity; - } - - @Override - public int getButtonCount() { - // We just need one button, and that is to configure the wireless. This could change in the future. - return 1; - } - - @Override - public int getButtonText(int index) { - return R.string.button_wifi; - } - - @Override - public void handleButtonPress(int index) { - if (index == 0) { - WifiParsedResult wifiResult = (WifiParsedResult) getResult(); - WifiManager wifiManager = (WifiManager) getActivity().getApplicationContext().getSystemService(Context.WIFI_SERVICE); - if (wifiManager == null) { - Log.w(TAG, "No WifiManager available from device"); - return; - } - final Activity activity = getActivity(); - activity.runOnUiThread(new Runnable() { - @Override - public void run() { - Toast.makeText(activity.getApplicationContext(), R.string.wifi_changing_network, Toast.LENGTH_SHORT).show(); - } - }); - new WifiConfigManager(wifiManager).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, wifiResult); - parent.restartPreviewAfterDelay(0L); - } - } - - // Display the name of the network and the network type to the user. - @Override - public CharSequence getDisplayContents() { - WifiParsedResult wifiResult = (WifiParsedResult) getResult(); - return wifiResult.getSsid() + " (" + wifiResult.getNetworkEncryption() + ')'; - } - - @Override - public int getDisplayTitle() { - return R.string.result_wifi; - } -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/supplement/BookResultInfoRetriever.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/supplement/BookResultInfoRetriever.java deleted file mode 100755 index 769f7708..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/supplement/BookResultInfoRetriever.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright 2011 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.result.supplement; - -import android.content.Context; -import android.widget.TextView; - -import com.alibaba.weex.R; -import com.google.zxing.client.android.HttpHelper; -import com.google.zxing.client.android.LocaleManager; -import com.google.zxing.client.android.history.HistoryManager; - -import org.json.JSONArray; -import org.json.JSONException; -import org.json.JSONObject; -import org.json.JSONTokener; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; - -/** - * @author Kamil Kaczmarczyk - * @author Sean Owen - */ -final class BookResultInfoRetriever extends SupplementalInfoRetriever { - - private final String isbn; - private final String source; - private final Context context; - - BookResultInfoRetriever(TextView textView, String isbn, HistoryManager historyManager, Context context) { - super(textView, historyManager); - this.isbn = isbn; - this.source = context.getString(R.string.msg_google_books); - this.context = context; - } - - @Override - void retrieveSupplementalInfo() throws IOException { - - CharSequence contents = HttpHelper.downloadViaHttp("https://www.googleapis.com/books/v1/volumes?q=isbn:" + isbn, - HttpHelper.ContentType.JSON); - - if (contents.length() == 0) { - return; - } - - String title; - String pages; - Collection authors = null; - - try { - - JSONObject topLevel = (JSONObject) new JSONTokener(contents.toString()).nextValue(); - JSONArray items = topLevel.optJSONArray("items"); - if (items == null || items.isNull(0)) { - return; - } - - JSONObject volumeInfo = ((JSONObject) items.get(0)).getJSONObject("volumeInfo"); - if (volumeInfo == null) { - return; - } - - title = volumeInfo.optString("title"); - pages = volumeInfo.optString("pageCount"); - - JSONArray authorsArray = volumeInfo.optJSONArray("authors"); - if (authorsArray != null && !authorsArray.isNull(0)) { - authors = new ArrayList<>(authorsArray.length()); - for (int i = 0; i < authorsArray.length(); i++) { - authors.add(authorsArray.getString(i)); - } - } - - } catch (JSONException e) { - throw new IOException(e); - } - - Collection newTexts = new ArrayList<>(); - maybeAddText(title, newTexts); - maybeAddTextSeries(authors, newTexts); - maybeAddText(pages == null || pages.isEmpty() ? null : pages + "pp.", newTexts); - - String baseBookUri = "http://www.google." + LocaleManager.getBookSearchCountryTLD(context) - + "/search?tbm=bks&source=zxing&q="; - - append(isbn, source, newTexts.toArray(new String[newTexts.size()]), baseBookUri + isbn); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/supplement/ProductResultInfoRetriever.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/supplement/ProductResultInfoRetriever.java deleted file mode 100755 index ad6fe8e2..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/supplement/ProductResultInfoRetriever.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.result.supplement; - -import android.content.Context; -import android.text.Html; -import android.widget.TextView; - -import com.alibaba.weex.R; -import com.google.zxing.client.android.HttpHelper; -import com.google.zxing.client.android.LocaleManager; -import com.google.zxing.client.android.history.HistoryManager; - -import java.io.IOException; -import java.net.URLEncoder; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - *

Retrieves product information from Google Product search.

- * - *

Please do not reuse this code. Using results in this way requires permission - * from Google, and that is not granted to users via this project.

- * - * @author Sean Owen - */ -final class ProductResultInfoRetriever extends SupplementalInfoRetriever { - - private static final Pattern[] PRODUCT_NAME_PRICE_PATTERNS = { - Pattern.compile(",event\\)\">([^<]+).+([^<]+)"), - Pattern.compile("owb63p\">([^<]+).+zdi3pb\">([^<]+)"), - }; - - private final String productID; - private final String source; - private final Context context; - - ProductResultInfoRetriever(TextView textView, String productID, HistoryManager historyManager, Context context) { - super(textView, historyManager); - this.productID = productID; - this.source = context.getString(R.string.msg_google_product); - this.context = context; - } - - @Override - void retrieveSupplementalInfo() throws IOException { - - String encodedProductID = URLEncoder.encode(productID, "UTF-8"); - String uri = "https://www.google." + LocaleManager.getProductSearchCountryTLD(context) - + "/m/products?ie=utf8&oe=utf8&scoring=p&source=zxing&q=" + encodedProductID; - CharSequence content = HttpHelper.downloadViaHttp(uri, HttpHelper.ContentType.HTML); - - for (Pattern p : PRODUCT_NAME_PRICE_PATTERNS) { - Matcher matcher = p.matcher(content); - if (matcher.find()) { - append(productID, - source, - new String[] { unescapeHTML(matcher.group(1)), unescapeHTML(matcher.group(2)) }, - uri); - break; - } - } - } - - private static String unescapeHTML(String raw) { - return Html.fromHtml(raw).toString(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/supplement/SupplementalInfoRetriever.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/supplement/SupplementalInfoRetriever.java deleted file mode 100755 index 8791be88..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/supplement/SupplementalInfoRetriever.java +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.result.supplement; - -import java.io.IOException; -import java.lang.ref.WeakReference; -import java.util.ArrayList; -import java.util.Collection; -import java.util.concurrent.RejectedExecutionException; - -import android.content.Context; -import android.os.AsyncTask; -import android.text.Spannable; -import android.text.SpannableString; -import android.text.Spanned; -import android.text.method.LinkMovementMethod; -import android.text.style.URLSpan; -import android.util.Log; -import android.widget.TextView; - -import com.google.zxing.client.android.history.HistoryManager; -import com.google.zxing.client.result.ISBNParsedResult; -import com.google.zxing.client.result.ParsedResult; -import com.google.zxing.client.result.ProductParsedResult; -import com.google.zxing.client.result.URIParsedResult; - -public abstract class SupplementalInfoRetriever extends AsyncTask { - - private static final String TAG = "SupplementalInfo"; - - public static void maybeInvokeRetrieval(TextView textView, - ParsedResult result, - HistoryManager historyManager, - Context context) { - try { - if (result instanceof URIParsedResult) { - SupplementalInfoRetriever uriRetriever = - new URIResultInfoRetriever(textView, (URIParsedResult) result, historyManager, context); - uriRetriever.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - SupplementalInfoRetriever titleRetriever = - new TitleRetriever(textView, (URIParsedResult) result, historyManager); - titleRetriever.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - } else if (result instanceof ProductParsedResult) { - ProductParsedResult productParsedResult = (ProductParsedResult) result; - String productID = productParsedResult.getProductID(); - SupplementalInfoRetriever productRetriever = - new ProductResultInfoRetriever(textView, productID, historyManager, context); - productRetriever.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - } else if (result instanceof ISBNParsedResult) { - String isbn = ((ISBNParsedResult) result).getISBN(); - SupplementalInfoRetriever productInfoRetriever = - new ProductResultInfoRetriever(textView, isbn, historyManager, context); - productInfoRetriever.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - SupplementalInfoRetriever bookInfoRetriever = - new BookResultInfoRetriever(textView, isbn, historyManager, context); - bookInfoRetriever.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - } - } catch (RejectedExecutionException ree) { - // do nothing - } - } - - private final WeakReference textViewRef; - private final WeakReference historyManagerRef; - private final Collection newContents; - private final Collection newHistories; - - SupplementalInfoRetriever(TextView textView, HistoryManager historyManager) { - textViewRef = new WeakReference<>(textView); - historyManagerRef = new WeakReference<>(historyManager); - newContents = new ArrayList<>(); - newHistories = new ArrayList<>(); - } - - @Override - public final Object doInBackground(Object... args) { - try { - retrieveSupplementalInfo(); - } catch (IOException e) { - Log.w(TAG, e); - } - return null; - } - - @Override - protected final void onPostExecute(Object arg) { - TextView textView = textViewRef.get(); - if (textView != null) { - for (CharSequence content : newContents) { - textView.append(content); - } - textView.setMovementMethod(LinkMovementMethod.getInstance()); - } - HistoryManager historyManager = historyManagerRef.get(); - if (historyManager != null) { - for (String[] text : newHistories) { - historyManager.addHistoryItemDetails(text[0], text[1]); - } - } - } - - abstract void retrieveSupplementalInfo() throws IOException; - - final void append(String itemID, String source, String[] newTexts, String linkURL) { - - StringBuilder newTextCombined = new StringBuilder(); - - if (source != null) { - newTextCombined.append(source).append(' '); - } - - int linkStart = newTextCombined.length(); - - boolean first = true; - for (String newText : newTexts) { - if (first) { - newTextCombined.append(newText); - first = false; - } else { - newTextCombined.append(" ["); - newTextCombined.append(newText); - newTextCombined.append(']'); - } - } - - int linkEnd = newTextCombined.length(); - - String newText = newTextCombined.toString(); - Spannable content = new SpannableString(newText + "\n\n"); - if (linkURL != null) { - // Strangely, some Android browsers don't seem to register to handle HTTP:// or HTTPS://. - // Lower-case these as it should always be OK to lower-case these schemes. - if (linkURL.startsWith("HTTP://")) { - linkURL = "http" + linkURL.substring(4); - } else if (linkURL.startsWith("HTTPS://")) { - linkURL = "https" + linkURL.substring(5); - } - content.setSpan(new URLSpan(linkURL), linkStart, linkEnd, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - } - - newContents.add(content); - newHistories.add(new String[] {itemID, newText}); - } - - static void maybeAddText(String text, Collection texts) { - if (text != null && !text.isEmpty()) { - texts.add(text); - } - } - - static void maybeAddTextSeries(Collection textSeries, Collection texts) { - if (textSeries != null && !textSeries.isEmpty()) { - boolean first = true; - StringBuilder authorsText = new StringBuilder(); - for (String author : textSeries) { - if (first) { - first = false; - } else { - authorsText.append(", "); - } - authorsText.append(author); - } - texts.add(authorsText.toString()); - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/supplement/TitleRetriever.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/supplement/TitleRetriever.java deleted file mode 100755 index 7d0f7e23..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/supplement/TitleRetriever.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 2012 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.result.supplement; - -import java.io.IOException; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import android.text.Html; -import android.widget.TextView; - -import com.google.zxing.client.android.HttpHelper; -import com.google.zxing.client.android.history.HistoryManager; -import com.google.zxing.client.result.URIParsedResult; - -/** - * Retrieves the title of a web page as supplemental info. - * - * @author Sean Owen - */ -final class TitleRetriever extends SupplementalInfoRetriever { - - private static final Pattern TITLE_PATTERN = Pattern.compile("([^<]+)"); - private static final int MAX_TITLE_LEN = 100; - - private final String httpUrl; - - TitleRetriever(TextView textView, URIParsedResult result, HistoryManager historyManager) { - super(textView, historyManager); - this.httpUrl = result.getURI(); - } - - @Override - void retrieveSupplementalInfo() { - CharSequence contents; - try { - contents = HttpHelper.downloadViaHttp(httpUrl, HttpHelper.ContentType.HTML, 4096); - } catch (IOException ioe) { - // ignore this - return; - } - if (contents != null && contents.length() > 0) { - Matcher m = TITLE_PATTERN.matcher(contents); - if (m.find()) { - String title = m.group(1); - if (title != null && !title.isEmpty()) { - title = Html.fromHtml(title).toString(); - if (title.length() > MAX_TITLE_LEN) { - title = title.substring(0, MAX_TITLE_LEN) + "..."; - } - append(httpUrl, null, new String[] {title}, httpUrl); - } - } - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/supplement/URIResultInfoRetriever.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/supplement/URIResultInfoRetriever.java deleted file mode 100755 index bebf3bed..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/result/supplement/URIResultInfoRetriever.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.result.supplement; - -import android.content.Context; -import android.widget.TextView; - -import com.alibaba.weex.R; -import com.google.zxing.client.android.HttpHelper; -import com.google.zxing.client.android.history.HistoryManager; -import com.google.zxing.client.result.URIParsedResult; - -import java.io.IOException; -import java.net.URI; -import java.net.URISyntaxException; - -final class URIResultInfoRetriever extends SupplementalInfoRetriever { - - private static final int MAX_REDIRECTS = 5; - - private final URIParsedResult result; - private final String redirectString; - - URIResultInfoRetriever(TextView textView, URIParsedResult result, HistoryManager historyManager, Context context) { - super(textView, historyManager); - redirectString = context.getString(R.string.msg_redirect); - this.result = result; - } - - @Override - void retrieveSupplementalInfo() throws IOException { - URI oldURI; - try { - oldURI = new URI(result.getURI()); - } catch (URISyntaxException ignored) { - return; - } - URI newURI = HttpHelper.unredirect(oldURI); - int count = 0; - while (count++ < MAX_REDIRECTS && !oldURI.equals(newURI)) { - append(result.getDisplayResult(), - null, - new String[] { redirectString + " : " + newURI }, - newURI.toString()); - oldURI = newURI; - newURI = HttpHelper.unredirect(newURI); - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/AppInfo.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/AppInfo.java deleted file mode 100755 index 94bde9b5..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/AppInfo.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (C) 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.share; - -import android.graphics.drawable.Drawable; - -final class AppInfo implements Comparable<AppInfo> { - - private final String packageName; - private final String label; - private final Drawable icon; - - AppInfo(String packageName, String label, Drawable icon) { - this.packageName = packageName; - this.label = label; - this.icon = icon; - } - - String getPackageName() { - return packageName; - } - - Drawable getIcon() { - return icon; - } - - @Override - public String toString() { - return label; - } - - @Override - public int compareTo(AppInfo another) { - return label.compareTo(another.label); - } - - @Override - public int hashCode() { - return label.hashCode(); - } - - @Override - public boolean equals(Object other) { - if (!(other instanceof AppInfo)) { - return false; - } - AppInfo another = (AppInfo) other; - return label.equals(another.label); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/AppPickerActivity.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/AppPickerActivity.java deleted file mode 100755 index 319fd63e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/AppPickerActivity.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (C) 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.share; - -import android.app.ListActivity; -import android.content.Intent; -import android.os.AsyncTask; -import android.view.View; -import android.widget.Adapter; -import android.widget.ListView; - -import java.util.List; - -public final class AppPickerActivity extends ListActivity { - - private AsyncTask<Object,Object,List<AppInfo>> backgroundTask; - - @Override - protected void onResume() { - super.onResume(); - backgroundTask = new LoadPackagesAsyncTask(this); - backgroundTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - } - - @Override - protected void onPause() { - AsyncTask<?,?,?> task = backgroundTask; - if (task != null) { - task.cancel(true); - backgroundTask = null; - } - super.onPause(); - } - - @Override - protected void onListItemClick(ListView l, View view, int position, long id) { - Adapter adapter = getListAdapter(); - if (position >= 0 && position < adapter.getCount()) { - String packageName = ((AppInfo) adapter.getItem(position)).getPackageName(); - Intent intent = new Intent(); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - intent.putExtra("url", "market://details?id=" + packageName); - setResult(RESULT_OK, intent); - } else { - setResult(RESULT_CANCELED); - } - finish(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/BookMarkColumns.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/BookMarkColumns.java deleted file mode 100755 index 0bcc2626..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/BookMarkColumns.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.google.zxing.client.android.share; - -import android.graphics.BitmapFactory; -import android.provider.BaseColumns; - -/** - * Created by shihan.zsh on 15/12/24. - */ -public class BookMarkColumns { - /** - * The URL of the bookmark or history item. - * <p>Type: TEXT (URL)</p> - */ - public static final String URL = "url"; - - /** - * The number of time the item has been visited. - * <p>Type: NUMBER</p> - */ - public static final String VISITS = "visits"; - - /** - * The date the item was last visited, in milliseconds since the epoch. - * <p>Type: NUMBER (date in milliseconds since January 1, 1970)</p> - */ - public static final String DATE = "date"; - - /** - * Flag indicating that an item is a bookmark. A value of 1 indicates a bookmark, a value - * of 0 indicates a history item. - * <p>Type: INTEGER (boolean)</p> - */ - public static final String BOOKMARK = "bookmark"; - - /** - * The user visible title of the bookmark or history item. - * <p>Type: TEXT</p> - */ - public static final String TITLE = "title"; - - /** - * The date the item created, in milliseconds since the epoch. - * <p>Type: NUMBER (date in milliseconds since January 1, 1970)</p> - */ - public static final String CREATED = "created"; - - /** - * The favicon of the bookmark. Must decode via {@link BitmapFactory#decodeByteArray}. - * <p>Type: BLOB (image)</p> - */ - public static final String FAVICON = "favicon"; - - /** - * @hide - */ - public static final String THUMBNAIL = "thumbnail"; - - /** - * @hide - */ - public static final String TOUCH_ICON = "touch_icon"; - - /** - * @hide - */ - public static final String USER_ENTERED = "user_entered"; - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/BookmarkAdapter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/BookmarkAdapter.java deleted file mode 100755 index 020321aa..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/BookmarkAdapter.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (C) 2011 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.share; - - -import android.content.Context; -import android.database.Cursor; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.BaseAdapter; -import android.widget.LinearLayout; -import android.widget.TextView; - -import com.alibaba.weex.R; - - -/** - * A custom adapter designed to fetch bookmarks from a cursor. Before Honeycomb we used - * SimpleCursorAdapter, but it assumes the existence of an _id column, and the bookmark schema was - * rewritten for HC without one. This caused the app to crash, hence this new class, which is - * forwards and backwards compatible. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -final class BookmarkAdapter extends BaseAdapter { - private final Context context; - private final Cursor cursor; - - BookmarkAdapter(Context context, Cursor cursor) { - this.context = context; - this.cursor = cursor; - } - - @Override - public int getCount() { - return cursor.isClosed() ? 0 : cursor.getCount(); - } - - @Override - public Object getItem(int index) { - // Not used, so no point in retrieving it. - return null; - } - - @Override - public long getItemId(int index) { - return index; - } - - @Override - public View getView(int index, View view, ViewGroup viewGroup) { - View layout; - if (view instanceof LinearLayout) { - layout = view; - } else { - LayoutInflater factory = LayoutInflater.from(context); - layout = factory.inflate(R.layout.bookmark_picker_list_item, viewGroup, false); - } - - if (!cursor.isClosed()) { - cursor.moveToPosition(index); - CharSequence title = cursor.getString(BookmarkPickerActivity.TITLE_COLUMN); - ((TextView) layout.findViewById(R.id.bookmark_title)).setText(title); - CharSequence url = cursor.getString(BookmarkPickerActivity.URL_COLUMN); - ((TextView) layout.findViewById(R.id.bookmark_url)).setText(url); - } // Otherwise... just don't update as the object is shutting down - return layout; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/BookmarkPickerActivity.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/BookmarkPickerActivity.java deleted file mode 100755 index 0464f0a7..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/BookmarkPickerActivity.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.share; - -import android.app.ListActivity; -import android.content.Intent; -import android.database.Cursor; -import android.net.Uri; -import android.util.Log; -import android.view.View; -import android.widget.ListView; - -/** - * This class is only needed because I can't successfully send an ACTION_PICK intent to - * com.android.browser.BrowserBookmarksPage. It can go away if that starts working in the future. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class BookmarkPickerActivity extends ListActivity { - - private static final String TAG = BookmarkPickerActivity.class.getSimpleName(); - public static final Uri BOOKMARKS_URI = Uri.parse("content://browser/bookmarks"); - - private static final String[] BOOKMARK_PROJECTION = { - BookMarkColumns.TITLE, - BookMarkColumns.URL - }; - - static final int TITLE_COLUMN = 0; - static final int URL_COLUMN = 1; - - private static final String BOOKMARK_SELECTION = - BookMarkColumns.BOOKMARK + " = 1 AND " + BookMarkColumns.URL + " IS NOT NULL"; - - private Cursor cursor; - - @Override - protected void onResume() { - super.onResume(); - cursor = getContentResolver().query(BOOKMARKS_URI, BOOKMARK_PROJECTION, - BOOKMARK_SELECTION, null, null); - -// cursor = getContentResolver().query("url", BOOKMARK_PROJECTION, -// BOOKMARK_SELECTION, null, null); - if (cursor == null) { - Log.w(TAG, "No cursor returned for bookmark query"); - finish(); - return; - } - setListAdapter(new BookmarkAdapter(this, cursor)); - } - - @Override - protected void onPause() { - if (cursor != null) { - cursor.close(); - cursor = null; - } - super.onPause(); - } - - @Override - protected void onListItemClick(ListView l, View view, int position, long id) { - if (!cursor.isClosed() && cursor.moveToPosition(position)) { - Intent intent = new Intent(); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - intent.putExtra(BookMarkColumns.TITLE, cursor.getString(TITLE_COLUMN)); - intent.putExtra(BookMarkColumns.URL, cursor.getString(URL_COLUMN)); - setResult(RESULT_OK, intent); - } else { - setResult(RESULT_CANCELED); - } - finish(); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/LoadPackagesAsyncTask.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/LoadPackagesAsyncTask.java deleted file mode 100755 index 550f46fb..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/LoadPackagesAsyncTask.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright (C) 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.share; - -import android.app.ListActivity; -import android.content.pm.ApplicationInfo; -import android.content.pm.PackageItemInfo; -import android.content.pm.PackageManager; -import android.graphics.drawable.Drawable; -import android.os.AsyncTask; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ArrayAdapter; -import android.widget.ImageView; -import android.widget.ListAdapter; - -import com.alibaba.weex.R; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - - -/** - * Loads a list of packages installed on the device asynchronously. - * - * @author Sean Owen - */ -final class LoadPackagesAsyncTask extends AsyncTask<Object,Object,List<AppInfo>> { - - private static final String[] PKG_PREFIX_WHITELIST = { - "com.google.android.apps.", - }; - private static final String[] PKG_PREFIX_BLACKLIST = { - "com.android.", - "android", - "com.google.android.", - "com.htc", - }; - - private final ListActivity activity; - - LoadPackagesAsyncTask(ListActivity activity) { - this.activity = activity; - } - - @Override - protected List<AppInfo> doInBackground(Object... objects) { - List<AppInfo> labelsPackages = new ArrayList<>(); - PackageManager packageManager = activity.getPackageManager(); - Iterable<ApplicationInfo> appInfos = packageManager.getInstalledApplications(0); - for (PackageItemInfo appInfo : appInfos) { - String packageName = appInfo.packageName; - if (!isHidden(packageName)) { - CharSequence label = appInfo.loadLabel(packageManager); - Drawable icon = appInfo.loadIcon(packageManager); - if (label != null) { - labelsPackages.add(new AppInfo(packageName, label.toString(), icon)); - } - } - } - Collections.sort(labelsPackages); - return labelsPackages; - } - - private static boolean isHidden(String packageName) { - if (packageName == null) { - return true; - } - for (String prefix : PKG_PREFIX_WHITELIST) { - if (packageName.startsWith(prefix)) { - return false; - } - } - for (String prefix : PKG_PREFIX_BLACKLIST) { - if (packageName.startsWith(prefix)) { - return true; - } - } - return false; - } - - @Override - protected void onPostExecute(final List<AppInfo> results) { - ListAdapter listAdapter = new ArrayAdapter<AppInfo>(activity, - R.layout.app_picker_list_item, - R.id.app_picker_list_item_label, - results) { - @Override - public View getView(int position, View convertView, ViewGroup parent) { - View view = super.getView(position, convertView, parent); - Drawable icon = results.get(position).getIcon(); - if (icon != null) { - ((ImageView) view.findViewById(R.id.app_picker_list_item_icon)).setImageDrawable(icon); - } - return view; - } - }; - activity.setListAdapter(listAdapter); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/ShareActivity.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/ShareActivity.java deleted file mode 100755 index 25c8af48..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/share/ShareActivity.java +++ /dev/null @@ -1,299 +0,0 @@ -/* - * Copyright (C) 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.share; - -import android.app.Activity; -import android.content.ContentResolver; -import android.content.Intent; -import android.database.Cursor; -import android.net.Uri; -import android.os.Bundle; -import android.provider.BaseColumns; -import android.provider.ContactsContract; -import android.util.Log; -import android.view.KeyEvent; -import android.view.View; -import android.widget.TextView; - -import com.alibaba.weex.R; -import com.google.zxing.BarcodeFormat; -import com.google.zxing.client.android.Contents; -import com.google.zxing.client.android.Intents; -import com.google.zxing.client.android.clipboard.ClipboardInterface; - -/** - * Barcode Scanner can share data like contacts and bookmarks by displaying a QR Code on screen, - * such that another user can scan the barcode with their phone. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class ShareActivity extends Activity { - - private static final String TAG = ShareActivity.class.getSimpleName(); - - private static final int PICK_BOOKMARK = 0; - private static final int PICK_CONTACT = 1; - private static final int PICK_APP = 2; - - private View clipboardButton; - - private final View.OnClickListener contactListener = new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - startActivityForResult(intent, PICK_CONTACT); - } - }; - - private final View.OnClickListener bookmarkListener = new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(Intent.ACTION_PICK); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - intent.setClassName(ShareActivity.this, BookmarkPickerActivity.class.getName()); - startActivityForResult(intent, PICK_BOOKMARK); - } - }; - - private final View.OnClickListener appListener = new View.OnClickListener() { - @Override - public void onClick(View v) { - Intent intent = new Intent(Intent.ACTION_PICK); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - intent.setClassName(ShareActivity.this, AppPickerActivity.class.getName()); - startActivityForResult(intent, PICK_APP); - } - }; - - private final View.OnClickListener clipboardListener = new View.OnClickListener() { - @Override - public void onClick(View v) { - // Should always be true, because we grey out the clipboard button in onResume() if it's empty - CharSequence text = ClipboardInterface.getText(ShareActivity.this); - if (text != null) { - launchSearch(text.toString()); - } - } - }; - - private final View.OnKeyListener textListener = new View.OnKeyListener() { - @Override - public boolean onKey(View view, int keyCode, KeyEvent event) { - if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN) { - String text = ((TextView) view).getText().toString(); - if (text != null && !text.isEmpty()) { - launchSearch(text); - } - return true; - } - return false; - } - }; - - private void launchSearch(String text) { - Intent intent = new Intent(Intents.Encode.ACTION); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - intent.putExtra(Intents.Encode.TYPE, Contents.Type.TEXT); - intent.putExtra(Intents.Encode.DATA, text); - intent.putExtra(Intents.Encode.FORMAT, BarcodeFormat.QR_CODE.toString()); - startActivity(intent); - } - - @Override - public void onCreate(Bundle icicle) { - super.onCreate(icicle); - setContentView(R.layout.share); - - findViewById(R.id.share_contact_button).setOnClickListener(contactListener); - findViewById(R.id.share_bookmark_button).setOnClickListener(bookmarkListener); - findViewById(R.id.share_app_button).setOnClickListener(appListener); - clipboardButton = findViewById(R.id.share_clipboard_button); - clipboardButton.setOnClickListener(clipboardListener); - findViewById(R.id.share_text_view).setOnKeyListener(textListener); - } - - @Override - protected void onResume() { - super.onResume(); - clipboardButton.setEnabled(ClipboardInterface.hasText(this)); - } - - @Override - public void onActivityResult(int requestCode, int resultCode, Intent intent) { - if (resultCode == RESULT_OK) { - switch (requestCode) { - case PICK_BOOKMARK: - case PICK_APP: - showTextAsBarcode(intent.getStringExtra(BookMarkColumns.URL)); - break; - case PICK_CONTACT: - // Data field is content://contacts/people/984 - showContactAsBarcode(intent.getData()); - break; - } - } - } - - private void showTextAsBarcode(String text) { - Log.i(TAG, "Showing text as barcode: " + text); - if (text == null) { - return; // Show error? - } - Intent intent = new Intent(Intents.Encode.ACTION); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - intent.putExtra(Intents.Encode.TYPE, Contents.Type.TEXT); - intent.putExtra(Intents.Encode.DATA, text); - intent.putExtra(Intents.Encode.FORMAT, BarcodeFormat.QR_CODE.toString()); - startActivity(intent); - } - - /** - * Takes a contact Uri and does the necessary database lookups to retrieve that person's info, - * then sends an Encode intent to render it as a QR Code. - * - * @param contactUri A Uri of the form content://contacts/people/17 - */ - private void showContactAsBarcode(Uri contactUri) { - Log.i(TAG, "Showing contact URI as barcode: " + contactUri); - if (contactUri == null) { - return; // Show error? - } - ContentResolver resolver = getContentResolver(); - - Cursor cursor; - try { - // We're seeing about six reports a week of this exception although I don't understand why. - cursor = resolver.query(contactUri, null, null, null, null); - } catch (IllegalArgumentException ignored) { - return; - } - if (cursor == null) { - return; - } - - String id; - String name; - boolean hasPhone; - try { - if (!cursor.moveToFirst()) { - return; - } - - id = cursor.getString(cursor.getColumnIndex(BaseColumns._ID)); - name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); - hasPhone = cursor.getInt(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)) > 0; - - - } finally { - cursor.close(); - } - - // Don't require a name to be present, this contact might be just a phone number. - Bundle bundle = new Bundle(); - if (name != null && !name.isEmpty()) { - bundle.putString(ContactsContract.Intents.Insert.NAME, massageContactData(name)); - } - - if (hasPhone) { - Cursor phonesCursor = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, - null, - ContactsContract.CommonDataKinds.Phone.CONTACT_ID + '=' + id, - null, - null); - if (phonesCursor != null) { - try { - int foundPhone = 0; - int phonesNumberColumn = phonesCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER); - int phoneTypeColumn = phonesCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE); - while (phonesCursor.moveToNext() && foundPhone < Contents.PHONE_KEYS.length) { - String number = phonesCursor.getString(phonesNumberColumn); - if (number != null && !number.isEmpty()) { - bundle.putString(Contents.PHONE_KEYS[foundPhone], massageContactData(number)); - } - int type = phonesCursor.getInt(phoneTypeColumn); - bundle.putInt(Contents.PHONE_TYPE_KEYS[foundPhone], type); - foundPhone++; - } - } finally { - phonesCursor.close(); - } - } - } - - Cursor methodsCursor = resolver.query(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI, - null, - ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID + '=' + id, - null, - null); - if (methodsCursor != null) { - try { - if (methodsCursor.moveToNext()) { - String data = methodsCursor.getString( - methodsCursor.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS)); - if (data != null && !data.isEmpty()) { - bundle.putString(ContactsContract.Intents.Insert.POSTAL, massageContactData(data)); - } - } - } finally { - methodsCursor.close(); - } - } - - Cursor emailCursor = resolver.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, - null, - ContactsContract.CommonDataKinds.Email.CONTACT_ID + '=' + id, - null, - null); - if (emailCursor != null) { - try { - int foundEmail = 0; - int emailColumn = emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA); - while (emailCursor.moveToNext() && foundEmail < Contents.EMAIL_KEYS.length) { - String email = emailCursor.getString(emailColumn); - if (email != null && !email.isEmpty()) { - bundle.putString(Contents.EMAIL_KEYS[foundEmail], massageContactData(email)); - } - foundEmail++; - } - } finally { - emailCursor.close(); - } - } - - Intent intent = new Intent(Intents.Encode.ACTION); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - intent.putExtra(Intents.Encode.TYPE, Contents.Type.CONTACT); - intent.putExtra(Intents.Encode.DATA, bundle); - intent.putExtra(Intents.Encode.FORMAT, BarcodeFormat.QR_CODE.toString()); - - Log.i(TAG, "Sending bundle for encoding: " + bundle); - startActivity(intent); - } - - private static String massageContactData(String data) { - // For now -- make sure we don't put newlines in shared contact data. It messes up - // any known encoding of contact data. Replace with space. - if (data.indexOf('\n') >= 0) { - data = data.replace("\n", " "); - } - if (data.indexOf('\r') >= 0) { - data = data.replace("\r", " "); - } - return data; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/wifi/NetworkType.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/wifi/NetworkType.java deleted file mode 100755 index 809e3c6c..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/wifi/NetworkType.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2011 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.wifi; - -enum NetworkType { - - WEP, - WPA, - NO_PASSWORD; - - static NetworkType forIntentValue(String networkTypeString) { - if (networkTypeString == null) { - return NO_PASSWORD; - } - if ("WPA".equals(networkTypeString)) { - return WPA; - } - if ("WEP".equals(networkTypeString)) { - return WEP; - } - if ("nopass".equals(networkTypeString)) { - return NO_PASSWORD; - } - throw new IllegalArgumentException(networkTypeString); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/wifi/WifiConfigManager.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/wifi/WifiConfigManager.java deleted file mode 100755 index 5bde1f0e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/android/wifi/WifiConfigManager.java +++ /dev/null @@ -1,226 +0,0 @@ -/* - * Copyright (C) 2011 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.android.wifi; - -import java.util.regex.Pattern; - -import android.net.wifi.WifiConfiguration; -import android.net.wifi.WifiManager; -import android.os.AsyncTask; -import android.util.Log; - -import com.google.zxing.client.result.WifiParsedResult; - -/** - * @author Vikram Aggarwal - * @author Sean Owen - */ -public final class WifiConfigManager extends AsyncTask<WifiParsedResult,Object,Object> { - - private static final String TAG = WifiConfigManager.class.getSimpleName(); - - private static final Pattern HEX_DIGITS = Pattern.compile("[0-9A-Fa-f]+"); - - private final WifiManager wifiManager; - - public WifiConfigManager(WifiManager wifiManager) { - this.wifiManager = wifiManager; - } - - @Override - protected Object doInBackground(WifiParsedResult... args) { - WifiParsedResult theWifiResult = args[0]; - // Start WiFi, otherwise nothing will work - if (!wifiManager.isWifiEnabled()) { - Log.i(TAG, "Enabling wi-fi..."); - if (wifiManager.setWifiEnabled(true)) { - Log.i(TAG, "Wi-fi enabled"); - } else { - Log.w(TAG, "Wi-fi could not be enabled!"); - return null; - } - // This happens very quickly, but need to wait for it to enable. A little busy wait? - int count = 0; - while (!wifiManager.isWifiEnabled()) { - if (count >= 10) { - Log.i(TAG, "Took too long to enable wi-fi, quitting"); - return null; - } - Log.i(TAG, "Still waiting for wi-fi to enable..."); - try { - Thread.sleep(1000L); - } catch (InterruptedException ie) { - // continue - } - count++; - } - } - String networkTypeString = theWifiResult.getNetworkEncryption(); - NetworkType networkType; - try { - networkType = NetworkType.forIntentValue(networkTypeString); - } catch (IllegalArgumentException ignored) { - Log.w(TAG, "Bad network type; see NetworkType values: " + networkTypeString); - return null; - } - if (networkType == NetworkType.NO_PASSWORD) { - changeNetworkUnEncrypted(wifiManager, theWifiResult); - } else { - String password = theWifiResult.getPassword(); - if (password != null && !password.isEmpty()) { - if (networkType == NetworkType.WEP) { - changeNetworkWEP(wifiManager, theWifiResult); - } else if (networkType == NetworkType.WPA) { - changeNetworkWPA(wifiManager, theWifiResult); - } - } - } - return null; - } - - /** - * Update the network: either create a new network or modify an existing network - * @param config the new network configuration - */ - private static void updateNetwork(WifiManager wifiManager, WifiConfiguration config) { - Integer foundNetworkID = findNetworkInExistingConfig(wifiManager, config.SSID); - if (foundNetworkID != null) { - Log.i(TAG, "Removing old configuration for network " + config.SSID); - wifiManager.removeNetwork(foundNetworkID); - wifiManager.saveConfiguration(); - } - int networkId = wifiManager.addNetwork(config); - if (networkId >= 0) { - // Try to disable the current network and start a new one. - if (wifiManager.enableNetwork(networkId, true)) { - Log.i(TAG, "Associating to network " + config.SSID); - wifiManager.saveConfiguration(); - } else { - Log.w(TAG, "Failed to enable network " + config.SSID); - } - } else { - Log.w(TAG, "Unable to add network " + config.SSID); - } - } - - private static WifiConfiguration changeNetworkCommon(WifiParsedResult wifiResult) { - WifiConfiguration config = new WifiConfiguration(); - config.allowedAuthAlgorithms.clear(); - config.allowedGroupCiphers.clear(); - config.allowedKeyManagement.clear(); - config.allowedPairwiseCiphers.clear(); - config.allowedProtocols.clear(); - // Android API insists that an ascii SSID must be quoted to be correctly handled. - config.SSID = quoteNonHex(wifiResult.getSsid()); - config.hiddenSSID = wifiResult.isHidden(); - return config; - } - - // Adding a WEP network - private static void changeNetworkWEP(WifiManager wifiManager, WifiParsedResult wifiResult) { - WifiConfiguration config = changeNetworkCommon(wifiResult); - config.wepKeys[0] = quoteNonHex(wifiResult.getPassword(), 10, 26, 58); - config.wepTxKeyIndex = 0; - config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.SHARED); - config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); - config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); - config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); - config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP40); - config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.WEP104); - updateNetwork(wifiManager, config); - } - - // Adding a WPA or WPA2 network - private static void changeNetworkWPA(WifiManager wifiManager, WifiParsedResult wifiResult) { - WifiConfiguration config = changeNetworkCommon(wifiResult); - // Hex passwords that are 64 bits long are not to be quoted. - config.preSharedKey = quoteNonHex(wifiResult.getPassword(), 64); - config.allowedAuthAlgorithms.set(WifiConfiguration.AuthAlgorithm.OPEN); - config.allowedProtocols.set(WifiConfiguration.Protocol.WPA); // For WPA - config.allowedProtocols.set(WifiConfiguration.Protocol.RSN); // For WPA2 - config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_PSK); - config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP); - config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.TKIP); - config.allowedPairwiseCiphers.set(WifiConfiguration.PairwiseCipher.CCMP); - config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.TKIP); - config.allowedGroupCiphers.set(WifiConfiguration.GroupCipher.CCMP); - updateNetwork(wifiManager, config); - } - - // Adding an open, unsecured network - private static void changeNetworkUnEncrypted(WifiManager wifiManager, WifiParsedResult wifiResult) { - WifiConfiguration config = changeNetworkCommon(wifiResult); - config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); - updateNetwork(wifiManager, config); - } - - private static Integer findNetworkInExistingConfig(WifiManager wifiManager, String ssid) { - Iterable<WifiConfiguration> existingConfigs = wifiManager.getConfiguredNetworks(); - if (existingConfigs != null) { - for (WifiConfiguration existingConfig : existingConfigs) { - String existingSSID = existingConfig.SSID; - if (existingSSID != null && existingSSID.equals(ssid)) { - return existingConfig.networkId; - } - } - } - return null; - } - - private static String quoteNonHex(String value, int... allowedLengths) { - return isHexOfLength(value, allowedLengths) ? value : convertToQuotedString(value); - } - - /** - * Encloses the incoming string inside double quotes, if it isn't already quoted. - * @param s the input string - * @return a quoted string, of the form "input". If the input string is null, it returns null - * as well. - */ - private static String convertToQuotedString(String s) { - if (s == null || s.isEmpty()) { - return null; - } - // If already quoted, return as-is - if (s.charAt(0) == '"' && s.charAt(s.length() - 1) == '"') { - return s; - } - return '\"' + s + '\"'; - } - - /** - * @param value input to check - * @param allowedLengths allowed lengths, if any - * @return true if value is a non-null, non-empty string of hex digits, and if allowed lengths are given, has - * an allowed length - */ - private static boolean isHexOfLength(CharSequence value, int... allowedLengths) { - if (value == null || !HEX_DIGITS.matcher(value).matches()) { - return false; - } - if (allowedLengths.length == 0) { - return true; - } - for (int length : allowedLengths) { - if (value.length() == length) { - return true; - } - } - return false; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/AbstractDoCoMoResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/AbstractDoCoMoResultParser.java deleted file mode 100755 index 3d2c1d2a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/AbstractDoCoMoResultParser.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -/** - * <p>See - * <a href="http://www.nttdocomo.co.jp/english/service/imode/make/content/barcode/about/s2.html"> - * DoCoMo's documentation</a> about the result types represented by subclasses of this class.</p> - * - * <p>Thanks to Jeff Griffin for proposing rewrite of these classes that relies less - * on exception-based mechanisms during parsing.</p> - * - * @author Sean Owen - */ -abstract class AbstractDoCoMoResultParser extends ResultParser { - - static String[] matchDoCoMoPrefixedField(String prefix, String rawText, boolean trim) { - return matchPrefixedField(prefix, rawText, ';', trim); - } - - static String matchSingleDoCoMoPrefixedField(String prefix, String rawText, boolean trim) { - return matchSinglePrefixedField(prefix, rawText, ';', trim); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/AddressBookAUResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/AddressBookAUResultParser.java deleted file mode 100755 index 630beadd..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/AddressBookAUResultParser.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import java.util.ArrayList; -import java.util.List; - -import com.google.zxing.Result; - -/** - * Implements KDDI AU's address book format. See - * <a href="http://www.au.kddi.com/ezfactory/tec/two_dimensions/index.html"> - * http://www.au.kddi.com/ezfactory/tec/two_dimensions/index.html</a>. - * (Thanks to Yuzo for translating!) - * - * @author Sean Owen - */ -public final class AddressBookAUResultParser extends ResultParser { - - @Override - public AddressBookParsedResult parse(Result result) { - String rawText = getMassagedText(result); - // MEMORY is mandatory; seems like a decent indicator, as does end-of-record separator CR/LF - if (!rawText.contains("MEMORY") || !rawText.contains("\r\n")) { - return null; - } - - // NAME1 and NAME2 have specific uses, namely written name and pronunciation, respectively. - // Therefore we treat them specially instead of as an array of names. - String name = matchSinglePrefixedField("NAME1:", rawText, '\r', true); - String pronunciation = matchSinglePrefixedField("NAME2:", rawText, '\r', true); - - String[] phoneNumbers = matchMultipleValuePrefix("TEL", 3, rawText, true); - String[] emails = matchMultipleValuePrefix("MAIL", 3, rawText, true); - String note = matchSinglePrefixedField("MEMORY:", rawText, '\r', false); - String address = matchSinglePrefixedField("ADD:", rawText, '\r', true); - String[] addresses = address == null ? null : new String[] {address}; - return new AddressBookParsedResult(maybeWrap(name), - null, - pronunciation, - phoneNumbers, - null, - emails, - null, - null, - note, - addresses, - null, - null, - null, - null, - null, - null); - } - - private static String[] matchMultipleValuePrefix(String prefix, - int max, - String rawText, - boolean trim) { - List<String> values = null; - for (int i = 1; i <= max; i++) { - String value = matchSinglePrefixedField(prefix + i + ':', rawText, '\r', trim); - if (value == null) { - break; - } - if (values == null) { - values = new ArrayList<>(max); // lazy init - } - values.add(value); - } - if (values == null) { - return null; - } - return values.toArray(new String[values.size()]); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/AddressBookDoCoMoResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/AddressBookDoCoMoResultParser.java deleted file mode 100755 index cb2e19b2..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/AddressBookDoCoMoResultParser.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import com.google.zxing.Result; - -/** - * Implements the "MECARD" address book entry format. - * - * Supported keys: N, SOUND, TEL, EMAIL, NOTE, ADR, BDAY, URL, plus ORG - * Unsupported keys: TEL-AV, NICKNAME - * - * Except for TEL, multiple values for keys are also not supported; - * the first one found takes precedence. - * - * Our understanding of the MECARD format is based on this document: - * - * http://www.mobicode.org.tw/files/OMIA%20Mobile%20Bar%20Code%20Standard%20v3.2.1.doc - * - * @author Sean Owen - */ -public final class AddressBookDoCoMoResultParser extends AbstractDoCoMoResultParser { - - @Override - public AddressBookParsedResult parse(Result result) { - String rawText = getMassagedText(result); - if (!rawText.startsWith("MECARD:")) { - return null; - } - String[] rawName = matchDoCoMoPrefixedField("N:", rawText, true); - if (rawName == null) { - return null; - } - String name = parseName(rawName[0]); - String pronunciation = matchSingleDoCoMoPrefixedField("SOUND:", rawText, true); - String[] phoneNumbers = matchDoCoMoPrefixedField("TEL:", rawText, true); - String[] emails = matchDoCoMoPrefixedField("EMAIL:", rawText, true); - String note = matchSingleDoCoMoPrefixedField("NOTE:", rawText, false); - String[] addresses = matchDoCoMoPrefixedField("ADR:", rawText, true); - String birthday = matchSingleDoCoMoPrefixedField("BDAY:", rawText, true); - if (!isStringOfDigits(birthday, 8)) { - // No reason to throw out the whole card because the birthday is formatted wrong. - birthday = null; - } - String[] urls = matchDoCoMoPrefixedField("URL:", rawText, true); - - // Although ORG may not be strictly legal in MECARD, it does exist in VCARD and we might as well - // honor it when found in the wild. - String org = matchSingleDoCoMoPrefixedField("ORG:", rawText, true); - - return new AddressBookParsedResult(maybeWrap(name), - null, - pronunciation, - phoneNumbers, - null, - emails, - null, - null, - note, - addresses, - null, - org, - birthday, - null, - urls, - null); - } - - private static String parseName(String name) { - int comma = name.indexOf((int) ','); - if (comma >= 0) { - // Format may be last,first; switch it around - return name.substring(comma + 1) + ' ' + name.substring(0, comma); - } - return name; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/AddressBookParsedResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/AddressBookParsedResult.java deleted file mode 100755 index 291ebfcc..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/AddressBookParsedResult.java +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -/** - * @author Sean Owen - */ -public final class AddressBookParsedResult extends ParsedResult { - - private final String[] names; - private final String[] nicknames; - private final String pronunciation; - private final String[] phoneNumbers; - private final String[] phoneTypes; - private final String[] emails; - private final String[] emailTypes; - private final String instantMessenger; - private final String note; - private final String[] addresses; - private final String[] addressTypes; - private final String org; - private final String birthday; - private final String title; - private final String[] urls; - private final String[] geo; - - public AddressBookParsedResult(String[] names, - String[] phoneNumbers, - String[] phoneTypes, - String[] emails, - String[] emailTypes, - String[] addresses, - String[] addressTypes) { - this(names, - null, - null, - phoneNumbers, - phoneTypes, - emails, - emailTypes, - null, - null, - addresses, - addressTypes, - null, - null, - null, - null, - null); - } - - public AddressBookParsedResult(String[] names, - String[] nicknames, - String pronunciation, - String[] phoneNumbers, - String[] phoneTypes, - String[] emails, - String[] emailTypes, - String instantMessenger, - String note, - String[] addresses, - String[] addressTypes, - String org, - String birthday, - String title, - String[] urls, - String[] geo) { - super(ParsedResultType.ADDRESSBOOK); - this.names = names; - this.nicknames = nicknames; - this.pronunciation = pronunciation; - this.phoneNumbers = phoneNumbers; - this.phoneTypes = phoneTypes; - this.emails = emails; - this.emailTypes = emailTypes; - this.instantMessenger = instantMessenger; - this.note = note; - this.addresses = addresses; - this.addressTypes = addressTypes; - this.org = org; - this.birthday = birthday; - this.title = title; - this.urls = urls; - this.geo = geo; - } - - public String[] getNames() { - return names; - } - - public String[] getNicknames() { - return nicknames; - } - - /** - * In Japanese, the name is written in kanji, which can have multiple readings. Therefore a hint - * is often provided, called furigana, which spells the name phonetically. - * - * @return The pronunciation of the getNames() field, often in hiragana or katakana. - */ - public String getPronunciation() { - return pronunciation; - } - - public String[] getPhoneNumbers() { - return phoneNumbers; - } - - /** - * @return optional descriptions of the type of each phone number. It could be like "HOME", but, - * there is no guaranteed or standard format. - */ - public String[] getPhoneTypes() { - return phoneTypes; - } - - public String[] getEmails() { - return emails; - } - - /** - * @return optional descriptions of the type of each e-mail. It could be like "WORK", but, - * there is no guaranteed or standard format. - */ - public String[] getEmailTypes() { - return emailTypes; - } - - public String getInstantMessenger() { - return instantMessenger; - } - - public String getNote() { - return note; - } - - public String[] getAddresses() { - return addresses; - } - - /** - * @return optional descriptions of the type of each e-mail. It could be like "WORK", but, - * there is no guaranteed or standard format. - */ - public String[] getAddressTypes() { - return addressTypes; - } - - public String getTitle() { - return title; - } - - public String getOrg() { - return org; - } - - public String[] getURLs() { - return urls; - } - - /** - * @return birthday formatted as yyyyMMdd (e.g. 19780917) - */ - public String getBirthday() { - return birthday; - } - - /** - * @return a location as a latitude/longitude pair - */ - public String[] getGeo() { - return geo; - } - - @Override - public String getDisplayResult() { - StringBuilder result = new StringBuilder(100); - maybeAppend(names, result); - maybeAppend(nicknames, result); - maybeAppend(pronunciation, result); - maybeAppend(title, result); - maybeAppend(org, result); - maybeAppend(addresses, result); - maybeAppend(phoneNumbers, result); - maybeAppend(emails, result); - maybeAppend(instantMessenger, result); - maybeAppend(urls, result); - maybeAppend(birthday, result); - maybeAppend(geo, result); - maybeAppend(note, result); - return result.toString(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/BizcardResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/BizcardResultParser.java deleted file mode 100755 index 2b66c79d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/BizcardResultParser.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import java.util.ArrayList; -import java.util.List; - -import com.google.zxing.Result; - -/** - * Implements the "BIZCARD" address book entry format, though this has been - * largely reverse-engineered from examples observed in the wild -- still - * looking for a definitive reference. - * - * @author Sean Owen - */ -public final class BizcardResultParser extends AbstractDoCoMoResultParser { - - // Yes, we extend AbstractDoCoMoResultParser since the format is very much - // like the DoCoMo MECARD format, but this is not technically one of - // DoCoMo's proposed formats - - @Override - public AddressBookParsedResult parse(Result result) { - String rawText = getMassagedText(result); - if (!rawText.startsWith("BIZCARD:")) { - return null; - } - String firstName = matchSingleDoCoMoPrefixedField("N:", rawText, true); - String lastName = matchSingleDoCoMoPrefixedField("X:", rawText, true); - String fullName = buildName(firstName, lastName); - String title = matchSingleDoCoMoPrefixedField("T:", rawText, true); - String org = matchSingleDoCoMoPrefixedField("C:", rawText, true); - String[] addresses = matchDoCoMoPrefixedField("A:", rawText, true); - String phoneNumber1 = matchSingleDoCoMoPrefixedField("B:", rawText, true); - String phoneNumber2 = matchSingleDoCoMoPrefixedField("M:", rawText, true); - String phoneNumber3 = matchSingleDoCoMoPrefixedField("F:", rawText, true); - String email = matchSingleDoCoMoPrefixedField("E:", rawText, true); - - return new AddressBookParsedResult(maybeWrap(fullName), - null, - null, - buildPhoneNumbers(phoneNumber1, phoneNumber2, phoneNumber3), - null, - maybeWrap(email), - null, - null, - null, - addresses, - null, - org, - null, - title, - null, - null); - } - - private static String[] buildPhoneNumbers(String number1, - String number2, - String number3) { - List<String> numbers = new ArrayList<>(3); - if (number1 != null) { - numbers.add(number1); - } - if (number2 != null) { - numbers.add(number2); - } - if (number3 != null) { - numbers.add(number3); - } - int size = numbers.size(); - if (size == 0) { - return null; - } - return numbers.toArray(new String[size]); - } - - private static String buildName(String firstName, String lastName) { - if (firstName == null) { - return lastName; - } else { - return lastName == null ? firstName : firstName + ' ' + lastName; - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/BookmarkDoCoMoResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/BookmarkDoCoMoResultParser.java deleted file mode 100755 index a729239d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/BookmarkDoCoMoResultParser.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import com.google.zxing.Result; - -/** - * @author Sean Owen - */ -public final class BookmarkDoCoMoResultParser extends AbstractDoCoMoResultParser { - - @Override - public URIParsedResult parse(Result result) { - String rawText = result.getText(); - if (!rawText.startsWith("MEBKM:")) { - return null; - } - String title = matchSingleDoCoMoPrefixedField("TITLE:", rawText, true); - String[] rawUri = matchDoCoMoPrefixedField("URL:", rawText, true); - if (rawUri == null) { - return null; - } - String uri = rawUri[0]; - return URIResultParser.isBasicallyValidURI(uri) ? new URIParsedResult(uri, title) : null; - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/CalendarParsedResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/CalendarParsedResult.java deleted file mode 100755 index 48b92a6b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/CalendarParsedResult.java +++ /dev/null @@ -1,246 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; -import java.util.GregorianCalendar; -import java.util.Locale; -import java.util.TimeZone; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * @author Sean Owen - */ -public final class CalendarParsedResult extends ParsedResult { - - private static final Pattern RFC2445_DURATION = - Pattern.compile("P(?:(\\d+)W)?(?:(\\d+)D)?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+)S)?)?"); - private static final long[] RFC2445_DURATION_FIELD_UNITS = { - 7 * 24 * 60 * 60 * 1000L, // 1 week - 24 * 60 * 60 * 1000L, // 1 day - 60 * 60 * 1000L, // 1 hour - 60 * 1000L, // 1 minute - 1000L, // 1 second - }; - - private static final Pattern DATE_TIME = Pattern.compile("[0-9]{8}(T[0-9]{6}Z?)?"); - - private final String summary; - private final Date start; - private final boolean startAllDay; - private final Date end; - private final boolean endAllDay; - private final String location; - private final String organizer; - private final String[] attendees; - private final String description; - private final double latitude; - private final double longitude; - - public CalendarParsedResult(String summary, - String startString, - String endString, - String durationString, - String location, - String organizer, - String[] attendees, - String description, - double latitude, - double longitude) { - super(ParsedResultType.CALENDAR); - this.summary = summary; - - try { - this.start = parseDate(startString); - } catch (ParseException pe) { - throw new IllegalArgumentException(pe.toString()); - } - - if (endString == null) { - long durationMS = parseDurationMS(durationString); - end = durationMS < 0L ? null : new Date(start.getTime() + durationMS); - } else { - try { - this.end = parseDate(endString); - } catch (ParseException pe) { - throw new IllegalArgumentException(pe.toString()); - } - } - - this.startAllDay = startString.length() == 8; - this.endAllDay = endString != null && endString.length() == 8; - - this.location = location; - this.organizer = organizer; - this.attendees = attendees; - this.description = description; - this.latitude = latitude; - this.longitude = longitude; - } - - public String getSummary() { - return summary; - } - - /** - * @return start time - */ - public Date getStart() { - return start; - } - - /** - * @return true if start time was specified as a whole day - */ - public boolean isStartAllDay() { - return startAllDay; - } - - /** - * @return event end {@link Date}, or {@code null} if event has no duration - * @see #getStart() - */ - public Date getEnd() { - return end; - } - - /** - * @return true if end time was specified as a whole day - */ - public boolean isEndAllDay() { - return endAllDay; - } - - public String getLocation() { - return location; - } - - public String getOrganizer() { - return organizer; - } - - public String[] getAttendees() { - return attendees; - } - - public String getDescription() { - return description; - } - - public double getLatitude() { - return latitude; - } - - public double getLongitude() { - return longitude; - } - - @Override - public String getDisplayResult() { - StringBuilder result = new StringBuilder(100); - maybeAppend(summary, result); - maybeAppend(format(startAllDay, start), result); - maybeAppend(format(endAllDay, end), result); - maybeAppend(location, result); - maybeAppend(organizer, result); - maybeAppend(attendees, result); - maybeAppend(description, result); - return result.toString(); - } - - /** - * Parses a string as a date. RFC 2445 allows the start and end fields to be of type DATE (e.g. 20081021) - * or DATE-TIME (e.g. 20081021T123000 for local time, or 20081021T123000Z for UTC). - * - * @param when The string to parse - * @throws ParseException if not able to parse as a date - */ - private static Date parseDate(String when) throws ParseException { - if (!DATE_TIME.matcher(when).matches()) { - throw new ParseException(when, 0); - } - if (when.length() == 8) { - // Show only year/month/day - return buildDateFormat().parse(when); - } else { - // The when string can be local time, or UTC if it ends with a Z - Date date; - if (when.length() == 16 && when.charAt(15) == 'Z') { - date = buildDateTimeFormat().parse(when.substring(0, 15)); - Calendar calendar = new GregorianCalendar(); - long milliseconds = date.getTime(); - // Account for time zone difference - milliseconds += calendar.get(Calendar.ZONE_OFFSET); - // Might need to correct for daylight savings time, but use target time since - // now might be in DST but not then, or vice versa - calendar.setTime(new Date(milliseconds)); - milliseconds += calendar.get(Calendar.DST_OFFSET); - date = new Date(milliseconds); - } else { - date = buildDateTimeFormat().parse(when); - } - return date; - } - } - - private static String format(boolean allDay, Date date) { - if (date == null) { - return null; - } - DateFormat format = allDay - ? DateFormat.getDateInstance(DateFormat.MEDIUM) - : DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM); - return format.format(date); - } - - private static long parseDurationMS(CharSequence durationString) { - if (durationString == null) { - return -1L; - } - Matcher m = RFC2445_DURATION.matcher(durationString); - if (!m.matches()) { - return -1L; - } - long durationMS = 0L; - for (int i = 0; i < RFC2445_DURATION_FIELD_UNITS.length; i++) { - String fieldValue = m.group(i + 1); - if (fieldValue != null) { - durationMS += RFC2445_DURATION_FIELD_UNITS[i] * Integer.parseInt(fieldValue); - } - } - return durationMS; - } - - private static DateFormat buildDateFormat() { - DateFormat format = new SimpleDateFormat("yyyyMMdd", Locale.ENGLISH); - // For dates without a time, for purposes of interacting with Android, the resulting timestamp - // needs to be midnight of that day in GMT. See: - // http://code.google.com/p/android/issues/detail?id=8330 - format.setTimeZone(TimeZone.getTimeZone("GMT")); - return format; - } - - private static DateFormat buildDateTimeFormat() { - return new SimpleDateFormat("yyyyMMdd'T'HHmmss", Locale.ENGLISH); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/EmailAddressParsedResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/EmailAddressParsedResult.java deleted file mode 100755 index 06c4075a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/EmailAddressParsedResult.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -/** - * @author Sean Owen - */ -public final class EmailAddressParsedResult extends ParsedResult { - - private final String[] tos; - private final String[] ccs; - private final String[] bccs; - private final String subject; - private final String body; - - EmailAddressParsedResult(String to) { - this(new String[] {to}, null, null, null, null); - } - - EmailAddressParsedResult(String[] tos, - String[] ccs, - String[] bccs, - String subject, - String body) { - super(ParsedResultType.EMAIL_ADDRESS); - this.tos = tos; - this.ccs = ccs; - this.bccs = bccs; - this.subject = subject; - this.body = body; - } - - /** - * @return first elements of {@link #getTos()} or {@code null} if none - * @deprecated use {@link #getTos()} - */ - @Deprecated - public String getEmailAddress() { - return tos == null || tos.length == 0 ? null : tos[0]; - } - - public String[] getTos() { - return tos; - } - - public String[] getCCs() { - return ccs; - } - - public String[] getBCCs() { - return bccs; - } - - public String getSubject() { - return subject; - } - - public String getBody() { - return body; - } - - /** - * @return "mailto:" - * @deprecated without replacement - */ - @Deprecated - public String getMailtoURI() { - return "mailto:"; - } - - @Override - public String getDisplayResult() { - StringBuilder result = new StringBuilder(30); - maybeAppend(tos, result); - maybeAppend(ccs, result); - maybeAppend(bccs, result); - maybeAppend(subject, result); - maybeAppend(body, result); - return result.toString(); - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/EmailAddressResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/EmailAddressResultParser.java deleted file mode 100755 index 3034bc89..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/EmailAddressResultParser.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import java.util.Map; -import java.util.regex.Pattern; - -import com.google.zxing.Result; - -/** - * Represents a result that encodes an e-mail address, either as a plain address - * like "joe@example.org" or a mailto: URL like "mailto:joe@example.org". - * - * @author Sean Owen - */ -public final class EmailAddressResultParser extends ResultParser { - - private static final Pattern COMMA = Pattern.compile(","); - - @Override - public EmailAddressParsedResult parse(Result result) { - String rawText = getMassagedText(result); - if (rawText.startsWith("mailto:") || rawText.startsWith("MAILTO:")) { - // If it starts with mailto:, assume it is definitely trying to be an email address - String hostEmail = rawText.substring(7); - int queryStart = hostEmail.indexOf('?'); - if (queryStart >= 0) { - hostEmail = hostEmail.substring(0, queryStart); - } - try { - hostEmail = urlDecode(hostEmail); - } catch (IllegalArgumentException iae) { - return null; - } - String[] tos = null; - if (!hostEmail.isEmpty()) { - tos = COMMA.split(hostEmail); - } - Map<String,String> nameValues = parseNameValuePairs(rawText); - String[] ccs = null; - String[] bccs = null; - String subject = null; - String body = null; - if (nameValues != null) { - if (tos == null) { - String tosString = nameValues.get("to"); - if (tosString != null) { - tos = COMMA.split(tosString); - } - } - String ccString = nameValues.get("cc"); - if (ccString != null) { - ccs = COMMA.split(ccString); - } - String bccString = nameValues.get("bcc"); - if (bccString != null) { - bccs = COMMA.split(bccString); - } - subject = nameValues.get("subject"); - body = nameValues.get("body"); - } - return new EmailAddressParsedResult(tos, ccs, bccs, subject, body); - } else { - if (!EmailDoCoMoResultParser.isBasicallyValidEmailAddress(rawText)) { - return null; - } - return new EmailAddressParsedResult(rawText); - } - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/EmailDoCoMoResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/EmailDoCoMoResultParser.java deleted file mode 100755 index 9574edb8..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/EmailDoCoMoResultParser.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import java.util.regex.Pattern; - -import com.google.zxing.Result; - -/** - * Implements the "MATMSG" email message entry format. - * - * Supported keys: TO, SUB, BODY - * - * @author Sean Owen - */ -public final class EmailDoCoMoResultParser extends AbstractDoCoMoResultParser { - - private static final Pattern ATEXT_ALPHANUMERIC = Pattern.compile("[a-zA-Z0-9@.!#$%&'*+\\-/=?^_`{|}~]+"); - - @Override - public EmailAddressParsedResult parse(Result result) { - String rawText = getMassagedText(result); - if (!rawText.startsWith("MATMSG:")) { - return null; - } - String[] tos = matchDoCoMoPrefixedField("TO:", rawText, true); - if (tos == null) { - return null; - } - for (String to : tos) { - if (!isBasicallyValidEmailAddress(to)) { - return null; - } - } - String subject = matchSingleDoCoMoPrefixedField("SUB:", rawText, false); - String body = matchSingleDoCoMoPrefixedField("BODY:", rawText, false); - return new EmailAddressParsedResult(tos, null, null, subject, body); - } - - /** - * This implements only the most basic checking for an email address's validity -- that it contains - * an '@' and contains no characters disallowed by RFC 2822. This is an overly lenient definition of - * validity. We want to generally be lenient here since this class is only intended to encapsulate what's - * in a barcode, not "judge" it. - */ - static boolean isBasicallyValidEmailAddress(String email) { - return email != null && ATEXT_ALPHANUMERIC.matcher(email).matches() && email.indexOf('@') >= 0; - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ExpandedProductParsedResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ExpandedProductParsedResult.java deleted file mode 100755 index 6053100d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ExpandedProductParsedResult.java +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.client.result; - -import java.util.Map; - -/** - * @author Antonio Manuel Benjumea Conde, Servinform, S.A. - * @author Agustín Delgado, Servinform, S.A. - */ -public final class ExpandedProductParsedResult extends ParsedResult { - - public static final String KILOGRAM = "KG"; - public static final String POUND = "LB"; - - private final String rawText; - private final String productID; - private final String sscc; - private final String lotNumber; - private final String productionDate; - private final String packagingDate; - private final String bestBeforeDate; - private final String expirationDate; - private final String weight; - private final String weightType; - private final String weightIncrement; - private final String price; - private final String priceIncrement; - private final String priceCurrency; - // For AIS that not exist in this object - private final Map<String,String> uncommonAIs; - - public ExpandedProductParsedResult(String rawText, - String productID, - String sscc, - String lotNumber, - String productionDate, - String packagingDate, - String bestBeforeDate, - String expirationDate, - String weight, - String weightType, - String weightIncrement, - String price, - String priceIncrement, - String priceCurrency, - Map<String,String> uncommonAIs) { - super(ParsedResultType.PRODUCT); - this.rawText = rawText; - this.productID = productID; - this.sscc = sscc; - this.lotNumber = lotNumber; - this.productionDate = productionDate; - this.packagingDate = packagingDate; - this.bestBeforeDate = bestBeforeDate; - this.expirationDate = expirationDate; - this.weight = weight; - this.weightType = weightType; - this.weightIncrement = weightIncrement; - this.price = price; - this.priceIncrement = priceIncrement; - this.priceCurrency = priceCurrency; - this.uncommonAIs = uncommonAIs; - } - - @Override - public boolean equals(Object o){ - if (!(o instanceof ExpandedProductParsedResult)) { - return false; - } - - ExpandedProductParsedResult other = (ExpandedProductParsedResult)o; - - return equalsOrNull(productID, other.productID) - && equalsOrNull(sscc, other.sscc) - && equalsOrNull(lotNumber, other.lotNumber) - && equalsOrNull(productionDate, other.productionDate) - && equalsOrNull(bestBeforeDate, other.bestBeforeDate) - && equalsOrNull(expirationDate, other.expirationDate) - && equalsOrNull(weight, other.weight) - && equalsOrNull(weightType, other.weightType) - && equalsOrNull(weightIncrement, other.weightIncrement) - && equalsOrNull(price, other.price) - && equalsOrNull(priceIncrement, other.priceIncrement) - && equalsOrNull(priceCurrency, other.priceCurrency) - && equalsOrNull(uncommonAIs, other.uncommonAIs); - } - - private static boolean equalsOrNull(Object o1, Object o2) { - return o1 == null ? o2 == null : o1.equals(o2); - } - - @Override - public int hashCode(){ - int hash = 0; - hash ^= hashNotNull(productID); - hash ^= hashNotNull(sscc); - hash ^= hashNotNull(lotNumber); - hash ^= hashNotNull(productionDate); - hash ^= hashNotNull(bestBeforeDate); - hash ^= hashNotNull(expirationDate); - hash ^= hashNotNull(weight); - hash ^= hashNotNull(weightType); - hash ^= hashNotNull(weightIncrement); - hash ^= hashNotNull(price); - hash ^= hashNotNull(priceIncrement); - hash ^= hashNotNull(priceCurrency); - hash ^= hashNotNull(uncommonAIs); - return hash; - } - - private static int hashNotNull(Object o) { - return o == null ? 0 : o.hashCode(); - } - - public String getRawText() { - return rawText; - } - - public String getProductID() { - return productID; - } - - public String getSscc() { - return sscc; - } - - public String getLotNumber() { - return lotNumber; - } - - public String getProductionDate() { - return productionDate; - } - - public String getPackagingDate() { - return packagingDate; - } - - public String getBestBeforeDate() { - return bestBeforeDate; - } - - public String getExpirationDate() { - return expirationDate; - } - - public String getWeight() { - return weight; - } - - public String getWeightType() { - return weightType; - } - - public String getWeightIncrement() { - return weightIncrement; - } - - public String getPrice() { - return price; - } - - public String getPriceIncrement() { - return priceIncrement; - } - - public String getPriceCurrency() { - return priceCurrency; - } - - public Map<String,String> getUncommonAIs() { - return uncommonAIs; - } - - @Override - public String getDisplayResult() { - return String.valueOf(rawText); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ExpandedProductResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ExpandedProductResultParser.java deleted file mode 100755 index a64aec27..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ExpandedProductResultParser.java +++ /dev/null @@ -1,218 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.client.result; - -import java.util.HashMap; -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.Result; - -/** - * Parses strings of digits that represent a RSS Extended code. - * - * @author Antonio Manuel Benjumea Conde, Servinform, S.A. - * @author Agustín Delgado, Servinform, S.A. - */ -public final class ExpandedProductResultParser extends ResultParser { - - @Override - public ExpandedProductParsedResult parse(Result result) { - BarcodeFormat format = result.getBarcodeFormat(); - if (format != BarcodeFormat.RSS_EXPANDED) { - // ExtendedProductParsedResult NOT created. Not a RSS Expanded barcode - return null; - } - String rawText = getMassagedText(result); - - String productID = null; - String sscc = null; - String lotNumber = null; - String productionDate = null; - String packagingDate = null; - String bestBeforeDate = null; - String expirationDate = null; - String weight = null; - String weightType = null; - String weightIncrement = null; - String price = null; - String priceIncrement = null; - String priceCurrency = null; - Map<String,String> uncommonAIs = new HashMap<>(); - - int i = 0; - - while (i < rawText.length()) { - String ai = findAIvalue(i, rawText); - if (ai == null) { - // Error. Code doesn't match with RSS expanded pattern - // ExtendedProductParsedResult NOT created. Not match with RSS Expanded pattern - return null; - } - i += ai.length() + 2; - String value = findValue(i, rawText); - i += value.length(); - - switch (ai) { - case "00": - sscc = value; - break; - case "01": - productID = value; - break; - case "10": - lotNumber = value; - break; - case "11": - productionDate = value; - break; - case "13": - packagingDate = value; - break; - case "15": - bestBeforeDate = value; - break; - case "17": - expirationDate = value; - break; - case "3100": - case "3101": - case "3102": - case "3103": - case "3104": - case "3105": - case "3106": - case "3107": - case "3108": - case "3109": - weight = value; - weightType = ExpandedProductParsedResult.KILOGRAM; - weightIncrement = ai.substring(3); - break; - case "3200": - case "3201": - case "3202": - case "3203": - case "3204": - case "3205": - case "3206": - case "3207": - case "3208": - case "3209": - weight = value; - weightType = ExpandedProductParsedResult.POUND; - weightIncrement = ai.substring(3); - break; - case "3920": - case "3921": - case "3922": - case "3923": - price = value; - priceIncrement = ai.substring(3); - break; - case "3930": - case "3931": - case "3932": - case "3933": - if (value.length() < 4) { - // The value must have more of 3 symbols (3 for currency and - // 1 at least for the price) - // ExtendedProductParsedResult NOT created. Not match with RSS Expanded pattern - return null; - } - price = value.substring(3); - priceCurrency = value.substring(0, 3); - priceIncrement = ai.substring(3); - break; - default: - // No match with common AIs - uncommonAIs.put(ai, value); - break; - } - } - - return new ExpandedProductParsedResult(rawText, - productID, - sscc, - lotNumber, - productionDate, - packagingDate, - bestBeforeDate, - expirationDate, - weight, - weightType, - weightIncrement, - price, - priceIncrement, - priceCurrency, - uncommonAIs); - } - - private static String findAIvalue(int i, String rawText) { - char c = rawText.charAt(i); - // First character must be a open parenthesis.If not, ERROR - if (c != '(') { - return null; - } - - CharSequence rawTextAux = rawText.substring(i + 1); - - StringBuilder buf = new StringBuilder(); - for (int index = 0; index < rawTextAux.length(); index++) { - char currentChar = rawTextAux.charAt(index); - if (currentChar == ')') { - return buf.toString(); - } else if (currentChar >= '0' && currentChar <= '9') { - buf.append(currentChar); - } else { - return null; - } - } - return buf.toString(); - } - - private static String findValue(int i, String rawText) { - StringBuilder buf = new StringBuilder(); - String rawTextAux = rawText.substring(i); - - for (int index = 0; index < rawTextAux.length(); index++) { - char c = rawTextAux.charAt(index); - if (c == '(') { - // We look for a new AI. If it doesn't exist (ERROR), we coninue - // with the iteration - if (findAIvalue(index, rawTextAux) == null) { - buf.append('('); - } else { - break; - } - } else { - buf.append(c); - } - } - return buf.toString(); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/GeoParsedResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/GeoParsedResult.java deleted file mode 100755 index 6eaad1eb..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/GeoParsedResult.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -/** - * @author Sean Owen - */ -public final class GeoParsedResult extends ParsedResult { - - private final double latitude; - private final double longitude; - private final double altitude; - private final String query; - - GeoParsedResult(double latitude, double longitude, double altitude, String query) { - super(ParsedResultType.GEO); - this.latitude = latitude; - this.longitude = longitude; - this.altitude = altitude; - this.query = query; - } - - public String getGeoURI() { - StringBuilder result = new StringBuilder(); - result.append("geo:"); - result.append(latitude); - result.append(','); - result.append(longitude); - if (altitude > 0) { - result.append(','); - result.append(altitude); - } - if (query != null) { - result.append('?'); - result.append(query); - } - return result.toString(); - } - - /** - * @return latitude in degrees - */ - public double getLatitude() { - return latitude; - } - - /** - * @return longitude in degrees - */ - public double getLongitude() { - return longitude; - } - - /** - * @return altitude in meters. If not specified, in the geo URI, returns 0.0 - */ - public double getAltitude() { - return altitude; - } - - /** - * @return query string associated with geo URI or null if none exists - */ - public String getQuery() { - return query; - } - - @Override - public String getDisplayResult() { - StringBuilder result = new StringBuilder(20); - result.append(latitude); - result.append(", "); - result.append(longitude); - if (altitude > 0.0) { - result.append(", "); - result.append(altitude); - result.append('m'); - } - if (query != null) { - result.append(" ("); - result.append(query); - result.append(')'); - } - return result.toString(); - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/GeoResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/GeoResultParser.java deleted file mode 100755 index 90076784..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/GeoResultParser.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import com.google.zxing.Result; - -/** - * Parses a "geo:" URI result, which specifies a location on the surface of - * the Earth as well as an optional altitude above the surface. See - * <a href="http://tools.ietf.org/html/draft-mayrhofer-geo-uri-00"> - * http://tools.ietf.org/html/draft-mayrhofer-geo-uri-00</a>. - * - * @author Sean Owen - */ -public final class GeoResultParser extends ResultParser { - - private static final Pattern GEO_URL_PATTERN = - Pattern.compile("geo:([\\-0-9.]+),([\\-0-9.]+)(?:,([\\-0-9.]+))?(?:\\?(.*))?", Pattern.CASE_INSENSITIVE); - - @Override - public GeoParsedResult parse(Result result) { - CharSequence rawText = getMassagedText(result); - Matcher matcher = GEO_URL_PATTERN.matcher(rawText); - if (!matcher.matches()) { - return null; - } - - String query = matcher.group(4); - - double latitude; - double longitude; - double altitude; - try { - latitude = Double.parseDouble(matcher.group(1)); - if (latitude > 90.0 || latitude < -90.0) { - return null; - } - longitude = Double.parseDouble(matcher.group(2)); - if (longitude > 180.0 || longitude < -180.0) { - return null; - } - if (matcher.group(3) == null) { - altitude = 0.0; - } else { - altitude = Double.parseDouble(matcher.group(3)); - if (altitude < 0.0) { - return null; - } - } - } catch (NumberFormatException ignored) { - return null; - } - return new GeoParsedResult(latitude, longitude, altitude, query); - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ISBNParsedResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ISBNParsedResult.java deleted file mode 100755 index 51b63ff8..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ISBNParsedResult.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -/** - * @author jbreiden@google.com (Jeff Breidenbach) - */ -public final class ISBNParsedResult extends ParsedResult { - - private final String isbn; - - ISBNParsedResult(String isbn) { - super(ParsedResultType.ISBN); - this.isbn = isbn; - } - - public String getISBN() { - return isbn; - } - - @Override - public String getDisplayResult() { - return isbn; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ISBNResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ISBNResultParser.java deleted file mode 100755 index e957dd02..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ISBNResultParser.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.Result; - -/** - * Parses strings of digits that represent a ISBN. - * - * @author jbreiden@google.com (Jeff Breidenbach) - */ -public final class ISBNResultParser extends ResultParser { - - /** - * See <a href="http://www.bisg.org/isbn-13/for.dummies.html">ISBN-13 For Dummies</a> - */ - @Override - public ISBNParsedResult parse(Result result) { - BarcodeFormat format = result.getBarcodeFormat(); - if (format != BarcodeFormat.EAN_13) { - return null; - } - String rawText = getMassagedText(result); - int length = rawText.length(); - if (length != 13) { - return null; - } - if (!rawText.startsWith("978") && !rawText.startsWith("979")) { - return null; - } - - return new ISBNParsedResult(rawText); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ParsedResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ParsedResult.java deleted file mode 100755 index 17660e2e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ParsedResult.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -/** - * <p>Abstract class representing the result of decoding a barcode, as more than - * a String -- as some type of structured data. This might be a subclass which represents - * a URL, or an e-mail address. {@link ResultParser#parseResult(com.google.zxing.Result)} will turn a raw - * decoded string into the most appropriate type of structured representation.</p> - * - * <p>Thanks to Jeff Griffin for proposing rewrite of these classes that relies less - * on exception-based mechanisms during parsing.</p> - * - * @author Sean Owen - */ -public abstract class ParsedResult { - - private final ParsedResultType type; - - protected ParsedResult(ParsedResultType type) { - this.type = type; - } - - public final ParsedResultType getType() { - return type; - } - - public abstract String getDisplayResult(); - - @Override - public final String toString() { - return getDisplayResult(); - } - - public static void maybeAppend(String value, StringBuilder result) { - if (value != null && !value.isEmpty()) { - // Don't add a newline before the first value - if (result.length() > 0) { - result.append('\n'); - } - result.append(value); - } - } - - public static void maybeAppend(String[] values, StringBuilder result) { - if (values != null) { - for (String value : values) { - maybeAppend(value, result); - } - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ParsedResultType.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ParsedResultType.java deleted file mode 100755 index c74d5459..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ParsedResultType.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -/** - * Represents the type of data encoded by a barcode -- from plain text, to a - * URI, to an e-mail address, etc. - * - * @author Sean Owen - */ -public enum ParsedResultType { - - ADDRESSBOOK, - EMAIL_ADDRESS, - PRODUCT, - URI, - TEXT, - GEO, - TEL, - SMS, - CALENDAR, - WIFI, - ISBN, - VIN, - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ProductParsedResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ProductParsedResult.java deleted file mode 100755 index 95cfad01..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ProductParsedResult.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -/** - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class ProductParsedResult extends ParsedResult { - - private final String productID; - private final String normalizedProductID; - - ProductParsedResult(String productID) { - this(productID, productID); - } - - ProductParsedResult(String productID, String normalizedProductID) { - super(ParsedResultType.PRODUCT); - this.productID = productID; - this.normalizedProductID = normalizedProductID; - } - - public String getProductID() { - return productID; - } - - public String getNormalizedProductID() { - return normalizedProductID; - } - - @Override - public String getDisplayResult() { - return productID; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ProductResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ProductResultParser.java deleted file mode 100755 index bed1a7dc..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ProductResultParser.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.Result; -import com.google.zxing.oned.UPCEReader; - -/** - * Parses strings of digits that represent a UPC code. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class ProductResultParser extends ResultParser { - - // Treat all UPC and EAN variants as UPCs, in the sense that they are all product barcodes. - @Override - public ProductParsedResult parse(Result result) { - BarcodeFormat format = result.getBarcodeFormat(); - if (!(format == BarcodeFormat.UPC_A || format == BarcodeFormat.UPC_E || - format == BarcodeFormat.EAN_8 || format == BarcodeFormat.EAN_13)) { - return null; - } - String rawText = getMassagedText(result); - if (!isStringOfDigits(rawText, rawText.length())) { - return null; - } - // Not actually checking the checksum again here - - String normalizedProductID; - // Expand UPC-E for purposes of searching - if (format == BarcodeFormat.UPC_E && rawText.length() == 8) { - normalizedProductID = UPCEReader.convertUPCEtoUPCA(rawText); - } else { - normalizedProductID = rawText; - } - - return new ProductParsedResult(rawText, normalizedProductID); - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ResultParser.java deleted file mode 100755 index b9e60388..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/ResultParser.java +++ /dev/null @@ -1,259 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.regex.Pattern; - -import com.google.zxing.Result; - -/** - * <p>Abstract class representing the result of decoding a barcode, as more than - * a String -- as some type of structured data. This might be a subclass which represents - * a URL, or an e-mail address. {@link #parseResult(Result)} will turn a raw - * decoded string into the most appropriate type of structured representation.</p> - * - * <p>Thanks to Jeff Griffin for proposing rewrite of these classes that relies less - * on exception-based mechanisms during parsing.</p> - * - * @author Sean Owen - */ -public abstract class ResultParser { - - private static final ResultParser[] PARSERS = { - new BookmarkDoCoMoResultParser(), - new AddressBookDoCoMoResultParser(), - new EmailDoCoMoResultParser(), - new AddressBookAUResultParser(), - new VCardResultParser(), - new BizcardResultParser(), - new VEventResultParser(), - new EmailAddressResultParser(), - new SMTPResultParser(), - new TelResultParser(), - new SMSMMSResultParser(), - new SMSTOMMSTOResultParser(), - new GeoResultParser(), - new WifiResultParser(), - new URLTOResultParser(), - new URIResultParser(), - new ISBNResultParser(), - new ProductResultParser(), - new ExpandedProductResultParser(), - new VINResultParser(), - }; - - private static final Pattern DIGITS = Pattern.compile("\\d+"); - private static final Pattern AMPERSAND = Pattern.compile("&"); - private static final Pattern EQUALS = Pattern.compile("="); - private static final String BYTE_ORDER_MARK = "\ufeff"; - - /** - * Attempts to parse the raw {@link Result}'s contents as a particular type - * of information (email, URL, etc.) and return a {@link ParsedResult} encapsulating - * the result of parsing. - * - * @param theResult the raw {@link Result} to parse - * @return {@link ParsedResult} encapsulating the parsing result - */ - public abstract ParsedResult parse(Result theResult); - - protected static String getMassagedText(Result result) { - String text = result.getText(); - if (text.startsWith(BYTE_ORDER_MARK)) { - text = text.substring(1); - } - return text; - } - - public static ParsedResult parseResult(Result theResult) { - for (ResultParser parser : PARSERS) { - ParsedResult result = parser.parse(theResult); - if (result != null) { - return result; - } - } - return new TextParsedResult(theResult.getText(), null); - } - - protected static void maybeAppend(String value, StringBuilder result) { - if (value != null) { - result.append('\n'); - result.append(value); - } - } - - protected static void maybeAppend(String[] value, StringBuilder result) { - if (value != null) { - for (String s : value) { - result.append('\n'); - result.append(s); - } - } - } - - protected static String[] maybeWrap(String value) { - return value == null ? null : new String[] { value }; - } - - protected static String unescapeBackslash(String escaped) { - int backslash = escaped.indexOf('\\'); - if (backslash < 0) { - return escaped; - } - int max = escaped.length(); - StringBuilder unescaped = new StringBuilder(max - 1); - unescaped.append(escaped.toCharArray(), 0, backslash); - boolean nextIsEscaped = false; - for (int i = backslash; i < max; i++) { - char c = escaped.charAt(i); - if (nextIsEscaped || c != '\\') { - unescaped.append(c); - nextIsEscaped = false; - } else { - nextIsEscaped = true; - } - } - return unescaped.toString(); - } - - protected static int parseHexDigit(char c) { - if (c >= '0' && c <= '9') { - return c - '0'; - } - if (c >= 'a' && c <= 'f') { - return 10 + (c - 'a'); - } - if (c >= 'A' && c <= 'F') { - return 10 + (c - 'A'); - } - return -1; - } - - protected static boolean isStringOfDigits(CharSequence value, int length) { - return value != null && length > 0 && length == value.length() && DIGITS.matcher(value).matches(); - } - - protected static boolean isSubstringOfDigits(CharSequence value, int offset, int length) { - if (value == null || length <= 0) { - return false; - } - int max = offset + length; - return value.length() >= max && DIGITS.matcher(value.subSequence(offset, max)).matches(); - } - - static Map<String,String> parseNameValuePairs(String uri) { - int paramStart = uri.indexOf('?'); - if (paramStart < 0) { - return null; - } - Map<String,String> result = new HashMap<>(3); - for (String keyValue : AMPERSAND.split(uri.substring(paramStart + 1))) { - appendKeyValue(keyValue, result); - } - return result; - } - - private static void appendKeyValue(CharSequence keyValue, Map<String,String> result) { - String[] keyValueTokens = EQUALS.split(keyValue, 2); - if (keyValueTokens.length == 2) { - String key = keyValueTokens[0]; - String value = keyValueTokens[1]; - try { - value = urlDecode(value); - result.put(key, value); - } catch (IllegalArgumentException iae) { - // continue; invalid data such as an escape like %0t - } - } - } - - static String urlDecode(String encoded) { - try { - return URLDecoder.decode(encoded, "UTF-8"); - } catch (UnsupportedEncodingException uee) { - throw new IllegalStateException(uee); // can't happen - } - } - - static String[] matchPrefixedField(String prefix, String rawText, char endChar, boolean trim) { - List<String> matches = null; - int i = 0; - int max = rawText.length(); - while (i < max) { - i = rawText.indexOf(prefix, i); - if (i < 0) { - break; - } - i += prefix.length(); // Skip past this prefix we found to start - int start = i; // Found the start of a match here - boolean more = true; - while (more) { - i = rawText.indexOf(endChar, i); - if (i < 0) { - // No terminating end character? uh, done. Set i such that loop terminates and break - i = rawText.length(); - more = false; - } else if (countPrecedingBackslashes(rawText, i) % 2 != 0) { - // semicolon was escaped (odd count of preceding backslashes) so continue - i++; - } else { - // found a match - if (matches == null) { - matches = new ArrayList<>(3); // lazy init - } - String element = unescapeBackslash(rawText.substring(start, i)); - if (trim) { - element = element.trim(); - } - if (!element.isEmpty()) { - matches.add(element); - } - i++; - more = false; - } - } - } - if (matches == null || matches.isEmpty()) { - return null; - } - return matches.toArray(new String[matches.size()]); - } - - private static int countPrecedingBackslashes(CharSequence s, int pos) { - int count = 0; - for (int i = pos - 1; i >= 0; i--) { - if (s.charAt(i) == '\\') { - count++; - } else { - break; - } - } - return count; - } - - static String matchSinglePrefixedField(String prefix, String rawText, char endChar, boolean trim) { - String[] matches = matchPrefixedField(prefix, rawText, endChar, trim); - return matches == null ? null : matches[0]; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/SMSMMSResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/SMSMMSResultParser.java deleted file mode 100755 index 49252c76..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/SMSMMSResultParser.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; - -import com.google.zxing.Result; - -/** - * <p>Parses an "sms:" URI result, which specifies a number to SMS. - * See <a href="http://tools.ietf.org/html/rfc5724"> RFC 5724</a> on this.</p> - * - * <p>This class supports "via" syntax for numbers, which is not part of the spec. - * For example "+12125551212;via=+12124440101" may appear as a number. - * It also supports a "subject" query parameter, which is not mentioned in the spec. - * These are included since they were mentioned in earlier IETF drafts and might be - * used.</p> - * - * <p>This actually also parses URIs starting with "mms:" and treats them all the same way, - * and effectively converts them to an "sms:" URI for purposes of forwarding to the platform.</p> - * - * @author Sean Owen - */ -public final class SMSMMSResultParser extends ResultParser { - - @Override - public SMSParsedResult parse(Result result) { - String rawText = getMassagedText(result); - if (!(rawText.startsWith("sms:") || rawText.startsWith("SMS:") || - rawText.startsWith("mms:") || rawText.startsWith("MMS:"))) { - return null; - } - - // Check up front if this is a URI syntax string with query arguments - Map<String,String> nameValuePairs = parseNameValuePairs(rawText); - String subject = null; - String body = null; - boolean querySyntax = false; - if (nameValuePairs != null && !nameValuePairs.isEmpty()) { - subject = nameValuePairs.get("subject"); - body = nameValuePairs.get("body"); - querySyntax = true; - } - - // Drop sms, query portion - int queryStart = rawText.indexOf('?', 4); - String smsURIWithoutQuery; - // If it's not query syntax, the question mark is part of the subject or message - if (queryStart < 0 || !querySyntax) { - smsURIWithoutQuery = rawText.substring(4); - } else { - smsURIWithoutQuery = rawText.substring(4, queryStart); - } - - int lastComma = -1; - int comma; - List<String> numbers = new ArrayList<>(1); - List<String> vias = new ArrayList<>(1); - while ((comma = smsURIWithoutQuery.indexOf(',', lastComma + 1)) > lastComma) { - String numberPart = smsURIWithoutQuery.substring(lastComma + 1, comma); - addNumberVia(numbers, vias, numberPart); - lastComma = comma; - } - addNumberVia(numbers, vias, smsURIWithoutQuery.substring(lastComma + 1)); - - return new SMSParsedResult(numbers.toArray(new String[numbers.size()]), - vias.toArray(new String[vias.size()]), - subject, - body); - } - - private static void addNumberVia(Collection<String> numbers, - Collection<String> vias, - String numberPart) { - int numberEnd = numberPart.indexOf(';'); - if (numberEnd < 0) { - numbers.add(numberPart); - vias.add(null); - } else { - numbers.add(numberPart.substring(0, numberEnd)); - String maybeVia = numberPart.substring(numberEnd + 1); - String via; - if (maybeVia.startsWith("via=")) { - via = maybeVia.substring(4); - } else { - via = null; - } - vias.add(via); - } - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/SMSParsedResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/SMSParsedResult.java deleted file mode 100755 index 69c806c8..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/SMSParsedResult.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -/** - * @author Sean Owen - */ -public final class SMSParsedResult extends ParsedResult { - - private final String[] numbers; - private final String[] vias; - private final String subject; - private final String body; - - public SMSParsedResult(String number, - String via, - String subject, - String body) { - super(ParsedResultType.SMS); - this.numbers = new String[] {number}; - this.vias = new String[] {via}; - this.subject = subject; - this.body = body; - } - - public SMSParsedResult(String[] numbers, - String[] vias, - String subject, - String body) { - super(ParsedResultType.SMS); - this.numbers = numbers; - this.vias = vias; - this.subject = subject; - this.body = body; - } - - public String getSMSURI() { - StringBuilder result = new StringBuilder(); - result.append("sms:"); - boolean first = true; - for (int i = 0; i < numbers.length; i++) { - if (first) { - first = false; - } else { - result.append(','); - } - result.append(numbers[i]); - if (vias != null && vias[i] != null) { - result.append(";via="); - result.append(vias[i]); - } - } - boolean hasBody = body != null; - boolean hasSubject = subject != null; - if (hasBody || hasSubject) { - result.append('?'); - if (hasBody) { - result.append("body="); - result.append(body); - } - if (hasSubject) { - if (hasBody) { - result.append('&'); - } - result.append("subject="); - result.append(subject); - } - } - return result.toString(); - } - - public String[] getNumbers() { - return numbers; - } - - public String[] getVias() { - return vias; - } - - public String getSubject() { - return subject; - } - - public String getBody() { - return body; - } - - @Override - public String getDisplayResult() { - StringBuilder result = new StringBuilder(100); - maybeAppend(numbers, result); - maybeAppend(subject, result); - maybeAppend(body, result); - return result.toString(); - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/SMSTOMMSTOResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/SMSTOMMSTOResultParser.java deleted file mode 100755 index 07605658..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/SMSTOMMSTOResultParser.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import com.google.zxing.Result; - -/** - * <p>Parses an "smsto:" URI result, whose format is not standardized but appears to be like: - * {@code smsto:number(:body)}.</p> - * - * <p>This actually also parses URIs starting with "smsto:", "mmsto:", "SMSTO:", and - * "MMSTO:", and treats them all the same way, and effectively converts them to an "sms:" URI - * for purposes of forwarding to the platform.</p> - * - * @author Sean Owen - */ -public final class SMSTOMMSTOResultParser extends ResultParser { - - @Override - public SMSParsedResult parse(Result result) { - String rawText = getMassagedText(result); - if (!(rawText.startsWith("smsto:") || rawText.startsWith("SMSTO:") || - rawText.startsWith("mmsto:") || rawText.startsWith("MMSTO:"))) { - return null; - } - // Thanks to dominik.wild for suggesting this enhancement to support - // smsto:number:body URIs - String number = rawText.substring(6); - String body = null; - int bodyStart = number.indexOf(':'); - if (bodyStart >= 0) { - body = number.substring(bodyStart + 1); - number = number.substring(0, bodyStart); - } - return new SMSParsedResult(number, null, null, body); - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/SMTPResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/SMTPResultParser.java deleted file mode 100755 index 3279cebc..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/SMTPResultParser.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import com.google.zxing.Result; - -/** - * <p>Parses an "smtp:" URI result, whose format is not standardized but appears to be like: - * {@code smtp[:subject[:body]]}.</p> - * - * @author Sean Owen - */ -public final class SMTPResultParser extends ResultParser { - - @Override - public EmailAddressParsedResult parse(Result result) { - String rawText = getMassagedText(result); - if (!(rawText.startsWith("smtp:") || rawText.startsWith("SMTP:"))) { - return null; - } - String emailAddress = rawText.substring(5); - String subject = null; - String body = null; - int colon = emailAddress.indexOf(':'); - if (colon >= 0) { - subject = emailAddress.substring(colon + 1); - emailAddress = emailAddress.substring(0, colon); - colon = subject.indexOf(':'); - if (colon >= 0) { - body = subject.substring(colon + 1); - subject = subject.substring(0, colon); - } - } - return new EmailAddressParsedResult(new String[] {emailAddress}, - null, - null, - subject, - body); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/TelParsedResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/TelParsedResult.java deleted file mode 100755 index 8b6c6f87..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/TelParsedResult.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -/** - * @author Sean Owen - */ -public final class TelParsedResult extends ParsedResult { - - private final String number; - private final String telURI; - private final String title; - - public TelParsedResult(String number, String telURI, String title) { - super(ParsedResultType.TEL); - this.number = number; - this.telURI = telURI; - this.title = title; - } - - public String getNumber() { - return number; - } - - public String getTelURI() { - return telURI; - } - - public String getTitle() { - return title; - } - - @Override - public String getDisplayResult() { - StringBuilder result = new StringBuilder(20); - maybeAppend(number, result); - maybeAppend(title, result); - return result.toString(); - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/TelResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/TelResultParser.java deleted file mode 100755 index e4bca1fb..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/TelResultParser.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import com.google.zxing.Result; - -/** - * Parses a "tel:" URI result, which specifies a phone number. - * - * @author Sean Owen - */ -public final class TelResultParser extends ResultParser { - - @Override - public TelParsedResult parse(Result result) { - String rawText = getMassagedText(result); - if (!rawText.startsWith("tel:") && !rawText.startsWith("TEL:")) { - return null; - } - // Normalize "TEL:" to "tel:" - String telURI = rawText.startsWith("TEL:") ? "tel:" + rawText.substring(4) : rawText; - // Drop tel, query portion - int queryStart = rawText.indexOf('?', 4); - String number = queryStart < 0 ? rawText.substring(4) : rawText.substring(4, queryStart); - return new TelParsedResult(number, telURI, null); - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/TextParsedResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/TextParsedResult.java deleted file mode 100755 index 9cc408ec..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/TextParsedResult.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -/** - * A simple result type encapsulating a string that has no further - * interpretation. - * - * @author Sean Owen - */ -public final class TextParsedResult extends ParsedResult { - - private final String text; - private final String language; - - public TextParsedResult(String text, String language) { - super(ParsedResultType.TEXT); - this.text = text; - this.language = language; - } - - public String getText() { - return text; - } - - public String getLanguage() { - return language; - } - - @Override - public String getDisplayResult() { - return text; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/URIParsedResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/URIParsedResult.java deleted file mode 100755 index b360de92..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/URIParsedResult.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import java.util.regex.Pattern; - -/** - * @author Sean Owen - */ -public final class URIParsedResult extends ParsedResult { - - private static final Pattern USER_IN_HOST = Pattern.compile(":/*([^/@]+)@[^/]+"); - - private final String uri; - private final String title; - - public URIParsedResult(String uri, String title) { - super(ParsedResultType.URI); - this.uri = massageURI(uri); - this.title = title; - } - - public String getURI() { - return uri; - } - - public String getTitle() { - return title; - } - - /** - * @return true if the URI contains suspicious patterns that may suggest it intends to - * mislead the user about its true nature. At the moment this looks for the presence - * of user/password syntax in the host/authority portion of a URI which may be used - * in attempts to make the URI's host appear to be other than it is. Example: - * http://yourbank.com@phisher.com This URI connects to phisher.com but may appear - * to connect to yourbank.com at first glance. - */ - public boolean isPossiblyMaliciousURI() { - return USER_IN_HOST.matcher(uri).find(); - } - - @Override - public String getDisplayResult() { - StringBuilder result = new StringBuilder(30); - maybeAppend(title, result); - maybeAppend(uri, result); - return result.toString(); - } - - /** - * Transforms a string that represents a URI into something more proper, by adding or canonicalizing - * the protocol. - */ - private static String massageURI(String uri) { - uri = uri.trim(); - int protocolEnd = uri.indexOf(':'); - if (protocolEnd < 0 || isColonFollowedByPortNumber(uri, protocolEnd)) { - // No protocol, or found a colon, but it looks like it is after the host, so the protocol is still missing, - // so assume http - uri = "http://" + uri; - } - return uri; - } - - private static boolean isColonFollowedByPortNumber(String uri, int protocolEnd) { - int start = protocolEnd + 1; - int nextSlash = uri.indexOf('/', start); - if (nextSlash < 0) { - nextSlash = uri.length(); - } - return ResultParser.isSubstringOfDigits(uri, start, nextSlash - start); - } - - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/URIResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/URIResultParser.java deleted file mode 100755 index ebd2ae4e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/URIResultParser.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import com.google.zxing.Result; - -/** - * Tries to parse results that are a URI of some kind. - * - * @author Sean Owen - */ -public final class URIResultParser extends ResultParser { - - // See http://www.ietf.org/rfc/rfc2396.txt - private static final Pattern URL_WITH_PROTOCOL_PATTERN = Pattern.compile("[a-zA-Z][a-zA-Z0-9+-.]+:"); - private static final Pattern URL_WITHOUT_PROTOCOL_PATTERN = Pattern.compile( - "([a-zA-Z0-9\\-]+\\.)+[a-zA-Z]{2,}" + // host name elements - "(:\\d{1,5})?" + // maybe port - "(/|\\?|$)"); // query, path or nothing - - @Override - public URIParsedResult parse(Result result) { - String rawText = getMassagedText(result); - // We specifically handle the odd "URL" scheme here for simplicity and add "URI" for fun - // Assume anything starting this way really means to be a URI - if (rawText.startsWith("URL:") || rawText.startsWith("URI:")) { - return new URIParsedResult(rawText.substring(4).trim(), null); - } - rawText = rawText.trim(); - return isBasicallyValidURI(rawText) ? new URIParsedResult(rawText, null) : null; - } - - static boolean isBasicallyValidURI(String uri) { - if (uri.contains(" ")) { - // Quick hack check for a common case - return false; - } - Matcher m = URL_WITH_PROTOCOL_PATTERN.matcher(uri); - if (m.find() && m.start() == 0) { // match at start only - return true; - } - m = URL_WITHOUT_PROTOCOL_PATTERN.matcher(uri); - return m.find() && m.start() == 0; - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/URLTOResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/URLTOResultParser.java deleted file mode 100755 index fd259007..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/URLTOResultParser.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import com.google.zxing.Result; - -/** - * Parses the "URLTO" result format, which is of the form "URLTO:[title]:[url]". - * This seems to be used sometimes, but I am not able to find documentation - * on its origin or official format? - * - * @author Sean Owen - */ -public final class URLTOResultParser extends ResultParser { - - @Override - public URIParsedResult parse(Result result) { - String rawText = getMassagedText(result); - if (!rawText.startsWith("urlto:") && !rawText.startsWith("URLTO:")) { - return null; - } - int titleEnd = rawText.indexOf(':', 6); - if (titleEnd < 0) { - return null; - } - String title = titleEnd <= 6 ? null : rawText.substring(6, titleEnd); - String uri = rawText.substring(titleEnd + 1); - return new URIParsedResult(uri, title); - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/VCardResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/VCardResultParser.java deleted file mode 100755 index 1b289b87..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/VCardResultParser.java +++ /dev/null @@ -1,357 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import java.io.ByteArrayOutputStream; -import java.io.UnsupportedEncodingException; -import java.nio.charset.Charset; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import com.google.zxing.Result; - -/** - * Parses contact information formatted according to the VCard (2.1) format. This is not a complete - * implementation but should parse information as commonly encoded in 2D barcodes. - * - * @author Sean Owen - */ -public final class VCardResultParser extends ResultParser { - - private static final Pattern BEGIN_VCARD = Pattern.compile("BEGIN:VCARD", Pattern.CASE_INSENSITIVE); - private static final Pattern VCARD_LIKE_DATE = Pattern.compile("\\d{4}-?\\d{2}-?\\d{2}"); - private static final Pattern CR_LF_SPACE_TAB = Pattern.compile("\r\n[ \t]"); - private static final Pattern NEWLINE_ESCAPE = Pattern.compile("\\\\[nN]"); - private static final Pattern VCARD_ESCAPES = Pattern.compile("\\\\([,;\\\\])"); - private static final Pattern EQUALS = Pattern.compile("="); - private static final Pattern SEMICOLON = Pattern.compile(";"); - private static final Pattern UNESCAPED_SEMICOLONS = Pattern.compile("(?<!\\\\);+"); - private static final Pattern COMMA = Pattern.compile(","); - private static final Pattern SEMICOLON_OR_COMMA = Pattern.compile("[;,]"); - - @Override - public AddressBookParsedResult parse(Result result) { - // Although we should insist on the raw text ending with "END:VCARD", there's no reason - // to throw out everything else we parsed just because this was omitted. In fact, Eclair - // is doing just that, and we can't parse its contacts without this leniency. - String rawText = getMassagedText(result); - Matcher m = BEGIN_VCARD.matcher(rawText); - if (!m.find() || m.start() != 0) { - return null; - } - List<List<String>> names = matchVCardPrefixedField("FN", rawText, true, false); - if (names == null) { - // If no display names found, look for regular name fields and format them - names = matchVCardPrefixedField("N", rawText, true, false); - formatNames(names); - } - List<String> nicknameString = matchSingleVCardPrefixedField("NICKNAME", rawText, true, false); - String[] nicknames = nicknameString == null ? null : COMMA.split(nicknameString.get(0)); - List<List<String>> phoneNumbers = matchVCardPrefixedField("TEL", rawText, true, false); - List<List<String>> emails = matchVCardPrefixedField("EMAIL", rawText, true, false); - List<String> note = matchSingleVCardPrefixedField("NOTE", rawText, false, false); - List<List<String>> addresses = matchVCardPrefixedField("ADR", rawText, true, true); - List<String> org = matchSingleVCardPrefixedField("ORG", rawText, true, true); - List<String> birthday = matchSingleVCardPrefixedField("BDAY", rawText, true, false); - if (birthday != null && !isLikeVCardDate(birthday.get(0))) { - birthday = null; - } - List<String> title = matchSingleVCardPrefixedField("TITLE", rawText, true, false); - List<List<String>> urls = matchVCardPrefixedField("URL", rawText, true, false); - List<String> instantMessenger = matchSingleVCardPrefixedField("IMPP", rawText, true, false); - List<String> geoString = matchSingleVCardPrefixedField("GEO", rawText, true, false); - String[] geo = geoString == null ? null : SEMICOLON_OR_COMMA.split(geoString.get(0)); - if (geo != null && geo.length != 2) { - geo = null; - } - return new AddressBookParsedResult(toPrimaryValues(names), - nicknames, - null, - toPrimaryValues(phoneNumbers), - toTypes(phoneNumbers), - toPrimaryValues(emails), - toTypes(emails), - toPrimaryValue(instantMessenger), - toPrimaryValue(note), - toPrimaryValues(addresses), - toTypes(addresses), - toPrimaryValue(org), - toPrimaryValue(birthday), - toPrimaryValue(title), - toPrimaryValues(urls), - geo); - } - - static List<List<String>> matchVCardPrefixedField(CharSequence prefix, - String rawText, - boolean trim, - boolean parseFieldDivider) { - List<List<String>> matches = null; - int i = 0; - int max = rawText.length(); - - while (i < max) { - - // At start or after newline, match prefix, followed by optional metadata - // (led by ;) ultimately ending in colon - Matcher matcher = Pattern.compile("(?:^|\n)" + prefix + "(?:;([^:]*))?:", - Pattern.CASE_INSENSITIVE).matcher(rawText); - if (i > 0) { - i--; // Find from i-1 not i since looking at the preceding character - } - if (!matcher.find(i)) { - break; - } - i = matcher.end(0); // group 0 = whole pattern; end(0) is past final colon - - String metadataString = matcher.group(1); // group 1 = metadata substring - List<String> metadata = null; - boolean quotedPrintable = false; - String quotedPrintableCharset = null; - if (metadataString != null) { - for (String metadatum : SEMICOLON.split(metadataString)) { - if (metadata == null) { - metadata = new ArrayList<>(1); - } - metadata.add(metadatum); - String[] metadatumTokens = EQUALS.split(metadatum, 2); - if (metadatumTokens.length > 1) { - String key = metadatumTokens[0]; - String value = metadatumTokens[1]; - if ("ENCODING".equalsIgnoreCase(key) && "QUOTED-PRINTABLE".equalsIgnoreCase(value)) { - quotedPrintable = true; - } else if ("CHARSET".equalsIgnoreCase(key)) { - quotedPrintableCharset = value; - } - } - } - } - - int matchStart = i; // Found the start of a match here - - while ((i = rawText.indexOf((int) '\n', i)) >= 0) { // Really, end in \r\n - if (i < rawText.length() - 1 && // But if followed by tab or space, - (rawText.charAt(i+1) == ' ' || // this is only a continuation - rawText.charAt(i+1) == '\t')) { - i += 2; // Skip \n and continutation whitespace - } else if (quotedPrintable && // If preceded by = in quoted printable - ((i >= 1 && rawText.charAt(i-1) == '=') || // this is a continuation - (i >= 2 && rawText.charAt(i-2) == '='))) { - i++; // Skip \n - } else { - break; - } - } - - if (i < 0) { - // No terminating end character? uh, done. Set i such that loop terminates and break - i = max; - } else if (i > matchStart) { - // found a match - if (matches == null) { - matches = new ArrayList<>(1); // lazy init - } - if (i >= 1 && rawText.charAt(i-1) == '\r') { - i--; // Back up over \r, which really should be there - } - String element = rawText.substring(matchStart, i); - if (trim) { - element = element.trim(); - } - if (quotedPrintable) { - element = decodeQuotedPrintable(element, quotedPrintableCharset); - if (parseFieldDivider) { - element = UNESCAPED_SEMICOLONS.matcher(element).replaceAll("\n").trim(); - } - } else { - if (parseFieldDivider) { - element = UNESCAPED_SEMICOLONS.matcher(element).replaceAll("\n").trim(); - } - element = CR_LF_SPACE_TAB.matcher(element).replaceAll(""); - element = NEWLINE_ESCAPE.matcher(element).replaceAll("\n"); - element = VCARD_ESCAPES.matcher(element).replaceAll("$1"); - } - if (metadata == null) { - List<String> match = new ArrayList<>(1); - match.add(element); - matches.add(match); - } else { - metadata.add(0, element); - matches.add(metadata); - } - i++; - } else { - i++; - } - - } - - return matches; - } - - private static String decodeQuotedPrintable(CharSequence value, String charset) { - int length = value.length(); - StringBuilder result = new StringBuilder(length); - ByteArrayOutputStream fragmentBuffer = new ByteArrayOutputStream(); - for (int i = 0; i < length; i++) { - char c = value.charAt(i); - switch (c) { - case '\r': - case '\n': - break; - case '=': - if (i < length - 2) { - char nextChar = value.charAt(i+1); - if (nextChar != '\r' && nextChar != '\n') { - char nextNextChar = value.charAt(i+2); - int firstDigit = parseHexDigit(nextChar); - int secondDigit = parseHexDigit(nextNextChar); - if (firstDigit >= 0 && secondDigit >= 0) { - fragmentBuffer.write((firstDigit << 4) + secondDigit); - } // else ignore it, assume it was incorrectly encoded - i += 2; - } - } - break; - default: - maybeAppendFragment(fragmentBuffer, charset, result); - result.append(c); - } - } - maybeAppendFragment(fragmentBuffer, charset, result); - return result.toString(); - } - - private static void maybeAppendFragment(ByteArrayOutputStream fragmentBuffer, - String charset, - StringBuilder result) { - if (fragmentBuffer.size() > 0) { - byte[] fragmentBytes = fragmentBuffer.toByteArray(); - String fragment; - if (charset == null) { - fragment = new String(fragmentBytes, Charset.forName("UTF-8")); - } else { - try { - fragment = new String(fragmentBytes, charset); - } catch (UnsupportedEncodingException e) { - fragment = new String(fragmentBytes, Charset.forName("UTF-8")); - } - } - fragmentBuffer.reset(); - result.append(fragment); - } - } - - static List<String> matchSingleVCardPrefixedField(CharSequence prefix, - String rawText, - boolean trim, - boolean parseFieldDivider) { - List<List<String>> values = matchVCardPrefixedField(prefix, rawText, trim, parseFieldDivider); - return values == null || values.isEmpty() ? null : values.get(0); - } - - private static String toPrimaryValue(List<String> list) { - return list == null || list.isEmpty() ? null : list.get(0); - } - - private static String[] toPrimaryValues(Collection<List<String>> lists) { - if (lists == null || lists.isEmpty()) { - return null; - } - List<String> result = new ArrayList<>(lists.size()); - for (List<String> list : lists) { - String value = list.get(0); - if (value != null && !value.isEmpty()) { - result.add(value); - } - } - return result.toArray(new String[lists.size()]); - } - - private static String[] toTypes(Collection<List<String>> lists) { - if (lists == null || lists.isEmpty()) { - return null; - } - List<String> result = new ArrayList<>(lists.size()); - for (List<String> list : lists) { - String type = null; - for (int i = 1; i < list.size(); i++) { - String metadatum = list.get(i); - int equals = metadatum.indexOf('='); - if (equals < 0) { - // take the whole thing as a usable label - type = metadatum; - break; - } - if ("TYPE".equalsIgnoreCase(metadatum.substring(0, equals))) { - type = metadatum.substring(equals + 1); - break; - } - } - result.add(type); - } - return result.toArray(new String[lists.size()]); - } - - private static boolean isLikeVCardDate(CharSequence value) { - return value == null || VCARD_LIKE_DATE.matcher(value).matches(); - } - - /** - * Formats name fields of the form "Public;John;Q.;Reverend;III" into a form like - * "Reverend John Q. Public III". - * - * @param names name values to format, in place - */ - private static void formatNames(Iterable<List<String>> names) { - if (names != null) { - for (List<String> list : names) { - String name = list.get(0); - String[] components = new String[5]; - int start = 0; - int end; - int componentIndex = 0; - while (componentIndex < components.length - 1 && (end = name.indexOf(';', start)) >= 0) { - components[componentIndex] = name.substring(start, end); - componentIndex++; - start = end + 1; - } - components[componentIndex] = name.substring(start); - StringBuilder newName = new StringBuilder(100); - maybeAppendComponent(components, 3, newName); - maybeAppendComponent(components, 1, newName); - maybeAppendComponent(components, 2, newName); - maybeAppendComponent(components, 0, newName); - maybeAppendComponent(components, 4, newName); - list.set(0, newName.toString().trim()); - } - } - } - - private static void maybeAppendComponent(String[] components, int i, StringBuilder newName) { - if (components[i] != null && !components[i].isEmpty()) { - if (newName.length() > 0) { - newName.append(' '); - } - newName.append(components[i]); - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/VEventResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/VEventResultParser.java deleted file mode 100755 index 2908a55e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/VEventResultParser.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import java.util.List; - -import com.google.zxing.Result; - -/** - * Partially implements the iCalendar format's "VEVENT" format for specifying a - * calendar event. See RFC 2445. This supports SUMMARY, LOCATION, GEO, DTSTART and DTEND fields. - * - * @author Sean Owen - */ -public final class VEventResultParser extends ResultParser { - - @Override - public CalendarParsedResult parse(Result result) { - String rawText = getMassagedText(result); - int vEventStart = rawText.indexOf("BEGIN:VEVENT"); - if (vEventStart < 0) { - return null; - } - - String summary = matchSingleVCardPrefixedField("SUMMARY", rawText, true); - String start = matchSingleVCardPrefixedField("DTSTART", rawText, true); - if (start == null) { - return null; - } - String end = matchSingleVCardPrefixedField("DTEND", rawText, true); - String duration = matchSingleVCardPrefixedField("DURATION", rawText, true); - String location = matchSingleVCardPrefixedField("LOCATION", rawText, true); - String organizer = stripMailto(matchSingleVCardPrefixedField("ORGANIZER", rawText, true)); - - String[] attendees = matchVCardPrefixedField("ATTENDEE", rawText, true); - if (attendees != null) { - for (int i = 0; i < attendees.length; i++) { - attendees[i] = stripMailto(attendees[i]); - } - } - String description = matchSingleVCardPrefixedField("DESCRIPTION", rawText, true); - - String geoString = matchSingleVCardPrefixedField("GEO", rawText, true); - double latitude; - double longitude; - if (geoString == null) { - latitude = Double.NaN; - longitude = Double.NaN; - } else { - int semicolon = geoString.indexOf(';'); - if (semicolon < 0) { - return null; - } - try { - latitude = Double.parseDouble(geoString.substring(0, semicolon)); - longitude = Double.parseDouble(geoString.substring(semicolon + 1)); - } catch (NumberFormatException ignored) { - return null; - } - } - - try { - return new CalendarParsedResult(summary, - start, - end, - duration, - location, - organizer, - attendees, - description, - latitude, - longitude); - } catch (IllegalArgumentException ignored) { - return null; - } - } - - private static String matchSingleVCardPrefixedField(CharSequence prefix, - String rawText, - boolean trim) { - List<String> values = VCardResultParser.matchSingleVCardPrefixedField(prefix, rawText, trim, false); - return values == null || values.isEmpty() ? null : values.get(0); - } - - private static String[] matchVCardPrefixedField(CharSequence prefix, String rawText, boolean trim) { - List<List<String>> values = VCardResultParser.matchVCardPrefixedField(prefix, rawText, trim, false); - if (values == null || values.isEmpty()) { - return null; - } - int size = values.size(); - String[] result = new String[size]; - for (int i = 0; i < size; i++) { - result[i] = values.get(i).get(0); - } - return result; - } - - private static String stripMailto(String s) { - if (s != null && (s.startsWith("mailto:") || s.startsWith("MAILTO:"))) { - s = s.substring(7); - } - return s; - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/VINParsedResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/VINParsedResult.java deleted file mode 100755 index dddd7d02..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/VINParsedResult.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright 2014 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -package com.google.zxing.client.result; - - -public final class VINParsedResult extends ParsedResult { - - private final String vin; - private final String worldManufacturerID; - private final String vehicleDescriptorSection; - private final String vehicleIdentifierSection; - private final String countryCode; - private final String vehicleAttributes; - private final int modelYear; - private final char plantCode; - private final String sequentialNumber; - - public VINParsedResult(String vin, - String worldManufacturerID, - String vehicleDescriptorSection, - String vehicleIdentifierSection, - String countryCode, - String vehicleAttributes, - int modelYear, - char plantCode, - String sequentialNumber) { - super(ParsedResultType.VIN); - this.vin = vin; - this.worldManufacturerID = worldManufacturerID; - this.vehicleDescriptorSection = vehicleDescriptorSection; - this.vehicleIdentifierSection = vehicleIdentifierSection; - this.countryCode = countryCode; - this.vehicleAttributes = vehicleAttributes; - this.modelYear = modelYear; - this.plantCode = plantCode; - this.sequentialNumber = sequentialNumber; - } - - public String getVIN() { - return vin; - } - - public String getWorldManufacturerID() { - return worldManufacturerID; - } - - public String getVehicleDescriptorSection() { - return vehicleDescriptorSection; - } - - public String getVehicleIdentifierSection() { - return vehicleIdentifierSection; - } - - public String getCountryCode() { - return countryCode; - } - - public String getVehicleAttributes() { - return vehicleAttributes; - } - - public int getModelYear() { - return modelYear; - } - - public char getPlantCode() { - return plantCode; - } - - public String getSequentialNumber() { - return sequentialNumber; - } - - @Override - public String getDisplayResult() { - StringBuilder result = new StringBuilder(50); - result.append(worldManufacturerID).append(' '); - result.append(vehicleDescriptorSection).append(' '); - result.append(vehicleIdentifierSection).append('\n'); - if (countryCode != null) { - result.append(countryCode).append(' '); - } - result.append(modelYear).append(' '); - result.append(plantCode).append(' '); - result.append(sequentialNumber).append('\n'); - return result.toString(); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/VINResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/VINResultParser.java deleted file mode 100755 index 7c4c4488..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/VINResultParser.java +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Copyright 2014 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import java.util.regex.Pattern; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.Result; - -/** - * Detects a result that is likely a vehicle identification number. - * - * @author Sean Owen - */ -public final class VINResultParser extends ResultParser { - - private static final Pattern IOQ = Pattern.compile("[IOQ]"); - private static final Pattern AZ09 = Pattern.compile("[A-Z0-9]{17}"); - - @Override - public VINParsedResult parse(Result result) { - if (result.getBarcodeFormat() != BarcodeFormat.CODE_39) { - return null; - } - String rawText = result.getText(); - rawText = IOQ.matcher(rawText).replaceAll("").trim(); - if (!AZ09.matcher(rawText).matches()) { - return null; - } - try { - if (!checkChecksum(rawText)) { - return null; - } - String wmi = rawText.substring(0, 3); - return new VINParsedResult(rawText, - wmi, - rawText.substring(3, 9), - rawText.substring(9, 17), - countryCode(wmi), - rawText.substring(3, 8), - modelYear(rawText.charAt(9)), - rawText.charAt(10), - rawText.substring(11)); - } catch (IllegalArgumentException iae) { - return null; - } - } - - private static boolean checkChecksum(CharSequence vin) { - int sum = 0; - for (int i = 0; i < vin.length(); i++) { - sum += vinPositionWeight(i + 1) * vinCharValue(vin.charAt(i)); - } - char checkChar = vin.charAt(8); - char expectedCheckChar = checkChar(sum % 11); - return checkChar == expectedCheckChar; - } - - private static int vinCharValue(char c) { - if (c >= 'A' && c <= 'I') { - return (c - 'A') + 1; - } - if (c >= 'J' && c <= 'R') { - return (c - 'J') + 1; - } - if (c >= 'S' && c <= 'Z') { - return (c - 'S') + 2; - } - if (c >= '0' && c <= '9') { - return c - '0'; - } - throw new IllegalArgumentException(); - } - - private static int vinPositionWeight(int position) { - if (position >= 1 && position <= 7) { - return 9 - position; - } - if (position == 8) { - return 10; - } - if (position == 9) { - return 0; - } - if (position >= 10 && position <= 17) { - return 19 - position; - } - throw new IllegalArgumentException(); - } - - private static char checkChar(int remainder) { - if (remainder < 10) { - return (char) ('0' + remainder); - } - if (remainder == 10) { - return 'X'; - } - throw new IllegalArgumentException(); - } - - private static int modelYear(char c) { - if (c >= 'E' && c <= 'H') { - return (c - 'E') + 1984; - } - if (c >= 'J' && c <= 'N') { - return (c - 'J') + 1988; - } - if (c == 'P') { - return 1993; - } - if (c >= 'R' && c <= 'T') { - return (c - 'R') + 1994; - } - if (c >= 'V' && c <= 'Y') { - return (c - 'V') + 1997; - } - if (c >= '1' && c <= '9') { - return (c - '1') + 2001; - } - if (c >= 'A' && c <= 'D') { - return (c - 'A') + 2010; - } - throw new IllegalArgumentException(); - } - - private static String countryCode(CharSequence wmi) { - char c1 = wmi.charAt(0); - char c2 = wmi.charAt(1); - switch (c1) { - case '1': - case '4': - case '5': - return "US"; - case '2': - return "CA"; - case '3': - if (c2 >= 'A' && c2 <= 'W') { - return "MX"; - } - break; - case '9': - if ((c2 >= 'A' && c2 <= 'E') || (c2 >= '3' && c2 <= '9')) { - return "BR"; - } - break; - case 'J': - if (c2 >= 'A' && c2 <= 'T') { - return "JP"; - } - break; - case 'K': - if (c2 >= 'L' && c2 <= 'R') { - return "KO"; - } - break; - case 'L': - return "CN"; - case 'M': - if (c2 >= 'A' && c2 <= 'E') { - return "IN"; - } - break; - case 'S': - if (c2 >= 'A' && c2 <= 'M') { - return "UK"; - } - if (c2 >= 'N' && c2 <= 'T') { - return "DE"; - } - break; - case 'V': - if (c2 >= 'F' && c2 <= 'R') { - return "FR"; - } - if (c2 >= 'S' && c2 <= 'W') { - return "ES"; - } - break; - case 'W': - return "DE"; - case 'X': - if (c2 == '0' || (c2 >= '3' && c2 <= '9')) { - return "RU"; - } - break; - case 'Z': - if (c2 >= 'A' && c2 <= 'R') { - return "IT"; - } - break; - } - return null; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/WifiParsedResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/WifiParsedResult.java deleted file mode 100755 index 39dec351..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/WifiParsedResult.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -/** - * @author Vikram Aggarwal - */ -public final class WifiParsedResult extends ParsedResult { - - private final String ssid; - private final String networkEncryption; - private final String password; - private final boolean hidden; - - public WifiParsedResult(String networkEncryption, String ssid, String password) { - this(networkEncryption, ssid, password, false); - } - - public WifiParsedResult(String networkEncryption, String ssid, String password, boolean hidden) { - super(ParsedResultType.WIFI); - this.ssid = ssid; - this.networkEncryption = networkEncryption; - this.password = password; - this.hidden = hidden; - } - - public String getSsid() { - return ssid; - } - - public String getNetworkEncryption() { - return networkEncryption; - } - - public String getPassword() { - return password; - } - - public boolean isHidden() { - return hidden; - } - - @Override - public String getDisplayResult() { - StringBuilder result = new StringBuilder(80); - maybeAppend(ssid, result); - maybeAppend(networkEncryption, result); - maybeAppend(password, result); - maybeAppend(Boolean.toString(hidden), result); - return result.toString(); - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/WifiResultParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/WifiResultParser.java deleted file mode 100755 index b62151c7..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/client/result/WifiResultParser.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.client.result; - -import com.google.zxing.Result; - -/** - * <p>Parses a WIFI configuration string. Strings will be of the form:</p> - * - * <p>{@code WIFI:T:[network type];S:[network SSID];P:[network password];H:[hidden?];;}</p> - * - * <p>The fields can appear in any order. Only "S:" is required.</p> - * - * @author Vikram Aggarwal - * @author Sean Owen - */ -public final class WifiResultParser extends ResultParser { - - @Override - public WifiParsedResult parse(Result result) { - String rawText = getMassagedText(result); - if (!rawText.startsWith("WIFI:")) { - return null; - } - String ssid = matchSinglePrefixedField("S:", rawText, ';', false); - if (ssid == null || ssid.isEmpty()) { - return null; - } - String pass = matchSinglePrefixedField("P:", rawText, ';', false); - String type = matchSinglePrefixedField("T:", rawText, ';', false); - if (type == null) { - type = "nopass"; - } - boolean hidden = Boolean.parseBoolean(matchSinglePrefixedField("H:", rawText, ';', false)); - return new WifiParsedResult(type, ssid, pass, hidden); - } -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/BitArray.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/BitArray.java deleted file mode 100755 index 0af7dd72..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/BitArray.java +++ /dev/null @@ -1,375 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common; - -import java.util.Arrays; - -/** - * <p>A simple, fast array of bits, represented compactly by an array of ints internally.</p> - * - * @author Sean Owen - */ -public final class BitArray implements Cloneable { - - private int[] bits; - private int size; - - public BitArray() { - this.size = 0; - this.bits = new int[1]; - } - - public BitArray(int size) { - this.size = size; - this.bits = makeArray(size); - } - - // For testing only - BitArray(int[] bits, int size) { - this.bits = bits; - this.size = size; - } - - public int getSize() { - return size; - } - - public int getSizeInBytes() { - return (size + 7) / 8; - } - - private void ensureCapacity(int size) { - if (size > bits.length * 32) { - int[] newBits = makeArray(size); - System.arraycopy(bits, 0, newBits, 0, bits.length); - this.bits = newBits; - } - } - - /** - * @param i bit to get - * @return true iff bit i is set - */ - public boolean get(int i) { - return (bits[i / 32] & (1 << (i & 0x1F))) != 0; - } - - /** - * Sets bit i. - * - * @param i bit to set - */ - public void set(int i) { - bits[i / 32] |= 1 << (i & 0x1F); - } - - /** - * Flips bit i. - * - * @param i bit to set - */ - public void flip(int i) { - bits[i / 32] ^= 1 << (i & 0x1F); - } - - /** - * @param from first bit to check - * @return index of first bit that is set, starting from the given index, or size if none are set - * at or beyond this given index - * @see #getNextUnset(int) - */ - public int getNextSet(int from) { - if (from >= size) { - return size; - } - int bitsOffset = from / 32; - int currentBits = bits[bitsOffset]; - // mask off lesser bits first - currentBits &= ~((1 << (from & 0x1F)) - 1); - while (currentBits == 0) { - if (++bitsOffset == bits.length) { - return size; - } - currentBits = bits[bitsOffset]; - } - int result = (bitsOffset * 32) + Integer.numberOfTrailingZeros(currentBits); - return result > size ? size : result; - } - - /** - * @param from index to start looking for unset bit - * @return index of next unset bit, or {@code size} if none are unset until the end - * @see #getNextSet(int) - */ - public int getNextUnset(int from) { - if (from >= size) { - return size; - } - int bitsOffset = from / 32; - int currentBits = ~bits[bitsOffset]; - // mask off lesser bits first - currentBits &= ~((1 << (from & 0x1F)) - 1); - while (currentBits == 0) { - if (++bitsOffset == bits.length) { - return size; - } - currentBits = ~bits[bitsOffset]; - } - int result = (bitsOffset * 32) + Integer.numberOfTrailingZeros(currentBits); - return result > size ? size : result; - } - - /** - * Sets a block of 32 bits, starting at bit i. - * - * @param i first bit to set - * @param newBits the new value of the next 32 bits. Note again that the least-significant bit - * corresponds to bit i, the next-least-significant to i+1, and so on. - */ - public void setBulk(int i, int newBits) { - bits[i / 32] = newBits; - } - - /** - * Sets a range of bits. - * - * @param start start of range, inclusive. - * @param end end of range, exclusive - */ - public void setRange(int start, int end) { - if (end < start) { - throw new IllegalArgumentException(); - } - if (end == start) { - return; - } - end--; // will be easier to treat this as the last actually set bit -- inclusive - int firstInt = start / 32; - int lastInt = end / 32; - for (int i = firstInt; i <= lastInt; i++) { - int firstBit = i > firstInt ? 0 : start & 0x1F; - int lastBit = i < lastInt ? 31 : end & 0x1F; - int mask; - if (firstBit == 0 && lastBit == 31) { - mask = -1; - } else { - mask = 0; - for (int j = firstBit; j <= lastBit; j++) { - mask |= 1 << j; - } - } - bits[i] |= mask; - } - } - - /** - * Clears all bits (sets to false). - */ - public void clear() { - int max = bits.length; - for (int i = 0; i < max; i++) { - bits[i] = 0; - } - } - - /** - * Efficient method to check if a range of bits is set, or not set. - * - * @param start start of range, inclusive. - * @param end end of range, exclusive - * @param value if true, checks that bits in range are set, otherwise checks that they are not set - * @return true iff all bits are set or not set in range, according to value argument - * @throws IllegalArgumentException if end is less than or equal to start - */ - public boolean isRange(int start, int end, boolean value) { - if (end < start) { - throw new IllegalArgumentException(); - } - if (end == start) { - return true; // empty range matches - } - end--; // will be easier to treat this as the last actually set bit -- inclusive - int firstInt = start / 32; - int lastInt = end / 32; - for (int i = firstInt; i <= lastInt; i++) { - int firstBit = i > firstInt ? 0 : start & 0x1F; - int lastBit = i < lastInt ? 31 : end & 0x1F; - int mask; - if (firstBit == 0 && lastBit == 31) { - mask = -1; - } else { - mask = 0; - for (int j = firstBit; j <= lastBit; j++) { - mask |= 1 << j; - } - } - - // Return false if we're looking for 1s and the masked bits[i] isn't all 1s (that is, - // equals the mask, or we're looking for 0s and the masked portion is not all 0s - if ((bits[i] & mask) != (value ? mask : 0)) { - return false; - } - } - return true; - } - - public void appendBit(boolean bit) { - ensureCapacity(size + 1); - if (bit) { - bits[size / 32] |= 1 << (size & 0x1F); - } - size++; - } - - /** - * Appends the least-significant bits, from value, in order from most-significant to - * least-significant. For example, appending 6 bits from 0x000001E will append the bits - * 0, 1, 1, 1, 1, 0 in that order. - * - * @param value {@code int} containing bits to append - * @param numBits bits from value to append - */ - public void appendBits(int value, int numBits) { - if (numBits < 0 || numBits > 32) { - throw new IllegalArgumentException("Num bits must be between 0 and 32"); - } - ensureCapacity(size + numBits); - for (int numBitsLeft = numBits; numBitsLeft > 0; numBitsLeft--) { - appendBit(((value >> (numBitsLeft - 1)) & 0x01) == 1); - } - } - - public void appendBitArray(BitArray other) { - int otherSize = other.size; - ensureCapacity(size + otherSize); - for (int i = 0; i < otherSize; i++) { - appendBit(other.get(i)); - } - } - - public void xor(BitArray other) { - if (bits.length != other.bits.length) { - throw new IllegalArgumentException("Sizes don't match"); - } - for (int i = 0; i < bits.length; i++) { - // The last byte could be incomplete (i.e. not have 8 bits in - // it) but there is no problem since 0 XOR 0 == 0. - bits[i] ^= other.bits[i]; - } - } - - /** - * - * @param bitOffset first bit to start writing - * @param array array to write into. Bytes are written most-significant byte first. This is the opposite - * of the internal representation, which is exposed by {@link #getBitArray()} - * @param offset position in array to start writing - * @param numBytes how many bytes to write - */ - public void toBytes(int bitOffset, byte[] array, int offset, int numBytes) { - for (int i = 0; i < numBytes; i++) { - int theByte = 0; - for (int j = 0; j < 8; j++) { - if (get(bitOffset)) { - theByte |= 1 << (7 - j); - } - bitOffset++; - } - array[offset + i] = (byte) theByte; - } - } - - /** - * @return underlying array of ints. The first element holds the first 32 bits, and the least - * significant bit is bit 0. - */ - public int[] getBitArray() { - return bits; - } - - /** - * Reverses all bits in the array. - */ - public void reverse() { - int[] newBits = new int[bits.length]; - // reverse all int's first - int len = ((size-1) / 32); - int oldBitsLen = len + 1; - for (int i = 0; i < oldBitsLen; i++) { - long x = (long) bits[i]; - x = ((x >> 1) & 0x55555555L) | ((x & 0x55555555L) << 1); - x = ((x >> 2) & 0x33333333L) | ((x & 0x33333333L) << 2); - x = ((x >> 4) & 0x0f0f0f0fL) | ((x & 0x0f0f0f0fL) << 4); - x = ((x >> 8) & 0x00ff00ffL) | ((x & 0x00ff00ffL) << 8); - x = ((x >> 16) & 0x0000ffffL) | ((x & 0x0000ffffL) << 16); - newBits[len - i] = (int) x; - } - // now correct the int's if the bit size isn't a multiple of 32 - if (size != oldBitsLen * 32) { - int leftOffset = oldBitsLen * 32 - size; - int mask = 1; - for (int i = 0; i < 31 - leftOffset; i++) { - mask = (mask << 1) | 1; - } - int currentInt = (newBits[0] >> leftOffset) & mask; - for (int i = 1; i < oldBitsLen; i++) { - int nextInt = newBits[i]; - currentInt |= nextInt << (32 - leftOffset); - newBits[i - 1] = currentInt; - currentInt = (nextInt >> leftOffset) & mask; - } - newBits[oldBitsLen - 1] = currentInt; - } - bits = newBits; - } - - private static int[] makeArray(int size) { - return new int[(size + 31) / 32]; - } - - @Override - public boolean equals(Object o) { - if (!(o instanceof BitArray)) { - return false; - } - BitArray other = (BitArray) o; - return size == other.size && Arrays.equals(bits, other.bits); - } - - @Override - public int hashCode() { - return 31 * size + Arrays.hashCode(bits); - } - - @Override - public String toString() { - StringBuilder result = new StringBuilder(size); - for (int i = 0; i < size; i++) { - if ((i & 0x07) == 0) { - result.append(' '); - } - result.append(get(i) ? 'X' : '.'); - } - return result.toString(); - } - - @Override - public BitArray clone() { - return new BitArray(bits.clone(), size); - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/BitMatrix.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/BitMatrix.java deleted file mode 100755 index 30e2358c..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/BitMatrix.java +++ /dev/null @@ -1,449 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common; - -import java.util.Arrays; - -/** - * <p>Represents a 2D matrix of bits. In function arguments below, and throughout the common - * module, x is the column position, and y is the row position. The ordering is always x, y. - * The origin is at the top-left.</p> - * - * <p>Internally the bits are represented in a 1-D array of 32-bit ints. However, each row begins - * with a new int. This is done intentionally so that we can copy out a row into a BitArray very - * efficiently.</p> - * - * <p>The ordering of bits is row-major. Within each int, the least significant bits are used first, - * meaning they represent lower x values. This is compatible with BitArray's implementation.</p> - * - * @author Sean Owen - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class BitMatrix implements Cloneable { - - private final int width; - private final int height; - private final int rowSize; - private final int[] bits; - - // A helper to construct a square matrix. - public BitMatrix(int dimension) { - this(dimension, dimension); - } - - public BitMatrix(int width, int height) { - if (width < 1 || height < 1) { - throw new IllegalArgumentException("Both dimensions must be greater than 0"); - } - this.width = width; - this.height = height; - this.rowSize = (width + 31) / 32; - bits = new int[rowSize * height]; - } - - private BitMatrix(int width, int height, int rowSize, int[] bits) { - this.width = width; - this.height = height; - this.rowSize = rowSize; - this.bits = bits; - } - - public static BitMatrix parse(String stringRepresentation, String setString, String unsetString) { - if (stringRepresentation == null) { - throw new IllegalArgumentException(); - } - - boolean[] bits = new boolean[stringRepresentation.length()]; - int bitsPos = 0; - int rowStartPos = 0; - int rowLength = -1; - int nRows = 0; - int pos = 0; - while (pos < stringRepresentation.length()) { - if (stringRepresentation.charAt(pos) == '\n' || - stringRepresentation.charAt(pos) == '\r') { - if (bitsPos > rowStartPos) { - if (rowLength == -1) { - rowLength = bitsPos - rowStartPos; - } else if (bitsPos - rowStartPos != rowLength) { - throw new IllegalArgumentException("row lengths do not match"); - } - rowStartPos = bitsPos; - nRows++; - } - pos++; - } else if (stringRepresentation.substring(pos, pos + setString.length()).equals(setString)) { - pos += setString.length(); - bits[bitsPos] = true; - bitsPos++; - } else if (stringRepresentation.substring(pos, pos + unsetString.length()).equals(unsetString)) { - pos += unsetString.length(); - bits[bitsPos] = false; - bitsPos++; - } else { - throw new IllegalArgumentException( - "illegal character encountered: " + stringRepresentation.substring(pos)); - } - } - - // no EOL at end? - if (bitsPos > rowStartPos) { - if(rowLength == -1) { - rowLength = bitsPos - rowStartPos; - } else if (bitsPos - rowStartPos != rowLength) { - throw new IllegalArgumentException("row lengths do not match"); - } - nRows++; - } - - BitMatrix matrix = new BitMatrix(rowLength, nRows); - for (int i = 0; i < bitsPos; i++) { - if (bits[i]) { - matrix.set(i % rowLength, i / rowLength); - } - } - return matrix; - } - - /** - * <p>Gets the requested bit, where true means black.</p> - * - * @param x The horizontal component (i.e. which column) - * @param y The vertical component (i.e. which row) - * @return value of given bit in matrix - */ - public boolean get(int x, int y) { - int offset = y * rowSize + (x / 32); - return ((bits[offset] >>> (x & 0x1f)) & 1) != 0; - } - - /** - * <p>Sets the given bit to true.</p> - * - * @param x The horizontal component (i.e. which column) - * @param y The vertical component (i.e. which row) - */ - public void set(int x, int y) { - int offset = y * rowSize + (x / 32); - bits[offset] |= 1 << (x & 0x1f); - } - - public void unset(int x, int y) { - int offset = y * rowSize + (x / 32); - bits[offset] &= ~(1 << (x & 0x1f)); - } - - /** - * <p>Flips the given bit.</p> - * - * @param x The horizontal component (i.e. which column) - * @param y The vertical component (i.e. which row) - */ - public void flip(int x, int y) { - int offset = y * rowSize + (x / 32); - bits[offset] ^= 1 << (x & 0x1f); - } - - /** - * Exclusive-or (XOR): Flip the bit in this {@code BitMatrix} if the corresponding - * mask bit is set. - * - * @param mask XOR mask - */ - public void xor(BitMatrix mask) { - if (width != mask.getWidth() || height != mask.getHeight() - || rowSize != mask.getRowSize()) { - throw new IllegalArgumentException("input matrix dimensions do not match"); - } - BitArray rowArray = new BitArray(width / 32 + 1); - for (int y = 0; y < height; y++) { - int offset = y * rowSize; - int[] row = mask.getRow(y, rowArray).getBitArray(); - for (int x = 0; x < rowSize; x++) { - bits[offset + x] ^= row[x]; - } - } - } - - /** - * Clears all bits (sets to false). - */ - public void clear() { - int max = bits.length; - for (int i = 0; i < max; i++) { - bits[i] = 0; - } - } - - /** - * <p>Sets a square region of the bit matrix to true.</p> - * - * @param left The horizontal position to begin at (inclusive) - * @param top The vertical position to begin at (inclusive) - * @param width The width of the region - * @param height The height of the region - */ - public void setRegion(int left, int top, int width, int height) { - if (top < 0 || left < 0) { - throw new IllegalArgumentException("Left and top must be nonnegative"); - } - if (height < 1 || width < 1) { - throw new IllegalArgumentException("Height and width must be at least 1"); - } - int right = left + width; - int bottom = top + height; - if (bottom > this.height || right > this.width) { - throw new IllegalArgumentException("The region must fit inside the matrix"); - } - for (int y = top; y < bottom; y++) { - int offset = y * rowSize; - for (int x = left; x < right; x++) { - bits[offset + (x / 32)] |= 1 << (x & 0x1f); - } - } - } - - /** - * A fast method to retrieve one row of data from the matrix as a BitArray. - * - * @param y The row to retrieve - * @param row An optional caller-allocated BitArray, will be allocated if null or too small - * @return The resulting BitArray - this reference should always be used even when passing - * your own row - */ - public BitArray getRow(int y, BitArray row) { - if (row == null || row.getSize() < width) { - row = new BitArray(width); - } else { - row.clear(); - } - int offset = y * rowSize; - for (int x = 0; x < rowSize; x++) { - row.setBulk(x * 32, bits[offset + x]); - } - return row; - } - - /** - * @param y row to set - * @param row {@link BitArray} to copy from - */ - public void setRow(int y, BitArray row) { - System.arraycopy(row.getBitArray(), 0, bits, y * rowSize, rowSize); - } - - /** - * Modifies this {@code BitMatrix} to represent the same but rotated 180 degrees - */ - public void rotate180() { - int width = getWidth(); - int height = getHeight(); - BitArray topRow = new BitArray(width); - BitArray bottomRow = new BitArray(width); - for (int i = 0; i < (height+1) / 2; i++) { - topRow = getRow(i, topRow); - bottomRow = getRow(height - 1 - i, bottomRow); - topRow.reverse(); - bottomRow.reverse(); - setRow(i, bottomRow); - setRow(height - 1 - i, topRow); - } - } - - /** - * This is useful in detecting the enclosing rectangle of a 'pure' barcode. - * - * @return {@code left,top,width,height} enclosing rectangle of all 1 bits, or null if it is all white - */ - public int[] getEnclosingRectangle() { - int left = width; - int top = height; - int right = -1; - int bottom = -1; - - for (int y = 0; y < height; y++) { - for (int x32 = 0; x32 < rowSize; x32++) { - int theBits = bits[y * rowSize + x32]; - if (theBits != 0) { - if (y < top) { - top = y; - } - if (y > bottom) { - bottom = y; - } - if (x32 * 32 < left) { - int bit = 0; - while ((theBits << (31 - bit)) == 0) { - bit++; - } - if ((x32 * 32 + bit) < left) { - left = x32 * 32 + bit; - } - } - if (x32 * 32 + 31 > right) { - int bit = 31; - while ((theBits >>> bit) == 0) { - bit--; - } - if ((x32 * 32 + bit) > right) { - right = x32 * 32 + bit; - } - } - } - } - } - - int width = right - left; - int height = bottom - top; - - if (width < 0 || height < 0) { - return null; - } - - return new int[] {left, top, width, height}; - } - - /** - * This is useful in detecting a corner of a 'pure' barcode. - * - * @return {@code x,y} coordinate of top-left-most 1 bit, or null if it is all white - */ - public int[] getTopLeftOnBit() { - int bitsOffset = 0; - while (bitsOffset < bits.length && bits[bitsOffset] == 0) { - bitsOffset++; - } - if (bitsOffset == bits.length) { - return null; - } - int y = bitsOffset / rowSize; - int x = (bitsOffset % rowSize) * 32; - - int theBits = bits[bitsOffset]; - int bit = 0; - while ((theBits << (31-bit)) == 0) { - bit++; - } - x += bit; - return new int[] {x, y}; - } - - public int[] getBottomRightOnBit() { - int bitsOffset = bits.length - 1; - while (bitsOffset >= 0 && bits[bitsOffset] == 0) { - bitsOffset--; - } - if (bitsOffset < 0) { - return null; - } - - int y = bitsOffset / rowSize; - int x = (bitsOffset % rowSize) * 32; - - int theBits = bits[bitsOffset]; - int bit = 31; - while ((theBits >>> bit) == 0) { - bit--; - } - x += bit; - - return new int[] {x, y}; - } - - /** - * @return The width of the matrix - */ - public int getWidth() { - return width; - } - - /** - * @return The height of the matrix - */ - public int getHeight() { - return height; - } - - /** - * @return The row size of the matrix - */ - public int getRowSize() { - return rowSize; - } - - @Override - public boolean equals(Object o) { - if (!(o instanceof BitMatrix)) { - return false; - } - BitMatrix other = (BitMatrix) o; - return width == other.width && height == other.height && rowSize == other.rowSize && - Arrays.equals(bits, other.bits); - } - - @Override - public int hashCode() { - int hash = width; - hash = 31 * hash + width; - hash = 31 * hash + height; - hash = 31 * hash + rowSize; - hash = 31 * hash + Arrays.hashCode(bits); - return hash; - } - - /** - * @return string representation using "X" for set and " " for unset bits - */ - @Override - public String toString() { - return toString("X ", " "); - } - - /** - * @param setString representation of a set bit - * @param unsetString representation of an unset bit - * @return string representation of entire matrix utilizing given strings - */ - public String toString(String setString, String unsetString) { - return toString(setString, unsetString, "\n"); - } - - /** - * @param setString representation of a set bit - * @param unsetString representation of an unset bit - * @param lineSeparator newline character in string representation - * @return string representation of entire matrix utilizing given strings and line separator - * @deprecated call {@link #toString(String,String)} only, which uses \n line separator always - */ - @Deprecated - public String toString(String setString, String unsetString, String lineSeparator) { - StringBuilder result = new StringBuilder(height * (width + 1)); - for (int y = 0; y < height; y++) { - for (int x = 0; x < width; x++) { - result.append(get(x, y) ? setString : unsetString); - } - result.append(lineSeparator); - } - return result.toString(); - } - - @Override - public BitMatrix clone() { - return new BitMatrix(width, height, rowSize, bits.clone()); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/BitSource.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/BitSource.java deleted file mode 100755 index 45a3858e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/BitSource.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common; - -/** - * <p>This provides an easy abstraction to read bits at a time from a sequence of bytes, where the - * number of bits read is not often a multiple of 8.</p> - * - * <p>This class is thread-safe but not reentrant -- unless the caller modifies the bytes array - * it passed in, in which case all bets are off.</p> - * - * @author Sean Owen - */ -public final class BitSource { - - private final byte[] bytes; - private int byteOffset; - private int bitOffset; - - /** - * @param bytes bytes from which this will read bits. Bits will be read from the first byte first. - * Bits are read within a byte from most-significant to least-significant bit. - */ - public BitSource(byte[] bytes) { - this.bytes = bytes; - } - - /** - * @return index of next bit in current byte which would be read by the next call to {@link #readBits(int)}. - */ - public int getBitOffset() { - return bitOffset; - } - - /** - * @return index of next byte in input byte array which would be read by the next call to {@link #readBits(int)}. - */ - public int getByteOffset() { - return byteOffset; - } - - /** - * @param numBits number of bits to read - * @return int representing the bits read. The bits will appear as the least-significant - * bits of the int - * @throws IllegalArgumentException if numBits isn't in [1,32] or more than is available - */ - public int readBits(int numBits) { - if (numBits < 1 || numBits > 32 || numBits > available()) { - throw new IllegalArgumentException(String.valueOf(numBits)); - } - - int result = 0; - - // First, read remainder from current byte - if (bitOffset > 0) { - int bitsLeft = 8 - bitOffset; - int toRead = numBits < bitsLeft ? numBits : bitsLeft; - int bitsToNotRead = bitsLeft - toRead; - int mask = (0xFF >> (8 - toRead)) << bitsToNotRead; - result = (bytes[byteOffset] & mask) >> bitsToNotRead; - numBits -= toRead; - bitOffset += toRead; - if (bitOffset == 8) { - bitOffset = 0; - byteOffset++; - } - } - - // Next read whole bytes - if (numBits > 0) { - while (numBits >= 8) { - result = (result << 8) | (bytes[byteOffset] & 0xFF); - byteOffset++; - numBits -= 8; - } - - // Finally read a partial byte - if (numBits > 0) { - int bitsToNotRead = 8 - numBits; - int mask = (0xFF >> bitsToNotRead) << bitsToNotRead; - result = (result << numBits) | ((bytes[byteOffset] & mask) >> bitsToNotRead); - bitOffset += numBits; - } - } - - return result; - } - - /** - * @return number of bits that can be read successfully - */ - public int available() { - return 8 * (bytes.length - byteOffset) - bitOffset; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/CharacterSetECI.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/CharacterSetECI.java deleted file mode 100755 index 133b8b77..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/CharacterSetECI.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common; - -import java.util.HashMap; -import java.util.Map; - -import com.google.zxing.FormatException; - -/** - * Encapsulates a Character Set ECI, according to "Extended Channel Interpretations" 5.3.1.1 - * of ISO 18004. - * - * @author Sean Owen - */ -public enum CharacterSetECI { - - // Enum name is a Java encoding valid for java.lang and java.io - Cp437(new int[]{0,2}), - ISO8859_1(new int[]{1,3}, "ISO-8859-1"), - ISO8859_2(4, "ISO-8859-2"), - ISO8859_3(5, "ISO-8859-3"), - ISO8859_4(6, "ISO-8859-4"), - ISO8859_5(7, "ISO-8859-5"), - ISO8859_6(8, "ISO-8859-6"), - ISO8859_7(9, "ISO-8859-7"), - ISO8859_8(10, "ISO-8859-8"), - ISO8859_9(11, "ISO-8859-9"), - ISO8859_10(12, "ISO-8859-10"), - ISO8859_11(13, "ISO-8859-11"), - ISO8859_13(15, "ISO-8859-13"), - ISO8859_14(16, "ISO-8859-14"), - ISO8859_15(17, "ISO-8859-15"), - ISO8859_16(18, "ISO-8859-16"), - SJIS(20, "Shift_JIS"), - Cp1250(21, "windows-1250"), - Cp1251(22, "windows-1251"), - Cp1252(23, "windows-1252"), - Cp1256(24, "windows-1256"), - UnicodeBigUnmarked(25, "UTF-16BE", "UnicodeBig"), - UTF8(26, "UTF-8"), - ASCII(new int[] {27, 170}, "US-ASCII"), - Big5(28), - GB18030(29, "GB2312", "EUC_CN", "GBK"), - EUC_KR(30, "EUC-KR"); - - private static final Map<Integer,CharacterSetECI> VALUE_TO_ECI = new HashMap<>(); - private static final Map<String,CharacterSetECI> NAME_TO_ECI = new HashMap<>(); - static { - for (CharacterSetECI eci : values()) { - for (int value : eci.values) { - VALUE_TO_ECI.put(value, eci); - } - NAME_TO_ECI.put(eci.name(), eci); - for (String name : eci.otherEncodingNames) { - NAME_TO_ECI.put(name, eci); - } - } - } - - private final int[] values; - private final String[] otherEncodingNames; - - CharacterSetECI(int value) { - this(new int[] {value}); - } - - CharacterSetECI(int value, String... otherEncodingNames) { - this.values = new int[] {value}; - this.otherEncodingNames = otherEncodingNames; - } - - CharacterSetECI(int[] values, String... otherEncodingNames) { - this.values = values; - this.otherEncodingNames = otherEncodingNames; - } - - public int getValue() { - return values[0]; - } - - /** - * @param value character set ECI value - * @return {@code CharacterSetECI} representing ECI of given value, or null if it is legal but - * unsupported - * @throws FormatException if ECI value is invalid - */ - public static CharacterSetECI getCharacterSetECIByValue(int value) throws FormatException { - if (value < 0 || value >= 900) { - throw FormatException.getFormatInstance(); - } - return VALUE_TO_ECI.get(value); - } - - /** - * @param name character set ECI encoding name - * @return CharacterSetECI representing ECI for character encoding, or null if it is legal - * but unsupported - */ - public static CharacterSetECI getCharacterSetECIByName(String name) { - return NAME_TO_ECI.get(name); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/DecoderResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/DecoderResult.java deleted file mode 100755 index bfeacedc..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/DecoderResult.java +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common; - -import java.util.List; - -/** - * <p>Encapsulates the result of decoding a matrix of bits. This typically - * applies to 2D barcode formats. For now it contains the raw bytes obtained, - * as well as a String interpretation of those bytes, if applicable.</p> - * - * @author Sean Owen - */ -public final class DecoderResult { - - private final byte[] rawBytes; - private final String text; - private final List<byte[]> byteSegments; - private final String ecLevel; - private Integer errorsCorrected; - private Integer erasures; - private Object other; - private final int structuredAppendParity; - private final int structuredAppendSequenceNumber; - - public DecoderResult(byte[] rawBytes, - String text, - List<byte[]> byteSegments, - String ecLevel) { - this(rawBytes, text, byteSegments, ecLevel, -1, -1); - } - - public DecoderResult(byte[] rawBytes, - String text, - List<byte[]> byteSegments, - String ecLevel, - int saSequence, - int saParity) { - this.rawBytes = rawBytes; - this.text = text; - this.byteSegments = byteSegments; - this.ecLevel = ecLevel; - this.structuredAppendParity = saParity; - this.structuredAppendSequenceNumber = saSequence; - } - - public byte[] getRawBytes() { - return rawBytes; - } - - public String getText() { - return text; - } - - public List<byte[]> getByteSegments() { - return byteSegments; - } - - public String getECLevel() { - return ecLevel; - } - - public Integer getErrorsCorrected() { - return errorsCorrected; - } - - public void setErrorsCorrected(Integer errorsCorrected) { - this.errorsCorrected = errorsCorrected; - } - - public Integer getErasures() { - return erasures; - } - - public void setErasures(Integer erasures) { - this.erasures = erasures; - } - - public Object getOther() { - return other; - } - - public void setOther(Object other) { - this.other = other; - } - - public boolean hasStructuredAppend() { - return structuredAppendParity >= 0 && structuredAppendSequenceNumber >= 0; - } - - public int getStructuredAppendParity() { - return structuredAppendParity; - } - - public int getStructuredAppendSequenceNumber() { - return structuredAppendSequenceNumber; - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/DefaultGridSampler.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/DefaultGridSampler.java deleted file mode 100755 index 0ef0fbee..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/DefaultGridSampler.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common; - -import com.google.zxing.NotFoundException; - -/** - * @author Sean Owen - */ -public final class DefaultGridSampler extends GridSampler { - - @Override - public BitMatrix sampleGrid(BitMatrix image, - int dimensionX, - int dimensionY, - float p1ToX, float p1ToY, - float p2ToX, float p2ToY, - float p3ToX, float p3ToY, - float p4ToX, float p4ToY, - float p1FromX, float p1FromY, - float p2FromX, float p2FromY, - float p3FromX, float p3FromY, - float p4FromX, float p4FromY) throws NotFoundException { - - PerspectiveTransform transform = PerspectiveTransform.quadrilateralToQuadrilateral( - p1ToX, p1ToY, p2ToX, p2ToY, p3ToX, p3ToY, p4ToX, p4ToY, - p1FromX, p1FromY, p2FromX, p2FromY, p3FromX, p3FromY, p4FromX, p4FromY); - - return sampleGrid(image, dimensionX, dimensionY, transform); - } - - @Override - public BitMatrix sampleGrid(BitMatrix image, - int dimensionX, - int dimensionY, - PerspectiveTransform transform) throws NotFoundException { - if (dimensionX <= 0 || dimensionY <= 0) { - throw NotFoundException.getNotFoundInstance(); - } - BitMatrix bits = new BitMatrix(dimensionX, dimensionY); - float[] points = new float[2 * dimensionX]; - for (int y = 0; y < dimensionY; y++) { - int max = points.length; - float iValue = (float) y + 0.5f; - for (int x = 0; x < max; x += 2) { - points[x] = (float) (x / 2) + 0.5f; - points[x + 1] = iValue; - } - transform.transformPoints(points); - // Quick check to see if points transformed to something inside the image; - // sufficient to check the endpoints - checkAndNudgePoints(image, points); - try { - for (int x = 0; x < max; x += 2) { - if (image.get((int) points[x], (int) points[x + 1])) { - // Black(-ish) pixel - bits.set(x / 2, y); - } - } - } catch (ArrayIndexOutOfBoundsException aioobe) { - // This feels wrong, but, sometimes if the finder patterns are misidentified, the resulting - // transform gets "twisted" such that it maps a straight line of points to a set of points - // whose endpoints are in bounds, but others are not. There is probably some mathematical - // way to detect this about the transformation that I don't know yet. - // This results in an ugly runtime exception despite our clever checks above -- can't have - // that. We could check each point's coordinates but that feels duplicative. We settle for - // catching and wrapping ArrayIndexOutOfBoundsException. - throw NotFoundException.getNotFoundInstance(); - } - } - return bits; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/DetectorResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/DetectorResult.java deleted file mode 100755 index 0f3cf15e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/DetectorResult.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common; - -import com.google.zxing.ResultPoint; - -/** - * <p>Encapsulates the result of detecting a barcode in an image. This includes the raw - * matrix of black/white pixels corresponding to the barcode, and possibly points of interest - * in the image, like the location of finder patterns or corners of the barcode in the image.</p> - * - * @author Sean Owen - */ -public class DetectorResult { - - private final BitMatrix bits; - private final ResultPoint[] points; - - public DetectorResult(BitMatrix bits, ResultPoint[] points) { - this.bits = bits; - this.points = points; - } - - public final BitMatrix getBits() { - return bits; - } - - public final ResultPoint[] getPoints() { - return points; - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/GlobalHistogramBinarizer.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/GlobalHistogramBinarizer.java deleted file mode 100755 index b4c0edbd..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/GlobalHistogramBinarizer.java +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common; - -import com.google.zxing.Binarizer; -import com.google.zxing.LuminanceSource; -import com.google.zxing.NotFoundException; - -/** - * This Binarizer implementation uses the old ZXing global histogram approach. It is suitable - * for low-end mobile devices which don't have enough CPU or memory to use a local thresholding - * algorithm. However, because it picks a global black point, it cannot handle difficult shadows - * and gradients. - * - * Faster mobile devices and all desktop applications should probably use HybridBinarizer instead. - * - * @author dswitkin@google.com (Daniel Switkin) - * @author Sean Owen - */ -public class GlobalHistogramBinarizer extends Binarizer { - - private static final int LUMINANCE_BITS = 5; - private static final int LUMINANCE_SHIFT = 8 - LUMINANCE_BITS; - private static final int LUMINANCE_BUCKETS = 1 << LUMINANCE_BITS; - private static final byte[] EMPTY = new byte[0]; - - private byte[] luminances; - private final int[] buckets; - - public GlobalHistogramBinarizer(LuminanceSource source) { - super(source); - luminances = EMPTY; - buckets = new int[LUMINANCE_BUCKETS]; - } - - // Applies simple sharpening to the row data to improve performance of the 1D Readers. - @Override - public BitArray getBlackRow(int y, BitArray row) throws NotFoundException { - LuminanceSource source = getLuminanceSource(); - int width = source.getWidth(); - if (row == null || row.getSize() < width) { - row = new BitArray(width); - } else { - row.clear(); - } - - initArrays(width); - byte[] localLuminances = source.getRow(y, luminances); - int[] localBuckets = buckets; - for (int x = 0; x < width; x++) { - int pixel = localLuminances[x] & 0xff; - localBuckets[pixel >> LUMINANCE_SHIFT]++; - } - int blackPoint = estimateBlackPoint(localBuckets); - - int left = localLuminances[0] & 0xff; - int center = localLuminances[1] & 0xff; - for (int x = 1; x < width - 1; x++) { - int right = localLuminances[x + 1] & 0xff; - // A simple -1 4 -1 box filter with a weight of 2. - int luminance = ((center * 4) - left - right) / 2; - if (luminance < blackPoint) { - row.set(x); - } - left = center; - center = right; - } - return row; - } - - // Does not sharpen the data, as this call is intended to only be used by 2D Readers. - @Override - public BitMatrix getBlackMatrix() throws NotFoundException { - LuminanceSource source = getLuminanceSource(); - int width = source.getWidth(); - int height = source.getHeight(); - BitMatrix matrix = new BitMatrix(width, height); - - // Quickly calculates the histogram by sampling four rows from the image. This proved to be - // more robust on the blackbox tests than sampling a diagonal as we used to do. - initArrays(width); - int[] localBuckets = buckets; - for (int y = 1; y < 5; y++) { - int row = height * y / 5; - byte[] localLuminances = source.getRow(row, luminances); - int right = (width * 4) / 5; - for (int x = width / 5; x < right; x++) { - int pixel = localLuminances[x] & 0xff; - localBuckets[pixel >> LUMINANCE_SHIFT]++; - } - } - int blackPoint = estimateBlackPoint(localBuckets); - - // We delay reading the entire image luminance until the black point estimation succeeds. - // Although we end up reading four rows twice, it is consistent with our motto of - // "fail quickly" which is necessary for continuous scanning. - byte[] localLuminances = source.getMatrix(); - for (int y = 0; y < height; y++) { - int offset = y * width; - for (int x = 0; x< width; x++) { - int pixel = localLuminances[offset + x] & 0xff; - if (pixel < blackPoint) { - matrix.set(x, y); - } - } - } - - return matrix; - } - - @Override - public Binarizer createBinarizer(LuminanceSource source) { - return new GlobalHistogramBinarizer(source); - } - - private void initArrays(int luminanceSize) { - if (luminances.length < luminanceSize) { - luminances = new byte[luminanceSize]; - } - for (int x = 0; x < LUMINANCE_BUCKETS; x++) { - buckets[x] = 0; - } - } - - private static int estimateBlackPoint(int[] buckets) throws NotFoundException { - // Find the tallest peak in the histogram. - int numBuckets = buckets.length; - int maxBucketCount = 0; - int firstPeak = 0; - int firstPeakSize = 0; - for (int x = 0; x < numBuckets; x++) { - if (buckets[x] > firstPeakSize) { - firstPeak = x; - firstPeakSize = buckets[x]; - } - if (buckets[x] > maxBucketCount) { - maxBucketCount = buckets[x]; - } - } - - // Find the second-tallest peak which is somewhat far from the tallest peak. - int secondPeak = 0; - int secondPeakScore = 0; - for (int x = 0; x < numBuckets; x++) { - int distanceToBiggest = x - firstPeak; - // Encourage more distant second peaks by multiplying by square of distance. - int score = buckets[x] * distanceToBiggest * distanceToBiggest; - if (score > secondPeakScore) { - secondPeak = x; - secondPeakScore = score; - } - } - - // Make sure firstPeak corresponds to the black peak. - if (firstPeak > secondPeak) { - int temp = firstPeak; - firstPeak = secondPeak; - secondPeak = temp; - } - - // If there is too little contrast in the image to pick a meaningful black point, throw rather - // than waste time trying to decode the image, and risk false positives. - if (secondPeak - firstPeak <= numBuckets / 16) { - throw NotFoundException.getNotFoundInstance(); - } - - // Find a valley between them that is low and closer to the white peak. - int bestValley = secondPeak - 1; - int bestValleyScore = -1; - for (int x = secondPeak - 1; x > firstPeak; x--) { - int fromFirst = x - firstPeak; - int score = fromFirst * fromFirst * (secondPeak - x) * (maxBucketCount - buckets[x]); - if (score > bestValleyScore) { - bestValley = x; - bestValleyScore = score; - } - } - - return bestValley << LUMINANCE_SHIFT; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/GridSampler.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/GridSampler.java deleted file mode 100755 index 849588f4..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/GridSampler.java +++ /dev/null @@ -1,173 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common; - -import com.google.zxing.NotFoundException; - -/** - * Implementations of this class can, given locations of finder patterns for a QR code in an - * image, sample the right points in the image to reconstruct the QR code, accounting for - * perspective distortion. It is abstracted since it is relatively expensive and should be allowed - * to take advantage of platform-specific optimized implementations, like Sun's Java Advanced - * Imaging library, but which may not be available in other environments such as J2ME, and vice - * versa. - * - * The implementation used can be controlled by calling {@link #setGridSampler(GridSampler)} - * with an instance of a class which implements this interface. - * - * @author Sean Owen - */ -public abstract class GridSampler { - - private static GridSampler gridSampler = new DefaultGridSampler(); - - /** - * Sets the implementation of GridSampler used by the library. One global - * instance is stored, which may sound problematic. But, the implementation provided - * ought to be appropriate for the entire platform, and all uses of this library - * in the whole lifetime of the JVM. For instance, an Android activity can swap in - * an implementation that takes advantage of native platform libraries. - * - * @param newGridSampler The platform-specific object to install. - */ - public static void setGridSampler(GridSampler newGridSampler) { - gridSampler = newGridSampler; - } - - /** - * @return the current implementation of GridSampler - */ - public static GridSampler getInstance() { - return gridSampler; - } - - /** - * Samples an image for a rectangular matrix of bits of the given dimension. The sampling - * transformation is determined by the coordinates of 4 points, in the original and transformed - * image space. - * - * @param image image to sample - * @param dimensionX width of {@link BitMatrix} to sample from image - * @param dimensionY height of {@link BitMatrix} to sample from image - * @param p1ToX point 1 preimage X - * @param p1ToY point 1 preimage Y - * @param p2ToX point 2 preimage X - * @param p2ToY point 2 preimage Y - * @param p3ToX point 3 preimage X - * @param p3ToY point 3 preimage Y - * @param p4ToX point 4 preimage X - * @param p4ToY point 4 preimage Y - * @param p1FromX point 1 image X - * @param p1FromY point 1 image Y - * @param p2FromX point 2 image X - * @param p2FromY point 2 image Y - * @param p3FromX point 3 image X - * @param p3FromY point 3 image Y - * @param p4FromX point 4 image X - * @param p4FromY point 4 image Y - * @return {@link BitMatrix} representing a grid of points sampled from the image within a region - * defined by the "from" parameters - * @throws NotFoundException if image can't be sampled, for example, if the transformation defined - * by the given points is invalid or results in sampling outside the image boundaries - */ - public abstract BitMatrix sampleGrid(BitMatrix image, - int dimensionX, - int dimensionY, - float p1ToX, float p1ToY, - float p2ToX, float p2ToY, - float p3ToX, float p3ToY, - float p4ToX, float p4ToY, - float p1FromX, float p1FromY, - float p2FromX, float p2FromY, - float p3FromX, float p3FromY, - float p4FromX, float p4FromY) throws NotFoundException; - - public abstract BitMatrix sampleGrid(BitMatrix image, - int dimensionX, - int dimensionY, - PerspectiveTransform transform) throws NotFoundException; - - /** - * <p>Checks a set of points that have been transformed to sample points on an image against - * the image's dimensions to see if the point are even within the image.</p> - * - * <p>This method will actually "nudge" the endpoints back onto the image if they are found to be - * barely (less than 1 pixel) off the image. This accounts for imperfect detection of finder - * patterns in an image where the QR Code runs all the way to the image border.</p> - * - * <p>For efficiency, the method will check points from either end of the line until one is found - * to be within the image. Because the set of points are assumed to be linear, this is valid.</p> - * - * @param image image into which the points should map - * @param points actual points in x1,y1,...,xn,yn form - * @throws NotFoundException if an endpoint is lies outside the image boundaries - */ - protected static void checkAndNudgePoints(BitMatrix image, - float[] points) throws NotFoundException { - int width = image.getWidth(); - int height = image.getHeight(); - // Check and nudge points from start until we see some that are OK: - boolean nudged = true; - for (int offset = 0; offset < points.length && nudged; offset += 2) { - int x = (int) points[offset]; - int y = (int) points[offset + 1]; - if (x < -1 || x > width || y < -1 || y > height) { - throw NotFoundException.getNotFoundInstance(); - } - nudged = false; - if (x == -1) { - points[offset] = 0.0f; - nudged = true; - } else if (x == width) { - points[offset] = width - 1; - nudged = true; - } - if (y == -1) { - points[offset + 1] = 0.0f; - nudged = true; - } else if (y == height) { - points[offset + 1] = height - 1; - nudged = true; - } - } - // Check and nudge points from end: - nudged = true; - for (int offset = points.length - 2; offset >= 0 && nudged; offset -= 2) { - int x = (int) points[offset]; - int y = (int) points[offset + 1]; - if (x < -1 || x > width || y < -1 || y > height) { - throw NotFoundException.getNotFoundInstance(); - } - nudged = false; - if (x == -1) { - points[offset] = 0.0f; - nudged = true; - } else if (x == width) { - points[offset] = width - 1; - nudged = true; - } - if (y == -1) { - points[offset + 1] = 0.0f; - nudged = true; - } else if (y == height) { - points[offset + 1] = height - 1; - nudged = true; - } - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/HybridBinarizer.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/HybridBinarizer.java deleted file mode 100755 index de2934da..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/HybridBinarizer.java +++ /dev/null @@ -1,237 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common; - -import com.google.zxing.Binarizer; -import com.google.zxing.LuminanceSource; -import com.google.zxing.NotFoundException; - -/** - * This class implements a local thresholding algorithm, which while slower than the - * GlobalHistogramBinarizer, is fairly efficient for what it does. It is designed for - * high frequency images of barcodes with black data on white backgrounds. For this application, - * it does a much better job than a global blackpoint with severe shadows and gradients. - * However it tends to produce artifacts on lower frequency images and is therefore not - * a good general purpose binarizer for uses outside ZXing. - * - * This class extends GlobalHistogramBinarizer, using the older histogram approach for 1D readers, - * and the newer local approach for 2D readers. 1D decoding using a per-row histogram is already - * inherently local, and only fails for horizontal gradients. We can revisit that problem later, - * but for now it was not a win to use local blocks for 1D. - * - * This Binarizer is the default for the unit tests and the recommended class for library users. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class HybridBinarizer extends GlobalHistogramBinarizer { - - // This class uses 5x5 blocks to compute local luminance, where each block is 8x8 pixels. - // So this is the smallest dimension in each axis we can accept. - private static final int BLOCK_SIZE_POWER = 3; - private static final int BLOCK_SIZE = 1 << BLOCK_SIZE_POWER; // ...0100...00 - private static final int BLOCK_SIZE_MASK = BLOCK_SIZE - 1; // ...0011...11 - private static final int MINIMUM_DIMENSION = BLOCK_SIZE * 5; - private static final int MIN_DYNAMIC_RANGE = 24; - - private BitMatrix matrix; - - public HybridBinarizer(LuminanceSource source) { - super(source); - } - - /** - * Calculates the final BitMatrix once for all requests. This could be called once from the - * constructor instead, but there are some advantages to doing it lazily, such as making - * profiling easier, and not doing heavy lifting when callers don't expect it. - */ - @Override - public BitMatrix getBlackMatrix() throws NotFoundException { - if (matrix != null) { - return matrix; - } - LuminanceSource source = getLuminanceSource(); - int width = source.getWidth(); - int height = source.getHeight(); - if (width >= MINIMUM_DIMENSION && height >= MINIMUM_DIMENSION) { - byte[] luminances = source.getMatrix(); - int subWidth = width >> BLOCK_SIZE_POWER; - if ((width & BLOCK_SIZE_MASK) != 0) { - subWidth++; - } - int subHeight = height >> BLOCK_SIZE_POWER; - if ((height & BLOCK_SIZE_MASK) != 0) { - subHeight++; - } - int[][] blackPoints = calculateBlackPoints(luminances, subWidth, subHeight, width, height); - - BitMatrix newMatrix = new BitMatrix(width, height); - calculateThresholdForBlock(luminances, subWidth, subHeight, width, height, blackPoints, newMatrix); - matrix = newMatrix; - } else { - // If the image is too small, fall back to the global histogram approach. - matrix = super.getBlackMatrix(); - } - return matrix; - } - - @Override - public Binarizer createBinarizer(LuminanceSource source) { - return new HybridBinarizer(source); - } - - /** - * For each block in the image, calculate the average black point using a 5x5 grid - * of the blocks around it. Also handles the corner cases (fractional blocks are computed based - * on the last pixels in the row/column which are also used in the previous block). - */ - private static void calculateThresholdForBlock(byte[] luminances, - int subWidth, - int subHeight, - int width, - int height, - int[][] blackPoints, - BitMatrix matrix) { - for (int y = 0; y < subHeight; y++) { - int yoffset = y << BLOCK_SIZE_POWER; - int maxYOffset = height - BLOCK_SIZE; - if (yoffset > maxYOffset) { - yoffset = maxYOffset; - } - for (int x = 0; x < subWidth; x++) { - int xoffset = x << BLOCK_SIZE_POWER; - int maxXOffset = width - BLOCK_SIZE; - if (xoffset > maxXOffset) { - xoffset = maxXOffset; - } - int left = cap(x, 2, subWidth - 3); - int top = cap(y, 2, subHeight - 3); - int sum = 0; - for (int z = -2; z <= 2; z++) { - int[] blackRow = blackPoints[top + z]; - sum += blackRow[left - 2] + blackRow[left - 1] + blackRow[left] + blackRow[left + 1] + blackRow[left + 2]; - } - int average = sum / 25; - thresholdBlock(luminances, xoffset, yoffset, average, width, matrix); - } - } - } - - private static int cap(int value, int min, int max) { - return value < min ? min : value > max ? max : value; - } - - /** - * Applies a single threshold to a block of pixels. - */ - private static void thresholdBlock(byte[] luminances, - int xoffset, - int yoffset, - int threshold, - int stride, - BitMatrix matrix) { - for (int y = 0, offset = yoffset * stride + xoffset; y < BLOCK_SIZE; y++, offset += stride) { - for (int x = 0; x < BLOCK_SIZE; x++) { - // Comparison needs to be <= so that black == 0 pixels are black even if the threshold is 0. - if ((luminances[offset + x] & 0xFF) <= threshold) { - matrix.set(xoffset + x, yoffset + y); - } - } - } - } - - /** - * Calculates a single black point for each block of pixels and saves it away. - * See the following thread for a discussion of this algorithm: - * http://groups.google.com/group/zxing/browse_thread/thread/d06efa2c35a7ddc0 - */ - private static int[][] calculateBlackPoints(byte[] luminances, - int subWidth, - int subHeight, - int width, - int height) { - int[][] blackPoints = new int[subHeight][subWidth]; - for (int y = 0; y < subHeight; y++) { - int yoffset = y << BLOCK_SIZE_POWER; - int maxYOffset = height - BLOCK_SIZE; - if (yoffset > maxYOffset) { - yoffset = maxYOffset; - } - for (int x = 0; x < subWidth; x++) { - int xoffset = x << BLOCK_SIZE_POWER; - int maxXOffset = width - BLOCK_SIZE; - if (xoffset > maxXOffset) { - xoffset = maxXOffset; - } - int sum = 0; - int min = 0xFF; - int max = 0; - for (int yy = 0, offset = yoffset * width + xoffset; yy < BLOCK_SIZE; yy++, offset += width) { - for (int xx = 0; xx < BLOCK_SIZE; xx++) { - int pixel = luminances[offset + xx] & 0xFF; - sum += pixel; - // still looking for good contrast - if (pixel < min) { - min = pixel; - } - if (pixel > max) { - max = pixel; - } - } - // short-circuit min/max tests once dynamic range is met - if (max - min > MIN_DYNAMIC_RANGE) { - // finish the rest of the rows quickly - for (yy++, offset += width; yy < BLOCK_SIZE; yy++, offset += width) { - for (int xx = 0; xx < BLOCK_SIZE; xx++) { - sum += luminances[offset + xx] & 0xFF; - } - } - } - } - - // The default estimate is the average of the values in the block. - int average = sum >> (BLOCK_SIZE_POWER * 2); - if (max - min <= MIN_DYNAMIC_RANGE) { - // If variation within the block is low, assume this is a block with only light or only - // dark pixels. In that case we do not want to use the average, as it would divide this - // low contrast area into black and white pixels, essentially creating data out of noise. - // - // The default assumption is that the block is light/background. Since no estimate for - // the level of dark pixels exists locally, use half the min for the block. - average = min / 2; - - if (y > 0 && x > 0) { - // Correct the "white background" assumption for blocks that have neighbors by comparing - // the pixels in this block to the previously calculated black points. This is based on - // the fact that dark barcode symbology is always surrounded by some amount of light - // background for which reasonable black point estimates were made. The bp estimated at - // the boundaries is used for the interior. - - // The (min < bp) is arbitrary but works better than other heuristics that were tried. - int averageNeighborBlackPoint = - (blackPoints[y - 1][x] + (2 * blackPoints[y][x - 1]) + blackPoints[y - 1][x - 1]) / 4; - if (min < averageNeighborBlackPoint) { - average = averageNeighborBlackPoint; - } - } - } - blackPoints[y][x] = average; - } - } - return blackPoints; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/PerspectiveTransform.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/PerspectiveTransform.java deleted file mode 100755 index 8ddfa7f2..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/PerspectiveTransform.java +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common; - -/** - * <p>This class implements a perspective transform in two dimensions. Given four source and four - * destination points, it will compute the transformation implied between them. The code is based - * directly upon section 3.4.2 of George Wolberg's "Digital Image Warping"; see pages 54-56.</p> - * - * @author Sean Owen - */ -public final class PerspectiveTransform { - - private final float a11; - private final float a12; - private final float a13; - private final float a21; - private final float a22; - private final float a23; - private final float a31; - private final float a32; - private final float a33; - - private PerspectiveTransform(float a11, float a21, float a31, - float a12, float a22, float a32, - float a13, float a23, float a33) { - this.a11 = a11; - this.a12 = a12; - this.a13 = a13; - this.a21 = a21; - this.a22 = a22; - this.a23 = a23; - this.a31 = a31; - this.a32 = a32; - this.a33 = a33; - } - - public static PerspectiveTransform quadrilateralToQuadrilateral(float x0, float y0, - float x1, float y1, - float x2, float y2, - float x3, float y3, - float x0p, float y0p, - float x1p, float y1p, - float x2p, float y2p, - float x3p, float y3p) { - - PerspectiveTransform qToS = quadrilateralToSquare(x0, y0, x1, y1, x2, y2, x3, y3); - PerspectiveTransform sToQ = squareToQuadrilateral(x0p, y0p, x1p, y1p, x2p, y2p, x3p, y3p); - return sToQ.times(qToS); - } - - public void transformPoints(float[] points) { - int max = points.length; - float a11 = this.a11; - float a12 = this.a12; - float a13 = this.a13; - float a21 = this.a21; - float a22 = this.a22; - float a23 = this.a23; - float a31 = this.a31; - float a32 = this.a32; - float a33 = this.a33; - for (int i = 0; i < max; i += 2) { - float x = points[i]; - float y = points[i + 1]; - float denominator = a13 * x + a23 * y + a33; - points[i] = (a11 * x + a21 * y + a31) / denominator; - points[i + 1] = (a12 * x + a22 * y + a32) / denominator; - } - } - - public void transformPoints(float[] xValues, float[] yValues) { - int n = xValues.length; - for (int i = 0; i < n; i ++) { - float x = xValues[i]; - float y = yValues[i]; - float denominator = a13 * x + a23 * y + a33; - xValues[i] = (a11 * x + a21 * y + a31) / denominator; - yValues[i] = (a12 * x + a22 * y + a32) / denominator; - } - } - - public static PerspectiveTransform squareToQuadrilateral(float x0, float y0, - float x1, float y1, - float x2, float y2, - float x3, float y3) { - float dx3 = x0 - x1 + x2 - x3; - float dy3 = y0 - y1 + y2 - y3; - if (dx3 == 0.0f && dy3 == 0.0f) { - // Affine - return new PerspectiveTransform(x1 - x0, x2 - x1, x0, - y1 - y0, y2 - y1, y0, - 0.0f, 0.0f, 1.0f); - } else { - float dx1 = x1 - x2; - float dx2 = x3 - x2; - float dy1 = y1 - y2; - float dy2 = y3 - y2; - float denominator = dx1 * dy2 - dx2 * dy1; - float a13 = (dx3 * dy2 - dx2 * dy3) / denominator; - float a23 = (dx1 * dy3 - dx3 * dy1) / denominator; - return new PerspectiveTransform(x1 - x0 + a13 * x1, x3 - x0 + a23 * x3, x0, - y1 - y0 + a13 * y1, y3 - y0 + a23 * y3, y0, - a13, a23, 1.0f); - } - } - - public static PerspectiveTransform quadrilateralToSquare(float x0, float y0, - float x1, float y1, - float x2, float y2, - float x3, float y3) { - // Here, the adjoint serves as the inverse: - return squareToQuadrilateral(x0, y0, x1, y1, x2, y2, x3, y3).buildAdjoint(); - } - - PerspectiveTransform buildAdjoint() { - // Adjoint is the transpose of the cofactor matrix: - return new PerspectiveTransform(a22 * a33 - a23 * a32, - a23 * a31 - a21 * a33, - a21 * a32 - a22 * a31, - a13 * a32 - a12 * a33, - a11 * a33 - a13 * a31, - a12 * a31 - a11 * a32, - a12 * a23 - a13 * a22, - a13 * a21 - a11 * a23, - a11 * a22 - a12 * a21); - } - - PerspectiveTransform times(PerspectiveTransform other) { - return new PerspectiveTransform(a11 * other.a11 + a21 * other.a12 + a31 * other.a13, - a11 * other.a21 + a21 * other.a22 + a31 * other.a23, - a11 * other.a31 + a21 * other.a32 + a31 * other.a33, - a12 * other.a11 + a22 * other.a12 + a32 * other.a13, - a12 * other.a21 + a22 * other.a22 + a32 * other.a23, - a12 * other.a31 + a22 * other.a32 + a32 * other.a33, - a13 * other.a11 + a23 * other.a12 + a33 * other.a13, - a13 * other.a21 + a23 * other.a22 + a33 * other.a23, - a13 * other.a31 + a23 * other.a32 + a33 * other.a33); - - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/StringUtils.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/StringUtils.java deleted file mode 100755 index 318df273..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/StringUtils.java +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common; - -import java.nio.charset.Charset; -import java.util.Map; - -import com.google.zxing.DecodeHintType; - -/** - * Common string-related functions. - * - * @author Sean Owen - * @author Alex Dupre - */ -public final class StringUtils { - - private static final String PLATFORM_DEFAULT_ENCODING = Charset.defaultCharset().name(); - public static final String SHIFT_JIS = "SJIS"; - public static final String GB2312 = "GB2312"; - private static final String EUC_JP = "EUC_JP"; - private static final String UTF8 = "UTF8"; - private static final String ISO88591 = "ISO8859_1"; - private static final boolean ASSUME_SHIFT_JIS = - SHIFT_JIS.equalsIgnoreCase(PLATFORM_DEFAULT_ENCODING) || - EUC_JP.equalsIgnoreCase(PLATFORM_DEFAULT_ENCODING); - - private StringUtils() {} - - /** - * @param bytes bytes encoding a string, whose encoding should be guessed - * @param hints decode hints if applicable - * @return name of guessed encoding; at the moment will only guess one of: - * {@link #SHIFT_JIS}, {@link #UTF8}, {@link #ISO88591}, or the platform - * default encoding if none of these can possibly be correct - */ - public static String guessEncoding(byte[] bytes, Map<DecodeHintType,?> hints) { - if (hints != null && hints.containsKey(DecodeHintType.CHARACTER_SET)) { - return hints.get(DecodeHintType.CHARACTER_SET).toString(); - } - // For now, merely tries to distinguish ISO-8859-1, UTF-8 and Shift_JIS, - // which should be by far the most common encodings. - int length = bytes.length; - boolean canBeISO88591 = true; - boolean canBeShiftJIS = true; - boolean canBeUTF8 = true; - int utf8BytesLeft = 0; - //int utf8LowChars = 0; - int utf2BytesChars = 0; - int utf3BytesChars = 0; - int utf4BytesChars = 0; - int sjisBytesLeft = 0; - //int sjisLowChars = 0; - int sjisKatakanaChars = 0; - //int sjisDoubleBytesChars = 0; - int sjisCurKatakanaWordLength = 0; - int sjisCurDoubleBytesWordLength = 0; - int sjisMaxKatakanaWordLength = 0; - int sjisMaxDoubleBytesWordLength = 0; - //int isoLowChars = 0; - //int isoHighChars = 0; - int isoHighOther = 0; - - boolean utf8bom = bytes.length > 3 && - bytes[0] == (byte) 0xEF && - bytes[1] == (byte) 0xBB && - bytes[2] == (byte) 0xBF; - - for (int i = 0; - i < length && (canBeISO88591 || canBeShiftJIS || canBeUTF8); - i++) { - - int value = bytes[i] & 0xFF; - - // UTF-8 stuff - if (canBeUTF8) { - if (utf8BytesLeft > 0) { - if ((value & 0x80) == 0) { - canBeUTF8 = false; - } else { - utf8BytesLeft--; - } - } else if ((value & 0x80) != 0) { - if ((value & 0x40) == 0) { - canBeUTF8 = false; - } else { - utf8BytesLeft++; - if ((value & 0x20) == 0) { - utf2BytesChars++; - } else { - utf8BytesLeft++; - if ((value & 0x10) == 0) { - utf3BytesChars++; - } else { - utf8BytesLeft++; - if ((value & 0x08) == 0) { - utf4BytesChars++; - } else { - canBeUTF8 = false; - } - } - } - } - } //else { - //utf8LowChars++; - //} - } - - // ISO-8859-1 stuff - if (canBeISO88591) { - if (value > 0x7F && value < 0xA0) { - canBeISO88591 = false; - } else if (value > 0x9F) { - if (value < 0xC0 || value == 0xD7 || value == 0xF7) { - isoHighOther++; - } //else { - //isoHighChars++; - //} - } //else { - //isoLowChars++; - //} - } - - // Shift_JIS stuff - if (canBeShiftJIS) { - if (sjisBytesLeft > 0) { - if (value < 0x40 || value == 0x7F || value > 0xFC) { - canBeShiftJIS = false; - } else { - sjisBytesLeft--; - } - } else if (value == 0x80 || value == 0xA0 || value > 0xEF) { - canBeShiftJIS = false; - } else if (value > 0xA0 && value < 0xE0) { - sjisKatakanaChars++; - sjisCurDoubleBytesWordLength = 0; - sjisCurKatakanaWordLength++; - if (sjisCurKatakanaWordLength > sjisMaxKatakanaWordLength) { - sjisMaxKatakanaWordLength = sjisCurKatakanaWordLength; - } - } else if (value > 0x7F) { - sjisBytesLeft++; - //sjisDoubleBytesChars++; - sjisCurKatakanaWordLength = 0; - sjisCurDoubleBytesWordLength++; - if (sjisCurDoubleBytesWordLength > sjisMaxDoubleBytesWordLength) { - sjisMaxDoubleBytesWordLength = sjisCurDoubleBytesWordLength; - } - } else { - //sjisLowChars++; - sjisCurKatakanaWordLength = 0; - sjisCurDoubleBytesWordLength = 0; - } - } - } - - if (canBeUTF8 && utf8BytesLeft > 0) { - canBeUTF8 = false; - } - if (canBeShiftJIS && sjisBytesLeft > 0) { - canBeShiftJIS = false; - } - - // Easy -- if there is BOM or at least 1 valid not-single byte character (and no evidence it can't be UTF-8), done - if (canBeUTF8 && (utf8bom || utf2BytesChars + utf3BytesChars + utf4BytesChars > 0)) { - return UTF8; - } - // Easy -- if assuming Shift_JIS or at least 3 valid consecutive not-ascii characters (and no evidence it can't be), done - if (canBeShiftJIS && (ASSUME_SHIFT_JIS || sjisMaxKatakanaWordLength >= 3 || sjisMaxDoubleBytesWordLength >= 3)) { - return SHIFT_JIS; - } - // Distinguishing Shift_JIS and ISO-8859-1 can be a little tough for short words. The crude heuristic is: - // - If we saw - // - only two consecutive katakana chars in the whole text, or - // - at least 10% of bytes that could be "upper" not-alphanumeric Latin1, - // - then we conclude Shift_JIS, else ISO-8859-1 - if (canBeISO88591 && canBeShiftJIS) { - return (sjisMaxKatakanaWordLength == 2 && sjisKatakanaChars == 2) || isoHighOther * 10 >= length - ? SHIFT_JIS : ISO88591; - } - - // Otherwise, try in order ISO-8859-1, Shift JIS, UTF-8 and fall back to default platform encoding - if (canBeISO88591) { - return ISO88591; - } - if (canBeShiftJIS) { - return SHIFT_JIS; - } - if (canBeUTF8) { - return UTF8; - } - // Otherwise, we take a wild guess with platform encoding - return PLATFORM_DEFAULT_ENCODING; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/detector/MathUtils.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/detector/MathUtils.java deleted file mode 100755 index 82aa0394..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/detector/MathUtils.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2012 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common.detector; - -public final class MathUtils { - - private MathUtils() { - } - - /** - * Ends up being a bit faster than {@link Math#round(float)}. This merely rounds its - * argument to the nearest int, where x.5 rounds up to x+1. Semantics of this shortcut - * differ slightly from {@link Math#round(float)} in that half rounds down for negative - * values. -2.5 rounds to -3, not -2. For purposes here it makes no difference. - * - * @param d real value to round - * @return nearest {@code int} - */ - public static int round(float d) { - return (int) (d + (d < 0.0f ? -0.5f : 0.5f)); - } - - public static float distance(float aX, float aY, float bX, float bY) { - float xDiff = aX - bX; - float yDiff = aY - bY; - return (float) Math.sqrt(xDiff * xDiff + yDiff * yDiff); - } - - public static float distance(int aX, int aY, int bX, int bY) { - int xDiff = aX - bX; - int yDiff = aY - bY; - return (float) Math.sqrt(xDiff * xDiff + yDiff * yDiff); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/detector/MonochromeRectangleDetector.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/detector/MonochromeRectangleDetector.java deleted file mode 100755 index 1ce8452e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/detector/MonochromeRectangleDetector.java +++ /dev/null @@ -1,215 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common.detector; - -import com.google.zxing.NotFoundException; -import com.google.zxing.ResultPoint; -import com.google.zxing.common.BitMatrix; - -/** - * <p>A somewhat generic detector that looks for a barcode-like rectangular region within an image. - * It looks within a mostly white region of an image for a region of black and white, but mostly - * black. It returns the four corners of the region, as best it can determine.</p> - * - * @author Sean Owen - */ -public final class MonochromeRectangleDetector { - - private static final int MAX_MODULES = 32; - - private final BitMatrix image; - - public MonochromeRectangleDetector(BitMatrix image) { - this.image = image; - } - - /** - * <p>Detects a rectangular region of black and white -- mostly black -- with a region of mostly - * white, in an image.</p> - * - * @return {@link ResultPoint}[] describing the corners of the rectangular region. The first and - * last points are opposed on the diagonal, as are the second and third. The first point will be - * the topmost point and the last, the bottommost. The second point will be leftmost and the - * third, the rightmost - * @throws NotFoundException if no Data Matrix Code can be found - */ - public ResultPoint[] detect() throws NotFoundException { - int height = image.getHeight(); - int width = image.getWidth(); - int halfHeight = height / 2; - int halfWidth = width / 2; - int deltaY = Math.max(1, height / (MAX_MODULES * 8)); - int deltaX = Math.max(1, width / (MAX_MODULES * 8)); - - int top = 0; - int bottom = height; - int left = 0; - int right = width; - ResultPoint pointA = findCornerFromCenter(halfWidth, 0, left, right, - halfHeight, -deltaY, top, bottom, halfWidth / 2); - top = (int) pointA.getY() - 1; - ResultPoint pointB = findCornerFromCenter(halfWidth, -deltaX, left, right, - halfHeight, 0, top, bottom, halfHeight / 2); - left = (int) pointB.getX() - 1; - ResultPoint pointC = findCornerFromCenter(halfWidth, deltaX, left, right, - halfHeight, 0, top, bottom, halfHeight / 2); - right = (int) pointC.getX() + 1; - ResultPoint pointD = findCornerFromCenter(halfWidth, 0, left, right, - halfHeight, deltaY, top, bottom, halfWidth / 2); - bottom = (int) pointD.getY() + 1; - - // Go try to find point A again with better information -- might have been off at first. - pointA = findCornerFromCenter(halfWidth, 0, left, right, - halfHeight, -deltaY, top, bottom, halfWidth / 4); - - return new ResultPoint[] { pointA, pointB, pointC, pointD }; - } - - /** - * Attempts to locate a corner of the barcode by scanning up, down, left or right from a center - * point which should be within the barcode. - * - * @param centerX center's x component (horizontal) - * @param deltaX same as deltaY but change in x per step instead - * @param left minimum value of x - * @param right maximum value of x - * @param centerY center's y component (vertical) - * @param deltaY change in y per step. If scanning up this is negative; down, positive; - * left or right, 0 - * @param top minimum value of y to search through (meaningless when di == 0) - * @param bottom maximum value of y - * @param maxWhiteRun maximum run of white pixels that can still be considered to be within - * the barcode - * @return a {@link com.google.zxing.ResultPoint} encapsulating the corner that was found - * @throws NotFoundException if such a point cannot be found - */ - private ResultPoint findCornerFromCenter(int centerX, - int deltaX, - int left, - int right, - int centerY, - int deltaY, - int top, - int bottom, - int maxWhiteRun) throws NotFoundException { - int[] lastRange = null; - for (int y = centerY, x = centerX; - y < bottom && y >= top && x < right && x >= left; - y += deltaY, x += deltaX) { - int[] range; - if (deltaX == 0) { - // horizontal slices, up and down - range = blackWhiteRange(y, maxWhiteRun, left, right, true); - } else { - // vertical slices, left and right - range = blackWhiteRange(x, maxWhiteRun, top, bottom, false); - } - if (range == null) { - if (lastRange == null) { - throw NotFoundException.getNotFoundInstance(); - } - // lastRange was found - if (deltaX == 0) { - int lastY = y - deltaY; - if (lastRange[0] < centerX) { - if (lastRange[1] > centerX) { - // straddle, choose one or the other based on direction - return new ResultPoint(deltaY > 0 ? lastRange[0] : lastRange[1], lastY); - } - return new ResultPoint(lastRange[0], lastY); - } else { - return new ResultPoint(lastRange[1], lastY); - } - } else { - int lastX = x - deltaX; - if (lastRange[0] < centerY) { - if (lastRange[1] > centerY) { - return new ResultPoint(lastX, deltaX < 0 ? lastRange[0] : lastRange[1]); - } - return new ResultPoint(lastX, lastRange[0]); - } else { - return new ResultPoint(lastX, lastRange[1]); - } - } - } - lastRange = range; - } - throw NotFoundException.getNotFoundInstance(); - } - - /** - * Computes the start and end of a region of pixels, either horizontally or vertically, that could - * be part of a Data Matrix barcode. - * - * @param fixedDimension if scanning horizontally, this is the row (the fixed vertical location) - * where we are scanning. If scanning vertically it's the column, the fixed horizontal location - * @param maxWhiteRun largest run of white pixels that can still be considered part of the - * barcode region - * @param minDim minimum pixel location, horizontally or vertically, to consider - * @param maxDim maximum pixel location, horizontally or vertically, to consider - * @param horizontal if true, we're scanning left-right, instead of up-down - * @return int[] with start and end of found range, or null if no such range is found - * (e.g. only white was found) - */ - private int[] blackWhiteRange(int fixedDimension, int maxWhiteRun, int minDim, int maxDim, boolean horizontal) { - - int center = (minDim + maxDim) / 2; - - // Scan left/up first - int start = center; - while (start >= minDim) { - if (horizontal ? image.get(start, fixedDimension) : image.get(fixedDimension, start)) { - start--; - } else { - int whiteRunStart = start; - do { - start--; - } while (start >= minDim && !(horizontal ? image.get(start, fixedDimension) : - image.get(fixedDimension, start))); - int whiteRunSize = whiteRunStart - start; - if (start < minDim || whiteRunSize > maxWhiteRun) { - start = whiteRunStart; - break; - } - } - } - start++; - - // Then try right/down - int end = center; - while (end < maxDim) { - if (horizontal ? image.get(end, fixedDimension) : image.get(fixedDimension, end)) { - end++; - } else { - int whiteRunStart = end; - do { - end++; - } while (end < maxDim && !(horizontal ? image.get(end, fixedDimension) : - image.get(fixedDimension, end))); - int whiteRunSize = end - whiteRunStart; - if (end >= maxDim || whiteRunSize > maxWhiteRun) { - end = whiteRunStart; - break; - } - } - } - end--; - - return end > start ? new int[]{start, end} : null; - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/detector/WhiteRectangleDetector.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/detector/WhiteRectangleDetector.java deleted file mode 100755 index 9e0cce0f..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/detector/WhiteRectangleDetector.java +++ /dev/null @@ -1,342 +0,0 @@ -/* - * Copyright 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common.detector; - -import com.google.zxing.NotFoundException; -import com.google.zxing.ResultPoint; -import com.google.zxing.common.BitMatrix; - -/** - * <p> - * Detects a candidate barcode-like rectangular region within an image. It - * starts around the center of the image, increases the size of the candidate - * region until it finds a white rectangular region. By keeping track of the - * last black points it encountered, it determines the corners of the barcode. - * </p> - * - * @author David Olivier - */ -public final class WhiteRectangleDetector { - - private static final int INIT_SIZE = 10; - private static final int CORR = 1; - - private final BitMatrix image; - private final int height; - private final int width; - private final int leftInit; - private final int rightInit; - private final int downInit; - private final int upInit; - - public WhiteRectangleDetector(BitMatrix image) throws NotFoundException { - this(image, INIT_SIZE, image.getWidth() / 2, image.getHeight() / 2); - } - - /** - * @param image barcode image to find a rectangle in - * @param initSize initial size of search area around center - * @param x x position of search center - * @param y y position of search center - * @throws NotFoundException if image is too small to accommodate {@code initSize} - */ - public WhiteRectangleDetector(BitMatrix image, int initSize, int x, int y) throws NotFoundException { - this.image = image; - height = image.getHeight(); - width = image.getWidth(); - int halfsize = initSize / 2; - leftInit = x - halfsize; - rightInit = x + halfsize; - upInit = y - halfsize; - downInit = y + halfsize; - if (upInit < 0 || leftInit < 0 || downInit >= height || rightInit >= width) { - throw NotFoundException.getNotFoundInstance(); - } - } - - /** - * <p> - * Detects a candidate barcode-like rectangular region within an image. It - * starts around the center of the image, increases the size of the candidate - * region until it finds a white rectangular region. - * </p> - * - * @return {@link ResultPoint}[] describing the corners of the rectangular - * region. The first and last points are opposed on the diagonal, as - * are the second and third. The first point will be the topmost - * point and the last, the bottommost. The second point will be - * leftmost and the third, the rightmost - * @throws NotFoundException if no Data Matrix Code can be found - */ - public ResultPoint[] detect() throws NotFoundException { - - int left = leftInit; - int right = rightInit; - int up = upInit; - int down = downInit; - boolean sizeExceeded = false; - boolean aBlackPointFoundOnBorder = true; - boolean atLeastOneBlackPointFoundOnBorder = false; - - boolean atLeastOneBlackPointFoundOnRight = false; - boolean atLeastOneBlackPointFoundOnBottom = false; - boolean atLeastOneBlackPointFoundOnLeft = false; - boolean atLeastOneBlackPointFoundOnTop = false; - - while (aBlackPointFoundOnBorder) { - - aBlackPointFoundOnBorder = false; - - // ..... - // . | - // ..... - boolean rightBorderNotWhite = true; - while ((rightBorderNotWhite || !atLeastOneBlackPointFoundOnRight) && right < width) { - rightBorderNotWhite = containsBlackPoint(up, down, right, false); - if (rightBorderNotWhite) { - right++; - aBlackPointFoundOnBorder = true; - atLeastOneBlackPointFoundOnRight = true; - } else if (!atLeastOneBlackPointFoundOnRight) { - right++; - } - } - - if (right >= width) { - sizeExceeded = true; - break; - } - - // ..... - // . . - // .___. - boolean bottomBorderNotWhite = true; - while ((bottomBorderNotWhite || !atLeastOneBlackPointFoundOnBottom) && down < height) { - bottomBorderNotWhite = containsBlackPoint(left, right, down, true); - if (bottomBorderNotWhite) { - down++; - aBlackPointFoundOnBorder = true; - atLeastOneBlackPointFoundOnBottom = true; - } else if (!atLeastOneBlackPointFoundOnBottom) { - down++; - } - } - - if (down >= height) { - sizeExceeded = true; - break; - } - - // ..... - // | . - // ..... - boolean leftBorderNotWhite = true; - while ((leftBorderNotWhite || !atLeastOneBlackPointFoundOnLeft) && left >= 0) { - leftBorderNotWhite = containsBlackPoint(up, down, left, false); - if (leftBorderNotWhite) { - left--; - aBlackPointFoundOnBorder = true; - atLeastOneBlackPointFoundOnLeft = true; - } else if (!atLeastOneBlackPointFoundOnLeft) { - left--; - } - } - - if (left < 0) { - sizeExceeded = true; - break; - } - - // .___. - // . . - // ..... - boolean topBorderNotWhite = true; - while ((topBorderNotWhite || !atLeastOneBlackPointFoundOnTop) && up >= 0) { - topBorderNotWhite = containsBlackPoint(left, right, up, true); - if (topBorderNotWhite) { - up--; - aBlackPointFoundOnBorder = true; - atLeastOneBlackPointFoundOnTop = true; - } else if (!atLeastOneBlackPointFoundOnTop) { - up--; - } - } - - if (up < 0) { - sizeExceeded = true; - break; - } - - if (aBlackPointFoundOnBorder) { - atLeastOneBlackPointFoundOnBorder = true; - } - - } - - if (!sizeExceeded && atLeastOneBlackPointFoundOnBorder) { - - int maxSize = right - left; - - ResultPoint z = null; - for (int i = 1; i < maxSize; i++) { - z = getBlackPointOnSegment(left, down - i, left + i, down); - if (z != null) { - break; - } - } - - if (z == null) { - throw NotFoundException.getNotFoundInstance(); - } - - ResultPoint t = null; - //go down right - for (int i = 1; i < maxSize; i++) { - t = getBlackPointOnSegment(left, up + i, left + i, up); - if (t != null) { - break; - } - } - - if (t == null) { - throw NotFoundException.getNotFoundInstance(); - } - - ResultPoint x = null; - //go down left - for (int i = 1; i < maxSize; i++) { - x = getBlackPointOnSegment(right, up + i, right - i, up); - if (x != null) { - break; - } - } - - if (x == null) { - throw NotFoundException.getNotFoundInstance(); - } - - ResultPoint y = null; - //go up left - for (int i = 1; i < maxSize; i++) { - y = getBlackPointOnSegment(right, down - i, right - i, down); - if (y != null) { - break; - } - } - - if (y == null) { - throw NotFoundException.getNotFoundInstance(); - } - - return centerEdges(y, z, x, t); - - } else { - throw NotFoundException.getNotFoundInstance(); - } - } - - private ResultPoint getBlackPointOnSegment(float aX, float aY, float bX, float bY) { - int dist = MathUtils.round(MathUtils.distance(aX, aY, bX, bY)); - float xStep = (bX - aX) / dist; - float yStep = (bY - aY) / dist; - - for (int i = 0; i < dist; i++) { - int x = MathUtils.round(aX + i * xStep); - int y = MathUtils.round(aY + i * yStep); - if (image.get(x, y)) { - return new ResultPoint(x, y); - } - } - return null; - } - - /** - * recenters the points of a constant distance towards the center - * - * @param y bottom most point - * @param z left most point - * @param x right most point - * @param t top most point - * @return {@link ResultPoint}[] describing the corners of the rectangular - * region. The first and last points are opposed on the diagonal, as - * are the second and third. The first point will be the topmost - * point and the last, the bottommost. The second point will be - * leftmost and the third, the rightmost - */ - private ResultPoint[] centerEdges(ResultPoint y, ResultPoint z, - ResultPoint x, ResultPoint t) { - - // - // t t - // z x - // x OR z - // y y - // - - float yi = y.getX(); - float yj = y.getY(); - float zi = z.getX(); - float zj = z.getY(); - float xi = x.getX(); - float xj = x.getY(); - float ti = t.getX(); - float tj = t.getY(); - - if (yi < width / 2.0f) { - return new ResultPoint[]{ - new ResultPoint(ti - CORR, tj + CORR), - new ResultPoint(zi + CORR, zj + CORR), - new ResultPoint(xi - CORR, xj - CORR), - new ResultPoint(yi + CORR, yj - CORR)}; - } else { - return new ResultPoint[]{ - new ResultPoint(ti + CORR, tj + CORR), - new ResultPoint(zi + CORR, zj - CORR), - new ResultPoint(xi - CORR, xj + CORR), - new ResultPoint(yi - CORR, yj - CORR)}; - } - } - - /** - * Determines whether a segment contains a black point - * - * @param a min value of the scanned coordinate - * @param b max value of the scanned coordinate - * @param fixed value of fixed coordinate - * @param horizontal set to true if scan must be horizontal, false if vertical - * @return true if a black point has been found, else false. - */ - private boolean containsBlackPoint(int a, int b, int fixed, boolean horizontal) { - - if (horizontal) { - for (int x = a; x <= b; x++) { - if (image.get(x, fixed)) { - return true; - } - } - } else { - for (int y = a; y <= b; y++) { - if (image.get(fixed, y)) { - return true; - } - } - } - - return false; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/reedsolomon/GenericGF.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/reedsolomon/GenericGF.java deleted file mode 100755 index 9ede5d80..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/reedsolomon/GenericGF.java +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common.reedsolomon; - -/** - * <p>This class contains utility methods for performing mathematical operations over - * the Galois Fields. Operations use a given primitive polynomial in calculations.</p> - * - * <p>Throughout this package, elements of the GF are represented as an {@code int} - * for convenience and speed (but at the cost of memory). - * </p> - * - * @author Sean Owen - * @author David Olivier - */ -public final class GenericGF { - - public static final GenericGF AZTEC_DATA_12 = new GenericGF(0x1069, 4096, 1); // x^12 + x^6 + x^5 + x^3 + 1 - public static final GenericGF AZTEC_DATA_10 = new GenericGF(0x409, 1024, 1); // x^10 + x^3 + 1 - public static final GenericGF AZTEC_DATA_6 = new GenericGF(0x43, 64, 1); // x^6 + x + 1 - public static final GenericGF AZTEC_PARAM = new GenericGF(0x13, 16, 1); // x^4 + x + 1 - public static final GenericGF QR_CODE_FIELD_256 = new GenericGF(0x011D, 256, 0); // x^8 + x^4 + x^3 + x^2 + 1 - public static final GenericGF DATA_MATRIX_FIELD_256 = new GenericGF(0x012D, 256, 1); // x^8 + x^5 + x^3 + x^2 + 1 - public static final GenericGF AZTEC_DATA_8 = DATA_MATRIX_FIELD_256; - public static final GenericGF MAXICODE_FIELD_64 = AZTEC_DATA_6; - - private final int[] expTable; - private final int[] logTable; - private final GenericGFPoly zero; - private final GenericGFPoly one; - private final int size; - private final int primitive; - private final int generatorBase; - - /** - * Create a representation of GF(size) using the given primitive polynomial. - * - * @param primitive irreducible polynomial whose coefficients are represented by - * the bits of an int, where the least-significant bit represents the constant - * coefficient - * @param size the size of the field - * @param b the factor b in the generator polynomial can be 0- or 1-based - * (g(x) = (x+a^b)(x+a^(b+1))...(x+a^(b+2t-1))). - * In most cases it should be 1, but for QR code it is 0. - */ - public GenericGF(int primitive, int size, int b) { - this.primitive = primitive; - this.size = size; - this.generatorBase = b; - - expTable = new int[size]; - logTable = new int[size]; - int x = 1; - for (int i = 0; i < size; i++) { - expTable[i] = x; - x *= 2; // we're assuming the generator alpha is 2 - if (x >= size) { - x ^= primitive; - x &= size-1; - } - } - for (int i = 0; i < size-1; i++) { - logTable[expTable[i]] = i; - } - // logTable[0] == 0 but this should never be used - zero = new GenericGFPoly(this, new int[]{0}); - one = new GenericGFPoly(this, new int[]{1}); - } - - GenericGFPoly getZero() { - return zero; - } - - GenericGFPoly getOne() { - return one; - } - - /** - * @return the monomial representing coefficient * x^degree - */ - GenericGFPoly buildMonomial(int degree, int coefficient) { - if (degree < 0) { - throw new IllegalArgumentException(); - } - if (coefficient == 0) { - return zero; - } - int[] coefficients = new int[degree + 1]; - coefficients[0] = coefficient; - return new GenericGFPoly(this, coefficients); - } - - /** - * Implements both addition and subtraction -- they are the same in GF(size). - * - * @return sum/difference of a and b - */ - static int addOrSubtract(int a, int b) { - return a ^ b; - } - - /** - * @return 2 to the power of a in GF(size) - */ - int exp(int a) { - return expTable[a]; - } - - /** - * @return base 2 log of a in GF(size) - */ - int log(int a) { - if (a == 0) { - throw new IllegalArgumentException(); - } - return logTable[a]; - } - - /** - * @return multiplicative inverse of a - */ - int inverse(int a) { - if (a == 0) { - throw new ArithmeticException(); - } - return expTable[size - logTable[a] - 1]; - } - - /** - * @return product of a and b in GF(size) - */ - int multiply(int a, int b) { - if (a == 0 || b == 0) { - return 0; - } - return expTable[(logTable[a] + logTable[b]) % (size - 1)]; - } - - public int getSize() { - return size; - } - - public int getGeneratorBase() { - return generatorBase; - } - - @Override - public String toString() { - return "GF(0x" + Integer.toHexString(primitive) + ',' + size + ')'; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/reedsolomon/GenericGFPoly.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/reedsolomon/GenericGFPoly.java deleted file mode 100755 index 8887e0ee..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/reedsolomon/GenericGFPoly.java +++ /dev/null @@ -1,264 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common.reedsolomon; - -/** - * <p>Represents a polynomial whose coefficients are elements of a GF. - * Instances of this class are immutable.</p> - * - * <p>Much credit is due to William Rucklidge since portions of this code are an indirect - * port of his C++ Reed-Solomon implementation.</p> - * - * @author Sean Owen - */ -final class GenericGFPoly { - - private final GenericGF field; - private final int[] coefficients; - - /** - * @param field the {@link GenericGF} instance representing the field to use - * to perform computations - * @param coefficients coefficients as ints representing elements of GF(size), arranged - * from most significant (highest-power term) coefficient to least significant - * @throws IllegalArgumentException if argument is null or empty, - * or if leading coefficient is 0 and this is not a - * constant polynomial (that is, it is not the monomial "0") - */ - GenericGFPoly(GenericGF field, int[] coefficients) { - if (coefficients.length == 0) { - throw new IllegalArgumentException(); - } - this.field = field; - int coefficientsLength = coefficients.length; - if (coefficientsLength > 1 && coefficients[0] == 0) { - // Leading term must be non-zero for anything except the constant polynomial "0" - int firstNonZero = 1; - while (firstNonZero < coefficientsLength && coefficients[firstNonZero] == 0) { - firstNonZero++; - } - if (firstNonZero == coefficientsLength) { - this.coefficients = new int[]{0}; - } else { - this.coefficients = new int[coefficientsLength - firstNonZero]; - System.arraycopy(coefficients, - firstNonZero, - this.coefficients, - 0, - this.coefficients.length); - } - } else { - this.coefficients = coefficients; - } - } - - int[] getCoefficients() { - return coefficients; - } - - /** - * @return degree of this polynomial - */ - int getDegree() { - return coefficients.length - 1; - } - - /** - * @return true iff this polynomial is the monomial "0" - */ - boolean isZero() { - return coefficients[0] == 0; - } - - /** - * @return coefficient of x^degree term in this polynomial - */ - int getCoefficient(int degree) { - return coefficients[coefficients.length - 1 - degree]; - } - - /** - * @return evaluation of this polynomial at a given point - */ - int evaluateAt(int a) { - if (a == 0) { - // Just return the x^0 coefficient - return getCoefficient(0); - } - int size = coefficients.length; - if (a == 1) { - // Just the sum of the coefficients - int result = 0; - for (int coefficient : coefficients) { - result = GenericGF.addOrSubtract(result, coefficient); - } - return result; - } - int result = coefficients[0]; - for (int i = 1; i < size; i++) { - result = GenericGF.addOrSubtract(field.multiply(a, result), coefficients[i]); - } - return result; - } - - GenericGFPoly addOrSubtract(GenericGFPoly other) { - if (!field.equals(other.field)) { - throw new IllegalArgumentException("GenericGFPolys do not have same GenericGF field"); - } - if (isZero()) { - return other; - } - if (other.isZero()) { - return this; - } - - int[] smallerCoefficients = this.coefficients; - int[] largerCoefficients = other.coefficients; - if (smallerCoefficients.length > largerCoefficients.length) { - int[] temp = smallerCoefficients; - smallerCoefficients = largerCoefficients; - largerCoefficients = temp; - } - int[] sumDiff = new int[largerCoefficients.length]; - int lengthDiff = largerCoefficients.length - smallerCoefficients.length; - // Copy high-order terms only found in higher-degree polynomial's coefficients - System.arraycopy(largerCoefficients, 0, sumDiff, 0, lengthDiff); - - for (int i = lengthDiff; i < largerCoefficients.length; i++) { - sumDiff[i] = GenericGF.addOrSubtract(smallerCoefficients[i - lengthDiff], largerCoefficients[i]); - } - - return new GenericGFPoly(field, sumDiff); - } - - GenericGFPoly multiply(GenericGFPoly other) { - if (!field.equals(other.field)) { - throw new IllegalArgumentException("GenericGFPolys do not have same GenericGF field"); - } - if (isZero() || other.isZero()) { - return field.getZero(); - } - int[] aCoefficients = this.coefficients; - int aLength = aCoefficients.length; - int[] bCoefficients = other.coefficients; - int bLength = bCoefficients.length; - int[] product = new int[aLength + bLength - 1]; - for (int i = 0; i < aLength; i++) { - int aCoeff = aCoefficients[i]; - for (int j = 0; j < bLength; j++) { - product[i + j] = GenericGF.addOrSubtract(product[i + j], - field.multiply(aCoeff, bCoefficients[j])); - } - } - return new GenericGFPoly(field, product); - } - - GenericGFPoly multiply(int scalar) { - if (scalar == 0) { - return field.getZero(); - } - if (scalar == 1) { - return this; - } - int size = coefficients.length; - int[] product = new int[size]; - for (int i = 0; i < size; i++) { - product[i] = field.multiply(coefficients[i], scalar); - } - return new GenericGFPoly(field, product); - } - - GenericGFPoly multiplyByMonomial(int degree, int coefficient) { - if (degree < 0) { - throw new IllegalArgumentException(); - } - if (coefficient == 0) { - return field.getZero(); - } - int size = coefficients.length; - int[] product = new int[size + degree]; - for (int i = 0; i < size; i++) { - product[i] = field.multiply(coefficients[i], coefficient); - } - return new GenericGFPoly(field, product); - } - - GenericGFPoly[] divide(GenericGFPoly other) { - if (!field.equals(other.field)) { - throw new IllegalArgumentException("GenericGFPolys do not have same GenericGF field"); - } - if (other.isZero()) { - throw new IllegalArgumentException("Divide by 0"); - } - - GenericGFPoly quotient = field.getZero(); - GenericGFPoly remainder = this; - - int denominatorLeadingTerm = other.getCoefficient(other.getDegree()); - int inverseDenominatorLeadingTerm = field.inverse(denominatorLeadingTerm); - - while (remainder.getDegree() >= other.getDegree() && !remainder.isZero()) { - int degreeDifference = remainder.getDegree() - other.getDegree(); - int scale = field.multiply(remainder.getCoefficient(remainder.getDegree()), inverseDenominatorLeadingTerm); - GenericGFPoly term = other.multiplyByMonomial(degreeDifference, scale); - GenericGFPoly iterationQuotient = field.buildMonomial(degreeDifference, scale); - quotient = quotient.addOrSubtract(iterationQuotient); - remainder = remainder.addOrSubtract(term); - } - - return new GenericGFPoly[] { quotient, remainder }; - } - - @Override - public String toString() { - StringBuilder result = new StringBuilder(8 * getDegree()); - for (int degree = getDegree(); degree >= 0; degree--) { - int coefficient = getCoefficient(degree); - if (coefficient != 0) { - if (coefficient < 0) { - result.append(" - "); - coefficient = -coefficient; - } else { - if (result.length() > 0) { - result.append(" + "); - } - } - if (degree == 0 || coefficient != 1) { - int alphaPower = field.log(coefficient); - if (alphaPower == 0) { - result.append('1'); - } else if (alphaPower == 1) { - result.append('a'); - } else { - result.append("a^"); - result.append(alphaPower); - } - } - if (degree != 0) { - if (degree == 1) { - result.append('x'); - } else { - result.append("x^"); - result.append(degree); - } - } - } - } - return result.toString(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/reedsolomon/ReedSolomonDecoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/reedsolomon/ReedSolomonDecoder.java deleted file mode 100755 index 19127e0c..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/reedsolomon/ReedSolomonDecoder.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common.reedsolomon; - -/** - * <p>Implements Reed-Solomon decoding, as the name implies.</p> - * - * <p>The algorithm will not be explained here, but the following references were helpful - * in creating this implementation:</p> - * - * <ul> - * <li>Bruce Maggs. - * <a href="http://www.cs.cmu.edu/afs/cs.cmu.edu/project/pscico-guyb/realworld/www/rs_decode.ps"> - * "Decoding Reed-Solomon Codes"</a> (see discussion of Forney's Formula)</li> - * <li>J.I. Hall. <a href="www.mth.msu.edu/~jhall/classes/codenotes/GRS.pdf"> - * "Chapter 5. Generalized Reed-Solomon Codes"</a> - * (see discussion of Euclidean algorithm)</li> - * </ul> - * - * <p>Much credit is due to William Rucklidge since portions of this code are an indirect - * port of his C++ Reed-Solomon implementation.</p> - * - * @author Sean Owen - * @author William Rucklidge - * @author sanfordsquires - */ -public final class ReedSolomonDecoder { - - private final GenericGF field; - - public ReedSolomonDecoder(GenericGF field) { - this.field = field; - } - - /** - * <p>Decodes given set of received codewords, which include both data and error-correction - * codewords. Really, this means it uses Reed-Solomon to detect and correct errors, in-place, - * in the input.</p> - * - * @param received data and error-correction codewords - * @param twoS number of error-correction codewords available - * @throws ReedSolomonException if decoding fails for any reason - */ - public void decode(int[] received, int twoS) throws ReedSolomonException { - GenericGFPoly poly = new GenericGFPoly(field, received); - int[] syndromeCoefficients = new int[twoS]; - boolean noError = true; - for (int i = 0; i < twoS; i++) { - int eval = poly.evaluateAt(field.exp(i + field.getGeneratorBase())); - syndromeCoefficients[syndromeCoefficients.length - 1 - i] = eval; - if (eval != 0) { - noError = false; - } - } - if (noError) { - return; - } - GenericGFPoly syndrome = new GenericGFPoly(field, syndromeCoefficients); - GenericGFPoly[] sigmaOmega = - runEuclideanAlgorithm(field.buildMonomial(twoS, 1), syndrome, twoS); - GenericGFPoly sigma = sigmaOmega[0]; - GenericGFPoly omega = sigmaOmega[1]; - int[] errorLocations = findErrorLocations(sigma); - int[] errorMagnitudes = findErrorMagnitudes(omega, errorLocations); - for (int i = 0; i < errorLocations.length; i++) { - int position = received.length - 1 - field.log(errorLocations[i]); - if (position < 0) { - throw new ReedSolomonException("Bad error location"); - } - received[position] = GenericGF.addOrSubtract(received[position], errorMagnitudes[i]); - } - } - - private GenericGFPoly[] runEuclideanAlgorithm(GenericGFPoly a, GenericGFPoly b, int R) - throws ReedSolomonException { - // Assume a's degree is >= b's - if (a.getDegree() < b.getDegree()) { - GenericGFPoly temp = a; - a = b; - b = temp; - } - - GenericGFPoly rLast = a; - GenericGFPoly r = b; - GenericGFPoly tLast = field.getZero(); - GenericGFPoly t = field.getOne(); - - // Run Euclidean algorithm until r's degree is less than R/2 - while (r.getDegree() >= R / 2) { - GenericGFPoly rLastLast = rLast; - GenericGFPoly tLastLast = tLast; - rLast = r; - tLast = t; - - // Divide rLastLast by rLast, with quotient in q and remainder in r - if (rLast.isZero()) { - // Oops, Euclidean algorithm already terminated? - throw new ReedSolomonException("r_{i-1} was zero"); - } - r = rLastLast; - GenericGFPoly q = field.getZero(); - int denominatorLeadingTerm = rLast.getCoefficient(rLast.getDegree()); - int dltInverse = field.inverse(denominatorLeadingTerm); - while (r.getDegree() >= rLast.getDegree() && !r.isZero()) { - int degreeDiff = r.getDegree() - rLast.getDegree(); - int scale = field.multiply(r.getCoefficient(r.getDegree()), dltInverse); - q = q.addOrSubtract(field.buildMonomial(degreeDiff, scale)); - r = r.addOrSubtract(rLast.multiplyByMonomial(degreeDiff, scale)); - } - - t = q.multiply(tLast).addOrSubtract(tLastLast); - - if (r.getDegree() >= rLast.getDegree()) { - throw new IllegalStateException("Division algorithm failed to reduce polynomial?"); - } - } - - int sigmaTildeAtZero = t.getCoefficient(0); - if (sigmaTildeAtZero == 0) { - throw new ReedSolomonException("sigmaTilde(0) was zero"); - } - - int inverse = field.inverse(sigmaTildeAtZero); - GenericGFPoly sigma = t.multiply(inverse); - GenericGFPoly omega = r.multiply(inverse); - return new GenericGFPoly[]{sigma, omega}; - } - - private int[] findErrorLocations(GenericGFPoly errorLocator) throws ReedSolomonException { - // This is a direct application of Chien's search - int numErrors = errorLocator.getDegree(); - if (numErrors == 1) { // shortcut - return new int[] { errorLocator.getCoefficient(1) }; - } - int[] result = new int[numErrors]; - int e = 0; - for (int i = 1; i < field.getSize() && e < numErrors; i++) { - if (errorLocator.evaluateAt(i) == 0) { - result[e] = field.inverse(i); - e++; - } - } - if (e != numErrors) { - throw new ReedSolomonException("Error locator degree does not match number of roots"); - } - return result; - } - - private int[] findErrorMagnitudes(GenericGFPoly errorEvaluator, int[] errorLocations) { - // This is directly applying Forney's Formula - int s = errorLocations.length; - int[] result = new int[s]; - for (int i = 0; i < s; i++) { - int xiInverse = field.inverse(errorLocations[i]); - int denominator = 1; - for (int j = 0; j < s; j++) { - if (i != j) { - //denominator = field.multiply(denominator, - // GenericGF.addOrSubtract(1, field.multiply(errorLocations[j], xiInverse))); - // Above should work but fails on some Apple and Linux JDKs due to a Hotspot bug. - // Below is a funny-looking workaround from Steven Parkes - int term = field.multiply(errorLocations[j], xiInverse); - int termPlus1 = (term & 0x1) == 0 ? term | 1 : term & ~1; - denominator = field.multiply(denominator, termPlus1); - } - } - result[i] = field.multiply(errorEvaluator.evaluateAt(xiInverse), - field.inverse(denominator)); - if (field.getGeneratorBase() != 0) { - result[i] = field.multiply(result[i], xiInverse); - } - } - return result; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/reedsolomon/ReedSolomonEncoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/reedsolomon/ReedSolomonEncoder.java deleted file mode 100755 index ff813cb1..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/reedsolomon/ReedSolomonEncoder.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common.reedsolomon; - -import java.util.ArrayList; -import java.util.List; - -/** - * <p>Implements Reed-Solomon enbcoding, as the name implies.</p> - * - * @author Sean Owen - * @author William Rucklidge - */ -public final class ReedSolomonEncoder { - - private final GenericGF field; - private final List<GenericGFPoly> cachedGenerators; - - public ReedSolomonEncoder(GenericGF field) { - this.field = field; - this.cachedGenerators = new ArrayList<>(); - cachedGenerators.add(new GenericGFPoly(field, new int[]{1})); - } - - private GenericGFPoly buildGenerator(int degree) { - if (degree >= cachedGenerators.size()) { - GenericGFPoly lastGenerator = cachedGenerators.get(cachedGenerators.size() - 1); - for (int d = cachedGenerators.size(); d <= degree; d++) { - GenericGFPoly nextGenerator = lastGenerator.multiply( - new GenericGFPoly(field, new int[] { 1, field.exp(d - 1 + field.getGeneratorBase()) })); - cachedGenerators.add(nextGenerator); - lastGenerator = nextGenerator; - } - } - return cachedGenerators.get(degree); - } - - public void encode(int[] toEncode, int ecBytes) { - if (ecBytes == 0) { - throw new IllegalArgumentException("No error correction bytes"); - } - int dataBytes = toEncode.length - ecBytes; - if (dataBytes <= 0) { - throw new IllegalArgumentException("No data bytes provided"); - } - GenericGFPoly generator = buildGenerator(ecBytes); - int[] infoCoefficients = new int[dataBytes]; - System.arraycopy(toEncode, 0, infoCoefficients, 0, dataBytes); - GenericGFPoly info = new GenericGFPoly(field, infoCoefficients); - info = info.multiplyByMonomial(ecBytes, 1); - GenericGFPoly remainder = info.divide(generator)[1]; - int[] coefficients = remainder.getCoefficients(); - int numZeroCoefficients = ecBytes - coefficients.length; - for (int i = 0; i < numZeroCoefficients; i++) { - toEncode[dataBytes + i] = 0; - } - System.arraycopy(coefficients, 0, toEncode, dataBytes + numZeroCoefficients, coefficients.length); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/reedsolomon/ReedSolomonException.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/reedsolomon/ReedSolomonException.java deleted file mode 100755 index d5b45a61..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/common/reedsolomon/ReedSolomonException.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.common.reedsolomon; - -/** - * <p>Thrown when an exception occurs during Reed-Solomon decoding, such as when - * there are too many errors to correct.</p> - * - * @author Sean Owen - */ -public final class ReedSolomonException extends Exception { - - public ReedSolomonException(String message) { - super(message); - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/DataMatrixReader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/DataMatrixReader.java deleted file mode 100755 index d417c623..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/DataMatrixReader.java +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix; - -import java.util.List; -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.BinaryBitmap; -import com.google.zxing.ChecksumException; -import com.google.zxing.DecodeHintType; -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.Reader; -import com.google.zxing.Result; -import com.google.zxing.ResultMetadataType; -import com.google.zxing.ResultPoint; -import com.google.zxing.common.BitMatrix; -import com.google.zxing.common.DecoderResult; -import com.google.zxing.common.DetectorResult; -import com.google.zxing.datamatrix.decoder.Decoder; -import com.google.zxing.datamatrix.detector.Detector; - -/** - * This implementation can detect and decode Data Matrix codes in an image. - * - * @author bbrown@google.com (Brian Brown) - */ -public final class DataMatrixReader implements Reader { - - private static final ResultPoint[] NO_POINTS = new ResultPoint[0]; - - private final Decoder decoder = new Decoder(); - - /** - * Locates and decodes a Data Matrix code in an image. - * - * @return a String representing the content encoded by the Data Matrix code - * @throws NotFoundException if a Data Matrix code cannot be found - * @throws FormatException if a Data Matrix code cannot be decoded - * @throws ChecksumException if error correction fails - */ - @Override - public Result decode(BinaryBitmap image) throws NotFoundException, ChecksumException, FormatException { - return decode(image, null); - } - - @Override - public Result decode(BinaryBitmap image, Map<DecodeHintType,?> hints) - throws NotFoundException, ChecksumException, FormatException { - DecoderResult decoderResult; - ResultPoint[] points; - if (hints != null && hints.containsKey(DecodeHintType.PURE_BARCODE)) { - BitMatrix bits = extractPureBits(image.getBlackMatrix()); - decoderResult = decoder.decode(bits); - points = NO_POINTS; - } else { - DetectorResult detectorResult = new Detector(image.getBlackMatrix()).detect(); - decoderResult = decoder.decode(detectorResult.getBits()); - points = detectorResult.getPoints(); - } - Result result = new Result(decoderResult.getText(), decoderResult.getRawBytes(), points, - BarcodeFormat.DATA_MATRIX); - List<byte[]> byteSegments = decoderResult.getByteSegments(); - if (byteSegments != null) { - result.putMetadata(ResultMetadataType.BYTE_SEGMENTS, byteSegments); - } - String ecLevel = decoderResult.getECLevel(); - if (ecLevel != null) { - result.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, ecLevel); - } - return result; - } - - @Override - public void reset() { - // do nothing - } - - /** - * This method detects a code in a "pure" image -- that is, pure monochrome image - * which contains only an unrotated, unskewed, image of a code, with some white border - * around it. This is a specialized method that works exceptionally fast in this special - * case. - * - * @see com.google.zxing.qrcode.QRCodeReader#extractPureBits(BitMatrix) - */ - private static BitMatrix extractPureBits(BitMatrix image) throws NotFoundException { - - int[] leftTopBlack = image.getTopLeftOnBit(); - int[] rightBottomBlack = image.getBottomRightOnBit(); - if (leftTopBlack == null || rightBottomBlack == null) { - throw NotFoundException.getNotFoundInstance(); - } - - int moduleSize = moduleSize(leftTopBlack, image); - - int top = leftTopBlack[1]; - int bottom = rightBottomBlack[1]; - int left = leftTopBlack[0]; - int right = rightBottomBlack[0]; - - int matrixWidth = (right - left + 1) / moduleSize; - int matrixHeight = (bottom - top + 1) / moduleSize; - if (matrixWidth <= 0 || matrixHeight <= 0) { - throw NotFoundException.getNotFoundInstance(); - } - - // Push in the "border" by half the module width so that we start - // sampling in the middle of the module. Just in case the image is a - // little off, this will help recover. - int nudge = moduleSize / 2; - top += nudge; - left += nudge; - - // Now just read off the bits - BitMatrix bits = new BitMatrix(matrixWidth, matrixHeight); - for (int y = 0; y < matrixHeight; y++) { - int iOffset = top + y * moduleSize; - for (int x = 0; x < matrixWidth; x++) { - if (image.get(left + x * moduleSize, iOffset)) { - bits.set(x, y); - } - } - } - return bits; - } - - private static int moduleSize(int[] leftTopBlack, BitMatrix image) throws NotFoundException { - int width = image.getWidth(); - int x = leftTopBlack[0]; - int y = leftTopBlack[1]; - while (x < width && image.get(x, y)) { - x++; - } - if (x == width) { - throw NotFoundException.getNotFoundInstance(); - } - - int moduleSize = x - leftTopBlack[0]; - if (moduleSize == 0) { - throw NotFoundException.getNotFoundInstance(); - } - return moduleSize; - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/DataMatrixWriter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/DataMatrixWriter.java deleted file mode 100755 index d1440eb7..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/DataMatrixWriter.java +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix; - -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.Dimension; -import com.google.zxing.EncodeHintType; -import com.google.zxing.Writer; -import com.google.zxing.common.BitMatrix; -import com.google.zxing.datamatrix.encoder.DefaultPlacement; -import com.google.zxing.datamatrix.encoder.ErrorCorrection; -import com.google.zxing.datamatrix.encoder.HighLevelEncoder; -import com.google.zxing.datamatrix.encoder.SymbolInfo; -import com.google.zxing.datamatrix.encoder.SymbolShapeHint; -import com.google.zxing.qrcode.encoder.ByteMatrix; - -/** - * This object renders a Data Matrix code as a BitMatrix 2D array of greyscale values. - * - * @author dswitkin@google.com (Daniel Switkin) - * @author Guillaume Le Biller Added to zxing lib. - */ -public final class DataMatrixWriter implements Writer { - - @Override - public BitMatrix encode(String contents, BarcodeFormat format, int width, int height) { - return encode(contents, format, width, height, null); - } - - @Override - public BitMatrix encode(String contents, BarcodeFormat format, int width, int height, Map<EncodeHintType,?> hints) { - - if (contents.isEmpty()) { - throw new IllegalArgumentException("Found empty contents"); - } - - if (format != BarcodeFormat.DATA_MATRIX) { - throw new IllegalArgumentException("Can only encode DATA_MATRIX, but got " + format); - } - - if (width < 0 || height < 0) { - throw new IllegalArgumentException("Requested dimensions are too small: " + width + 'x' + height); - } - - // Try to get force shape & min / max size - SymbolShapeHint shape = SymbolShapeHint.FORCE_NONE; - Dimension minSize = null; - Dimension maxSize = null; - if (hints != null) { - SymbolShapeHint requestedShape = (SymbolShapeHint) hints.get(EncodeHintType.DATA_MATRIX_SHAPE); - if (requestedShape != null) { - shape = requestedShape; - } - @SuppressWarnings("deprecation") - Dimension requestedMinSize = (Dimension) hints.get(EncodeHintType.MIN_SIZE); - if (requestedMinSize != null) { - minSize = requestedMinSize; - } - @SuppressWarnings("deprecation") - Dimension requestedMaxSize = (Dimension) hints.get(EncodeHintType.MAX_SIZE); - if (requestedMaxSize != null) { - maxSize = requestedMaxSize; - } - } - - - //1. step: Data encodation - String encoded = HighLevelEncoder.encodeHighLevel(contents, shape, minSize, maxSize); - - SymbolInfo symbolInfo = SymbolInfo.lookup(encoded.length(), shape, minSize, maxSize, true); - - //2. step: ECC generation - String codewords = ErrorCorrection.encodeECC200(encoded, symbolInfo); - - //3. step: Module placement in Matrix - DefaultPlacement placement = - new DefaultPlacement(codewords, symbolInfo.getSymbolDataWidth(), symbolInfo.getSymbolDataHeight()); - placement.place(); - - //4. step: low-level encoding - return encodeLowLevel(placement, symbolInfo); - } - - /** - * Encode the given symbol info to a bit matrix. - * - * @param placement The DataMatrix placement. - * @param symbolInfo The symbol info to encode. - * @return The bit matrix generated. - */ - private static BitMatrix encodeLowLevel(DefaultPlacement placement, SymbolInfo symbolInfo) { - int symbolWidth = symbolInfo.getSymbolDataWidth(); - int symbolHeight = symbolInfo.getSymbolDataHeight(); - - ByteMatrix matrix = new ByteMatrix(symbolInfo.getSymbolWidth(), symbolInfo.getSymbolHeight()); - - int matrixY = 0; - - for (int y = 0; y < symbolHeight; y++) { - // Fill the top edge with alternate 0 / 1 - int matrixX; - if ((y % symbolInfo.matrixHeight) == 0) { - matrixX = 0; - for (int x = 0; x < symbolInfo.getSymbolWidth(); x++) { - matrix.set(matrixX, matrixY, (x % 2) == 0); - matrixX++; - } - matrixY++; - } - matrixX = 0; - for (int x = 0; x < symbolWidth; x++) { - // Fill the right edge with full 1 - if ((x % symbolInfo.matrixWidth) == 0) { - matrix.set(matrixX, matrixY, true); - matrixX++; - } - matrix.set(matrixX, matrixY, placement.getBit(x, y)); - matrixX++; - // Fill the right edge with alternate 0 / 1 - if ((x % symbolInfo.matrixWidth) == symbolInfo.matrixWidth - 1) { - matrix.set(matrixX, matrixY, (y % 2) == 0); - matrixX++; - } - } - matrixY++; - // Fill the bottom edge with full 1 - if ((y % symbolInfo.matrixHeight) == symbolInfo.matrixHeight - 1) { - matrixX = 0; - for (int x = 0; x < symbolInfo.getSymbolWidth(); x++) { - matrix.set(matrixX, matrixY, true); - matrixX++; - } - matrixY++; - } - } - - return convertByteMatrixToBitMatrix(matrix); - } - - /** - * Convert the ByteMatrix to BitMatrix. - * - * @param matrix The input matrix. - * @return The output matrix. - */ - private static BitMatrix convertByteMatrixToBitMatrix(ByteMatrix matrix) { - int matrixWidgth = matrix.getWidth(); - int matrixHeight = matrix.getHeight(); - - BitMatrix output = new BitMatrix(matrixWidgth, matrixHeight); - output.clear(); - for (int i = 0; i < matrixWidgth; i++) { - for (int j = 0; j < matrixHeight; j++) { - // Zero is white in the bytematrix - if (matrix.get(i, j) == 1) { - output.set(i, j); - } - } - } - - return output; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/decoder/BitMatrixParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/decoder/BitMatrixParser.java deleted file mode 100755 index f04f2193..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/decoder/BitMatrixParser.java +++ /dev/null @@ -1,440 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix.decoder; - -import com.google.zxing.FormatException; -import com.google.zxing.common.BitMatrix; - -/** - * @author bbrown@google.com (Brian Brown) - */ -final class BitMatrixParser { - - private final BitMatrix mappingBitMatrix; - private final BitMatrix readMappingMatrix; - private final Version version; - - /** - * @param bitMatrix {@link BitMatrix} to parse - * @throws FormatException if dimension is < 8 or > 144 or not 0 mod 2 - */ - BitMatrixParser(BitMatrix bitMatrix) throws FormatException { - int dimension = bitMatrix.getHeight(); - if (dimension < 8 || dimension > 144 || (dimension & 0x01) != 0) { - throw FormatException.getFormatInstance(); - } - - version = readVersion(bitMatrix); - this.mappingBitMatrix = extractDataRegion(bitMatrix); - this.readMappingMatrix = new BitMatrix(this.mappingBitMatrix.getWidth(), this.mappingBitMatrix.getHeight()); - } - - Version getVersion() { - return version; - } - - /** - * <p>Creates the version object based on the dimension of the original bit matrix from - * the datamatrix code.</p> - * - * <p>See ISO 16022:2006 Table 7 - ECC 200 symbol attributes</p> - * - * @param bitMatrix Original {@link BitMatrix} including alignment patterns - * @return {@link Version} encapsulating the Data Matrix Code's "version" - * @throws FormatException if the dimensions of the mapping matrix are not valid - * Data Matrix dimensions. - */ - private static Version readVersion(BitMatrix bitMatrix) throws FormatException { - int numRows = bitMatrix.getHeight(); - int numColumns = bitMatrix.getWidth(); - return Version.getVersionForDimensions(numRows, numColumns); - } - - /** - * <p>Reads the bits in the {@link BitMatrix} representing the mapping matrix (No alignment patterns) - * in the correct order in order to reconstitute the codewords bytes contained within the - * Data Matrix Code.</p> - * - * @return bytes encoded within the Data Matrix Code - * @throws FormatException if the exact number of bytes expected is not read - */ - byte[] readCodewords() throws FormatException { - - byte[] result = new byte[version.getTotalCodewords()]; - int resultOffset = 0; - - int row = 4; - int column = 0; - - int numRows = mappingBitMatrix.getHeight(); - int numColumns = mappingBitMatrix.getWidth(); - - boolean corner1Read = false; - boolean corner2Read = false; - boolean corner3Read = false; - boolean corner4Read = false; - - // Read all of the codewords - do { - // Check the four corner cases - if ((row == numRows) && (column == 0) && !corner1Read) { - result[resultOffset++] = (byte) readCorner1(numRows, numColumns); - row -= 2; - column +=2; - corner1Read = true; - } else if ((row == numRows-2) && (column == 0) && ((numColumns & 0x03) != 0) && !corner2Read) { - result[resultOffset++] = (byte) readCorner2(numRows, numColumns); - row -= 2; - column +=2; - corner2Read = true; - } else if ((row == numRows+4) && (column == 2) && ((numColumns & 0x07) == 0) && !corner3Read) { - result[resultOffset++] = (byte) readCorner3(numRows, numColumns); - row -= 2; - column +=2; - corner3Read = true; - } else if ((row == numRows-2) && (column == 0) && ((numColumns & 0x07) == 4) && !corner4Read) { - result[resultOffset++] = (byte) readCorner4(numRows, numColumns); - row -= 2; - column +=2; - corner4Read = true; - } else { - // Sweep upward diagonally to the right - do { - if ((row < numRows) && (column >= 0) && !readMappingMatrix.get(column, row)) { - result[resultOffset++] = (byte) readUtah(row, column, numRows, numColumns); - } - row -= 2; - column +=2; - } while ((row >= 0) && (column < numColumns)); - row += 1; - column +=3; - - // Sweep downward diagonally to the left - do { - if ((row >= 0) && (column < numColumns) && !readMappingMatrix.get(column, row)) { - result[resultOffset++] = (byte) readUtah(row, column, numRows, numColumns); - } - row += 2; - column -=2; - } while ((row < numRows) && (column >= 0)); - row += 3; - column +=1; - } - } while ((row < numRows) || (column < numColumns)); - - if (resultOffset != version.getTotalCodewords()) { - throw FormatException.getFormatInstance(); - } - return result; - } - - /** - * <p>Reads a bit of the mapping matrix accounting for boundary wrapping.</p> - * - * @param row Row to read in the mapping matrix - * @param column Column to read in the mapping matrix - * @param numRows Number of rows in the mapping matrix - * @param numColumns Number of columns in the mapping matrix - * @return value of the given bit in the mapping matrix - */ - boolean readModule(int row, int column, int numRows, int numColumns) { - // Adjust the row and column indices based on boundary wrapping - if (row < 0) { - row += numRows; - column += 4 - ((numRows + 4) & 0x07); - } - if (column < 0) { - column += numColumns; - row += 4 - ((numColumns + 4) & 0x07); - } - readMappingMatrix.set(column, row); - return mappingBitMatrix.get(column, row); - } - - /** - * <p>Reads the 8 bits of the standard Utah-shaped pattern.</p> - * - * <p>See ISO 16022:2006, 5.8.1 Figure 6</p> - * - * @param row Current row in the mapping matrix, anchored at the 8th bit (LSB) of the pattern - * @param column Current column in the mapping matrix, anchored at the 8th bit (LSB) of the pattern - * @param numRows Number of rows in the mapping matrix - * @param numColumns Number of columns in the mapping matrix - * @return byte from the utah shape - */ - int readUtah(int row, int column, int numRows, int numColumns) { - int currentByte = 0; - if (readModule(row - 2, column - 2, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(row - 2, column - 1, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(row - 1, column - 2, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(row - 1, column - 1, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(row - 1, column, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(row, column - 2, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(row, column - 1, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(row, column, numRows, numColumns)) { - currentByte |= 1; - } - return currentByte; - } - - /** - * <p>Reads the 8 bits of the special corner condition 1.</p> - * - * <p>See ISO 16022:2006, Figure F.3</p> - * - * @param numRows Number of rows in the mapping matrix - * @param numColumns Number of columns in the mapping matrix - * @return byte from the Corner condition 1 - */ - int readCorner1(int numRows, int numColumns) { - int currentByte = 0; - if (readModule(numRows - 1, 0, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(numRows - 1, 1, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(numRows - 1, 2, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(0, numColumns - 2, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(0, numColumns - 1, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(1, numColumns - 1, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(2, numColumns - 1, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(3, numColumns - 1, numRows, numColumns)) { - currentByte |= 1; - } - return currentByte; - } - - /** - * <p>Reads the 8 bits of the special corner condition 2.</p> - * - * <p>See ISO 16022:2006, Figure F.4</p> - * - * @param numRows Number of rows in the mapping matrix - * @param numColumns Number of columns in the mapping matrix - * @return byte from the Corner condition 2 - */ - int readCorner2(int numRows, int numColumns) { - int currentByte = 0; - if (readModule(numRows - 3, 0, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(numRows - 2, 0, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(numRows - 1, 0, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(0, numColumns - 4, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(0, numColumns - 3, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(0, numColumns - 2, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(0, numColumns - 1, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(1, numColumns - 1, numRows, numColumns)) { - currentByte |= 1; - } - return currentByte; - } - - /** - * <p>Reads the 8 bits of the special corner condition 3.</p> - * - * <p>See ISO 16022:2006, Figure F.5</p> - * - * @param numRows Number of rows in the mapping matrix - * @param numColumns Number of columns in the mapping matrix - * @return byte from the Corner condition 3 - */ - int readCorner3(int numRows, int numColumns) { - int currentByte = 0; - if (readModule(numRows - 1, 0, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(numRows - 1, numColumns - 1, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(0, numColumns - 3, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(0, numColumns - 2, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(0, numColumns - 1, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(1, numColumns - 3, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(1, numColumns - 2, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(1, numColumns - 1, numRows, numColumns)) { - currentByte |= 1; - } - return currentByte; - } - - /** - * <p>Reads the 8 bits of the special corner condition 4.</p> - * - * <p>See ISO 16022:2006, Figure F.6</p> - * - * @param numRows Number of rows in the mapping matrix - * @param numColumns Number of columns in the mapping matrix - * @return byte from the Corner condition 4 - */ - int readCorner4(int numRows, int numColumns) { - int currentByte = 0; - if (readModule(numRows - 3, 0, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(numRows - 2, 0, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(numRows - 1, 0, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(0, numColumns - 2, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(0, numColumns - 1, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(1, numColumns - 1, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(2, numColumns - 1, numRows, numColumns)) { - currentByte |= 1; - } - currentByte <<= 1; - if (readModule(3, numColumns - 1, numRows, numColumns)) { - currentByte |= 1; - } - return currentByte; - } - - /** - * <p>Extracts the data region from a {@link BitMatrix} that contains - * alignment patterns.</p> - * - * @param bitMatrix Original {@link BitMatrix} with alignment patterns - * @return BitMatrix that has the alignment patterns removed - */ - BitMatrix extractDataRegion(BitMatrix bitMatrix) { - int symbolSizeRows = version.getSymbolSizeRows(); - int symbolSizeColumns = version.getSymbolSizeColumns(); - - if (bitMatrix.getHeight() != symbolSizeRows) { - throw new IllegalArgumentException("Dimension of bitMarix must match the version size"); - } - - int dataRegionSizeRows = version.getDataRegionSizeRows(); - int dataRegionSizeColumns = version.getDataRegionSizeColumns(); - - int numDataRegionsRow = symbolSizeRows / dataRegionSizeRows; - int numDataRegionsColumn = symbolSizeColumns / dataRegionSizeColumns; - - int sizeDataRegionRow = numDataRegionsRow * dataRegionSizeRows; - int sizeDataRegionColumn = numDataRegionsColumn * dataRegionSizeColumns; - - BitMatrix bitMatrixWithoutAlignment = new BitMatrix(sizeDataRegionColumn, sizeDataRegionRow); - for (int dataRegionRow = 0; dataRegionRow < numDataRegionsRow; ++dataRegionRow) { - int dataRegionRowOffset = dataRegionRow * dataRegionSizeRows; - for (int dataRegionColumn = 0; dataRegionColumn < numDataRegionsColumn; ++dataRegionColumn) { - int dataRegionColumnOffset = dataRegionColumn * dataRegionSizeColumns; - for (int i = 0; i < dataRegionSizeRows; ++i) { - int readRowOffset = dataRegionRow * (dataRegionSizeRows + 2) + 1 + i; - int writeRowOffset = dataRegionRowOffset + i; - for (int j = 0; j < dataRegionSizeColumns; ++j) { - int readColumnOffset = dataRegionColumn * (dataRegionSizeColumns + 2) + 1 + j; - if (bitMatrix.get(readColumnOffset, readRowOffset)) { - int writeColumnOffset = dataRegionColumnOffset + j; - bitMatrixWithoutAlignment.set(writeColumnOffset, writeRowOffset); - } - } - } - } - } - return bitMatrixWithoutAlignment; - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/decoder/DataBlock.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/decoder/DataBlock.java deleted file mode 100755 index 35edd42f..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/decoder/DataBlock.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix.decoder; - -/** - * <p>Encapsulates a block of data within a Data Matrix Code. Data Matrix Codes may split their data into - * multiple blocks, each of which is a unit of data and error-correction codewords. Each - * is represented by an instance of this class.</p> - * - * @author bbrown@google.com (Brian Brown) - */ -final class DataBlock { - - private final int numDataCodewords; - private final byte[] codewords; - - private DataBlock(int numDataCodewords, byte[] codewords) { - this.numDataCodewords = numDataCodewords; - this.codewords = codewords; - } - - /** - * <p>When Data Matrix Codes use multiple data blocks, they actually interleave the bytes of each of them. - * That is, the first byte of data block 1 to n is written, then the second bytes, and so on. This - * method will separate the data into original blocks.</p> - * - * @param rawCodewords bytes as read directly from the Data Matrix Code - * @param version version of the Data Matrix Code - * @return DataBlocks containing original bytes, "de-interleaved" from representation in the - * Data Matrix Code - */ - static DataBlock[] getDataBlocks(byte[] rawCodewords, - Version version) { - // Figure out the number and size of data blocks used by this version - Version.ECBlocks ecBlocks = version.getECBlocks(); - - // First count the total number of data blocks - int totalBlocks = 0; - Version.ECB[] ecBlockArray = ecBlocks.getECBlocks(); - for (Version.ECB ecBlock : ecBlockArray) { - totalBlocks += ecBlock.getCount(); - } - - // Now establish DataBlocks of the appropriate size and number of data codewords - DataBlock[] result = new DataBlock[totalBlocks]; - int numResultBlocks = 0; - for (Version.ECB ecBlock : ecBlockArray) { - for (int i = 0; i < ecBlock.getCount(); i++) { - int numDataCodewords = ecBlock.getDataCodewords(); - int numBlockCodewords = ecBlocks.getECCodewords() + numDataCodewords; - result[numResultBlocks++] = new DataBlock(numDataCodewords, new byte[numBlockCodewords]); - } - } - - // All blocks have the same amount of data, except that the last n - // (where n may be 0) have 1 less byte. Figure out where these start. - // TODO(bbrown): There is only one case where there is a difference for Data Matrix for size 144 - int longerBlocksTotalCodewords = result[0].codewords.length; - //int shorterBlocksTotalCodewords = longerBlocksTotalCodewords - 1; - - int longerBlocksNumDataCodewords = longerBlocksTotalCodewords - ecBlocks.getECCodewords(); - int shorterBlocksNumDataCodewords = longerBlocksNumDataCodewords - 1; - // The last elements of result may be 1 element shorter for 144 matrix - // first fill out as many elements as all of them have minus 1 - int rawCodewordsOffset = 0; - for (int i = 0; i < shorterBlocksNumDataCodewords; i++) { - for (int j = 0; j < numResultBlocks; j++) { - result[j].codewords[i] = rawCodewords[rawCodewordsOffset++]; - } - } - - // Fill out the last data block in the longer ones - boolean specialVersion = version.getVersionNumber() == 24; - int numLongerBlocks = specialVersion ? 8 : numResultBlocks; - for (int j = 0; j < numLongerBlocks; j++) { - result[j].codewords[longerBlocksNumDataCodewords - 1] = rawCodewords[rawCodewordsOffset++]; - } - - // Now add in error correction blocks - int max = result[0].codewords.length; - for (int i = longerBlocksNumDataCodewords; i < max; i++) { - for (int j = 0; j < numResultBlocks; j++) { - int jOffset = specialVersion ? (j + 8) % numResultBlocks : j; - int iOffset = specialVersion && jOffset > 7 ? i - 1 : i; - result[jOffset].codewords[iOffset] = rawCodewords[rawCodewordsOffset++]; - } - } - - if (rawCodewordsOffset != rawCodewords.length) { - throw new IllegalArgumentException(); - } - - return result; - } - - int getNumDataCodewords() { - return numDataCodewords; - } - - byte[] getCodewords() { - return codewords; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/decoder/DecodedBitStreamParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/decoder/DecodedBitStreamParser.java deleted file mode 100755 index a4243597..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/decoder/DecodedBitStreamParser.java +++ /dev/null @@ -1,497 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix.decoder; - -import java.io.UnsupportedEncodingException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import com.google.zxing.FormatException; -import com.google.zxing.common.BitSource; -import com.google.zxing.common.DecoderResult; - -/** - * <p>Data Matrix Codes can encode text as bits in one of several modes, and can use multiple modes - * in one Data Matrix Code. This class decodes the bits back into text.</p> - * - * <p>See ISO 16022:2006, 5.2.1 - 5.2.9.2</p> - * - * @author bbrown@google.com (Brian Brown) - * @author Sean Owen - */ -final class DecodedBitStreamParser { - - private enum Mode { - PAD_ENCODE, // Not really a mode - ASCII_ENCODE, - C40_ENCODE, - TEXT_ENCODE, - ANSIX12_ENCODE, - EDIFACT_ENCODE, - BASE256_ENCODE - } - - /** - * See ISO 16022:2006, Annex C Table C.1 - * The C40 Basic Character Set (*'s used for placeholders for the shift values) - */ - private static final char[] C40_BASIC_SET_CHARS = { - '*', '*', '*', ' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', - 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' - }; - - private static final char[] C40_SHIFT2_SET_CHARS = { - '!', '"', '#', '$', '%', '&', '\'', '(', ')', '*', '+', ',', '-', '.', - '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_' - }; - - /** - * See ISO 16022:2006, Annex C Table C.2 - * The Text Basic Character Set (*'s used for placeholders for the shift values) - */ - private static final char[] TEXT_BASIC_SET_CHARS = { - '*', '*', '*', ' ', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', - 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', - 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' - }; - - // Shift 2 for Text is the same encoding as C40 - private static final char[] TEXT_SHIFT2_SET_CHARS = C40_SHIFT2_SET_CHARS; - - private static final char[] TEXT_SHIFT3_SET_CHARS = { - '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', - 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '{', '|', '}', '~', (char) 127 - }; - - private DecodedBitStreamParser() { - } - - static DecoderResult decode(byte[] bytes) throws FormatException { - BitSource bits = new BitSource(bytes); - StringBuilder result = new StringBuilder(100); - StringBuilder resultTrailer = new StringBuilder(0); - List<byte[]> byteSegments = new ArrayList<>(1); - Mode mode = Mode.ASCII_ENCODE; - do { - if (mode == Mode.ASCII_ENCODE) { - mode = decodeAsciiSegment(bits, result, resultTrailer); - } else { - switch (mode) { - case C40_ENCODE: - decodeC40Segment(bits, result); - break; - case TEXT_ENCODE: - decodeTextSegment(bits, result); - break; - case ANSIX12_ENCODE: - decodeAnsiX12Segment(bits, result); - break; - case EDIFACT_ENCODE: - decodeEdifactSegment(bits, result); - break; - case BASE256_ENCODE: - decodeBase256Segment(bits, result, byteSegments); - break; - default: - throw FormatException.getFormatInstance(); - } - mode = Mode.ASCII_ENCODE; - } - } while (mode != Mode.PAD_ENCODE && bits.available() > 0); - if (resultTrailer.length() > 0) { - result.append(resultTrailer); - } - return new DecoderResult(bytes, result.toString(), byteSegments.isEmpty() ? null : byteSegments, null); - } - - /** - * See ISO 16022:2006, 5.2.3 and Annex C, Table C.2 - */ - private static Mode decodeAsciiSegment(BitSource bits, - StringBuilder result, - StringBuilder resultTrailer) throws FormatException { - boolean upperShift = false; - do { - int oneByte = bits.readBits(8); - if (oneByte == 0) { - throw FormatException.getFormatInstance(); - } else if (oneByte <= 128) { // ASCII data (ASCII value + 1) - if (upperShift) { - oneByte += 128; - //upperShift = false; - } - result.append((char) (oneByte - 1)); - return Mode.ASCII_ENCODE; - } else if (oneByte == 129) { // Pad - return Mode.PAD_ENCODE; - } else if (oneByte <= 229) { // 2-digit data 00-99 (Numeric Value + 130) - int value = oneByte - 130; - if (value < 10) { // pad with '0' for single digit values - result.append('0'); - } - result.append(value); - } else if (oneByte == 230) { // Latch to C40 encodation - return Mode.C40_ENCODE; - } else if (oneByte == 231) { // Latch to Base 256 encodation - return Mode.BASE256_ENCODE; - } else if (oneByte == 232) { - // FNC1 - result.append((char) 29); // translate as ASCII 29 - } else if (oneByte == 233 || oneByte == 234) { - // Structured Append, Reader Programming - // Ignore these symbols for now - //throw ReaderException.getInstance(); - } else if (oneByte == 235) { // Upper Shift (shift to Extended ASCII) - upperShift = true; - } else if (oneByte == 236) { // 05 Macro - result.append("[)>\u001E05\u001D"); - resultTrailer.insert(0, "\u001E\u0004"); - } else if (oneByte == 237) { // 06 Macro - result.append("[)>\u001E06\u001D"); - resultTrailer.insert(0, "\u001E\u0004"); - } else if (oneByte == 238) { // Latch to ANSI X12 encodation - return Mode.ANSIX12_ENCODE; - } else if (oneByte == 239) { // Latch to Text encodation - return Mode.TEXT_ENCODE; - } else if (oneByte == 240) { // Latch to EDIFACT encodation - return Mode.EDIFACT_ENCODE; - } else if (oneByte == 241) { // ECI Character - // TODO(bbrown): I think we need to support ECI - //throw ReaderException.getInstance(); - // Ignore this symbol for now - } else if (oneByte >= 242) { // Not to be used in ASCII encodation - // ... but work around encoders that end with 254, latch back to ASCII - if (oneByte != 254 || bits.available() != 0) { - throw FormatException.getFormatInstance(); - } - } - } while (bits.available() > 0); - return Mode.ASCII_ENCODE; - } - - /** - * See ISO 16022:2006, 5.2.5 and Annex C, Table C.1 - */ - private static void decodeC40Segment(BitSource bits, StringBuilder result) throws FormatException { - // Three C40 values are encoded in a 16-bit value as - // (1600 * C1) + (40 * C2) + C3 + 1 - // TODO(bbrown): The Upper Shift with C40 doesn't work in the 4 value scenario all the time - boolean upperShift = false; - - int[] cValues = new int[3]; - int shift = 0; - - do { - // If there is only one byte left then it will be encoded as ASCII - if (bits.available() == 8) { - return; - } - int firstByte = bits.readBits(8); - if (firstByte == 254) { // Unlatch codeword - return; - } - - parseTwoBytes(firstByte, bits.readBits(8), cValues); - - for (int i = 0; i < 3; i++) { - int cValue = cValues[i]; - switch (shift) { - case 0: - if (cValue < 3) { - shift = cValue + 1; - } else if (cValue < C40_BASIC_SET_CHARS.length) { - char c40char = C40_BASIC_SET_CHARS[cValue]; - if (upperShift) { - result.append((char) (c40char + 128)); - upperShift = false; - } else { - result.append(c40char); - } - } else { - throw FormatException.getFormatInstance(); - } - break; - case 1: - if (upperShift) { - result.append((char) (cValue + 128)); - upperShift = false; - } else { - result.append((char) cValue); - } - shift = 0; - break; - case 2: - if (cValue < C40_SHIFT2_SET_CHARS.length) { - char c40char = C40_SHIFT2_SET_CHARS[cValue]; - if (upperShift) { - result.append((char) (c40char + 128)); - upperShift = false; - } else { - result.append(c40char); - } - } else if (cValue == 27) { // FNC1 - result.append((char) 29); // translate as ASCII 29 - } else if (cValue == 30) { // Upper Shift - upperShift = true; - } else { - throw FormatException.getFormatInstance(); - } - shift = 0; - break; - case 3: - if (upperShift) { - result.append((char) (cValue + 224)); - upperShift = false; - } else { - result.append((char) (cValue + 96)); - } - shift = 0; - break; - default: - throw FormatException.getFormatInstance(); - } - } - } while (bits.available() > 0); - } - - /** - * See ISO 16022:2006, 5.2.6 and Annex C, Table C.2 - */ - private static void decodeTextSegment(BitSource bits, StringBuilder result) throws FormatException { - // Three Text values are encoded in a 16-bit value as - // (1600 * C1) + (40 * C2) + C3 + 1 - // TODO(bbrown): The Upper Shift with Text doesn't work in the 4 value scenario all the time - boolean upperShift = false; - - int[] cValues = new int[3]; - int shift = 0; - do { - // If there is only one byte left then it will be encoded as ASCII - if (bits.available() == 8) { - return; - } - int firstByte = bits.readBits(8); - if (firstByte == 254) { // Unlatch codeword - return; - } - - parseTwoBytes(firstByte, bits.readBits(8), cValues); - - for (int i = 0; i < 3; i++) { - int cValue = cValues[i]; - switch (shift) { - case 0: - if (cValue < 3) { - shift = cValue + 1; - } else if (cValue < TEXT_BASIC_SET_CHARS.length) { - char textChar = TEXT_BASIC_SET_CHARS[cValue]; - if (upperShift) { - result.append((char) (textChar + 128)); - upperShift = false; - } else { - result.append(textChar); - } - } else { - throw FormatException.getFormatInstance(); - } - break; - case 1: - if (upperShift) { - result.append((char) (cValue + 128)); - upperShift = false; - } else { - result.append((char) cValue); - } - shift = 0; - break; - case 2: - // Shift 2 for Text is the same encoding as C40 - if (cValue < TEXT_SHIFT2_SET_CHARS.length) { - char textChar = TEXT_SHIFT2_SET_CHARS[cValue]; - if (upperShift) { - result.append((char) (textChar + 128)); - upperShift = false; - } else { - result.append(textChar); - } - } else if (cValue == 27) { // FNC1 - result.append((char) 29); // translate as ASCII 29 - } else if (cValue == 30) { // Upper Shift - upperShift = true; - } else { - throw FormatException.getFormatInstance(); - } - shift = 0; - break; - case 3: - if (cValue < TEXT_SHIFT3_SET_CHARS.length) { - char textChar = TEXT_SHIFT3_SET_CHARS[cValue]; - if (upperShift) { - result.append((char) (textChar + 128)); - upperShift = false; - } else { - result.append(textChar); - } - shift = 0; - } else { - throw FormatException.getFormatInstance(); - } - break; - default: - throw FormatException.getFormatInstance(); - } - } - } while (bits.available() > 0); - } - - /** - * See ISO 16022:2006, 5.2.7 - */ - private static void decodeAnsiX12Segment(BitSource bits, - StringBuilder result) throws FormatException { - // Three ANSI X12 values are encoded in a 16-bit value as - // (1600 * C1) + (40 * C2) + C3 + 1 - - int[] cValues = new int[3]; - do { - // If there is only one byte left then it will be encoded as ASCII - if (bits.available() == 8) { - return; - } - int firstByte = bits.readBits(8); - if (firstByte == 254) { // Unlatch codeword - return; - } - - parseTwoBytes(firstByte, bits.readBits(8), cValues); - - for (int i = 0; i < 3; i++) { - int cValue = cValues[i]; - if (cValue == 0) { // X12 segment terminator <CR> - result.append('\r'); - } else if (cValue == 1) { // X12 segment separator * - result.append('*'); - } else if (cValue == 2) { // X12 sub-element separator > - result.append('>'); - } else if (cValue == 3) { // space - result.append(' '); - } else if (cValue < 14) { // 0 - 9 - result.append((char) (cValue + 44)); - } else if (cValue < 40) { // A - Z - result.append((char) (cValue + 51)); - } else { - throw FormatException.getFormatInstance(); - } - } - } while (bits.available() > 0); - } - - private static void parseTwoBytes(int firstByte, int secondByte, int[] result) { - int fullBitValue = (firstByte << 8) + secondByte - 1; - int temp = fullBitValue / 1600; - result[0] = temp; - fullBitValue -= temp * 1600; - temp = fullBitValue / 40; - result[1] = temp; - result[2] = fullBitValue - temp * 40; - } - - /** - * See ISO 16022:2006, 5.2.8 and Annex C Table C.3 - */ - private static void decodeEdifactSegment(BitSource bits, StringBuilder result) { - do { - // If there is only two or less bytes left then it will be encoded as ASCII - if (bits.available() <= 16) { - return; - } - - for (int i = 0; i < 4; i++) { - int edifactValue = bits.readBits(6); - - // Check for the unlatch character - if (edifactValue == 0x1F) { // 011111 - // Read rest of byte, which should be 0, and stop - int bitsLeft = 8 - bits.getBitOffset(); - if (bitsLeft != 8) { - bits.readBits(bitsLeft); - } - return; - } - - if ((edifactValue & 0x20) == 0) { // no 1 in the leading (6th) bit - edifactValue |= 0x40; // Add a leading 01 to the 6 bit binary value - } - result.append((char) edifactValue); - } - } while (bits.available() > 0); - } - - /** - * See ISO 16022:2006, 5.2.9 and Annex B, B.2 - */ - private static void decodeBase256Segment(BitSource bits, - StringBuilder result, - Collection<byte[]> byteSegments) - throws FormatException { - // Figure out how long the Base 256 Segment is. - int codewordPosition = 1 + bits.getByteOffset(); // position is 1-indexed - int d1 = unrandomize255State(bits.readBits(8), codewordPosition++); - int count; - if (d1 == 0) { // Read the remainder of the symbol - count = bits.available() / 8; - } else if (d1 < 250) { - count = d1; - } else { - count = 250 * (d1 - 249) + unrandomize255State(bits.readBits(8), codewordPosition++); - } - - // We're seeing NegativeArraySizeException errors from users. - if (count < 0) { - throw FormatException.getFormatInstance(); - } - - byte[] bytes = new byte[count]; - for (int i = 0; i < count; i++) { - // Have seen this particular error in the wild, such as at - // http://www.bcgen.com/demo/IDAutomationStreamingDataMatrix.aspx?MODE=3&D=Fred&PFMT=3&PT=F&X=0.3&O=0&LM=0.2 - if (bits.available() < 8) { - throw FormatException.getFormatInstance(); - } - bytes[i] = (byte) unrandomize255State(bits.readBits(8), codewordPosition++); - } - byteSegments.add(bytes); - try { - result.append(new String(bytes, "ISO8859_1")); - } catch (UnsupportedEncodingException uee) { - throw new IllegalStateException("Platform does not support required encoding: " + uee); - } - } - - /** - * See ISO 16022:2006, Annex B, B.2 - */ - private static int unrandomize255State(int randomizedBase256Codeword, - int base256CodewordPosition) { - int pseudoRandomNumber = ((149 * base256CodewordPosition) % 255) + 1; - int tempVariable = randomizedBase256Codeword - pseudoRandomNumber; - return tempVariable >= 0 ? tempVariable : tempVariable + 256; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/decoder/Decoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/decoder/Decoder.java deleted file mode 100755 index 7a1ad6b9..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/decoder/Decoder.java +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix.decoder; - -import com.google.zxing.ChecksumException; -import com.google.zxing.FormatException; -import com.google.zxing.common.BitMatrix; -import com.google.zxing.common.DecoderResult; -import com.google.zxing.common.reedsolomon.GenericGF; -import com.google.zxing.common.reedsolomon.ReedSolomonDecoder; -import com.google.zxing.common.reedsolomon.ReedSolomonException; - -/** - * <p>The main class which implements Data Matrix Code decoding -- as opposed to locating and extracting - * the Data Matrix Code from an image.</p> - * - * @author bbrown@google.com (Brian Brown) - */ -public final class Decoder { - - private final ReedSolomonDecoder rsDecoder; - - public Decoder() { - rsDecoder = new ReedSolomonDecoder(GenericGF.DATA_MATRIX_FIELD_256); - } - - /** - * <p>Convenience method that can decode a Data Matrix Code represented as a 2D array of booleans. - * "true" is taken to mean a black module.</p> - * - * @param image booleans representing white/black Data Matrix Code modules - * @return text and bytes encoded within the Data Matrix Code - * @throws FormatException if the Data Matrix Code cannot be decoded - * @throws ChecksumException if error correction fails - */ - public DecoderResult decode(boolean[][] image) throws FormatException, ChecksumException { - int dimension = image.length; - BitMatrix bits = new BitMatrix(dimension); - for (int i = 0; i < dimension; i++) { - for (int j = 0; j < dimension; j++) { - if (image[i][j]) { - bits.set(j, i); - } - } - } - return decode(bits); - } - - /** - * <p>Decodes a Data Matrix Code represented as a {@link BitMatrix}. A 1 or "true" is taken - * to mean a black module.</p> - * - * @param bits booleans representing white/black Data Matrix Code modules - * @return text and bytes encoded within the Data Matrix Code - * @throws FormatException if the Data Matrix Code cannot be decoded - * @throws ChecksumException if error correction fails - */ - public DecoderResult decode(BitMatrix bits) throws FormatException, ChecksumException { - - // Construct a parser and read version, error-correction level - BitMatrixParser parser = new BitMatrixParser(bits); - Version version = parser.getVersion(); - - // Read codewords - byte[] codewords = parser.readCodewords(); - // Separate into data blocks - DataBlock[] dataBlocks = DataBlock.getDataBlocks(codewords, version); - - int dataBlocksCount = dataBlocks.length; - - // Count total number of data bytes - int totalBytes = 0; - for (DataBlock db : dataBlocks) { - totalBytes += db.getNumDataCodewords(); - } - byte[] resultBytes = new byte[totalBytes]; - - // Error-correct and copy data blocks together into a stream of bytes - for (int j = 0; j < dataBlocksCount; j++) { - DataBlock dataBlock = dataBlocks[j]; - byte[] codewordBytes = dataBlock.getCodewords(); - int numDataCodewords = dataBlock.getNumDataCodewords(); - correctErrors(codewordBytes, numDataCodewords); - for (int i = 0; i < numDataCodewords; i++) { - // De-interlace data blocks. - resultBytes[i * dataBlocksCount + j] = codewordBytes[i]; - } - } - - // Decode the contents of that stream of bytes - return DecodedBitStreamParser.decode(resultBytes); - } - - /** - * <p>Given data and error-correction codewords received, possibly corrupted by errors, attempts to - * correct the errors in-place using Reed-Solomon error correction.</p> - * - * @param codewordBytes data and error correction codewords - * @param numDataCodewords number of codewords that are data bytes - * @throws ChecksumException if error correction fails - */ - private void correctErrors(byte[] codewordBytes, int numDataCodewords) throws ChecksumException { - int numCodewords = codewordBytes.length; - // First read into an array of ints - int[] codewordsInts = new int[numCodewords]; - for (int i = 0; i < numCodewords; i++) { - codewordsInts[i] = codewordBytes[i] & 0xFF; - } - int numECCodewords = codewordBytes.length - numDataCodewords; - try { - rsDecoder.decode(codewordsInts, numECCodewords); - } catch (ReedSolomonException ignored) { - throw ChecksumException.getChecksumInstance(); - } - // Copy back into array of bytes -- only need to worry about the bytes that were data - // We don't care about errors in the error-correction codewords - for (int i = 0; i < numDataCodewords; i++) { - codewordBytes[i] = (byte) codewordsInts[i]; - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/decoder/Version.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/decoder/Version.java deleted file mode 100755 index fff9e179..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/decoder/Version.java +++ /dev/null @@ -1,237 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix.decoder; - -import com.google.zxing.FormatException; - -/** - * The Version object encapsulates attributes about a particular - * size Data Matrix Code. - * - * @author bbrown@google.com (Brian Brown) - */ -public final class Version { - - private static final Version[] VERSIONS = buildVersions(); - - private final int versionNumber; - private final int symbolSizeRows; - private final int symbolSizeColumns; - private final int dataRegionSizeRows; - private final int dataRegionSizeColumns; - private final ECBlocks ecBlocks; - private final int totalCodewords; - - private Version(int versionNumber, - int symbolSizeRows, - int symbolSizeColumns, - int dataRegionSizeRows, - int dataRegionSizeColumns, - ECBlocks ecBlocks) { - this.versionNumber = versionNumber; - this.symbolSizeRows = symbolSizeRows; - this.symbolSizeColumns = symbolSizeColumns; - this.dataRegionSizeRows = dataRegionSizeRows; - this.dataRegionSizeColumns = dataRegionSizeColumns; - this.ecBlocks = ecBlocks; - - // Calculate the total number of codewords - int total = 0; - int ecCodewords = ecBlocks.getECCodewords(); - ECB[] ecbArray = ecBlocks.getECBlocks(); - for (ECB ecBlock : ecbArray) { - total += ecBlock.getCount() * (ecBlock.getDataCodewords() + ecCodewords); - } - this.totalCodewords = total; - } - - public int getVersionNumber() { - return versionNumber; - } - - public int getSymbolSizeRows() { - return symbolSizeRows; - } - - public int getSymbolSizeColumns() { - return symbolSizeColumns; - } - - public int getDataRegionSizeRows() { - return dataRegionSizeRows; - } - - public int getDataRegionSizeColumns() { - return dataRegionSizeColumns; - } - - public int getTotalCodewords() { - return totalCodewords; - } - - ECBlocks getECBlocks() { - return ecBlocks; - } - - /** - * <p>Deduces version information from Data Matrix dimensions.</p> - * - * @param numRows Number of rows in modules - * @param numColumns Number of columns in modules - * @return Version for a Data Matrix Code of those dimensions - * @throws FormatException if dimensions do correspond to a valid Data Matrix size - */ - public static Version getVersionForDimensions(int numRows, int numColumns) throws FormatException { - if ((numRows & 0x01) != 0 || (numColumns & 0x01) != 0) { - throw FormatException.getFormatInstance(); - } - - for (Version version : VERSIONS) { - if (version.symbolSizeRows == numRows && version.symbolSizeColumns == numColumns) { - return version; - } - } - - throw FormatException.getFormatInstance(); - } - - /** - * <p>Encapsulates a set of error-correction blocks in one symbol version. Most versions will - * use blocks of differing sizes within one version, so, this encapsulates the parameters for - * each set of blocks. It also holds the number of error-correction codewords per block since it - * will be the same across all blocks within one version.</p> - */ - static final class ECBlocks { - private final int ecCodewords; - private final ECB[] ecBlocks; - - private ECBlocks(int ecCodewords, ECB ecBlocks) { - this.ecCodewords = ecCodewords; - this.ecBlocks = new ECB[] { ecBlocks }; - } - - private ECBlocks(int ecCodewords, ECB ecBlocks1, ECB ecBlocks2) { - this.ecCodewords = ecCodewords; - this.ecBlocks = new ECB[] { ecBlocks1, ecBlocks2 }; - } - - int getECCodewords() { - return ecCodewords; - } - - ECB[] getECBlocks() { - return ecBlocks; - } - } - - /** - * <p>Encapsualtes the parameters for one error-correction block in one symbol version. - * This includes the number of data codewords, and the number of times a block with these - * parameters is used consecutively in the Data Matrix code version's format.</p> - */ - static final class ECB { - private final int count; - private final int dataCodewords; - - private ECB(int count, int dataCodewords) { - this.count = count; - this.dataCodewords = dataCodewords; - } - - int getCount() { - return count; - } - - int getDataCodewords() { - return dataCodewords; - } - } - - @Override - public String toString() { - return String.valueOf(versionNumber); - } - - /** - * See ISO 16022:2006 5.5.1 Table 7 - */ - private static Version[] buildVersions() { - return new Version[]{ - new Version(1, 10, 10, 8, 8, - new ECBlocks(5, new ECB(1, 3))), - new Version(2, 12, 12, 10, 10, - new ECBlocks(7, new ECB(1, 5))), - new Version(3, 14, 14, 12, 12, - new ECBlocks(10, new ECB(1, 8))), - new Version(4, 16, 16, 14, 14, - new ECBlocks(12, new ECB(1, 12))), - new Version(5, 18, 18, 16, 16, - new ECBlocks(14, new ECB(1, 18))), - new Version(6, 20, 20, 18, 18, - new ECBlocks(18, new ECB(1, 22))), - new Version(7, 22, 22, 20, 20, - new ECBlocks(20, new ECB(1, 30))), - new Version(8, 24, 24, 22, 22, - new ECBlocks(24, new ECB(1, 36))), - new Version(9, 26, 26, 24, 24, - new ECBlocks(28, new ECB(1, 44))), - new Version(10, 32, 32, 14, 14, - new ECBlocks(36, new ECB(1, 62))), - new Version(11, 36, 36, 16, 16, - new ECBlocks(42, new ECB(1, 86))), - new Version(12, 40, 40, 18, 18, - new ECBlocks(48, new ECB(1, 114))), - new Version(13, 44, 44, 20, 20, - new ECBlocks(56, new ECB(1, 144))), - new Version(14, 48, 48, 22, 22, - new ECBlocks(68, new ECB(1, 174))), - new Version(15, 52, 52, 24, 24, - new ECBlocks(42, new ECB(2, 102))), - new Version(16, 64, 64, 14, 14, - new ECBlocks(56, new ECB(2, 140))), - new Version(17, 72, 72, 16, 16, - new ECBlocks(36, new ECB(4, 92))), - new Version(18, 80, 80, 18, 18, - new ECBlocks(48, new ECB(4, 114))), - new Version(19, 88, 88, 20, 20, - new ECBlocks(56, new ECB(4, 144))), - new Version(20, 96, 96, 22, 22, - new ECBlocks(68, new ECB(4, 174))), - new Version(21, 104, 104, 24, 24, - new ECBlocks(56, new ECB(6, 136))), - new Version(22, 120, 120, 18, 18, - new ECBlocks(68, new ECB(6, 175))), - new Version(23, 132, 132, 20, 20, - new ECBlocks(62, new ECB(8, 163))), - new Version(24, 144, 144, 22, 22, - new ECBlocks(62, new ECB(8, 156), new ECB(2, 155))), - new Version(25, 8, 18, 6, 16, - new ECBlocks(7, new ECB(1, 5))), - new Version(26, 8, 32, 6, 14, - new ECBlocks(11, new ECB(1, 10))), - new Version(27, 12, 26, 10, 24, - new ECBlocks(14, new ECB(1, 16))), - new Version(28, 12, 36, 10, 16, - new ECBlocks(18, new ECB(1, 22))), - new Version(29, 16, 36, 14, 16, - new ECBlocks(24, new ECB(1, 32))), - new Version(30, 16, 48, 14, 22, - new ECBlocks(28, new ECB(1, 49))) - }; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/detector/Detector.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/detector/Detector.java deleted file mode 100755 index b95fd720..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/detector/Detector.java +++ /dev/null @@ -1,440 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix.detector; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import com.google.zxing.NotFoundException; -import com.google.zxing.ResultPoint; -import com.google.zxing.common.BitMatrix; -import com.google.zxing.common.DetectorResult; -import com.google.zxing.common.GridSampler; -import com.google.zxing.common.detector.MathUtils; -import com.google.zxing.common.detector.WhiteRectangleDetector; - -/** - * <p>Encapsulates logic that can detect a Data Matrix Code in an image, even if the Data Matrix Code - * is rotated or skewed, or partially obscured.</p> - * - * @author Sean Owen - */ -public final class Detector { - - private final BitMatrix image; - private final WhiteRectangleDetector rectangleDetector; - - public Detector(BitMatrix image) throws NotFoundException { - this.image = image; - rectangleDetector = new WhiteRectangleDetector(image); - } - - /** - * <p>Detects a Data Matrix Code in an image.</p> - * - * @return {@link DetectorResult} encapsulating results of detecting a Data Matrix Code - * @throws NotFoundException if no Data Matrix Code can be found - */ - public DetectorResult detect() throws NotFoundException { - - ResultPoint[] cornerPoints = rectangleDetector.detect(); - ResultPoint pointA = cornerPoints[0]; - ResultPoint pointB = cornerPoints[1]; - ResultPoint pointC = cornerPoints[2]; - ResultPoint pointD = cornerPoints[3]; - - // Point A and D are across the diagonal from one another, - // as are B and C. Figure out which are the solid black lines - // by counting transitions - List<ResultPointsAndTransitions> transitions = new ArrayList<>(4); - transitions.add(transitionsBetween(pointA, pointB)); - transitions.add(transitionsBetween(pointA, pointC)); - transitions.add(transitionsBetween(pointB, pointD)); - transitions.add(transitionsBetween(pointC, pointD)); - Collections.sort(transitions, new ResultPointsAndTransitionsComparator()); - - // Sort by number of transitions. First two will be the two solid sides; last two - // will be the two alternating black/white sides - ResultPointsAndTransitions lSideOne = transitions.get(0); - ResultPointsAndTransitions lSideTwo = transitions.get(1); - - // Figure out which point is their intersection by tallying up the number of times we see the - // endpoints in the four endpoints. One will show up twice. - Map<ResultPoint,Integer> pointCount = new HashMap<>(); - increment(pointCount, lSideOne.getFrom()); - increment(pointCount, lSideOne.getTo()); - increment(pointCount, lSideTwo.getFrom()); - increment(pointCount, lSideTwo.getTo()); - - ResultPoint maybeTopLeft = null; - ResultPoint bottomLeft = null; - ResultPoint maybeBottomRight = null; - for (Map.Entry<ResultPoint,Integer> entry : pointCount.entrySet()) { - ResultPoint point = entry.getKey(); - Integer value = entry.getValue(); - if (value == 2) { - bottomLeft = point; // this is definitely the bottom left, then -- end of two L sides - } else { - // Otherwise it's either top left or bottom right -- just assign the two arbitrarily now - if (maybeTopLeft == null) { - maybeTopLeft = point; - } else { - maybeBottomRight = point; - } - } - } - - if (maybeTopLeft == null || bottomLeft == null || maybeBottomRight == null) { - throw NotFoundException.getNotFoundInstance(); - } - - // Bottom left is correct but top left and bottom right might be switched - ResultPoint[] corners = { maybeTopLeft, bottomLeft, maybeBottomRight }; - // Use the dot product trick to sort them out - ResultPoint.orderBestPatterns(corners); - - // Now we know which is which: - ResultPoint bottomRight = corners[0]; - bottomLeft = corners[1]; - ResultPoint topLeft = corners[2]; - - // Which point didn't we find in relation to the "L" sides? that's the top right corner - ResultPoint topRight; - if (!pointCount.containsKey(pointA)) { - topRight = pointA; - } else if (!pointCount.containsKey(pointB)) { - topRight = pointB; - } else if (!pointCount.containsKey(pointC)) { - topRight = pointC; - } else { - topRight = pointD; - } - - // Next determine the dimension by tracing along the top or right side and counting black/white - // transitions. Since we start inside a black module, we should see a number of transitions - // equal to 1 less than the code dimension. Well, actually 2 less, because we are going to - // end on a black module: - - // The top right point is actually the corner of a module, which is one of the two black modules - // adjacent to the white module at the top right. Tracing to that corner from either the top left - // or bottom right should work here. - - int dimensionTop = transitionsBetween(topLeft, topRight).getTransitions(); - int dimensionRight = transitionsBetween(bottomRight, topRight).getTransitions(); - - if ((dimensionTop & 0x01) == 1) { - // it can't be odd, so, round... up? - dimensionTop++; - } - dimensionTop += 2; - - if ((dimensionRight & 0x01) == 1) { - // it can't be odd, so, round... up? - dimensionRight++; - } - dimensionRight += 2; - - BitMatrix bits; - ResultPoint correctedTopRight; - - // Rectanguar symbols are 6x16, 6x28, 10x24, 10x32, 14x32, or 14x44. If one dimension is more - // than twice the other, it's certainly rectangular, but to cut a bit more slack we accept it as - // rectangular if the bigger side is at least 7/4 times the other: - if (4 * dimensionTop >= 7 * dimensionRight || 4 * dimensionRight >= 7 * dimensionTop) { - // The matrix is rectangular - - correctedTopRight = - correctTopRightRectangular(bottomLeft, bottomRight, topLeft, topRight, dimensionTop, dimensionRight); - if (correctedTopRight == null){ - correctedTopRight = topRight; - } - - dimensionTop = transitionsBetween(topLeft, correctedTopRight).getTransitions(); - dimensionRight = transitionsBetween(bottomRight, correctedTopRight).getTransitions(); - - if ((dimensionTop & 0x01) == 1) { - // it can't be odd, so, round... up? - dimensionTop++; - } - - if ((dimensionRight & 0x01) == 1) { - // it can't be odd, so, round... up? - dimensionRight++; - } - - bits = sampleGrid(image, topLeft, bottomLeft, bottomRight, correctedTopRight, dimensionTop, dimensionRight); - - } else { - // The matrix is square - - int dimension = Math.min(dimensionRight, dimensionTop); - // correct top right point to match the white module - correctedTopRight = correctTopRight(bottomLeft, bottomRight, topLeft, topRight, dimension); - if (correctedTopRight == null){ - correctedTopRight = topRight; - } - - // Redetermine the dimension using the corrected top right point - int dimensionCorrected = Math.max(transitionsBetween(topLeft, correctedTopRight).getTransitions(), - transitionsBetween(bottomRight, correctedTopRight).getTransitions()); - dimensionCorrected++; - if ((dimensionCorrected & 0x01) == 1) { - dimensionCorrected++; - } - - bits = sampleGrid(image, - topLeft, - bottomLeft, - bottomRight, - correctedTopRight, - dimensionCorrected, - dimensionCorrected); - } - - return new DetectorResult(bits, new ResultPoint[]{topLeft, bottomLeft, bottomRight, correctedTopRight}); - } - - /** - * Calculates the position of the white top right module using the output of the rectangle detector - * for a rectangular matrix - */ - private ResultPoint correctTopRightRectangular(ResultPoint bottomLeft, - ResultPoint bottomRight, - ResultPoint topLeft, - ResultPoint topRight, - int dimensionTop, - int dimensionRight) { - - float corr = distance(bottomLeft, bottomRight) / (float)dimensionTop; - int norm = distance(topLeft, topRight); - float cos = (topRight.getX() - topLeft.getX()) / norm; - float sin = (topRight.getY() - topLeft.getY()) / norm; - - ResultPoint c1 = new ResultPoint(topRight.getX()+corr*cos, topRight.getY()+corr*sin); - - corr = distance(bottomLeft, topLeft) / (float)dimensionRight; - norm = distance(bottomRight, topRight); - cos = (topRight.getX() - bottomRight.getX()) / norm; - sin = (topRight.getY() - bottomRight.getY()) / norm; - - ResultPoint c2 = new ResultPoint(topRight.getX()+corr*cos, topRight.getY()+corr*sin); - - if (!isValid(c1)) { - if (isValid(c2)) { - return c2; - } - return null; - } - if (!isValid(c2)){ - return c1; - } - - int l1 = Math.abs(dimensionTop - transitionsBetween(topLeft, c1).getTransitions()) + - Math.abs(dimensionRight - transitionsBetween(bottomRight, c1).getTransitions()); - int l2 = Math.abs(dimensionTop - transitionsBetween(topLeft, c2).getTransitions()) + - Math.abs(dimensionRight - transitionsBetween(bottomRight, c2).getTransitions()); - - if (l1 <= l2){ - return c1; - } - - return c2; - } - - /** - * Calculates the position of the white top right module using the output of the rectangle detector - * for a square matrix - */ - private ResultPoint correctTopRight(ResultPoint bottomLeft, - ResultPoint bottomRight, - ResultPoint topLeft, - ResultPoint topRight, - int dimension) { - - float corr = distance(bottomLeft, bottomRight) / (float) dimension; - int norm = distance(topLeft, topRight); - float cos = (topRight.getX() - topLeft.getX()) / norm; - float sin = (topRight.getY() - topLeft.getY()) / norm; - - ResultPoint c1 = new ResultPoint(topRight.getX() + corr * cos, topRight.getY() + corr * sin); - - corr = distance(bottomLeft, topLeft) / (float) dimension; - norm = distance(bottomRight, topRight); - cos = (topRight.getX() - bottomRight.getX()) / norm; - sin = (topRight.getY() - bottomRight.getY()) / norm; - - ResultPoint c2 = new ResultPoint(topRight.getX() + corr * cos, topRight.getY() + corr * sin); - - if (!isValid(c1)) { - if (isValid(c2)) { - return c2; - } - return null; - } - if (!isValid(c2)) { - return c1; - } - - int l1 = Math.abs(transitionsBetween(topLeft, c1).getTransitions() - - transitionsBetween(bottomRight, c1).getTransitions()); - int l2 = Math.abs(transitionsBetween(topLeft, c2).getTransitions() - - transitionsBetween(bottomRight, c2).getTransitions()); - - return l1 <= l2 ? c1 : c2; - } - - private boolean isValid(ResultPoint p) { - return p.getX() >= 0 && p.getX() < image.getWidth() && p.getY() > 0 && p.getY() < image.getHeight(); - } - - private static int distance(ResultPoint a, ResultPoint b) { - return MathUtils.round(ResultPoint.distance(a, b)); - } - - /** - * Increments the Integer associated with a key by one. - */ - private static void increment(Map<ResultPoint,Integer> table, ResultPoint key) { - Integer value = table.get(key); - table.put(key, value == null ? 1 : value + 1); - } - - private static BitMatrix sampleGrid(BitMatrix image, - ResultPoint topLeft, - ResultPoint bottomLeft, - ResultPoint bottomRight, - ResultPoint topRight, - int dimensionX, - int dimensionY) throws NotFoundException { - - GridSampler sampler = GridSampler.getInstance(); - - return sampler.sampleGrid(image, - dimensionX, - dimensionY, - 0.5f, - 0.5f, - dimensionX - 0.5f, - 0.5f, - dimensionX - 0.5f, - dimensionY - 0.5f, - 0.5f, - dimensionY - 0.5f, - topLeft.getX(), - topLeft.getY(), - topRight.getX(), - topRight.getY(), - bottomRight.getX(), - bottomRight.getY(), - bottomLeft.getX(), - bottomLeft.getY()); - } - - /** - * Counts the number of black/white transitions between two points, using something like Bresenham's algorithm. - */ - private ResultPointsAndTransitions transitionsBetween(ResultPoint from, ResultPoint to) { - // See QR Code Detector, sizeOfBlackWhiteBlackRun() - int fromX = (int) from.getX(); - int fromY = (int) from.getY(); - int toX = (int) to.getX(); - int toY = (int) to.getY(); - boolean steep = Math.abs(toY - fromY) > Math.abs(toX - fromX); - if (steep) { - int temp = fromX; - fromX = fromY; - fromY = temp; - temp = toX; - toX = toY; - toY = temp; - } - - int dx = Math.abs(toX - fromX); - int dy = Math.abs(toY - fromY); - int error = -dx / 2; - int ystep = fromY < toY ? 1 : -1; - int xstep = fromX < toX ? 1 : -1; - int transitions = 0; - boolean inBlack = image.get(steep ? fromY : fromX, steep ? fromX : fromY); - for (int x = fromX, y = fromY; x != toX; x += xstep) { - boolean isBlack = image.get(steep ? y : x, steep ? x : y); - if (isBlack != inBlack) { - transitions++; - inBlack = isBlack; - } - error += dy; - if (error > 0) { - if (y == toY) { - break; - } - y += ystep; - error -= dx; - } - } - return new ResultPointsAndTransitions(from, to, transitions); - } - - /** - * Simply encapsulates two points and a number of transitions between them. - */ - private static final class ResultPointsAndTransitions { - - private final ResultPoint from; - private final ResultPoint to; - private final int transitions; - - private ResultPointsAndTransitions(ResultPoint from, ResultPoint to, int transitions) { - this.from = from; - this.to = to; - this.transitions = transitions; - } - - ResultPoint getFrom() { - return from; - } - - ResultPoint getTo() { - return to; - } - - public int getTransitions() { - return transitions; - } - - @Override - public String toString() { - return from + "/" + to + '/' + transitions; - } - } - - /** - * Orders ResultPointsAndTransitions by number of transitions, ascending. - */ - private static final class ResultPointsAndTransitionsComparator - implements Comparator<ResultPointsAndTransitions>, Serializable { - @Override - public int compare(ResultPointsAndTransitions o1, ResultPointsAndTransitions o2) { - return o1.getTransitions() - o2.getTransitions(); - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/ASCIIEncoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/ASCIIEncoder.java deleted file mode 100755 index b9cb72bd..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/ASCIIEncoder.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 2006-2007 Jeremias Maerki. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix.encoder; - -final class ASCIIEncoder implements Encoder { - - @Override - public int getEncodingMode() { - return HighLevelEncoder.ASCII_ENCODATION; - } - - @Override - public void encode(EncoderContext context) { - //step B - int n = HighLevelEncoder.determineConsecutiveDigitCount(context.getMessage(), context.pos); - if (n >= 2) { - context.writeCodeword(encodeASCIIDigits(context.getMessage().charAt(context.pos), - context.getMessage().charAt(context.pos + 1))); - context.pos += 2; - } else { - char c = context.getCurrentChar(); - int newMode = HighLevelEncoder.lookAheadTest(context.getMessage(), context.pos, getEncodingMode()); - if (newMode != getEncodingMode()) { - switch (newMode) { - case HighLevelEncoder.BASE256_ENCODATION: - context.writeCodeword(HighLevelEncoder.LATCH_TO_BASE256); - context.signalEncoderChange(HighLevelEncoder.BASE256_ENCODATION); - return; - case HighLevelEncoder.C40_ENCODATION: - context.writeCodeword(HighLevelEncoder.LATCH_TO_C40); - context.signalEncoderChange(HighLevelEncoder.C40_ENCODATION); - return; - case HighLevelEncoder.X12_ENCODATION: - context.writeCodeword(HighLevelEncoder.LATCH_TO_ANSIX12); - context.signalEncoderChange(HighLevelEncoder.X12_ENCODATION); - break; - case HighLevelEncoder.TEXT_ENCODATION: - context.writeCodeword(HighLevelEncoder.LATCH_TO_TEXT); - context.signalEncoderChange(HighLevelEncoder.TEXT_ENCODATION); - break; - case HighLevelEncoder.EDIFACT_ENCODATION: - context.writeCodeword(HighLevelEncoder.LATCH_TO_EDIFACT); - context.signalEncoderChange(HighLevelEncoder.EDIFACT_ENCODATION); - break; - default: - throw new IllegalStateException("Illegal mode: " + newMode); - } - } else if (HighLevelEncoder.isExtendedASCII(c)) { - context.writeCodeword(HighLevelEncoder.UPPER_SHIFT); - context.writeCodeword((char) (c - 128 + 1)); - context.pos++; - } else { - context.writeCodeword((char) (c + 1)); - context.pos++; - } - - } - } - - private static char encodeASCIIDigits(char digit1, char digit2) { - if (HighLevelEncoder.isDigit(digit1) && HighLevelEncoder.isDigit(digit2)) { - int num = (digit1 - 48) * 10 + (digit2 - 48); - return (char) (num + 130); - } - throw new IllegalArgumentException("not digits: " + digit1 + digit2); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/Base256Encoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/Base256Encoder.java deleted file mode 100755 index b66e4855..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/Base256Encoder.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright 2006-2007 Jeremias Maerki. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix.encoder; - -final class Base256Encoder implements Encoder { - - @Override - public int getEncodingMode() { - return HighLevelEncoder.BASE256_ENCODATION; - } - - @Override - public void encode(EncoderContext context) { - StringBuilder buffer = new StringBuilder(); - buffer.append('\0'); //Initialize length field - while (context.hasMoreCharacters()) { - char c = context.getCurrentChar(); - buffer.append(c); - - context.pos++; - - int newMode = HighLevelEncoder.lookAheadTest(context.getMessage(), context.pos, getEncodingMode()); - if (newMode != getEncodingMode()) { - context.signalEncoderChange(newMode); - break; - } - } - int dataCount = buffer.length() - 1; - int lengthFieldSize = 1; - int currentSize = context.getCodewordCount() + dataCount + lengthFieldSize; - context.updateSymbolInfo(currentSize); - boolean mustPad = (context.getSymbolInfo().getDataCapacity() - currentSize) > 0; - if (context.hasMoreCharacters() || mustPad) { - if (dataCount <= 249) { - buffer.setCharAt(0, (char) dataCount); - } else if (dataCount > 249 && dataCount <= 1555) { - buffer.setCharAt(0, (char) ((dataCount / 250) + 249)); - buffer.insert(1, (char) (dataCount % 250)); - } else { - throw new IllegalStateException( - "Message length not in valid ranges: " + dataCount); - } - } - for (int i = 0, c = buffer.length(); i < c; i++) { - context.writeCodeword(randomize255State( - buffer.charAt(i), context.getCodewordCount() + 1)); - } - } - - private static char randomize255State(char ch, int codewordPosition) { - int pseudoRandom = ((149 * codewordPosition) % 255) + 1; - int tempVariable = ch + pseudoRandom; - if (tempVariable <= 255) { - return (char) tempVariable; - } else { - return (char) (tempVariable - 256); - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/C40Encoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/C40Encoder.java deleted file mode 100755 index acd02f6c..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/C40Encoder.java +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Copyright 2006-2007 Jeremias Maerki. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix.encoder; - -class C40Encoder implements Encoder { - - @Override - public int getEncodingMode() { - return HighLevelEncoder.C40_ENCODATION; - } - - @Override - public void encode(EncoderContext context) { - //step C - StringBuilder buffer = new StringBuilder(); - while (context.hasMoreCharacters()) { - char c = context.getCurrentChar(); - context.pos++; - - int lastCharSize = encodeChar(c, buffer); - - int unwritten = (buffer.length() / 3) * 2; - - int curCodewordCount = context.getCodewordCount() + unwritten; - context.updateSymbolInfo(curCodewordCount); - int available = context.getSymbolInfo().getDataCapacity() - curCodewordCount; - - if (!context.hasMoreCharacters()) { - //Avoid having a single C40 value in the last triplet - StringBuilder removed = new StringBuilder(); - if ((buffer.length() % 3) == 2) { - if (available < 2 || available > 2) { - lastCharSize = backtrackOneCharacter(context, buffer, removed, - lastCharSize); - } - } - while ((buffer.length() % 3) == 1 - && ((lastCharSize <= 3 && available != 1) || lastCharSize > 3)) { - lastCharSize = backtrackOneCharacter(context, buffer, removed, lastCharSize); - } - break; - } - - int count = buffer.length(); - if ((count % 3) == 0) { - int newMode = HighLevelEncoder.lookAheadTest(context.getMessage(), context.pos, getEncodingMode()); - if (newMode != getEncodingMode()) { - context.signalEncoderChange(newMode); - break; - } - } - } - handleEOD(context, buffer); - } - - private int backtrackOneCharacter(EncoderContext context, - StringBuilder buffer, StringBuilder removed, int lastCharSize) { - int count = buffer.length(); - buffer.delete(count - lastCharSize, count); - context.pos--; - char c = context.getCurrentChar(); - lastCharSize = encodeChar(c, removed); - context.resetSymbolInfo(); //Deal with possible reduction in symbol size - return lastCharSize; - } - - static void writeNextTriplet(EncoderContext context, StringBuilder buffer) { - context.writeCodewords(encodeToCodewords(buffer, 0)); - buffer.delete(0, 3); - } - - /** - * Handle "end of data" situations - * - * @param context the encoder context - * @param buffer the buffer with the remaining encoded characters - */ - void handleEOD(EncoderContext context, StringBuilder buffer) { - int unwritten = (buffer.length() / 3) * 2; - int rest = buffer.length() % 3; - - int curCodewordCount = context.getCodewordCount() + unwritten; - context.updateSymbolInfo(curCodewordCount); - int available = context.getSymbolInfo().getDataCapacity() - curCodewordCount; - - if (rest == 2) { - buffer.append('\0'); //Shift 1 - while (buffer.length() >= 3) { - writeNextTriplet(context, buffer); - } - if (context.hasMoreCharacters()) { - context.writeCodeword(HighLevelEncoder.C40_UNLATCH); - } - } else if (available == 1 && rest == 1) { - while (buffer.length() >= 3) { - writeNextTriplet(context, buffer); - } - if (context.hasMoreCharacters()) { - context.writeCodeword(HighLevelEncoder.C40_UNLATCH); - } - // else no unlatch - context.pos--; - } else if (rest == 0) { - while (buffer.length() >= 3) { - writeNextTriplet(context, buffer); - } - if (available > 0 || context.hasMoreCharacters()) { - context.writeCodeword(HighLevelEncoder.C40_UNLATCH); - } - } else { - throw new IllegalStateException("Unexpected case. Please report!"); - } - context.signalEncoderChange(HighLevelEncoder.ASCII_ENCODATION); - } - - int encodeChar(char c, StringBuilder sb) { - if (c == ' ') { - sb.append('\3'); - return 1; - } else if (c >= '0' && c <= '9') { - sb.append((char) (c - 48 + 4)); - return 1; - } else if (c >= 'A' && c <= 'Z') { - sb.append((char) (c - 65 + 14)); - return 1; - } else if (c >= '\0' && c <= '\u001f') { - sb.append('\0'); //Shift 1 Set - sb.append(c); - return 2; - } else if (c >= '!' && c <= '/') { - sb.append('\1'); //Shift 2 Set - sb.append((char) (c - 33)); - return 2; - } else if (c >= ':' && c <= '@') { - sb.append('\1'); //Shift 2 Set - sb.append((char) (c - 58 + 15)); - return 2; - } else if (c >= '[' && c <= '_') { - sb.append('\1'); //Shift 2 Set - sb.append((char) (c - 91 + 22)); - return 2; - } else if (c >= '\u0060' && c <= '\u007f') { - sb.append('\2'); //Shift 3 Set - sb.append((char) (c - 96)); - return 2; - } else if (c >= '\u0080') { - sb.append("\1\u001e"); //Shift 2, Upper Shift - int len = 2; - len += encodeChar((char) (c - 128), sb); - return len; - } else { - throw new IllegalArgumentException("Illegal character: " + c); - } - } - - private static String encodeToCodewords(CharSequence sb, int startPos) { - char c1 = sb.charAt(startPos); - char c2 = sb.charAt(startPos + 1); - char c3 = sb.charAt(startPos + 2); - int v = (1600 * c1) + (40 * c2) + c3 + 1; - char cw1 = (char) (v / 256); - char cw2 = (char) (v % 256); - return new String(new char[] {cw1, cw2}); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/DataMatrixSymbolInfo144.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/DataMatrixSymbolInfo144.java deleted file mode 100755 index 31463539..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/DataMatrixSymbolInfo144.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright 2006 Jeremias Maerki - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix.encoder; - -final class DataMatrixSymbolInfo144 extends SymbolInfo { - - DataMatrixSymbolInfo144() { - super(false, 1558, 620, 22, 22, 36, -1, 62); - } - - @Override - public int getInterleavedBlockCount() { - return 10; - } - - @Override - public int getDataLengthForInterleavedBlock(int index) { - return (index <= 8) ? 156 : 155; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/DefaultPlacement.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/DefaultPlacement.java deleted file mode 100755 index 5efb5a58..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/DefaultPlacement.java +++ /dev/null @@ -1,198 +0,0 @@ -/* - * Copyright 2006 Jeremias Maerki. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix.encoder; - -import java.util.Arrays; - -/** - * Symbol Character Placement Program. Adapted from Annex M.1 in ISO/IEC 16022:2000(E). - */ -public class DefaultPlacement { - - private final CharSequence codewords; - private final int numrows; - private final int numcols; - private final byte[] bits; - - /** - * Main constructor - * - * @param codewords the codewords to place - * @param numcols the number of columns - * @param numrows the number of rows - */ - public DefaultPlacement(CharSequence codewords, int numcols, int numrows) { - this.codewords = codewords; - this.numcols = numcols; - this.numrows = numrows; - this.bits = new byte[numcols * numrows]; - Arrays.fill(this.bits, (byte) -1); //Initialize with "not set" value - } - - final int getNumrows() { - return numrows; - } - - final int getNumcols() { - return numcols; - } - - final byte[] getBits() { - return bits; - } - - public final boolean getBit(int col, int row) { - return bits[row * numcols + col] == 1; - } - - final void setBit(int col, int row, boolean bit) { - bits[row * numcols + col] = bit ? (byte) 1 : (byte) 0; - } - - final boolean hasBit(int col, int row) { - return bits[row * numcols + col] >= 0; - } - - public final void place() { - int pos = 0; - int row = 4; - int col = 0; - - do { - /* repeatedly first check for one of the special corner cases, then... */ - if ((row == numrows) && (col == 0)) { - corner1(pos++); - } - if ((row == numrows - 2) && (col == 0) && ((numcols % 4) != 0)) { - corner2(pos++); - } - if ((row == numrows - 2) && (col == 0) && (numcols % 8 == 4)) { - corner3(pos++); - } - if ((row == numrows + 4) && (col == 2) && ((numcols % 8) == 0)) { - corner4(pos++); - } - /* sweep upward diagonally, inserting successive characters... */ - do { - if ((row < numrows) && (col >= 0) && !hasBit(col, row)) { - utah(row, col, pos++); - } - row -= 2; - col += 2; - } while (row >= 0 && (col < numcols)); - row++; - col += 3; - - /* and then sweep downward diagonally, inserting successive characters, ... */ - do { - if ((row >= 0) && (col < numcols) && !hasBit(col, row)) { - utah(row, col, pos++); - } - row += 2; - col -= 2; - } while ((row < numrows) && (col >= 0)); - row += 3; - col++; - - /* ...until the entire array is scanned */ - } while ((row < numrows) || (col < numcols)); - - /* Lastly, if the lower righthand corner is untouched, fill in fixed pattern */ - if (!hasBit(numcols - 1, numrows - 1)) { - setBit(numcols - 1, numrows - 1, true); - setBit(numcols - 2, numrows - 2, true); - } - } - - private void module(int row, int col, int pos, int bit) { - if (row < 0) { - row += numrows; - col += 4 - ((numrows + 4) % 8); - } - if (col < 0) { - col += numcols; - row += 4 - ((numcols + 4) % 8); - } - // Note the conversion: - int v = codewords.charAt(pos); - v &= 1 << (8 - bit); - setBit(col, row, v != 0); - } - - /** - * Places the 8 bits of a utah-shaped symbol character in ECC200. - * - * @param row the row - * @param col the column - * @param pos character position - */ - private void utah(int row, int col, int pos) { - module(row - 2, col - 2, pos, 1); - module(row - 2, col - 1, pos, 2); - module(row - 1, col - 2, pos, 3); - module(row - 1, col - 1, pos, 4); - module(row - 1, col, pos, 5); - module(row, col - 2, pos, 6); - module(row, col - 1, pos, 7); - module(row, col, pos, 8); - } - - private void corner1(int pos) { - module(numrows - 1, 0, pos, 1); - module(numrows - 1, 1, pos, 2); - module(numrows - 1, 2, pos, 3); - module(0, numcols - 2, pos, 4); - module(0, numcols - 1, pos, 5); - module(1, numcols - 1, pos, 6); - module(2, numcols - 1, pos, 7); - module(3, numcols - 1, pos, 8); - } - - private void corner2(int pos) { - module(numrows - 3, 0, pos, 1); - module(numrows - 2, 0, pos, 2); - module(numrows - 1, 0, pos, 3); - module(0, numcols - 4, pos, 4); - module(0, numcols - 3, pos, 5); - module(0, numcols - 2, pos, 6); - module(0, numcols - 1, pos, 7); - module(1, numcols - 1, pos, 8); - } - - private void corner3(int pos) { - module(numrows - 3, 0, pos, 1); - module(numrows - 2, 0, pos, 2); - module(numrows - 1, 0, pos, 3); - module(0, numcols - 2, pos, 4); - module(0, numcols - 1, pos, 5); - module(1, numcols - 1, pos, 6); - module(2, numcols - 1, pos, 7); - module(3, numcols - 1, pos, 8); - } - - private void corner4(int pos) { - module(numrows - 1, 0, pos, 1); - module(numrows - 1, numcols - 1, pos, 2); - module(0, numcols - 3, pos, 3); - module(0, numcols - 2, pos, 4); - module(0, numcols - 1, pos, 5); - module(1, numcols - 3, pos, 6); - module(1, numcols - 2, pos, 7); - module(1, numcols - 1, pos, 8); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/EdifactEncoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/EdifactEncoder.java deleted file mode 100755 index dbb3f130..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/EdifactEncoder.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright 2006-2007 Jeremias Maerki. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix.encoder; - -final class EdifactEncoder implements Encoder { - - @Override - public int getEncodingMode() { - return HighLevelEncoder.EDIFACT_ENCODATION; - } - - @Override - public void encode(EncoderContext context) { - //step F - StringBuilder buffer = new StringBuilder(); - while (context.hasMoreCharacters()) { - char c = context.getCurrentChar(); - encodeChar(c, buffer); - context.pos++; - - int count = buffer.length(); - if (count >= 4) { - context.writeCodewords(encodeToCodewords(buffer, 0)); - buffer.delete(0, 4); - - int newMode = HighLevelEncoder.lookAheadTest(context.getMessage(), context.pos, getEncodingMode()); - if (newMode != getEncodingMode()) { - context.signalEncoderChange(HighLevelEncoder.ASCII_ENCODATION); - break; - } - } - } - buffer.append((char) 31); //Unlatch - handleEOD(context, buffer); - } - - /** - * Handle "end of data" situations - * - * @param context the encoder context - * @param buffer the buffer with the remaining encoded characters - */ - private static void handleEOD(EncoderContext context, CharSequence buffer) { - try { - int count = buffer.length(); - if (count == 0) { - return; //Already finished - } - if (count == 1) { - //Only an unlatch at the end - context.updateSymbolInfo(); - int available = context.getSymbolInfo().getDataCapacity() - context.getCodewordCount(); - int remaining = context.getRemainingCharacters(); - if (remaining == 0 && available <= 2) { - return; //No unlatch - } - } - - if (count > 4) { - throw new IllegalStateException("Count must not exceed 4"); - } - int restChars = count - 1; - String encoded = encodeToCodewords(buffer, 0); - boolean endOfSymbolReached = !context.hasMoreCharacters(); - boolean restInAscii = endOfSymbolReached && restChars <= 2; - - if (restChars <= 2) { - context.updateSymbolInfo(context.getCodewordCount() + restChars); - int available = context.getSymbolInfo().getDataCapacity() - context.getCodewordCount(); - if (available >= 3) { - restInAscii = false; - context.updateSymbolInfo(context.getCodewordCount() + encoded.length()); - //available = context.symbolInfo.dataCapacity - context.getCodewordCount(); - } - } - - if (restInAscii) { - context.resetSymbolInfo(); - context.pos -= restChars; - } else { - context.writeCodewords(encoded); - } - } finally { - context.signalEncoderChange(HighLevelEncoder.ASCII_ENCODATION); - } - } - - private static void encodeChar(char c, StringBuilder sb) { - if (c >= ' ' && c <= '?') { - sb.append(c); - } else if (c >= '@' && c <= '^') { - sb.append((char) (c - 64)); - } else { - HighLevelEncoder.illegalCharacter(c); - } - } - - private static String encodeToCodewords(CharSequence sb, int startPos) { - int len = sb.length() - startPos; - if (len == 0) { - throw new IllegalStateException("StringBuilder must not be empty"); - } - char c1 = sb.charAt(startPos); - char c2 = len >= 2 ? sb.charAt(startPos + 1) : 0; - char c3 = len >= 3 ? sb.charAt(startPos + 2) : 0; - char c4 = len >= 4 ? sb.charAt(startPos + 3) : 0; - - int v = (c1 << 18) + (c2 << 12) + (c3 << 6) + c4; - char cw1 = (char) ((v >> 16) & 255); - char cw2 = (char) ((v >> 8) & 255); - char cw3 = (char) (v & 255); - StringBuilder res = new StringBuilder(3); - res.append(cw1); - if (len >= 2) { - res.append(cw2); - } - if (len >= 3) { - res.append(cw3); - } - return res.toString(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/Encoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/Encoder.java deleted file mode 100755 index 7a91e1e4..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/Encoder.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2006-2007 Jeremias Maerki. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix.encoder; - -interface Encoder { - - int getEncodingMode(); - - void encode(EncoderContext context); - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/EncoderContext.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/EncoderContext.java deleted file mode 100755 index 99550869..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/EncoderContext.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Copyright 2006-2007 Jeremias Maerki. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix.encoder; - -import java.nio.charset.Charset; - -import com.google.zxing.Dimension; - -final class EncoderContext { - - private final String msg; - private SymbolShapeHint shape; - private Dimension minSize; - private Dimension maxSize; - private final StringBuilder codewords; - int pos; - private int newEncoding; - private SymbolInfo symbolInfo; - private int skipAtEnd; - - EncoderContext(String msg) { - //From this point on Strings are not Unicode anymore! - byte[] msgBinary = msg.getBytes(Charset.forName("ISO-8859-1")); - StringBuilder sb = new StringBuilder(msgBinary.length); - for (int i = 0, c = msgBinary.length; i < c; i++) { - char ch = (char) (msgBinary[i] & 0xff); - if (ch == '?' && msg.charAt(i) != '?') { - throw new IllegalArgumentException("Message contains characters outside ISO-8859-1 encoding."); - } - sb.append(ch); - } - this.msg = sb.toString(); //Not Unicode here! - shape = SymbolShapeHint.FORCE_NONE; - this.codewords = new StringBuilder(msg.length()); - newEncoding = -1; - } - - public void setSymbolShape(SymbolShapeHint shape) { - this.shape = shape; - } - - public void setSizeConstraints(Dimension minSize, Dimension maxSize) { - this.minSize = minSize; - this.maxSize = maxSize; - } - - public String getMessage() { - return this.msg; - } - - public void setSkipAtEnd(int count) { - this.skipAtEnd = count; - } - - public char getCurrentChar() { - return msg.charAt(pos); - } - - public char getCurrent() { - return msg.charAt(pos); - } - - public StringBuilder getCodewords() { - return codewords; - } - - public void writeCodewords(String codewords) { - this.codewords.append(codewords); - } - - public void writeCodeword(char codeword) { - this.codewords.append(codeword); - } - - public int getCodewordCount() { - return this.codewords.length(); - } - - public int getNewEncoding() { - return newEncoding; - } - - public void signalEncoderChange(int encoding) { - this.newEncoding = encoding; - } - - public void resetEncoderSignal() { - this.newEncoding = -1; - } - - public boolean hasMoreCharacters() { - return pos < getTotalMessageCharCount(); - } - - private int getTotalMessageCharCount() { - return msg.length() - skipAtEnd; - } - - public int getRemainingCharacters() { - return getTotalMessageCharCount() - pos; - } - - public SymbolInfo getSymbolInfo() { - return symbolInfo; - } - - public void updateSymbolInfo() { - updateSymbolInfo(getCodewordCount()); - } - - public void updateSymbolInfo(int len) { - if (this.symbolInfo == null || len > this.symbolInfo.getDataCapacity()) { - this.symbolInfo = SymbolInfo.lookup(len, shape, minSize, maxSize, true); - } - } - - public void resetSymbolInfo() { - this.symbolInfo = null; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/ErrorCorrection.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/ErrorCorrection.java deleted file mode 100755 index d3893349..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/ErrorCorrection.java +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Copyright 2006 Jeremias Maerki. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix.encoder; - -/** - * Error Correction Code for ECC200. - */ -public final class ErrorCorrection { - - /** - * Lookup table which factors to use for which number of error correction codewords. - * See FACTORS. - */ - private static final int[] FACTOR_SETS - = {5, 7, 10, 11, 12, 14, 18, 20, 24, 28, 36, 42, 48, 56, 62, 68}; - - /** - * Precomputed polynomial factors for ECC 200. - */ - private static final int[][] FACTORS = { - {228, 48, 15, 111, 62}, - {23, 68, 144, 134, 240, 92, 254}, - {28, 24, 185, 166, 223, 248, 116, 255, 110, 61}, - {175, 138, 205, 12, 194, 168, 39, 245, 60, 97, 120}, - {41, 153, 158, 91, 61, 42, 142, 213, 97, 178, 100, 242}, - {156, 97, 192, 252, 95, 9, 157, 119, 138, 45, 18, 186, 83, 185}, - {83, 195, 100, 39, 188, 75, 66, 61, 241, 213, 109, 129, 94, 254, 225, 48, 90, 188}, - {15, 195, 244, 9, 233, 71, 168, 2, 188, 160, 153, 145, 253, 79, 108, 82, 27, 174, 186, 172}, - {52, 190, 88, 205, 109, 39, 176, 21, 155, 197, 251, 223, 155, 21, 5, 172, - 254, 124, 12, 181, 184, 96, 50, 193}, - {211, 231, 43, 97, 71, 96, 103, 174, 37, 151, 170, 53, 75, 34, 249, 121, - 17, 138, 110, 213, 141, 136, 120, 151, 233, 168, 93, 255}, - {245, 127, 242, 218, 130, 250, 162, 181, 102, 120, 84, 179, 220, 251, 80, 182, - 229, 18, 2, 4, 68, 33, 101, 137, 95, 119, 115, 44, 175, 184, 59, 25, - 225, 98, 81, 112}, - {77, 193, 137, 31, 19, 38, 22, 153, 247, 105, 122, 2, 245, 133, 242, 8, - 175, 95, 100, 9, 167, 105, 214, 111, 57, 121, 21, 1, 253, 57, 54, 101, - 248, 202, 69, 50, 150, 177, 226, 5, 9, 5}, - {245, 132, 172, 223, 96, 32, 117, 22, 238, 133, 238, 231, 205, 188, 237, 87, - 191, 106, 16, 147, 118, 23, 37, 90, 170, 205, 131, 88, 120, 100, 66, 138, - 186, 240, 82, 44, 176, 87, 187, 147, 160, 175, 69, 213, 92, 253, 225, 19}, - {175, 9, 223, 238, 12, 17, 220, 208, 100, 29, 175, 170, 230, 192, 215, 235, - 150, 159, 36, 223, 38, 200, 132, 54, 228, 146, 218, 234, 117, 203, 29, 232, - 144, 238, 22, 150, 201, 117, 62, 207, 164, 13, 137, 245, 127, 67, 247, 28, - 155, 43, 203, 107, 233, 53, 143, 46}, - {242, 93, 169, 50, 144, 210, 39, 118, 202, 188, 201, 189, 143, 108, 196, 37, - 185, 112, 134, 230, 245, 63, 197, 190, 250, 106, 185, 221, 175, 64, 114, 71, - 161, 44, 147, 6, 27, 218, 51, 63, 87, 10, 40, 130, 188, 17, 163, 31, - 176, 170, 4, 107, 232, 7, 94, 166, 224, 124, 86, 47, 11, 204}, - {220, 228, 173, 89, 251, 149, 159, 56, 89, 33, 147, 244, 154, 36, 73, 127, - 213, 136, 248, 180, 234, 197, 158, 177, 68, 122, 93, 213, 15, 160, 227, 236, - 66, 139, 153, 185, 202, 167, 179, 25, 220, 232, 96, 210, 231, 136, 223, 239, - 181, 241, 59, 52, 172, 25, 49, 232, 211, 189, 64, 54, 108, 153, 132, 63, - 96, 103, 82, 186}}; - - private static final int MODULO_VALUE = 0x12D; - - private static final int[] LOG; - private static final int[] ALOG; - - static { - //Create log and antilog table - LOG = new int[256]; - ALOG = new int[255]; - - int p = 1; - for (int i = 0; i < 255; i++) { - ALOG[i] = p; - LOG[p] = i; - p *= 2; - if (p >= 256) { - p ^= MODULO_VALUE; - } - } - } - - private ErrorCorrection() { - } - - /** - * Creates the ECC200 error correction for an encoded message. - * - * @param codewords the codewords - * @param symbolInfo information about the symbol to be encoded - * @return the codewords with interleaved error correction. - */ - public static String encodeECC200(String codewords, SymbolInfo symbolInfo) { - if (codewords.length() != symbolInfo.getDataCapacity()) { - throw new IllegalArgumentException( - "The number of codewords does not match the selected symbol"); - } - StringBuilder sb = new StringBuilder(symbolInfo.getDataCapacity() + symbolInfo.getErrorCodewords()); - sb.append(codewords); - int blockCount = symbolInfo.getInterleavedBlockCount(); - if (blockCount == 1) { - String ecc = createECCBlock(codewords, symbolInfo.getErrorCodewords()); - sb.append(ecc); - } else { - sb.setLength(sb.capacity()); - int[] dataSizes = new int[blockCount]; - int[] errorSizes = new int[blockCount]; - int[] startPos = new int[blockCount]; - for (int i = 0; i < blockCount; i++) { - dataSizes[i] = symbolInfo.getDataLengthForInterleavedBlock(i + 1); - errorSizes[i] = symbolInfo.getErrorLengthForInterleavedBlock(i + 1); - startPos[i] = 0; - if (i > 0) { - startPos[i] = startPos[i - 1] + dataSizes[i]; - } - } - for (int block = 0; block < blockCount; block++) { - StringBuilder temp = new StringBuilder(dataSizes[block]); - for (int d = block; d < symbolInfo.getDataCapacity(); d += blockCount) { - temp.append(codewords.charAt(d)); - } - String ecc = createECCBlock(temp.toString(), errorSizes[block]); - int pos = 0; - for (int e = block; e < errorSizes[block] * blockCount; e += blockCount) { - sb.setCharAt(symbolInfo.getDataCapacity() + e, ecc.charAt(pos++)); - } - } - } - return sb.toString(); - - } - - private static String createECCBlock(CharSequence codewords, int numECWords) { - return createECCBlock(codewords, 0, codewords.length(), numECWords); - } - - private static String createECCBlock(CharSequence codewords, int start, int len, int numECWords) { - int table = -1; - for (int i = 0; i < FACTOR_SETS.length; i++) { - if (FACTOR_SETS[i] == numECWords) { - table = i; - break; - } - } - if (table < 0) { - throw new IllegalArgumentException( - "Illegal number of error correction codewords specified: " + numECWords); - } - int[] poly = FACTORS[table]; - char[] ecc = new char[numECWords]; - for (int i = 0; i < numECWords; i++) { - ecc[i] = 0; - } - for (int i = start; i < start + len; i++) { - int m = ecc[numECWords - 1] ^ codewords.charAt(i); - for (int k = numECWords - 1; k > 0; k--) { - if (m != 0 && poly[k] != 0) { - ecc[k] = (char) (ecc[k - 1] ^ ALOG[(LOG[m] + LOG[poly[k]]) % 255]); - } else { - ecc[k] = ecc[k - 1]; - } - } - if (m != 0 && poly[0] != 0) { - ecc[0] = (char) ALOG[(LOG[m] + LOG[poly[0]]) % 255]; - } else { - ecc[0] = 0; - } - } - char[] eccReversed = new char[numECWords]; - for (int i = 0; i < numECWords; i++) { - eccReversed[i] = ecc[numECWords - i - 1]; - } - return String.valueOf(eccReversed); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/HighLevelEncoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/HighLevelEncoder.java deleted file mode 100755 index 4730dd03..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/HighLevelEncoder.java +++ /dev/null @@ -1,448 +0,0 @@ -/* - * Copyright 2006-2007 Jeremias Maerki. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix.encoder; - -import java.util.Arrays; - -import com.google.zxing.Dimension; - -/** - * DataMatrix ECC 200 data encoder following the algorithm described in ISO/IEC 16022:200(E) in - * annex S. - */ -public final class HighLevelEncoder { - - /** - * Padding character - */ - private static final char PAD = 129; - /** - * mode latch to C40 encodation mode - */ - static final char LATCH_TO_C40 = 230; - /** - * mode latch to Base 256 encodation mode - */ - static final char LATCH_TO_BASE256 = 231; - /** - * FNC1 Codeword - */ - //private static final char FNC1 = 232; - /** - * Structured Append Codeword - */ - //private static final char STRUCTURED_APPEND = 233; - /** - * Reader Programming - */ - //private static final char READER_PROGRAMMING = 234; - /** - * Upper Shift - */ - static final char UPPER_SHIFT = 235; - /** - * 05 Macro - */ - private static final char MACRO_05 = 236; - /** - * 06 Macro - */ - private static final char MACRO_06 = 237; - /** - * mode latch to ANSI X.12 encodation mode - */ - static final char LATCH_TO_ANSIX12 = 238; - /** - * mode latch to Text encodation mode - */ - static final char LATCH_TO_TEXT = 239; - /** - * mode latch to EDIFACT encodation mode - */ - static final char LATCH_TO_EDIFACT = 240; - /** - * ECI character (Extended Channel Interpretation) - */ - //private static final char ECI = 241; - - /** - * Unlatch from C40 encodation - */ - static final char C40_UNLATCH = 254; - /** - * Unlatch from X12 encodation - */ - static final char X12_UNLATCH = 254; - - /** - * 05 Macro header - */ - private static final String MACRO_05_HEADER = "[)>\u001E05\u001D"; - /** - * 06 Macro header - */ - private static final String MACRO_06_HEADER = "[)>\u001E06\u001D"; - /** - * Macro trailer - */ - private static final String MACRO_TRAILER = "\u001E\u0004"; - - static final int ASCII_ENCODATION = 0; - static final int C40_ENCODATION = 1; - static final int TEXT_ENCODATION = 2; - static final int X12_ENCODATION = 3; - static final int EDIFACT_ENCODATION = 4; - static final int BASE256_ENCODATION = 5; - - private HighLevelEncoder() { - } - - /* - * Converts the message to a byte array using the default encoding (cp437) as defined by the - * specification - * - * @param msg the message - * @return the byte array of the message - */ - - /* - public static byte[] getBytesForMessage(String msg) { - return msg.getBytes(Charset.forName("cp437")); //See 4.4.3 and annex B of ISO/IEC 15438:2001(E) - } - */ - - private static char randomize253State(char ch, int codewordPosition) { - int pseudoRandom = ((149 * codewordPosition) % 253) + 1; - int tempVariable = ch + pseudoRandom; - return tempVariable <= 254 ? (char) tempVariable : (char) (tempVariable - 254); - } - - /** - * Performs message encoding of a DataMatrix message using the algorithm described in annex P - * of ISO/IEC 16022:2000(E). - * - * @param msg the message - * @return the encoded message (the char values range from 0 to 255) - */ - public static String encodeHighLevel(String msg) { - return encodeHighLevel(msg, SymbolShapeHint.FORCE_NONE, null, null); - } - - /** - * Performs message encoding of a DataMatrix message using the algorithm described in annex P - * of ISO/IEC 16022:2000(E). - * - * @param msg the message - * @param shape requested shape. May be {@code SymbolShapeHint.FORCE_NONE}, - * {@code SymbolShapeHint.FORCE_SQUARE} or {@code SymbolShapeHint.FORCE_RECTANGLE}. - * @param minSize the minimum symbol size constraint or null for no constraint - * @param maxSize the maximum symbol size constraint or null for no constraint - * @return the encoded message (the char values range from 0 to 255) - */ - public static String encodeHighLevel(String msg, - SymbolShapeHint shape, - Dimension minSize, - Dimension maxSize) { - //the codewords 0..255 are encoded as Unicode characters - Encoder[] encoders = { - new ASCIIEncoder(), new C40Encoder(), new TextEncoder(), - new X12Encoder(), new EdifactEncoder(), new Base256Encoder() - }; - - EncoderContext context = new EncoderContext(msg); - context.setSymbolShape(shape); - context.setSizeConstraints(minSize, maxSize); - - if (msg.startsWith(MACRO_05_HEADER) && msg.endsWith(MACRO_TRAILER)) { - context.writeCodeword(MACRO_05); - context.setSkipAtEnd(2); - context.pos += MACRO_05_HEADER.length(); - } else if (msg.startsWith(MACRO_06_HEADER) && msg.endsWith(MACRO_TRAILER)) { - context.writeCodeword(MACRO_06); - context.setSkipAtEnd(2); - context.pos += MACRO_06_HEADER.length(); - } - - int encodingMode = ASCII_ENCODATION; //Default mode - while (context.hasMoreCharacters()) { - encoders[encodingMode].encode(context); - if (context.getNewEncoding() >= 0) { - encodingMode = context.getNewEncoding(); - context.resetEncoderSignal(); - } - } - int len = context.getCodewordCount(); - context.updateSymbolInfo(); - int capacity = context.getSymbolInfo().getDataCapacity(); - if (len < capacity) { - if (encodingMode != ASCII_ENCODATION && encodingMode != BASE256_ENCODATION) { - context.writeCodeword('\u00fe'); //Unlatch (254) - } - } - //Padding - StringBuilder codewords = context.getCodewords(); - if (codewords.length() < capacity) { - codewords.append(PAD); - } - while (codewords.length() < capacity) { - codewords.append(randomize253State(PAD, codewords.length() + 1)); - } - - return context.getCodewords().toString(); - } - - static int lookAheadTest(CharSequence msg, int startpos, int currentMode) { - if (startpos >= msg.length()) { - return currentMode; - } - float[] charCounts; - //step J - if (currentMode == ASCII_ENCODATION) { - charCounts = new float[]{0, 1, 1, 1, 1, 1.25f}; - } else { - charCounts = new float[]{1, 2, 2, 2, 2, 2.25f}; - charCounts[currentMode] = 0; - } - - int charsProcessed = 0; - while (true) { - //step K - if ((startpos + charsProcessed) == msg.length()) { - int min = Integer.MAX_VALUE; - byte[] mins = new byte[6]; - int[] intCharCounts = new int[6]; - min = findMinimums(charCounts, intCharCounts, min, mins); - int minCount = getMinimumCount(mins); - - if (intCharCounts[ASCII_ENCODATION] == min) { - return ASCII_ENCODATION; - } - if (minCount == 1 && mins[BASE256_ENCODATION] > 0) { - return BASE256_ENCODATION; - } - if (minCount == 1 && mins[EDIFACT_ENCODATION] > 0) { - return EDIFACT_ENCODATION; - } - if (minCount == 1 && mins[TEXT_ENCODATION] > 0) { - return TEXT_ENCODATION; - } - if (minCount == 1 && mins[X12_ENCODATION] > 0) { - return X12_ENCODATION; - } - return C40_ENCODATION; - } - - char c = msg.charAt(startpos + charsProcessed); - charsProcessed++; - - //step L - if (isDigit(c)) { - charCounts[ASCII_ENCODATION] += 0.5; - } else if (isExtendedASCII(c)) { - charCounts[ASCII_ENCODATION] = (int) Math.ceil(charCounts[ASCII_ENCODATION]); - charCounts[ASCII_ENCODATION] += 2; - } else { - charCounts[ASCII_ENCODATION] = (int) Math.ceil(charCounts[ASCII_ENCODATION]); - charCounts[ASCII_ENCODATION]++; - } - - //step M - if (isNativeC40(c)) { - charCounts[C40_ENCODATION] += 2.0f / 3.0f; - } else if (isExtendedASCII(c)) { - charCounts[C40_ENCODATION] += 8.0f / 3.0f; - } else { - charCounts[C40_ENCODATION] += 4.0f / 3.0f; - } - - //step N - if (isNativeText(c)) { - charCounts[TEXT_ENCODATION] += 2.0f / 3.0f; - } else if (isExtendedASCII(c)) { - charCounts[TEXT_ENCODATION] += 8.0f / 3.0f; - } else { - charCounts[TEXT_ENCODATION] += 4.0f / 3.0f; - } - - //step O - if (isNativeX12(c)) { - charCounts[X12_ENCODATION] += 2.0f / 3.0f; - } else if (isExtendedASCII(c)) { - charCounts[X12_ENCODATION] += 13.0f / 3.0f; - } else { - charCounts[X12_ENCODATION] += 10.0f / 3.0f; - } - - //step P - if (isNativeEDIFACT(c)) { - charCounts[EDIFACT_ENCODATION] += 3.0f / 4.0f; - } else if (isExtendedASCII(c)) { - charCounts[EDIFACT_ENCODATION] += 17.0f / 4.0f; - } else { - charCounts[EDIFACT_ENCODATION] += 13.0f / 4.0f; - } - - // step Q - if (isSpecialB256(c)) { - charCounts[BASE256_ENCODATION] += 4; - } else { - charCounts[BASE256_ENCODATION]++; - } - - //step R - if (charsProcessed >= 4) { - int[] intCharCounts = new int[6]; - byte[] mins = new byte[6]; - findMinimums(charCounts, intCharCounts, Integer.MAX_VALUE, mins); - int minCount = getMinimumCount(mins); - - if (intCharCounts[ASCII_ENCODATION] < intCharCounts[BASE256_ENCODATION] - && intCharCounts[ASCII_ENCODATION] < intCharCounts[C40_ENCODATION] - && intCharCounts[ASCII_ENCODATION] < intCharCounts[TEXT_ENCODATION] - && intCharCounts[ASCII_ENCODATION] < intCharCounts[X12_ENCODATION] - && intCharCounts[ASCII_ENCODATION] < intCharCounts[EDIFACT_ENCODATION]) { - return ASCII_ENCODATION; - } - if (intCharCounts[BASE256_ENCODATION] < intCharCounts[ASCII_ENCODATION] - || (mins[C40_ENCODATION] + mins[TEXT_ENCODATION] + mins[X12_ENCODATION] + mins[EDIFACT_ENCODATION]) == 0) { - return BASE256_ENCODATION; - } - if (minCount == 1 && mins[EDIFACT_ENCODATION] > 0) { - return EDIFACT_ENCODATION; - } - if (minCount == 1 && mins[TEXT_ENCODATION] > 0) { - return TEXT_ENCODATION; - } - if (minCount == 1 && mins[X12_ENCODATION] > 0) { - return X12_ENCODATION; - } - if (intCharCounts[C40_ENCODATION] + 1 < intCharCounts[ASCII_ENCODATION] - && intCharCounts[C40_ENCODATION] + 1 < intCharCounts[BASE256_ENCODATION] - && intCharCounts[C40_ENCODATION] + 1 < intCharCounts[EDIFACT_ENCODATION] - && intCharCounts[C40_ENCODATION] + 1 < intCharCounts[TEXT_ENCODATION]) { - if (intCharCounts[C40_ENCODATION] < intCharCounts[X12_ENCODATION]) { - return C40_ENCODATION; - } - if (intCharCounts[C40_ENCODATION] == intCharCounts[X12_ENCODATION]) { - int p = startpos + charsProcessed + 1; - while (p < msg.length()) { - char tc = msg.charAt(p); - if (isX12TermSep(tc)) { - return X12_ENCODATION; - } - if (!isNativeX12(tc)) { - break; - } - p++; - } - return C40_ENCODATION; - } - } - } - } - } - - private static int findMinimums(float[] charCounts, int[] intCharCounts, int min, byte[] mins) { - Arrays.fill(mins, (byte) 0); - for (int i = 0; i < 6; i++) { - intCharCounts[i] = (int) Math.ceil(charCounts[i]); - int current = intCharCounts[i]; - if (min > current) { - min = current; - Arrays.fill(mins, (byte) 0); - } - if (min == current) { - mins[i]++; - - } - } - return min; - } - - private static int getMinimumCount(byte[] mins) { - int minCount = 0; - for (int i = 0; i < 6; i++) { - minCount += mins[i]; - } - return minCount; - } - - static boolean isDigit(char ch) { - return ch >= '0' && ch <= '9'; - } - - static boolean isExtendedASCII(char ch) { - return ch >= 128 && ch <= 255; - } - - private static boolean isNativeC40(char ch) { - return (ch == ' ') || (ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'Z'); - } - - private static boolean isNativeText(char ch) { - return (ch == ' ') || (ch >= '0' && ch <= '9') || (ch >= 'a' && ch <= 'z'); - } - - private static boolean isNativeX12(char ch) { - return isX12TermSep(ch) || (ch == ' ') || (ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'Z'); - } - - private static boolean isX12TermSep(char ch) { - return (ch == '\r') //CR - || (ch == '*') - || (ch == '>'); - } - - private static boolean isNativeEDIFACT(char ch) { - return ch >= ' ' && ch <= '^'; - } - - private static boolean isSpecialB256(char ch) { - return false; //TODO NOT IMPLEMENTED YET!!! - } - - /** - * Determines the number of consecutive characters that are encodable using numeric compaction. - * - * @param msg the message - * @param startpos the start position within the message - * @return the requested character count - */ - public static int determineConsecutiveDigitCount(CharSequence msg, int startpos) { - int count = 0; - int len = msg.length(); - int idx = startpos; - if (idx < len) { - char ch = msg.charAt(idx); - while (isDigit(ch) && idx < len) { - count++; - idx++; - if (idx < len) { - ch = msg.charAt(idx); - } - } - } - return count; - } - - static void illegalCharacter(char c) { - String hex = Integer.toHexString(c); - hex = "0000".substring(0, 4 - hex.length()) + hex; - throw new IllegalArgumentException("Illegal character: " + c + " (0x" + hex + ')'); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/SymbolInfo.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/SymbolInfo.java deleted file mode 100755 index 2cb956cf..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/SymbolInfo.java +++ /dev/null @@ -1,240 +0,0 @@ -/* - * Copyright 2006 Jeremias Maerki - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix.encoder; - -import com.google.zxing.Dimension; - -/** - * Symbol info table for DataMatrix. - * - * @version $Id$ - */ -public class SymbolInfo { - - static final SymbolInfo[] PROD_SYMBOLS = { - new SymbolInfo(false, 3, 5, 8, 8, 1), - new SymbolInfo(false, 5, 7, 10, 10, 1), - /*rect*/new SymbolInfo(true, 5, 7, 16, 6, 1), - new SymbolInfo(false, 8, 10, 12, 12, 1), - /*rect*/new SymbolInfo(true, 10, 11, 14, 6, 2), - new SymbolInfo(false, 12, 12, 14, 14, 1), - /*rect*/new SymbolInfo(true, 16, 14, 24, 10, 1), - - new SymbolInfo(false, 18, 14, 16, 16, 1), - new SymbolInfo(false, 22, 18, 18, 18, 1), - /*rect*/new SymbolInfo(true, 22, 18, 16, 10, 2), - new SymbolInfo(false, 30, 20, 20, 20, 1), - /*rect*/new SymbolInfo(true, 32, 24, 16, 14, 2), - new SymbolInfo(false, 36, 24, 22, 22, 1), - new SymbolInfo(false, 44, 28, 24, 24, 1), - /*rect*/new SymbolInfo(true, 49, 28, 22, 14, 2), - - new SymbolInfo(false, 62, 36, 14, 14, 4), - new SymbolInfo(false, 86, 42, 16, 16, 4), - new SymbolInfo(false, 114, 48, 18, 18, 4), - new SymbolInfo(false, 144, 56, 20, 20, 4), - new SymbolInfo(false, 174, 68, 22, 22, 4), - - new SymbolInfo(false, 204, 84, 24, 24, 4, 102, 42), - new SymbolInfo(false, 280, 112, 14, 14, 16, 140, 56), - new SymbolInfo(false, 368, 144, 16, 16, 16, 92, 36), - new SymbolInfo(false, 456, 192, 18, 18, 16, 114, 48), - new SymbolInfo(false, 576, 224, 20, 20, 16, 144, 56), - new SymbolInfo(false, 696, 272, 22, 22, 16, 174, 68), - new SymbolInfo(false, 816, 336, 24, 24, 16, 136, 56), - new SymbolInfo(false, 1050, 408, 18, 18, 36, 175, 68), - new SymbolInfo(false, 1304, 496, 20, 20, 36, 163, 62), - new DataMatrixSymbolInfo144(), - }; - - private static SymbolInfo[] symbols = PROD_SYMBOLS; - - /** - * Overrides the symbol info set used by this class. Used for testing purposes. - * - * @param override the symbol info set to use - */ - public static void overrideSymbolSet(SymbolInfo[] override) { - symbols = override; - } - - private final boolean rectangular; - private final int dataCapacity; - private final int errorCodewords; - public final int matrixWidth; - public final int matrixHeight; - private final int dataRegions; - private final int rsBlockData; - private final int rsBlockError; - - public SymbolInfo(boolean rectangular, int dataCapacity, int errorCodewords, - int matrixWidth, int matrixHeight, int dataRegions) { - this(rectangular, dataCapacity, errorCodewords, matrixWidth, matrixHeight, dataRegions, - dataCapacity, errorCodewords); - } - - SymbolInfo(boolean rectangular, int dataCapacity, int errorCodewords, - int matrixWidth, int matrixHeight, int dataRegions, - int rsBlockData, int rsBlockError) { - this.rectangular = rectangular; - this.dataCapacity = dataCapacity; - this.errorCodewords = errorCodewords; - this.matrixWidth = matrixWidth; - this.matrixHeight = matrixHeight; - this.dataRegions = dataRegions; - this.rsBlockData = rsBlockData; - this.rsBlockError = rsBlockError; - } - - public static SymbolInfo lookup(int dataCodewords) { - return lookup(dataCodewords, SymbolShapeHint.FORCE_NONE, true); - } - - public static SymbolInfo lookup(int dataCodewords, SymbolShapeHint shape) { - return lookup(dataCodewords, shape, true); - } - - public static SymbolInfo lookup(int dataCodewords, boolean allowRectangular, boolean fail) { - SymbolShapeHint shape = allowRectangular - ? SymbolShapeHint.FORCE_NONE : SymbolShapeHint.FORCE_SQUARE; - return lookup(dataCodewords, shape, fail); - } - - private static SymbolInfo lookup(int dataCodewords, SymbolShapeHint shape, boolean fail) { - return lookup(dataCodewords, shape, null, null, fail); - } - - public static SymbolInfo lookup(int dataCodewords, - SymbolShapeHint shape, - Dimension minSize, - Dimension maxSize, - boolean fail) { - for (SymbolInfo symbol : symbols) { - if (shape == SymbolShapeHint.FORCE_SQUARE && symbol.rectangular) { - continue; - } - if (shape == SymbolShapeHint.FORCE_RECTANGLE && !symbol.rectangular) { - continue; - } - if (minSize != null - && (symbol.getSymbolWidth() < minSize.getWidth() - || symbol.getSymbolHeight() < minSize.getHeight())) { - continue; - } - if (maxSize != null - && (symbol.getSymbolWidth() > maxSize.getWidth() - || symbol.getSymbolHeight() > maxSize.getHeight())) { - continue; - } - if (dataCodewords <= symbol.dataCapacity) { - return symbol; - } - } - if (fail) { - throw new IllegalArgumentException( - "Can't find a symbol arrangement that matches the message. Data codewords: " - + dataCodewords); - } - return null; - } - - final int getHorizontalDataRegions() { - switch (dataRegions) { - case 1: - return 1; - case 2: - return 2; - case 4: - return 2; - case 16: - return 4; - case 36: - return 6; - default: - throw new IllegalStateException("Cannot handle this number of data regions"); - } - } - - final int getVerticalDataRegions() { - switch (dataRegions) { - case 1: - return 1; - case 2: - return 1; - case 4: - return 2; - case 16: - return 4; - case 36: - return 6; - default: - throw new IllegalStateException("Cannot handle this number of data regions"); - } - } - - public final int getSymbolDataWidth() { - return getHorizontalDataRegions() * matrixWidth; - } - - public final int getSymbolDataHeight() { - return getVerticalDataRegions() * matrixHeight; - } - - public final int getSymbolWidth() { - return getSymbolDataWidth() + (getHorizontalDataRegions() * 2); - } - - public final int getSymbolHeight() { - return getSymbolDataHeight() + (getVerticalDataRegions() * 2); - } - - public int getCodewordCount() { - return dataCapacity + errorCodewords; - } - - public int getInterleavedBlockCount() { - return dataCapacity / rsBlockData; - } - - public final int getDataCapacity() { - return dataCapacity; - } - - public final int getErrorCodewords() { - return errorCodewords; - } - - public int getDataLengthForInterleavedBlock(int index) { - return rsBlockData; - } - - public final int getErrorLengthForInterleavedBlock(int index) { - return rsBlockError; - } - - @Override - public final String toString() { - StringBuilder sb = new StringBuilder(); - sb.append(rectangular ? "Rectangular Symbol:" : "Square Symbol:"); - sb.append(" data region ").append(matrixWidth).append('x').append(matrixHeight); - sb.append(", symbol size ").append(getSymbolWidth()).append('x').append(getSymbolHeight()); - sb.append(", symbol data size ").append(getSymbolDataWidth()).append('x').append(getSymbolDataHeight()); - sb.append(", codewords ").append(dataCapacity).append('+').append(errorCodewords); - return sb.toString(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/SymbolShapeHint.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/SymbolShapeHint.java deleted file mode 100755 index 58739b8b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/SymbolShapeHint.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright 2007 Jeremias Maerki. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix.encoder; - -/** - * Enumeration for DataMatrix symbol shape hint. It can be used to force square or rectangular - * symbols. - */ -public enum SymbolShapeHint { - - FORCE_NONE, - FORCE_SQUARE, - FORCE_RECTANGLE, - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/TextEncoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/TextEncoder.java deleted file mode 100755 index 19af016b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/TextEncoder.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2006-2007 Jeremias Maerki. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix.encoder; - -final class TextEncoder extends C40Encoder { - - @Override - public int getEncodingMode() { - return HighLevelEncoder.TEXT_ENCODATION; - } - - @Override - int encodeChar(char c, StringBuilder sb) { - if (c == ' ') { - sb.append('\3'); - return 1; - } - if (c >= '0' && c <= '9') { - sb.append((char) (c - 48 + 4)); - return 1; - } - if (c >= 'a' && c <= 'z') { - sb.append((char) (c - 97 + 14)); - return 1; - } - if (c >= '\0' && c <= '\u001f') { - sb.append('\0'); //Shift 1 Set - sb.append(c); - return 2; - } - if (c >= '!' && c <= '/') { - sb.append('\1'); //Shift 2 Set - sb.append((char) (c - 33)); - return 2; - } - if (c >= ':' && c <= '@') { - sb.append('\1'); //Shift 2 Set - sb.append((char) (c - 58 + 15)); - return 2; - } - if (c >= '[' && c <= '_') { - sb.append('\1'); //Shift 2 Set - sb.append((char) (c - 91 + 22)); - return 2; - } - if (c == '\u0060') { - sb.append('\2'); //Shift 3 Set - sb.append((char) (c - 96)); - return 2; - } - if (c >= 'A' && c <= 'Z') { - sb.append('\2'); //Shift 3 Set - sb.append((char) (c - 65 + 1)); - return 2; - } - if (c >= '{' && c <= '\u007f') { - sb.append('\2'); //Shift 3 Set - sb.append((char) (c - 123 + 27)); - return 2; - } - if (c >= '\u0080') { - sb.append("\1\u001e"); //Shift 2, Upper Shift - int len = 2; - len += encodeChar((char) (c - 128), sb); - return len; - } - HighLevelEncoder.illegalCharacter(c); - return -1; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/X12Encoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/X12Encoder.java deleted file mode 100755 index 0184bec4..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/datamatrix/encoder/X12Encoder.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2006-2007 Jeremias Maerki. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.datamatrix.encoder; - -final class X12Encoder extends C40Encoder { - - @Override - public int getEncodingMode() { - return HighLevelEncoder.X12_ENCODATION; - } - - @Override - public void encode(EncoderContext context) { - //step C - StringBuilder buffer = new StringBuilder(); - while (context.hasMoreCharacters()) { - char c = context.getCurrentChar(); - context.pos++; - - encodeChar(c, buffer); - - int count = buffer.length(); - if ((count % 3) == 0) { - writeNextTriplet(context, buffer); - - int newMode = HighLevelEncoder.lookAheadTest(context.getMessage(), context.pos, getEncodingMode()); - if (newMode != getEncodingMode()) { - context.signalEncoderChange(newMode); - break; - } - } - } - handleEOD(context, buffer); - } - - @Override - int encodeChar(char c, StringBuilder sb) { - if (c == '\r') { - sb.append('\0'); - } else if (c == '*') { - sb.append('\1'); - } else if (c == '>') { - sb.append('\2'); - } else if (c == ' ') { - sb.append('\3'); - } else if (c >= '0' && c <= '9') { - sb.append((char) (c - 48 + 4)); - } else if (c >= 'A' && c <= 'Z') { - sb.append((char) (c - 65 + 14)); - } else { - HighLevelEncoder.illegalCharacter(c); - } - return 1; - } - - @Override - void handleEOD(EncoderContext context, StringBuilder buffer) { - context.updateSymbolInfo(); - int available = context.getSymbolInfo().getDataCapacity() - context.getCodewordCount(); - int count = buffer.length(); - context.pos -= count; - if (context.getRemainingCharacters() > 1 || available > 1 || - context.getRemainingCharacters() != available) { - context.writeCodeword(HighLevelEncoder.X12_UNLATCH); - } - if (context.getNewEncoding() < 0) { - context.signalEncoderChange(HighLevelEncoder.ASCII_ENCODATION); - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/maxicode/MaxiCodeReader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/maxicode/MaxiCodeReader.java deleted file mode 100755 index e563bd99..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/maxicode/MaxiCodeReader.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright 2011 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.maxicode; - -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.BinaryBitmap; -import com.google.zxing.ChecksumException; -import com.google.zxing.DecodeHintType; -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.Reader; -import com.google.zxing.Result; -import com.google.zxing.ResultMetadataType; -import com.google.zxing.ResultPoint; -import com.google.zxing.common.BitMatrix; -import com.google.zxing.common.DecoderResult; -import com.google.zxing.maxicode.decoder.Decoder; - -/** - * This implementation can detect and decode a MaxiCode in an image. - */ -public final class MaxiCodeReader implements Reader { - - private static final ResultPoint[] NO_POINTS = new ResultPoint[0]; - private static final int MATRIX_WIDTH = 30; - private static final int MATRIX_HEIGHT = 33; - - private final Decoder decoder = new Decoder(); - - /* - Decoder getDecoder() { - return decoder; - } - */ - - /** - * Locates and decodes a MaxiCode in an image. - * - * @return a String representing the content encoded by the MaxiCode - * @throws NotFoundException if a MaxiCode cannot be found - * @throws FormatException if a MaxiCode cannot be decoded - * @throws ChecksumException if error correction fails - */ - @Override - public Result decode(BinaryBitmap image) throws NotFoundException, ChecksumException, FormatException { - return decode(image, null); - } - - @Override - public Result decode(BinaryBitmap image, Map<DecodeHintType,?> hints) - throws NotFoundException, ChecksumException, FormatException { - DecoderResult decoderResult; - if (hints != null && hints.containsKey(DecodeHintType.PURE_BARCODE)) { - BitMatrix bits = extractPureBits(image.getBlackMatrix()); - decoderResult = decoder.decode(bits, hints); - } else { - throw NotFoundException.getNotFoundInstance(); - } - - ResultPoint[] points = NO_POINTS; - Result result = new Result(decoderResult.getText(), decoderResult.getRawBytes(), points, BarcodeFormat.MAXICODE); - - String ecLevel = decoderResult.getECLevel(); - if (ecLevel != null) { - result.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, ecLevel); - } - return result; - } - - @Override - public void reset() { - // do nothing - } - - /** - * This method detects a code in a "pure" image -- that is, pure monochrome image - * which contains only an unrotated, unskewed, image of a code, with some white border - * around it. This is a specialized method that works exceptionally fast in this special - * case. - * - * @see com.google.zxing.datamatrix.DataMatrixReader#extractPureBits(BitMatrix) - * @see com.google.zxing.qrcode.QRCodeReader#extractPureBits(BitMatrix) - */ - private static BitMatrix extractPureBits(BitMatrix image) throws NotFoundException { - - int[] enclosingRectangle = image.getEnclosingRectangle(); - if (enclosingRectangle == null) { - throw NotFoundException.getNotFoundInstance(); - } - - int left = enclosingRectangle[0]; - int top = enclosingRectangle[1]; - int width = enclosingRectangle[2]; - int height = enclosingRectangle[3]; - - // Now just read off the bits - BitMatrix bits = new BitMatrix(MATRIX_WIDTH, MATRIX_HEIGHT); - for (int y = 0; y < MATRIX_HEIGHT; y++) { - int iy = top + (y * height + height / 2) / MATRIX_HEIGHT; - for (int x = 0; x < MATRIX_WIDTH; x++) { - int ix = left + (x * width + width / 2 + (y & 0x01) * width / 2) / MATRIX_WIDTH; - if (image.get(ix, iy)) { - bits.set(x, y); - } - } - } - return bits; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/maxicode/decoder/BitMatrixParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/maxicode/decoder/BitMatrixParser.java deleted file mode 100755 index be18a7e2..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/maxicode/decoder/BitMatrixParser.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright 2011 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.maxicode.decoder; - -import com.google.zxing.common.BitMatrix; - -/** - * @author mike32767 - * @author Manuel Kasten - */ -final class BitMatrixParser { - - private static final int[][] BITNR = { - {121,120,127,126,133,132,139,138,145,144,151,150,157,156,163,162,169,168,175,174,181,180,187,186,193,192,199,198, -2, -2}, - {123,122,129,128,135,134,141,140,147,146,153,152,159,158,165,164,171,170,177,176,183,182,189,188,195,194,201,200,816, -3}, - {125,124,131,130,137,136,143,142,149,148,155,154,161,160,167,166,173,172,179,178,185,184,191,190,197,196,203,202,818,817}, - {283,282,277,276,271,270,265,264,259,258,253,252,247,246,241,240,235,234,229,228,223,222,217,216,211,210,205,204,819, -3}, - {285,284,279,278,273,272,267,266,261,260,255,254,249,248,243,242,237,236,231,230,225,224,219,218,213,212,207,206,821,820}, - {287,286,281,280,275,274,269,268,263,262,257,256,251,250,245,244,239,238,233,232,227,226,221,220,215,214,209,208,822, -3}, - {289,288,295,294,301,300,307,306,313,312,319,318,325,324,331,330,337,336,343,342,349,348,355,354,361,360,367,366,824,823}, - {291,290,297,296,303,302,309,308,315,314,321,320,327,326,333,332,339,338,345,344,351,350,357,356,363,362,369,368,825, -3}, - {293,292,299,298,305,304,311,310,317,316,323,322,329,328,335,334,341,340,347,346,353,352,359,358,365,364,371,370,827,826}, - {409,408,403,402,397,396,391,390, 79, 78, -2, -2, 13, 12, 37, 36, 2, -1, 44, 43,109,108,385,384,379,378,373,372,828, -3}, - {411,410,405,404,399,398,393,392, 81, 80, 40, -2, 15, 14, 39, 38, 3, -1, -1, 45,111,110,387,386,381,380,375,374,830,829}, - {413,412,407,406,401,400,395,394, 83, 82, 41, -3, -3, -3, -3, -3, 5, 4, 47, 46,113,112,389,388,383,382,377,376,831, -3}, - {415,414,421,420,427,426,103,102, 55, 54, 16, -3, -3, -3, -3, -3, -3, -3, 20, 19, 85, 84,433,432,439,438,445,444,833,832}, - {417,416,423,422,429,428,105,104, 57, 56, -3, -3, -3, -3, -3, -3, -3, -3, 22, 21, 87, 86,435,434,441,440,447,446,834, -3}, - {419,418,425,424,431,430,107,106, 59, 58, -3, -3, -3, -3, -3, -3, -3, -3, -3, 23, 89, 88,437,436,443,442,449,448,836,835}, - {481,480,475,474,469,468, 48, -2, 30, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, 0, 53, 52,463,462,457,456,451,450,837, -3}, - {483,482,477,476,471,470, 49, -1, -2, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2, -1,465,464,459,458,453,452,839,838}, - {485,484,479,478,473,472, 51, 50, 31, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, 1, -2, 42,467,466,461,460,455,454,840, -3}, - {487,486,493,492,499,498, 97, 96, 61, 60, -3, -3, -3, -3, -3, -3, -3, -3, -3, 26, 91, 90,505,504,511,510,517,516,842,841}, - {489,488,495,494,501,500, 99, 98, 63, 62, -3, -3, -3, -3, -3, -3, -3, -3, 28, 27, 93, 92,507,506,513,512,519,518,843, -3}, - {491,490,497,496,503,502,101,100, 65, 64, 17, -3, -3, -3, -3, -3, -3, -3, 18, 29, 95, 94,509,508,515,514,521,520,845,844}, - {559,558,553,552,547,546,541,540, 73, 72, 32, -3, -3, -3, -3, -3, -3, 10, 67, 66,115,114,535,534,529,528,523,522,846, -3}, - {561,560,555,554,549,548,543,542, 75, 74, -2, -1, 7, 6, 35, 34, 11, -2, 69, 68,117,116,537,536,531,530,525,524,848,847}, - {563,562,557,556,551,550,545,544, 77, 76, -2, 33, 9, 8, 25, 24, -1, -2, 71, 70,119,118,539,538,533,532,527,526,849, -3}, - {565,564,571,570,577,576,583,582,589,588,595,594,601,600,607,606,613,612,619,618,625,624,631,630,637,636,643,642,851,850}, - {567,566,573,572,579,578,585,584,591,590,597,596,603,602,609,608,615,614,621,620,627,626,633,632,639,638,645,644,852, -3}, - {569,568,575,574,581,580,587,586,593,592,599,598,605,604,611,610,617,616,623,622,629,628,635,634,641,640,647,646,854,853}, - {727,726,721,720,715,714,709,708,703,702,697,696,691,690,685,684,679,678,673,672,667,666,661,660,655,654,649,648,855, -3}, - {729,728,723,722,717,716,711,710,705,704,699,698,693,692,687,686,681,680,675,674,669,668,663,662,657,656,651,650,857,856}, - {731,730,725,724,719,718,713,712,707,706,701,700,695,694,689,688,683,682,677,676,671,670,665,664,659,658,653,652,858, -3}, - {733,732,739,738,745,744,751,750,757,756,763,762,769,768,775,774,781,780,787,786,793,792,799,798,805,804,811,810,860,859}, - {735,734,741,740,747,746,753,752,759,758,765,764,771,770,777,776,783,782,789,788,795,794,801,800,807,806,813,812,861, -3}, - {737,736,743,742,749,748,755,754,761,760,767,766,773,772,779,778,785,784,791,790,797,796,803,802,809,808,815,814,863,862} - }; - - private final BitMatrix bitMatrix; - - /** - * @param bitMatrix {@link BitMatrix} to parse - */ - BitMatrixParser(BitMatrix bitMatrix) { - this.bitMatrix = bitMatrix; - } - - byte[] readCodewords() { - byte[] result = new byte[144]; - int height = bitMatrix.getHeight(); - int width = bitMatrix.getWidth(); - for (int y = 0; y < height; y++) { - int[] bitnrRow = BITNR[y]; - for (int x = 0; x < width; x++) { - int bit = bitnrRow[x]; - if (bit >= 0 && bitMatrix.get(x, y)) { - result[bit / 6] |= (byte) (1 << (5 - (bit % 6))); - } - } - } - return result; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/maxicode/decoder/DecodedBitStreamParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/maxicode/decoder/DecodedBitStreamParser.java deleted file mode 100755 index 9d9ad99a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/maxicode/decoder/DecodedBitStreamParser.java +++ /dev/null @@ -1,197 +0,0 @@ -/* - * Copyright 2011 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.maxicode.decoder; - -import java.text.DecimalFormat; -import java.text.NumberFormat; - -import com.google.zxing.common.DecoderResult; - -/** - * <p>MaxiCodes can encode text or structured information as bits in one of several modes, - * with multiple character sets in one code. This class decodes the bits back into text.</p> - * - * @author mike32767 - * @author Manuel Kasten - */ -final class DecodedBitStreamParser { - - private static final char SHIFTA = '\uFFF0'; - private static final char SHIFTB = '\uFFF1'; - private static final char SHIFTC = '\uFFF2'; - private static final char SHIFTD = '\uFFF3'; - private static final char SHIFTE = '\uFFF4'; - private static final char TWOSHIFTA = '\uFFF5'; - private static final char THREESHIFTA = '\uFFF6'; - private static final char LATCHA = '\uFFF7'; - private static final char LATCHB = '\uFFF8'; - private static final char LOCK = '\uFFF9'; - private static final char ECI = '\uFFFA'; - private static final char NS = '\uFFFB'; - private static final char PAD = '\uFFFC'; - private static final char FS = '\u001C'; - private static final char GS = '\u001D'; - private static final char RS = '\u001E'; - private static final NumberFormat NINE_DIGITS = new DecimalFormat("000000000"); - private static final NumberFormat THREE_DIGITS = new DecimalFormat("000"); - - private static final String[] SETS = { - "\nABCDEFGHIJKLMNOPQRSTUVWXYZ"+ECI+FS+GS+RS+NS+' '+PAD+"\"#$%&'()*+,-./0123456789:"+SHIFTB+SHIFTC+SHIFTD+SHIFTE+LATCHB, - "`abcdefghijklmnopqrstuvwxyz"+ECI+FS+GS+RS+NS+'{'+PAD+"}~\u007F;<=>?[\\]^_ ,./:@!|"+PAD+TWOSHIFTA+THREESHIFTA+PAD+SHIFTA+SHIFTC+SHIFTD+SHIFTE+LATCHA, - "\u00C0\u00C1\u00C2\u00C3\u00C4\u00C5\u00C6\u00C7\u00C8\u00C9\u00CA\u00CB\u00CC\u00CD\u00CE\u00CF\u00D0\u00D1\u00D2\u00D3\u00D4\u00D5\u00D6\u00D7\u00D8\u00D9\u00DA"+ECI+FS+GS+RS+"\u00DB\u00DC\u00DD\u00DE\u00DF\u00AA\u00AC\u00B1\u00B2\u00B3\u00B5\u00B9\u00BA\u00BC\u00BD\u00BE\u0080\u0081\u0082\u0083\u0084\u0085\u0086\u0087\u0088\u0089"+LATCHA+' '+LOCK+SHIFTD+SHIFTE+LATCHB, - "\u00E0\u00E1\u00E2\u00E3\u00E4\u00E5\u00E6\u00E7\u00E8\u00E9\u00EA\u00EB\u00EC\u00ED\u00EE\u00EF\u00F0\u00F1\u00F2\u00F3\u00F4\u00F5\u00F6\u00F7\u00F8\u00F9\u00FA"+ECI+FS+GS+RS+NS+"\u00FB\u00FC\u00FD\u00FE\u00FF\u00A1\u00A8\u00AB\u00AF\u00B0\u00B4\u00B7\u00B8\u00BB\u00BF\u008A\u008B\u008C\u008D\u008E\u008F\u0090\u0091\u0092\u0093\u0094"+LATCHA+' '+SHIFTC+LOCK+SHIFTE+LATCHB, - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u0009\n\u000B\u000C\r\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A"+ECI+PAD+PAD+'\u001B'+NS+FS+GS+RS+"\u001F\u009F\u00A0\u00A2\u00A3\u00A4\u00A5\u00A6\u00A7\u00A9\u00AD\u00AE\u00B6\u0095\u0096\u0097\u0098\u0099\u009A\u009B\u009C\u009D\u009E"+LATCHA+' '+SHIFTC+SHIFTD+LOCK+LATCHB, - "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\u0008\u0009\n\u000B\u000C\r\u000E\u000F\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001A\u001B\u001C\u001D\u001E\u001F\u0020\u0021\"\u0023\u0024\u0025\u0026\u0027\u0028\u0029\u002A\u002B\u002C\u002D\u002E\u002F\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037\u0038\u0039\u003A\u003B\u003C\u003D\u003E\u003F" - }; - - private DecodedBitStreamParser() { - } - - static DecoderResult decode(byte[] bytes, int mode) { - StringBuilder result = new StringBuilder(144); - switch (mode) { - case 2: - case 3: - String postcode; - if (mode == 2) { - int pc = getPostCode2(bytes); - NumberFormat df = new DecimalFormat("0000000000".substring(0, getPostCode2Length(bytes))); - postcode = df.format(pc); - } else { - postcode = getPostCode3(bytes); - } - String country = THREE_DIGITS.format(getCountry(bytes)); - String service = THREE_DIGITS.format(getServiceClass(bytes)); - result.append(getMessage(bytes, 10, 84)); - if (result.toString().startsWith("[)>"+RS+"01"+GS)) { - result.insert(9, postcode + GS + country + GS + service + GS); - } else { - result.insert(0, postcode + GS + country + GS + service + GS); - } - break; - case 4: - result.append(getMessage(bytes, 1, 93)); - break; - case 5: - result.append(getMessage(bytes, 1, 77)); - break; - } - return new DecoderResult(bytes, result.toString(), null, String.valueOf(mode)); - } - - private static int getBit(int bit, byte[] bytes) { - bit--; - return (bytes[bit / 6] & (1 << (5 - (bit % 6)))) == 0 ? 0 : 1; - } - - private static int getInt(byte[] bytes, byte[] x) { - if (x.length == 0) { - throw new IllegalArgumentException(); - } - int val = 0; - for (int i = 0; i < x.length; i++) { - val += getBit(x[i], bytes) << (x.length - i - 1); - } - return val; - } - - private static int getCountry(byte[] bytes) { - return getInt(bytes, new byte[] {53, 54, 43, 44, 45, 46, 47, 48, 37, 38}); - } - - private static int getServiceClass(byte[] bytes) { - return getInt(bytes, new byte[] {55, 56, 57, 58, 59, 60, 49, 50, 51, 52}); - } - - private static int getPostCode2Length(byte[] bytes) { - return getInt(bytes, new byte[] {39, 40, 41, 42, 31, 32}); - } - - private static int getPostCode2(byte[] bytes) { - return getInt(bytes, new byte[] {33, 34, 35, 36, 25, 26, 27, 28, 29, 30, 19, - 20, 21, 22, 23, 24, 13, 14, 15, 16, 17, 18, 7, 8, 9, 10, 11, 12, 1, 2}); - } - - private static String getPostCode3(byte[] bytes) { - return String.valueOf( - new char[] { - SETS[0].charAt(getInt(bytes, new byte[] {39, 40, 41, 42, 31, 32})), - SETS[0].charAt(getInt(bytes, new byte[] {33, 34, 35, 36, 25, 26})), - SETS[0].charAt(getInt(bytes, new byte[] {27, 28, 29, 30, 19, 20})), - SETS[0].charAt(getInt(bytes, new byte[] {21, 22, 23, 24, 13, 14})), - SETS[0].charAt(getInt(bytes, new byte[] {15, 16, 17, 18, 7, 8})), - SETS[0].charAt(getInt(bytes, new byte[] { 9, 10, 11, 12, 1, 2})), - } - ); - } - - private static String getMessage(byte[] bytes, int start, int len) { - StringBuilder sb = new StringBuilder(); - int shift = -1; - int set = 0; - int lastset = 0; - for (int i = start; i < start + len; i++) { - char c = SETS[set].charAt(bytes[i]); - switch (c) { - case LATCHA: - set = 0; - shift = -1; - break; - case LATCHB: - set = 1; - shift = -1; - break; - case SHIFTA: - case SHIFTB: - case SHIFTC: - case SHIFTD: - case SHIFTE: - lastset = set; - set = c - SHIFTA; - shift = 1; - break; - case TWOSHIFTA: - lastset = set; - set = 0; - shift = 2; - break; - case THREESHIFTA: - lastset = set; - set = 0; - shift = 3; - break; - case NS: - int nsval = (bytes[++i] << 24) + (bytes[++i] << 18) + (bytes[++i] << 12) + (bytes[++i] << 6) + bytes[++i]; - sb.append(NINE_DIGITS.format(nsval)); - break; - case LOCK: - shift = -1; - break; - default: - sb.append(c); - } - if (shift-- == 0) { - set = lastset; - } - } - while (sb.length() > 0 && sb.charAt(sb.length() - 1) == PAD) { - sb.setLength(sb.length() - 1); - } - return sb.toString(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/maxicode/decoder/Decoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/maxicode/decoder/Decoder.java deleted file mode 100755 index c8a982ef..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/maxicode/decoder/Decoder.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright 2011 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.maxicode.decoder; - -import java.util.Map; - -import com.google.zxing.ChecksumException; -import com.google.zxing.DecodeHintType; -import com.google.zxing.FormatException; -import com.google.zxing.common.BitMatrix; -import com.google.zxing.common.DecoderResult; -import com.google.zxing.common.reedsolomon.GenericGF; -import com.google.zxing.common.reedsolomon.ReedSolomonDecoder; -import com.google.zxing.common.reedsolomon.ReedSolomonException; - -/** - * <p>The main class which implements MaxiCode decoding -- as opposed to locating and extracting - * the MaxiCode from an image.</p> - * - * @author Manuel Kasten - */ -public final class Decoder { - - private static final int ALL = 0; - private static final int EVEN = 1; - private static final int ODD = 2; - - private final ReedSolomonDecoder rsDecoder; - - public Decoder() { - rsDecoder = new ReedSolomonDecoder(GenericGF.MAXICODE_FIELD_64); - } - - public DecoderResult decode(BitMatrix bits) throws ChecksumException, FormatException { - return decode(bits, null); - } - - public DecoderResult decode(BitMatrix bits, - Map<DecodeHintType,?> hints) throws FormatException, ChecksumException { - BitMatrixParser parser = new BitMatrixParser(bits); - byte[] codewords = parser.readCodewords(); - - correctErrors(codewords, 0, 10, 10, ALL); - int mode = codewords[0] & 0x0F; - byte[] datawords; - switch (mode) { - case 2: - case 3: - case 4: - correctErrors(codewords, 20, 84, 40, EVEN); - correctErrors(codewords, 20, 84, 40, ODD); - datawords = new byte[94]; - break; - case 5: - correctErrors(codewords, 20, 68, 56, EVEN); - correctErrors(codewords, 20, 68, 56, ODD); - datawords = new byte[78]; - break; - default: - throw FormatException.getFormatInstance(); - } - - System.arraycopy(codewords, 0, datawords, 0, 10); - System.arraycopy(codewords, 20, datawords, 10, datawords.length - 10); - - return DecodedBitStreamParser.decode(datawords, mode); - } - - private void correctErrors(byte[] codewordBytes, - int start, - int dataCodewords, - int ecCodewords, - int mode) throws ChecksumException { - int codewords = dataCodewords + ecCodewords; - - // in EVEN or ODD mode only half the codewords - int divisor = mode == ALL ? 1 : 2; - - // First read into an array of ints - int[] codewordsInts = new int[codewords / divisor]; - for (int i = 0; i < codewords; i++) { - if ((mode == ALL) || (i % 2 == (mode - 1))) { - codewordsInts[i / divisor] = codewordBytes[i + start] & 0xFF; - } - } - try { - rsDecoder.decode(codewordsInts, ecCodewords / divisor); - } catch (ReedSolomonException ignored) { - throw ChecksumException.getChecksumInstance(); - } - // Copy back into array of bytes -- only need to worry about the bytes that were data - // We don't care about errors in the error-correction codewords - for (int i = 0; i < dataCodewords; i++) { - if ((mode == ALL) || (i % 2 == (mode - 1))) { - codewordBytes[i + start] = (byte) codewordsInts[i / divisor]; - } - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/ByQuadrantReader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/ByQuadrantReader.java deleted file mode 100755 index 9e97480d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/ByQuadrantReader.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.multi; - -import java.util.Map; - -import com.google.zxing.BinaryBitmap; -import com.google.zxing.ChecksumException; -import com.google.zxing.DecodeHintType; -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.Reader; -import com.google.zxing.Result; -import com.google.zxing.ResultPoint; - -/** - * This class attempts to decode a barcode from an image, not by scanning the whole image, - * but by scanning subsets of the image. This is important when there may be multiple barcodes in - * an image, and detecting a barcode may find parts of multiple barcode and fail to decode - * (e.g. QR Codes). Instead this scans the four quadrants of the image -- and also the center - * 'quadrant' to cover the case where a barcode is found in the center. - * - * @see GenericMultipleBarcodeReader - */ -public final class ByQuadrantReader implements Reader { - - private final Reader delegate; - - public ByQuadrantReader(Reader delegate) { - this.delegate = delegate; - } - - @Override - public Result decode(BinaryBitmap image) - throws NotFoundException, ChecksumException, FormatException { - return decode(image, null); - } - - @Override - public Result decode(BinaryBitmap image, Map<DecodeHintType,?> hints) - throws NotFoundException, ChecksumException, FormatException { - - int width = image.getWidth(); - int height = image.getHeight(); - int halfWidth = width / 2; - int halfHeight = height / 2; - - try { - // No need to call makeAbsolute as results will be relative to original top left here - return delegate.decode(image.crop(0, 0, halfWidth, halfHeight), hints); - } catch (NotFoundException re) { - // continue - } - - try { - Result result = delegate.decode(image.crop(halfWidth, 0, halfWidth, halfHeight), hints); - makeAbsolute(result.getResultPoints(), halfWidth, 0); - return result; - } catch (NotFoundException re) { - // continue - } - - try { - Result result = delegate.decode(image.crop(0, halfHeight, halfWidth, halfHeight), hints); - makeAbsolute(result.getResultPoints(), 0, halfHeight); - return result; - } catch (NotFoundException re) { - // continue - } - - try { - Result result = delegate.decode(image.crop(halfWidth, halfHeight, halfWidth, halfHeight), hints); - makeAbsolute(result.getResultPoints(), halfWidth, halfHeight); - return result; - } catch (NotFoundException re) { - // continue - } - - int quarterWidth = halfWidth / 2; - int quarterHeight = halfHeight / 2; - BinaryBitmap center = image.crop(quarterWidth, quarterHeight, halfWidth, halfHeight); - Result result = delegate.decode(center, hints); - makeAbsolute(result.getResultPoints(), quarterWidth, quarterHeight); - return result; - } - - @Override - public void reset() { - delegate.reset(); - } - - private static void makeAbsolute(ResultPoint[] points, int leftOffset, int topOffset) { - if (points != null) { - for (int i = 0; i < points.length; i++) { - ResultPoint relative = points[i]; - points[i] = new ResultPoint(relative.getX() + leftOffset, relative.getY() + topOffset); - } - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/GenericMultipleBarcodeReader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/GenericMultipleBarcodeReader.java deleted file mode 100755 index 28f4bfe0..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/GenericMultipleBarcodeReader.java +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.multi; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import com.google.zxing.BinaryBitmap; -import com.google.zxing.DecodeHintType; -import com.google.zxing.NotFoundException; -import com.google.zxing.Reader; -import com.google.zxing.ReaderException; -import com.google.zxing.Result; -import com.google.zxing.ResultPoint; - -/** - * <p>Attempts to locate multiple barcodes in an image by repeatedly decoding portion of the image. - * After one barcode is found, the areas left, above, right and below the barcode's - * {@link ResultPoint}s are scanned, recursively.</p> - * - * <p>A caller may want to also employ {@link ByQuadrantReader} when attempting to find multiple - * 2D barcodes, like QR Codes, in an image, where the presence of multiple barcodes might prevent - * detecting any one of them.</p> - * - * <p>That is, instead of passing a {@link Reader} a caller might pass - * {@code new ByQuadrantReader(reader)}.</p> - * - * @author Sean Owen - */ -public final class GenericMultipleBarcodeReader implements MultipleBarcodeReader { - - private static final int MIN_DIMENSION_TO_RECUR = 100; - private static final int MAX_DEPTH = 4; - - private final Reader delegate; - - public GenericMultipleBarcodeReader(Reader delegate) { - this.delegate = delegate; - } - - @Override - public Result[] decodeMultiple(BinaryBitmap image) throws NotFoundException { - return decodeMultiple(image, null); - } - - @Override - public Result[] decodeMultiple(BinaryBitmap image, Map<DecodeHintType,?> hints) - throws NotFoundException { - List<Result> results = new ArrayList<>(); - doDecodeMultiple(image, hints, results, 0, 0, 0); - if (results.isEmpty()) { - throw NotFoundException.getNotFoundInstance(); - } - return results.toArray(new Result[results.size()]); - } - - private void doDecodeMultiple(BinaryBitmap image, - Map<DecodeHintType,?> hints, - List<Result> results, - int xOffset, - int yOffset, - int currentDepth) { - if (currentDepth > MAX_DEPTH) { - return; - } - - Result result; - try { - result = delegate.decode(image, hints); - } catch (ReaderException ignored) { - return; - } - boolean alreadyFound = false; - for (Result existingResult : results) { - if (existingResult.getText().equals(result.getText())) { - alreadyFound = true; - break; - } - } - if (!alreadyFound) { - results.add(translateResultPoints(result, xOffset, yOffset)); - } - ResultPoint[] resultPoints = result.getResultPoints(); - if (resultPoints == null || resultPoints.length == 0) { - return; - } - int width = image.getWidth(); - int height = image.getHeight(); - float minX = width; - float minY = height; - float maxX = 0.0f; - float maxY = 0.0f; - for (ResultPoint point : resultPoints) { - if (point == null) { - continue; - } - float x = point.getX(); - float y = point.getY(); - if (x < minX) { - minX = x; - } - if (y < minY) { - minY = y; - } - if (x > maxX) { - maxX = x; - } - if (y > maxY) { - maxY = y; - } - } - - // Decode left of barcode - if (minX > MIN_DIMENSION_TO_RECUR) { - doDecodeMultiple(image.crop(0, 0, (int) minX, height), - hints, results, - xOffset, yOffset, - currentDepth + 1); - } - // Decode above barcode - if (minY > MIN_DIMENSION_TO_RECUR) { - doDecodeMultiple(image.crop(0, 0, width, (int) minY), - hints, results, - xOffset, yOffset, - currentDepth + 1); - } - // Decode right of barcode - if (maxX < width - MIN_DIMENSION_TO_RECUR) { - doDecodeMultiple(image.crop((int) maxX, 0, width - (int) maxX, height), - hints, results, - xOffset + (int) maxX, yOffset, - currentDepth + 1); - } - // Decode below barcode - if (maxY < height - MIN_DIMENSION_TO_RECUR) { - doDecodeMultiple(image.crop(0, (int) maxY, width, height - (int) maxY), - hints, results, - xOffset, yOffset + (int) maxY, - currentDepth + 1); - } - } - - private static Result translateResultPoints(Result result, int xOffset, int yOffset) { - ResultPoint[] oldResultPoints = result.getResultPoints(); - if (oldResultPoints == null) { - return result; - } - ResultPoint[] newResultPoints = new ResultPoint[oldResultPoints.length]; - for (int i = 0; i < oldResultPoints.length; i++) { - ResultPoint oldPoint = oldResultPoints[i]; - if (oldPoint != null) { - newResultPoints[i] = new ResultPoint(oldPoint.getX() + xOffset, oldPoint.getY() + yOffset); - } - } - Result newResult = new Result(result.getText(), result.getRawBytes(), newResultPoints, result.getBarcodeFormat()); - newResult.putAllMetadata(result.getResultMetadata()); - return newResult; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/MultipleBarcodeReader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/MultipleBarcodeReader.java deleted file mode 100755 index ee264c13..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/MultipleBarcodeReader.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.multi; - -import java.util.Map; - -import com.google.zxing.BinaryBitmap; -import com.google.zxing.DecodeHintType; -import com.google.zxing.NotFoundException; -import com.google.zxing.Result; - -/** - * Implementation of this interface attempt to read several barcodes from one image. - * - * @see com.google.zxing.Reader - * @author Sean Owen - */ -public interface MultipleBarcodeReader { - - Result[] decodeMultiple(BinaryBitmap image) throws NotFoundException; - - Result[] decodeMultiple(BinaryBitmap image, - Map<DecodeHintType, ?> hints) throws NotFoundException; - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/qrcode/QRCodeMultiReader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/qrcode/QRCodeMultiReader.java deleted file mode 100755 index 17838c8a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/qrcode/QRCodeMultiReader.java +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.multi.qrcode; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.BinaryBitmap; -import com.google.zxing.DecodeHintType; -import com.google.zxing.NotFoundException; -import com.google.zxing.ReaderException; -import com.google.zxing.Result; -import com.google.zxing.ResultMetadataType; -import com.google.zxing.ResultPoint; -import com.google.zxing.common.DecoderResult; -import com.google.zxing.common.DetectorResult; -import com.google.zxing.multi.MultipleBarcodeReader; -import com.google.zxing.multi.qrcode.detector.MultiDetector; -import com.google.zxing.qrcode.QRCodeReader; -import com.google.zxing.qrcode.decoder.QRCodeDecoderMetaData; - -/** - * This implementation can detect and decode multiple QR Codes in an image. - * - * @author Sean Owen - * @author Hannes Erven - */ -public final class QRCodeMultiReader extends QRCodeReader implements MultipleBarcodeReader { - - private static final Result[] EMPTY_RESULT_ARRAY = new Result[0]; - private static final ResultPoint[] NO_POINTS = new ResultPoint[0]; - - @Override - public Result[] decodeMultiple(BinaryBitmap image) throws NotFoundException { - return decodeMultiple(image, null); - } - - @Override - public Result[] decodeMultiple(BinaryBitmap image, Map<DecodeHintType,?> hints) throws NotFoundException { - List<Result> results = new ArrayList<>(); - DetectorResult[] detectorResults = new MultiDetector(image.getBlackMatrix()).detectMulti(hints); - for (DetectorResult detectorResult : detectorResults) { - try { - DecoderResult decoderResult = getDecoder().decode(detectorResult.getBits(), hints); - ResultPoint[] points = detectorResult.getPoints(); - // If the code was mirrored: swap the bottom-left and the top-right points. - if (decoderResult.getOther() instanceof QRCodeDecoderMetaData) { - ((QRCodeDecoderMetaData) decoderResult.getOther()).applyMirroredCorrection(points); - } - Result result = new Result(decoderResult.getText(), decoderResult.getRawBytes(), points, - BarcodeFormat.QR_CODE); - List<byte[]> byteSegments = decoderResult.getByteSegments(); - if (byteSegments != null) { - result.putMetadata(ResultMetadataType.BYTE_SEGMENTS, byteSegments); - } - String ecLevel = decoderResult.getECLevel(); - if (ecLevel != null) { - result.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, ecLevel); - } - if (decoderResult.hasStructuredAppend()) { - result.putMetadata(ResultMetadataType.STRUCTURED_APPEND_SEQUENCE, - decoderResult.getStructuredAppendSequenceNumber()); - result.putMetadata(ResultMetadataType.STRUCTURED_APPEND_PARITY, - decoderResult.getStructuredAppendParity()); - } - results.add(result); - } catch (ReaderException re) { - // ignore and continue - } - } - if (results.isEmpty()) { - return EMPTY_RESULT_ARRAY; - } else { - results = processStructuredAppend(results); - return results.toArray(new Result[results.size()]); - } - } - - private static List<Result> processStructuredAppend(List<Result> results) { - boolean hasSA = false; - - // first, check, if there is at least on SA result in the list - for (Result result : results) { - if (result.getResultMetadata().containsKey(ResultMetadataType.STRUCTURED_APPEND_SEQUENCE)) { - hasSA = true; - break; - } - } - if (!hasSA) { - return results; - } - - // it is, second, split the lists and built a new result list - List<Result> newResults = new ArrayList<>(); - List<Result> saResults = new ArrayList<>(); - for (Result result : results) { - newResults.add(result); - if (result.getResultMetadata().containsKey(ResultMetadataType.STRUCTURED_APPEND_SEQUENCE)) { - saResults.add(result); - } - } - // sort and concatenate the SA list items - Collections.sort(saResults, new SAComparator()); - StringBuilder concatedText = new StringBuilder(); - int rawBytesLen = 0; - int byteSegmentLength = 0; - for (Result saResult : saResults) { - concatedText.append(saResult.getText()); - rawBytesLen += saResult.getRawBytes().length; - if (saResult.getResultMetadata().containsKey(ResultMetadataType.BYTE_SEGMENTS)) { - @SuppressWarnings("unchecked") - Iterable<byte[]> byteSegments = - (Iterable<byte[]>) saResult.getResultMetadata().get(ResultMetadataType.BYTE_SEGMENTS); - for (byte[] segment : byteSegments) { - byteSegmentLength += segment.length; - } - } - } - byte[] newRawBytes = new byte[rawBytesLen]; - byte[] newByteSegment = new byte[byteSegmentLength]; - int newRawBytesIndex = 0; - int byteSegmentIndex = 0; - for (Result saResult : saResults) { - System.arraycopy(saResult.getRawBytes(), 0, newRawBytes, newRawBytesIndex, saResult.getRawBytes().length); - newRawBytesIndex += saResult.getRawBytes().length; - if (saResult.getResultMetadata().containsKey(ResultMetadataType.BYTE_SEGMENTS)) { - @SuppressWarnings("unchecked") - Iterable<byte[]> byteSegments = - (Iterable<byte[]>) saResult.getResultMetadata().get(ResultMetadataType.BYTE_SEGMENTS); - for (byte[] segment : byteSegments) { - System.arraycopy(segment, 0, newByteSegment, byteSegmentIndex, segment.length); - byteSegmentIndex += segment.length; - } - } - } - Result newResult = new Result(concatedText.toString(), newRawBytes, NO_POINTS, BarcodeFormat.QR_CODE); - if (byteSegmentLength > 0) { - Collection<byte[]> byteSegmentList = new ArrayList<>(); - byteSegmentList.add(newByteSegment); - newResult.putMetadata(ResultMetadataType.BYTE_SEGMENTS, byteSegmentList); - } - newResults.add(newResult); - return newResults; - } - - private static final class SAComparator implements Comparator<Result>, Serializable { - @Override - public int compare(Result a, Result b) { - int aNumber = (int) (a.getResultMetadata().get(ResultMetadataType.STRUCTURED_APPEND_SEQUENCE)); - int bNumber = (int) (b.getResultMetadata().get(ResultMetadataType.STRUCTURED_APPEND_SEQUENCE)); - if (aNumber < bNumber) { - return -1; - } - if (aNumber > bNumber) { - return 1; - } - return 0; - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/qrcode/detector/MultiDetector.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/qrcode/detector/MultiDetector.java deleted file mode 100755 index fa47b130..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/qrcode/detector/MultiDetector.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.multi.qrcode.detector; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import com.google.zxing.DecodeHintType; -import com.google.zxing.NotFoundException; -import com.google.zxing.ReaderException; -import com.google.zxing.ResultPointCallback; -import com.google.zxing.common.BitMatrix; -import com.google.zxing.common.DetectorResult; -import com.google.zxing.qrcode.detector.Detector; -import com.google.zxing.qrcode.detector.FinderPatternInfo; - -/** - * <p>Encapsulates logic that can detect one or more QR Codes in an image, even if the QR Code - * is rotated or skewed, or partially obscured.</p> - * - * @author Sean Owen - * @author Hannes Erven - */ -public final class MultiDetector extends Detector { - - private static final DetectorResult[] EMPTY_DETECTOR_RESULTS = new DetectorResult[0]; - - public MultiDetector(BitMatrix image) { - super(image); - } - - public DetectorResult[] detectMulti(Map<DecodeHintType,?> hints) throws NotFoundException { - BitMatrix image = getImage(); - ResultPointCallback resultPointCallback = - hints == null ? null : (ResultPointCallback) hints.get(DecodeHintType.NEED_RESULT_POINT_CALLBACK); - MultiFinderPatternFinder finder = new MultiFinderPatternFinder(image, resultPointCallback); - FinderPatternInfo[] infos = finder.findMulti(hints); - - if (infos.length == 0) { - throw NotFoundException.getNotFoundInstance(); - } - - List<DetectorResult> result = new ArrayList<>(); - for (FinderPatternInfo info : infos) { - try { - result.add(processFinderPatternInfo(info)); - } catch (ReaderException e) { - // ignore - } - } - if (result.isEmpty()) { - return EMPTY_DETECTOR_RESULTS; - } else { - return result.toArray(new DetectorResult[result.size()]); - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/qrcode/detector/MultiFinderPatternFinder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/qrcode/detector/MultiFinderPatternFinder.java deleted file mode 100755 index 5ad79174..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/multi/qrcode/detector/MultiFinderPatternFinder.java +++ /dev/null @@ -1,311 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.multi.qrcode.detector; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.Map; - -import com.google.zxing.DecodeHintType; -import com.google.zxing.NotFoundException; -import com.google.zxing.ResultPoint; -import com.google.zxing.ResultPointCallback; -import com.google.zxing.common.BitMatrix; -import com.google.zxing.qrcode.detector.FinderPattern; -import com.google.zxing.qrcode.detector.FinderPatternFinder; -import com.google.zxing.qrcode.detector.FinderPatternInfo; - -/** - * <p>This class attempts to find finder patterns in a QR Code. Finder patterns are the square - * markers at three corners of a QR Code.</p> - * - * <p>This class is thread-safe but not reentrant. Each thread must allocate its own object. - * - * <p>In contrast to {@link FinderPatternFinder}, this class will return an array of all possible - * QR code locations in the image.</p> - * - * <p>Use the TRY_HARDER hint to ask for a more thorough detection.</p> - * - * @author Sean Owen - * @author Hannes Erven - */ -final class MultiFinderPatternFinder extends FinderPatternFinder { - - private static final FinderPatternInfo[] EMPTY_RESULT_ARRAY = new FinderPatternInfo[0]; - - // TODO MIN_MODULE_COUNT and MAX_MODULE_COUNT would be great hints to ask the user for - // since it limits the number of regions to decode - - // max. legal count of modules per QR code edge (177) - private static final float MAX_MODULE_COUNT_PER_EDGE = 180; - // min. legal count per modules per QR code edge (11) - private static final float MIN_MODULE_COUNT_PER_EDGE = 9; - - /** - * More or less arbitrary cutoff point for determining if two finder patterns might belong - * to the same code if they differ less than DIFF_MODSIZE_CUTOFF_PERCENT percent in their - * estimated modules sizes. - */ - private static final float DIFF_MODSIZE_CUTOFF_PERCENT = 0.05f; - - /** - * More or less arbitrary cutoff point for determining if two finder patterns might belong - * to the same code if they differ less than DIFF_MODSIZE_CUTOFF pixels/module in their - * estimated modules sizes. - */ - private static final float DIFF_MODSIZE_CUTOFF = 0.5f; - - - /** - * A comparator that orders FinderPatterns by their estimated module size. - */ - private static final class ModuleSizeComparator implements Comparator<FinderPattern>, Serializable { - @Override - public int compare(FinderPattern center1, FinderPattern center2) { - float value = center2.getEstimatedModuleSize() - center1.getEstimatedModuleSize(); - return value < 0.0 ? -1 : value > 0.0 ? 1 : 0; - } - } - - /** - * <p>Creates a finder that will search the image for three finder patterns.</p> - * - * @param image image to search - */ - MultiFinderPatternFinder(BitMatrix image) { - super(image); - } - - MultiFinderPatternFinder(BitMatrix image, ResultPointCallback resultPointCallback) { - super(image, resultPointCallback); - } - - /** - * @return the 3 best {@link FinderPattern}s from our list of candidates. The "best" are - * those that have been detected at least {@link #CENTER_QUORUM} times, and whose module - * size differs from the average among those patterns the least - * @throws NotFoundException if 3 such finder patterns do not exist - */ - private FinderPattern[][] selectMutipleBestPatterns() throws NotFoundException { - List<FinderPattern> possibleCenters = getPossibleCenters(); - int size = possibleCenters.size(); - - if (size < 3) { - // Couldn't find enough finder patterns - throw NotFoundException.getNotFoundInstance(); - } - - /* - * Begin HE modifications to safely detect multiple codes of equal size - */ - if (size == 3) { - return new FinderPattern[][]{ - new FinderPattern[]{ - possibleCenters.get(0), - possibleCenters.get(1), - possibleCenters.get(2) - } - }; - } - - // Sort by estimated module size to speed up the upcoming checks - Collections.sort(possibleCenters, new ModuleSizeComparator()); - - /* - * Now lets start: build a list of tuples of three finder locations that - * - feature similar module sizes - * - are placed in a distance so the estimated module count is within the QR specification - * - have similar distance between upper left/right and left top/bottom finder patterns - * - form a triangle with 90° angle (checked by comparing top right/bottom left distance - * with pythagoras) - * - * Note: we allow each point to be used for more than one code region: this might seem - * counterintuitive at first, but the performance penalty is not that big. At this point, - * we cannot make a good quality decision whether the three finders actually represent - * a QR code, or are just by chance layouted so it looks like there might be a QR code there. - * So, if the layout seems right, lets have the decoder try to decode. - */ - - List<FinderPattern[]> results = new ArrayList<>(); // holder for the results - - for (int i1 = 0; i1 < (size - 2); i1++) { - FinderPattern p1 = possibleCenters.get(i1); - if (p1 == null) { - continue; - } - - for (int i2 = i1 + 1; i2 < (size - 1); i2++) { - FinderPattern p2 = possibleCenters.get(i2); - if (p2 == null) { - continue; - } - - // Compare the expected module sizes; if they are really off, skip - float vModSize12 = (p1.getEstimatedModuleSize() - p2.getEstimatedModuleSize()) / - Math.min(p1.getEstimatedModuleSize(), p2.getEstimatedModuleSize()); - float vModSize12A = Math.abs(p1.getEstimatedModuleSize() - p2.getEstimatedModuleSize()); - if (vModSize12A > DIFF_MODSIZE_CUTOFF && vModSize12 >= DIFF_MODSIZE_CUTOFF_PERCENT) { - // break, since elements are ordered by the module size deviation there cannot be - // any more interesting elements for the given p1. - break; - } - - for (int i3 = i2 + 1; i3 < size; i3++) { - FinderPattern p3 = possibleCenters.get(i3); - if (p3 == null) { - continue; - } - - // Compare the expected module sizes; if they are really off, skip - float vModSize23 = (p2.getEstimatedModuleSize() - p3.getEstimatedModuleSize()) / - Math.min(p2.getEstimatedModuleSize(), p3.getEstimatedModuleSize()); - float vModSize23A = Math.abs(p2.getEstimatedModuleSize() - p3.getEstimatedModuleSize()); - if (vModSize23A > DIFF_MODSIZE_CUTOFF && vModSize23 >= DIFF_MODSIZE_CUTOFF_PERCENT) { - // break, since elements are ordered by the module size deviation there cannot be - // any more interesting elements for the given p1. - break; - } - - FinderPattern[] test = {p1, p2, p3}; - ResultPoint.orderBestPatterns(test); - - // Calculate the distances: a = topleft-bottomleft, b=topleft-topright, c = diagonal - FinderPatternInfo info = new FinderPatternInfo(test); - float dA = ResultPoint.distance(info.getTopLeft(), info.getBottomLeft()); - float dC = ResultPoint.distance(info.getTopRight(), info.getBottomLeft()); - float dB = ResultPoint.distance(info.getTopLeft(), info.getTopRight()); - - // Check the sizes - float estimatedModuleCount = (dA + dB) / (p1.getEstimatedModuleSize() * 2.0f); - if (estimatedModuleCount > MAX_MODULE_COUNT_PER_EDGE || - estimatedModuleCount < MIN_MODULE_COUNT_PER_EDGE) { - continue; - } - - // Calculate the difference of the edge lengths in percent - float vABBC = Math.abs((dA - dB) / Math.min(dA, dB)); - if (vABBC >= 0.1f) { - continue; - } - - // Calculate the diagonal length by assuming a 90° angle at topleft - float dCpy = (float) Math.sqrt(dA * dA + dB * dB); - // Compare to the real distance in % - float vPyC = Math.abs((dC - dCpy) / Math.min(dC, dCpy)); - - if (vPyC >= 0.1f) { - continue; - } - - // All tests passed! - results.add(test); - } // end iterate p3 - } // end iterate p2 - } // end iterate p1 - - if (!results.isEmpty()) { - return results.toArray(new FinderPattern[results.size()][]); - } - - // Nothing found! - throw NotFoundException.getNotFoundInstance(); - } - - public FinderPatternInfo[] findMulti(Map<DecodeHintType,?> hints) throws NotFoundException { - boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER); - boolean pureBarcode = hints != null && hints.containsKey(DecodeHintType.PURE_BARCODE); - BitMatrix image = getImage(); - int maxI = image.getHeight(); - int maxJ = image.getWidth(); - // We are looking for black/white/black/white/black modules in - // 1:1:3:1:1 ratio; this tracks the number of such modules seen so far - - // Let's assume that the maximum version QR Code we support takes up 1/4 the height of the - // image, and then account for the center being 3 modules in size. This gives the smallest - // number of pixels the center could be, so skip this often. When trying harder, look for all - // QR versions regardless of how dense they are. - int iSkip = (int) (maxI / (MAX_MODULES * 4.0f) * 3); - if (iSkip < MIN_SKIP || tryHarder) { - iSkip = MIN_SKIP; - } - - int[] stateCount = new int[5]; - for (int i = iSkip - 1; i < maxI; i += iSkip) { - // Get a row of black/white values - stateCount[0] = 0; - stateCount[1] = 0; - stateCount[2] = 0; - stateCount[3] = 0; - stateCount[4] = 0; - int currentState = 0; - for (int j = 0; j < maxJ; j++) { - if (image.get(j, i)) { - // Black pixel - if ((currentState & 1) == 1) { // Counting white pixels - currentState++; - } - stateCount[currentState]++; - } else { // White pixel - if ((currentState & 1) == 0) { // Counting black pixels - if (currentState == 4) { // A winner? - if (foundPatternCross(stateCount) && handlePossibleCenter(stateCount, i, j, pureBarcode)) { // Yes - // Clear state to start looking again - currentState = 0; - stateCount[0] = 0; - stateCount[1] = 0; - stateCount[2] = 0; - stateCount[3] = 0; - stateCount[4] = 0; - } else { // No, shift counts back by two - stateCount[0] = stateCount[2]; - stateCount[1] = stateCount[3]; - stateCount[2] = stateCount[4]; - stateCount[3] = 1; - stateCount[4] = 0; - currentState = 3; - } - } else { - stateCount[++currentState]++; - } - } else { // Counting white pixels - stateCount[currentState]++; - } - } - } // for j=... - - if (foundPatternCross(stateCount)) { - handlePossibleCenter(stateCount, i, maxJ, pureBarcode); - } // end if foundPatternCross - } // for i=iSkip-1 ... - FinderPattern[][] patternInfo = selectMutipleBestPatterns(); - List<FinderPatternInfo> result = new ArrayList<>(); - for (FinderPattern[] pattern : patternInfo) { - ResultPoint.orderBestPatterns(pattern); - result.add(new FinderPatternInfo(pattern)); - } - - if (result.isEmpty()) { - return EMPTY_RESULT_ARRAY; - } else { - return result.toArray(new FinderPatternInfo[result.size()]); - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/CodaBarReader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/CodaBarReader.java deleted file mode 100755 index 38468145..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/CodaBarReader.java +++ /dev/null @@ -1,345 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.Arrays; -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.DecodeHintType; -import com.google.zxing.NotFoundException; -import com.google.zxing.Result; -import com.google.zxing.ResultPoint; -import com.google.zxing.common.BitArray; - -/** - * <p>Decodes Codabar barcodes.</p> - * - * @author Bas Vijfwinkel - * @author David Walker - */ -public final class CodaBarReader extends OneDReader { - - // These values are critical for determining how permissive the decoding - // will be. All stripe sizes must be within the window these define, as - // compared to the average stripe size. - private static final float MAX_ACCEPTABLE = 2.0f; - private static final float PADDING = 1.5f; - - private static final String ALPHABET_STRING = "0123456789-$:/.+ABCD"; - static final char[] ALPHABET = ALPHABET_STRING.toCharArray(); - - /** - * These represent the encodings of characters, as patterns of wide and narrow bars. The 7 least-significant bits of - * each int correspond to the pattern of wide and narrow, with 1s representing "wide" and 0s representing narrow. - */ - static final int[] CHARACTER_ENCODINGS = { - 0x003, 0x006, 0x009, 0x060, 0x012, 0x042, 0x021, 0x024, 0x030, 0x048, // 0-9 - 0x00c, 0x018, 0x045, 0x051, 0x054, 0x015, 0x01A, 0x029, 0x00B, 0x00E, // -$:/.+ABCD - }; - - // minimal number of characters that should be present (inclusing start and stop characters) - // under normal circumstances this should be set to 3, but can be set higher - // as a last-ditch attempt to reduce false positives. - private static final int MIN_CHARACTER_LENGTH = 3; - - // official start and end patterns - private static final char[] STARTEND_ENCODING = {'A', 'B', 'C', 'D'}; - // some codabar generator allow the codabar string to be closed by every - // character. This will cause lots of false positives! - - // some industries use a checksum standard but this is not part of the original codabar standard - // for more information see : http://www.mecsw.com/specs/codabar.html - - // Keep some instance variables to avoid reallocations - private final StringBuilder decodeRowResult; - private int[] counters; - private int counterLength; - - public CodaBarReader() { - decodeRowResult = new StringBuilder(20); - counters = new int[80]; - counterLength = 0; - } - - @Override - public Result decodeRow(int rowNumber, BitArray row, Map<DecodeHintType,?> hints) throws NotFoundException { - - Arrays.fill(counters, 0); - setCounters(row); - int startOffset = findStartPattern(); - int nextStart = startOffset; - - decodeRowResult.setLength(0); - do { - int charOffset = toNarrowWidePattern(nextStart); - if (charOffset == -1) { - throw NotFoundException.getNotFoundInstance(); - } - // Hack: We store the position in the alphabet table into a - // StringBuilder, so that we can access the decoded patterns in - // validatePattern. We'll translate to the actual characters later. - decodeRowResult.append((char)charOffset); - nextStart += 8; - // Stop as soon as we see the end character. - if (decodeRowResult.length() > 1 && - arrayContains(STARTEND_ENCODING, ALPHABET[charOffset])) { - break; - } - } while (nextStart < counterLength); // no fixed end pattern so keep on reading while data is available - - // Look for whitespace after pattern: - int trailingWhitespace = counters[nextStart - 1]; - int lastPatternSize = 0; - for (int i = -8; i < -1; i++) { - lastPatternSize += counters[nextStart + i]; - } - - // We need to see whitespace equal to 50% of the last pattern size, - // otherwise this is probably a false positive. The exception is if we are - // at the end of the row. (I.e. the barcode barely fits.) - if (nextStart < counterLength && trailingWhitespace < lastPatternSize / 2) { - throw NotFoundException.getNotFoundInstance(); - } - - validatePattern(startOffset); - - // Translate character table offsets to actual characters. - for (int i = 0; i < decodeRowResult.length(); i++) { - decodeRowResult.setCharAt(i, ALPHABET[decodeRowResult.charAt(i)]); - } - // Ensure a valid start and end character - char startchar = decodeRowResult.charAt(0); - if (!arrayContains(STARTEND_ENCODING, startchar)) { - throw NotFoundException.getNotFoundInstance(); - } - char endchar = decodeRowResult.charAt(decodeRowResult.length() - 1); - if (!arrayContains(STARTEND_ENCODING, endchar)) { - throw NotFoundException.getNotFoundInstance(); - } - - // remove stop/start characters character and check if a long enough string is contained - if (decodeRowResult.length() <= MIN_CHARACTER_LENGTH) { - // Almost surely a false positive ( start + stop + at least 1 character) - throw NotFoundException.getNotFoundInstance(); - } - - if (hints == null || !hints.containsKey(DecodeHintType.RETURN_CODABAR_START_END)) { - decodeRowResult.deleteCharAt(decodeRowResult.length() - 1); - decodeRowResult.deleteCharAt(0); - } - - int runningCount = 0; - for (int i = 0; i < startOffset; i++) { - runningCount += counters[i]; - } - float left = (float) runningCount; - for (int i = startOffset; i < nextStart - 1; i++) { - runningCount += counters[i]; - } - float right = (float) runningCount; - return new Result( - decodeRowResult.toString(), - null, - new ResultPoint[]{ - new ResultPoint(left, (float) rowNumber), - new ResultPoint(right, (float) rowNumber)}, - BarcodeFormat.CODABAR); - } - - void validatePattern(int start) throws NotFoundException { - // First, sum up the total size of our four categories of stripe sizes; - int[] sizes = {0, 0, 0, 0}; - int[] counts = {0, 0, 0, 0}; - int end = decodeRowResult.length() - 1; - - // We break out of this loop in the middle, in order to handle - // inter-character spaces properly. - int pos = start; - for (int i = 0; true; i++) { - int pattern = CHARACTER_ENCODINGS[decodeRowResult.charAt(i)]; - for (int j = 6; j >= 0; j--) { - // Even j = bars, while odd j = spaces. Categories 2 and 3 are for - // long stripes, while 0 and 1 are for short stripes. - int category = (j & 1) + (pattern & 1) * 2; - sizes[category] += counters[pos + j]; - counts[category]++; - pattern >>= 1; - } - if (i >= end) { - break; - } - // We ignore the inter-character space - it could be of any size. - pos += 8; - } - - // Calculate our allowable size thresholds using fixed-point math. - float[] maxes = new float[4]; - float[] mins = new float[4]; - // Define the threshold of acceptability to be the midpoint between the - // average small stripe and the average large stripe. No stripe lengths - // should be on the "wrong" side of that line. - for (int i = 0; i < 2; i++) { - mins[i] = 0.0f; // Accept arbitrarily small "short" stripes. - mins[i + 2] = ((float) sizes[i] / counts[i] + (float) sizes[i + 2] / counts[i + 2]) / 2.0f; - maxes[i] = mins[i + 2]; - maxes[i + 2] = (sizes[i + 2] * MAX_ACCEPTABLE + PADDING) / counts[i + 2]; - } - - // Now verify that all of the stripes are within the thresholds. - pos = start; - for (int i = 0; true; i++) { - int pattern = CHARACTER_ENCODINGS[decodeRowResult.charAt(i)]; - for (int j = 6; j >= 0; j--) { - // Even j = bars, while odd j = spaces. Categories 2 and 3 are for - // long stripes, while 0 and 1 are for short stripes. - int category = (j & 1) + (pattern & 1) * 2; - int size = counters[pos + j]; - if (size < mins[category] || size > maxes[category]) { - throw NotFoundException.getNotFoundInstance(); - } - pattern >>= 1; - } - if (i >= end) { - break; - } - pos += 8; - } - } - - /** - * Records the size of all runs of white and black pixels, starting with white. - * This is just like recordPattern, except it records all the counters, and - * uses our builtin "counters" member for storage. - * @param row row to count from - */ - private void setCounters(BitArray row) throws NotFoundException { - counterLength = 0; - // Start from the first white bit. - int i = row.getNextUnset(0); - int end = row.getSize(); - if (i >= end) { - throw NotFoundException.getNotFoundInstance(); - } - boolean isWhite = true; - int count = 0; - while (i < end) { - if (row.get(i) ^ isWhite) { // that is, exactly one is true - count++; - } else { - counterAppend(count); - count = 1; - isWhite = !isWhite; - } - i++; - } - counterAppend(count); - } - - private void counterAppend(int e) { - counters[counterLength] = e; - counterLength++; - if (counterLength >= counters.length) { - int[] temp = new int[counterLength * 2]; - System.arraycopy(counters, 0, temp, 0, counterLength); - counters = temp; - } - } - - private int findStartPattern() throws NotFoundException { - for (int i = 1; i < counterLength; i += 2) { - int charOffset = toNarrowWidePattern(i); - if (charOffset != -1 && arrayContains(STARTEND_ENCODING, ALPHABET[charOffset])) { - // Look for whitespace before start pattern, >= 50% of width of start pattern - // We make an exception if the whitespace is the first element. - int patternSize = 0; - for (int j = i; j < i + 7; j++) { - patternSize += counters[j]; - } - if (i == 1 || counters[i-1] >= patternSize / 2) { - return i; - } - } - } - throw NotFoundException.getNotFoundInstance(); - } - - static boolean arrayContains(char[] array, char key) { - if (array != null) { - for (char c : array) { - if (c == key) { - return true; - } - } - } - return false; - } - - // Assumes that counters[position] is a bar. - private int toNarrowWidePattern(int position) { - int end = position + 7; - if (end >= counterLength) { - return -1; - } - - int[] theCounters = counters; - - int maxBar = 0; - int minBar = Integer.MAX_VALUE; - for (int j = position; j < end; j += 2) { - int currentCounter = theCounters[j]; - if (currentCounter < minBar) { - minBar = currentCounter; - } - if (currentCounter > maxBar) { - maxBar = currentCounter; - } - } - int thresholdBar = (minBar + maxBar) / 2; - - int maxSpace = 0; - int minSpace = Integer.MAX_VALUE; - for (int j = position + 1; j < end; j += 2) { - int currentCounter = theCounters[j]; - if (currentCounter < minSpace) { - minSpace = currentCounter; - } - if (currentCounter > maxSpace) { - maxSpace = currentCounter; - } - } - int thresholdSpace = (minSpace + maxSpace) / 2; - - int bitmask = 1 << 7; - int pattern = 0; - for (int i = 0; i < 7; i++) { - int threshold = (i & 1) == 0 ? thresholdBar : thresholdSpace; - bitmask >>= 1; - if (theCounters[position + i] > threshold) { - pattern |= bitmask; - } - } - - for (int i = 0; i < CHARACTER_ENCODINGS.length; i++) { - if (CHARACTER_ENCODINGS[i] == pattern) { - return i; - } - } - return -1; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/CodaBarWriter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/CodaBarWriter.java deleted file mode 100755 index d27a166f..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/CodaBarWriter.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * Copyright 2011 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -/** - * This class renders CodaBar as {@code boolean[]}. - * - * @author dsbnatut@gmail.com (Kazuki Nishiura) - */ -public final class CodaBarWriter extends OneDimensionalCodeWriter { - - private static final char[] START_END_CHARS = {'A', 'B', 'C', 'D'}; - private static final char[] ALT_START_END_CHARS = {'T', 'N', '*', 'E'}; - private static final char[] CHARS_WHICH_ARE_TEN_LENGTH_EACH_AFTER_DECODED = {'/', ':', '+', '.'}; - private static final char DEFAULT_GUARD = START_END_CHARS[0]; - - @Override - public boolean[] encode(String contents) { - - if (contents.length() < 2) { - // Can't have a start/end guard, so tentatively add default guards - contents = DEFAULT_GUARD + contents + DEFAULT_GUARD; - } else { - // Verify input and calculate decoded length. - char firstChar = Character.toUpperCase(contents.charAt(0)); - char lastChar = Character.toUpperCase(contents.charAt(contents.length() - 1)); - boolean startsNormal = CodaBarReader.arrayContains(START_END_CHARS, firstChar); - boolean endsNormal = CodaBarReader.arrayContains(START_END_CHARS, lastChar); - boolean startsAlt = CodaBarReader.arrayContains(ALT_START_END_CHARS, firstChar); - boolean endsAlt = CodaBarReader.arrayContains(ALT_START_END_CHARS, lastChar); - if (startsNormal) { - if (!endsNormal) { - throw new IllegalArgumentException("Invalid start/end guards: " + contents); - } - // else already has valid start/end - } else if (startsAlt) { - if (!endsAlt) { - throw new IllegalArgumentException("Invalid start/end guards: " + contents); - } - // else already has valid start/end - } else { - // Doesn't start with a guard - if (endsNormal || endsAlt) { - throw new IllegalArgumentException("Invalid start/end guards: " + contents); - } - // else doesn't end with guard either, so add a default - contents = DEFAULT_GUARD + contents + DEFAULT_GUARD; - } - } - - // The start character and the end character are decoded to 10 length each. - int resultLength = 20; - for (int i = 1; i < contents.length() - 1; i++) { - if (Character.isDigit(contents.charAt(i)) || contents.charAt(i) == '-' || contents.charAt(i) == '$') { - resultLength += 9; - } else if (CodaBarReader.arrayContains(CHARS_WHICH_ARE_TEN_LENGTH_EACH_AFTER_DECODED, contents.charAt(i))) { - resultLength += 10; - } else { - throw new IllegalArgumentException("Cannot encode : '" + contents.charAt(i) + '\''); - } - } - // A blank is placed between each character. - resultLength += contents.length() - 1; - - boolean[] result = new boolean[resultLength]; - int position = 0; - for (int index = 0; index < contents.length(); index++) { - char c = Character.toUpperCase(contents.charAt(index)); - if (index == 0 || index == contents.length() - 1) { - // The start/end chars are not in the CodaBarReader.ALPHABET. - switch (c) { - case 'T': - c = 'A'; - break; - case 'N': - c = 'B'; - break; - case '*': - c = 'C'; - break; - case 'E': - c = 'D'; - break; - } - } - int code = 0; - for (int i = 0; i < CodaBarReader.ALPHABET.length; i++) { - // Found any, because I checked above. - if (c == CodaBarReader.ALPHABET[i]) { - code = CodaBarReader.CHARACTER_ENCODINGS[i]; - break; - } - } - boolean color = true; - int counter = 0; - int bit = 0; - while (bit < 7) { // A character consists of 7 digit. - result[position] = color; - position++; - if (((code >> (6 - bit)) & 1) == 0 || counter == 1) { - color = !color; // Flip the color. - bit++; - counter = 0; - } else { - counter++; - } - } - if (index < contents.length() - 1) { - result[position] = false; - position++; - } - } - return result; - } -} - diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code128Reader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code128Reader.java deleted file mode 100755 index 64924a35..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code128Reader.java +++ /dev/null @@ -1,539 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.ChecksumException; -import com.google.zxing.DecodeHintType; -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.Result; -import com.google.zxing.ResultPoint; -import com.google.zxing.common.BitArray; - -/** - * <p>Decodes Code 128 barcodes.</p> - * - * @author Sean Owen - */ -public final class Code128Reader extends OneDReader { - - static final int[][] CODE_PATTERNS = { - {2, 1, 2, 2, 2, 2}, // 0 - {2, 2, 2, 1, 2, 2}, - {2, 2, 2, 2, 2, 1}, - {1, 2, 1, 2, 2, 3}, - {1, 2, 1, 3, 2, 2}, - {1, 3, 1, 2, 2, 2}, // 5 - {1, 2, 2, 2, 1, 3}, - {1, 2, 2, 3, 1, 2}, - {1, 3, 2, 2, 1, 2}, - {2, 2, 1, 2, 1, 3}, - {2, 2, 1, 3, 1, 2}, // 10 - {2, 3, 1, 2, 1, 2}, - {1, 1, 2, 2, 3, 2}, - {1, 2, 2, 1, 3, 2}, - {1, 2, 2, 2, 3, 1}, - {1, 1, 3, 2, 2, 2}, // 15 - {1, 2, 3, 1, 2, 2}, - {1, 2, 3, 2, 2, 1}, - {2, 2, 3, 2, 1, 1}, - {2, 2, 1, 1, 3, 2}, - {2, 2, 1, 2, 3, 1}, // 20 - {2, 1, 3, 2, 1, 2}, - {2, 2, 3, 1, 1, 2}, - {3, 1, 2, 1, 3, 1}, - {3, 1, 1, 2, 2, 2}, - {3, 2, 1, 1, 2, 2}, // 25 - {3, 2, 1, 2, 2, 1}, - {3, 1, 2, 2, 1, 2}, - {3, 2, 2, 1, 1, 2}, - {3, 2, 2, 2, 1, 1}, - {2, 1, 2, 1, 2, 3}, // 30 - {2, 1, 2, 3, 2, 1}, - {2, 3, 2, 1, 2, 1}, - {1, 1, 1, 3, 2, 3}, - {1, 3, 1, 1, 2, 3}, - {1, 3, 1, 3, 2, 1}, // 35 - {1, 1, 2, 3, 1, 3}, - {1, 3, 2, 1, 1, 3}, - {1, 3, 2, 3, 1, 1}, - {2, 1, 1, 3, 1, 3}, - {2, 3, 1, 1, 1, 3}, // 40 - {2, 3, 1, 3, 1, 1}, - {1, 1, 2, 1, 3, 3}, - {1, 1, 2, 3, 3, 1}, - {1, 3, 2, 1, 3, 1}, - {1, 1, 3, 1, 2, 3}, // 45 - {1, 1, 3, 3, 2, 1}, - {1, 3, 3, 1, 2, 1}, - {3, 1, 3, 1, 2, 1}, - {2, 1, 1, 3, 3, 1}, - {2, 3, 1, 1, 3, 1}, // 50 - {2, 1, 3, 1, 1, 3}, - {2, 1, 3, 3, 1, 1}, - {2, 1, 3, 1, 3, 1}, - {3, 1, 1, 1, 2, 3}, - {3, 1, 1, 3, 2, 1}, // 55 - {3, 3, 1, 1, 2, 1}, - {3, 1, 2, 1, 1, 3}, - {3, 1, 2, 3, 1, 1}, - {3, 3, 2, 1, 1, 1}, - {3, 1, 4, 1, 1, 1}, // 60 - {2, 2, 1, 4, 1, 1}, - {4, 3, 1, 1, 1, 1}, - {1, 1, 1, 2, 2, 4}, - {1, 1, 1, 4, 2, 2}, - {1, 2, 1, 1, 2, 4}, // 65 - {1, 2, 1, 4, 2, 1}, - {1, 4, 1, 1, 2, 2}, - {1, 4, 1, 2, 2, 1}, - {1, 1, 2, 2, 1, 4}, - {1, 1, 2, 4, 1, 2}, // 70 - {1, 2, 2, 1, 1, 4}, - {1, 2, 2, 4, 1, 1}, - {1, 4, 2, 1, 1, 2}, - {1, 4, 2, 2, 1, 1}, - {2, 4, 1, 2, 1, 1}, // 75 - {2, 2, 1, 1, 1, 4}, - {4, 1, 3, 1, 1, 1}, - {2, 4, 1, 1, 1, 2}, - {1, 3, 4, 1, 1, 1}, - {1, 1, 1, 2, 4, 2}, // 80 - {1, 2, 1, 1, 4, 2}, - {1, 2, 1, 2, 4, 1}, - {1, 1, 4, 2, 1, 2}, - {1, 2, 4, 1, 1, 2}, - {1, 2, 4, 2, 1, 1}, // 85 - {4, 1, 1, 2, 1, 2}, - {4, 2, 1, 1, 1, 2}, - {4, 2, 1, 2, 1, 1}, - {2, 1, 2, 1, 4, 1}, - {2, 1, 4, 1, 2, 1}, // 90 - {4, 1, 2, 1, 2, 1}, - {1, 1, 1, 1, 4, 3}, - {1, 1, 1, 3, 4, 1}, - {1, 3, 1, 1, 4, 1}, - {1, 1, 4, 1, 1, 3}, // 95 - {1, 1, 4, 3, 1, 1}, - {4, 1, 1, 1, 1, 3}, - {4, 1, 1, 3, 1, 1}, - {1, 1, 3, 1, 4, 1}, - {1, 1, 4, 1, 3, 1}, // 100 - {3, 1, 1, 1, 4, 1}, - {4, 1, 1, 1, 3, 1}, - {2, 1, 1, 4, 1, 2}, - {2, 1, 1, 2, 1, 4}, - {2, 1, 1, 2, 3, 2}, // 105 - {2, 3, 3, 1, 1, 1, 2} - }; - - private static final float MAX_AVG_VARIANCE = 0.25f; - private static final float MAX_INDIVIDUAL_VARIANCE = 0.7f; - - private static final int CODE_SHIFT = 98; - - private static final int CODE_CODE_C = 99; - private static final int CODE_CODE_B = 100; - private static final int CODE_CODE_A = 101; - - private static final int CODE_FNC_1 = 102; - private static final int CODE_FNC_2 = 97; - private static final int CODE_FNC_3 = 96; - private static final int CODE_FNC_4_A = 101; - private static final int CODE_FNC_4_B = 100; - - private static final int CODE_START_A = 103; - private static final int CODE_START_B = 104; - private static final int CODE_START_C = 105; - private static final int CODE_STOP = 106; - - private static int[] findStartPattern(BitArray row) throws NotFoundException { - int width = row.getSize(); - int rowOffset = row.getNextSet(0); - - int counterPosition = 0; - int[] counters = new int[6]; - int patternStart = rowOffset; - boolean isWhite = false; - int patternLength = counters.length; - - for (int i = rowOffset; i < width; i++) { - if (row.get(i) ^ isWhite) { - counters[counterPosition]++; - } else { - if (counterPosition == patternLength - 1) { - float bestVariance = MAX_AVG_VARIANCE; - int bestMatch = -1; - for (int startCode = CODE_START_A; startCode <= CODE_START_C; startCode++) { - float variance = patternMatchVariance(counters, CODE_PATTERNS[startCode], - MAX_INDIVIDUAL_VARIANCE); - if (variance < bestVariance) { - bestVariance = variance; - bestMatch = startCode; - } - } - // Look for whitespace before start pattern, >= 50% of width of start pattern - if (bestMatch >= 0 && - row.isRange(Math.max(0, patternStart - (i - patternStart) / 2), patternStart, false)) { - return new int[]{patternStart, i, bestMatch}; - } - patternStart += counters[0] + counters[1]; - System.arraycopy(counters, 2, counters, 0, patternLength - 2); - counters[patternLength - 2] = 0; - counters[patternLength - 1] = 0; - counterPosition--; - } else { - counterPosition++; - } - counters[counterPosition] = 1; - isWhite = !isWhite; - } - } - throw NotFoundException.getNotFoundInstance(); - } - - private static int decodeCode(BitArray row, int[] counters, int rowOffset) - throws NotFoundException { - recordPattern(row, rowOffset, counters); - float bestVariance = MAX_AVG_VARIANCE; // worst variance we'll accept - int bestMatch = -1; - for (int d = 0; d < CODE_PATTERNS.length; d++) { - int[] pattern = CODE_PATTERNS[d]; - float variance = patternMatchVariance(counters, pattern, MAX_INDIVIDUAL_VARIANCE); - if (variance < bestVariance) { - bestVariance = variance; - bestMatch = d; - } - } - // TODO We're overlooking the fact that the STOP pattern has 7 values, not 6. - if (bestMatch >= 0) { - return bestMatch; - } else { - throw NotFoundException.getNotFoundInstance(); - } - } - - @Override - public Result decodeRow(int rowNumber, BitArray row, Map<DecodeHintType,?> hints) - throws NotFoundException, FormatException, ChecksumException { - - boolean convertFNC1 = hints != null && hints.containsKey(DecodeHintType.ASSUME_GS1); - - int[] startPatternInfo = findStartPattern(row); - int startCode = startPatternInfo[2]; - - List<Byte> rawCodes = new ArrayList<>(20); - rawCodes.add((byte) startCode); - - int codeSet; - switch (startCode) { - case CODE_START_A: - codeSet = CODE_CODE_A; - break; - case CODE_START_B: - codeSet = CODE_CODE_B; - break; - case CODE_START_C: - codeSet = CODE_CODE_C; - break; - default: - throw FormatException.getFormatInstance(); - } - - boolean done = false; - boolean isNextShifted = false; - - StringBuilder result = new StringBuilder(20); - - int lastStart = startPatternInfo[0]; - int nextStart = startPatternInfo[1]; - int[] counters = new int[6]; - - int lastCode = 0; - int code = 0; - int checksumTotal = startCode; - int multiplier = 0; - boolean lastCharacterWasPrintable = true; - boolean upperMode = false; - boolean shiftUpperMode = false; - - while (!done) { - - boolean unshift = isNextShifted; - isNextShifted = false; - - // Save off last code - lastCode = code; - - // Decode another code from image - code = decodeCode(row, counters, nextStart); - - rawCodes.add((byte) code); - - // Remember whether the last code was printable or not (excluding CODE_STOP) - if (code != CODE_STOP) { - lastCharacterWasPrintable = true; - } - - // Add to checksum computation (if not CODE_STOP of course) - if (code != CODE_STOP) { - multiplier++; - checksumTotal += multiplier * code; - } - - // Advance to where the next code will to start - lastStart = nextStart; - for (int counter : counters) { - nextStart += counter; - } - - // Take care of illegal start codes - switch (code) { - case CODE_START_A: - case CODE_START_B: - case CODE_START_C: - throw FormatException.getFormatInstance(); - } - - switch (codeSet) { - - case CODE_CODE_A: - if (code < 64) { - if (shiftUpperMode == upperMode) { - result.append((char) (' ' + code)); - } else { - result.append((char) (' ' + code + 128)); - } - shiftUpperMode = false; - } else if (code < 96) { - if (shiftUpperMode == upperMode) { - result.append((char) (code - 64)); - } else { - result.append((char) (code + 64)); - } - shiftUpperMode = false; - } else { - // Don't let CODE_STOP, which always appears, affect whether whether we think the last - // code was printable or not. - if (code != CODE_STOP) { - lastCharacterWasPrintable = false; - } - switch (code) { - case CODE_FNC_1: - if (convertFNC1) { - if (result.length() == 0){ - // GS1 specification 5.4.3.7. and 5.4.6.4. If the first char after the start code - // is FNC1 then this is GS1-128. We add the symbology identifier. - result.append("]C1"); - } else { - // GS1 specification 5.4.7.5. Every subsequent FNC1 is returned as ASCII 29 (GS) - result.append((char) 29); - } - } - break; - case CODE_FNC_2: - case CODE_FNC_3: - // do nothing? - break; - case CODE_FNC_4_A: - if (!upperMode && shiftUpperMode) { - upperMode = true; - shiftUpperMode = false; - } else if (upperMode && shiftUpperMode) { - upperMode = false; - shiftUpperMode = false; - } else { - shiftUpperMode = true; - } - break; - case CODE_SHIFT: - isNextShifted = true; - codeSet = CODE_CODE_B; - break; - case CODE_CODE_B: - codeSet = CODE_CODE_B; - break; - case CODE_CODE_C: - codeSet = CODE_CODE_C; - break; - case CODE_STOP: - done = true; - break; - } - } - break; - case CODE_CODE_B: - if (code < 96) { - if (shiftUpperMode == upperMode) { - result.append((char) (' ' + code)); - } else { - result.append((char) (' ' + code + 128)); - } - shiftUpperMode = false; - } else { - if (code != CODE_STOP) { - lastCharacterWasPrintable = false; - } - switch (code) { - case CODE_FNC_1: - if (convertFNC1) { - if (result.length() == 0){ - // GS1 specification 5.4.3.7. and 5.4.6.4. If the first char after the start code - // is FNC1 then this is GS1-128. We add the symbology identifier. - result.append("]C1"); - } else { - // GS1 specification 5.4.7.5. Every subsequent FNC1 is returned as ASCII 29 (GS) - result.append((char) 29); - } - } - break; - case CODE_FNC_2: - case CODE_FNC_3: - // do nothing? - break; - case CODE_FNC_4_B: - if (!upperMode && shiftUpperMode) { - upperMode = true; - shiftUpperMode = false; - } else if (upperMode && shiftUpperMode) { - upperMode = false; - shiftUpperMode = false; - } else { - shiftUpperMode = true; - } - break; - case CODE_SHIFT: - isNextShifted = true; - codeSet = CODE_CODE_A; - break; - case CODE_CODE_A: - codeSet = CODE_CODE_A; - break; - case CODE_CODE_C: - codeSet = CODE_CODE_C; - break; - case CODE_STOP: - done = true; - break; - } - } - break; - case CODE_CODE_C: - if (code < 100) { - if (code < 10) { - result.append('0'); - } - result.append(code); - } else { - if (code != CODE_STOP) { - lastCharacterWasPrintable = false; - } - switch (code) { - case CODE_FNC_1: - if (convertFNC1) { - if (result.length() == 0){ - // GS1 specification 5.4.3.7. and 5.4.6.4. If the first char after the start code - // is FNC1 then this is GS1-128. We add the symbology identifier. - result.append("]C1"); - } else { - // GS1 specification 5.4.7.5. Every subsequent FNC1 is returned as ASCII 29 (GS) - result.append((char) 29); - } - } - break; - case CODE_CODE_A: - codeSet = CODE_CODE_A; - break; - case CODE_CODE_B: - codeSet = CODE_CODE_B; - break; - case CODE_STOP: - done = true; - break; - } - } - break; - } - - // Unshift back to another code set if we were shifted - if (unshift) { - codeSet = codeSet == CODE_CODE_A ? CODE_CODE_B : CODE_CODE_A; - } - - } - - int lastPatternSize = nextStart - lastStart; - - // Check for ample whitespace following pattern, but, to do this we first need to remember that - // we fudged decoding CODE_STOP since it actually has 7 bars, not 6. There is a black bar left - // to read off. Would be slightly better to properly read. Here we just skip it: - nextStart = row.getNextUnset(nextStart); - if (!row.isRange(nextStart, - Math.min(row.getSize(), nextStart + (nextStart - lastStart) / 2), - false)) { - throw NotFoundException.getNotFoundInstance(); - } - - // Pull out from sum the value of the penultimate check code - checksumTotal -= multiplier * lastCode; - // lastCode is the checksum then: - if (checksumTotal % 103 != lastCode) { - throw ChecksumException.getChecksumInstance(); - } - - // Need to pull out the check digits from string - int resultLength = result.length(); - if (resultLength == 0) { - // false positive - throw NotFoundException.getNotFoundInstance(); - } - - // Only bother if the result had at least one character, and if the checksum digit happened to - // be a printable character. If it was just interpreted as a control code, nothing to remove. - if (resultLength > 0 && lastCharacterWasPrintable) { - if (codeSet == CODE_CODE_C) { - result.delete(resultLength - 2, resultLength); - } else { - result.delete(resultLength - 1, resultLength); - } - } - - float left = (float) (startPatternInfo[1] + startPatternInfo[0]) / 2.0f; - float right = lastStart + lastPatternSize / 2.0f; - - int rawCodesSize = rawCodes.size(); - byte[] rawBytes = new byte[rawCodesSize]; - for (int i = 0; i < rawCodesSize; i++) { - rawBytes[i] = rawCodes.get(i); - } - - return new Result( - result.toString(), - rawBytes, - new ResultPoint[]{ - new ResultPoint(left, (float) rowNumber), - new ResultPoint(right, (float) rowNumber)}, - BarcodeFormat.CODE_128); - - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code128Writer.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code128Writer.java deleted file mode 100755 index d7dd17d0..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code128Writer.java +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Copyright 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.EncodeHintType; -import com.google.zxing.WriterException; -import com.google.zxing.common.BitMatrix; - -/** - * This object renders a CODE128 code as a {@link BitMatrix}. - * - * @author erik.barbara@gmail.com (Erik Barbara) - */ -public final class Code128Writer extends OneDimensionalCodeWriter { - - private static final int CODE_START_B = 104; - private static final int CODE_START_C = 105; - private static final int CODE_CODE_B = 100; - private static final int CODE_CODE_C = 99; - private static final int CODE_STOP = 106; - - // Dummy characters used to specify control characters in input - private static final char ESCAPE_FNC_1 = '\u00f1'; - private static final char ESCAPE_FNC_2 = '\u00f2'; - private static final char ESCAPE_FNC_3 = '\u00f3'; - private static final char ESCAPE_FNC_4 = '\u00f4'; - - private static final int CODE_FNC_1 = 102; // Code A, Code B, Code C - private static final int CODE_FNC_2 = 97; // Code A, Code B - private static final int CODE_FNC_3 = 96; // Code A, Code B - private static final int CODE_FNC_4_B = 100; // Code B - - @Override - public BitMatrix encode(String contents, - BarcodeFormat format, - int width, - int height, - Map<EncodeHintType,?> hints) throws WriterException { - if (format != BarcodeFormat.CODE_128) { - throw new IllegalArgumentException("Can only encode CODE_128, but got " + format); - } - return super.encode(contents, format, width, height, hints); - } - - @Override - public boolean[] encode(String contents) { - int length = contents.length(); - // Check length - if (length < 1 || length > 80) { - throw new IllegalArgumentException( - "Contents length should be between 1 and 80 characters, but got " + length); - } - // Check content - for (int i = 0; i < length; i++) { - char c = contents.charAt(i); - if (c < ' ' || c > '~') { - switch (c) { - case ESCAPE_FNC_1: - case ESCAPE_FNC_2: - case ESCAPE_FNC_3: - case ESCAPE_FNC_4: - break; - default: - throw new IllegalArgumentException("Bad character in input: " + c); - } - } - } - - Collection<int[]> patterns = new ArrayList<>(); // temporary storage for patterns - int checkSum = 0; - int checkWeight = 1; - int codeSet = 0; // selected code (CODE_CODE_B or CODE_CODE_C) - int position = 0; // position in contents - - while (position < length) { - //Select code to use - int requiredDigitCount = codeSet == CODE_CODE_C ? 2 : 4; - int newCodeSet; - if (isDigits(contents, position, requiredDigitCount)) { - newCodeSet = CODE_CODE_C; - } else { - newCodeSet = CODE_CODE_B; - } - - //Get the pattern index - int patternIndex; - if (newCodeSet == codeSet) { - // Encode the current character - // First handle escapes - switch (contents.charAt(position)) { - case ESCAPE_FNC_1: - patternIndex = CODE_FNC_1; - break; - case ESCAPE_FNC_2: - patternIndex = CODE_FNC_2; - break; - case ESCAPE_FNC_3: - patternIndex = CODE_FNC_3; - break; - case ESCAPE_FNC_4: - patternIndex = CODE_FNC_4_B; // FIXME if this ever outputs Code A - break; - default: - // Then handle normal characters otherwise - if (codeSet == CODE_CODE_B) { - patternIndex = contents.charAt(position) - ' '; - } else { // CODE_CODE_C - patternIndex = Integer.parseInt(contents.substring(position, position + 2)); - position++; // Also incremented below - } - } - position++; - } else { - // Should we change the current code? - // Do we have a code set? - if (codeSet == 0) { - // No, we don't have a code set - if (newCodeSet == CODE_CODE_B) { - patternIndex = CODE_START_B; - } else { - // CODE_CODE_C - patternIndex = CODE_START_C; - } - } else { - // Yes, we have a code set - patternIndex = newCodeSet; - } - codeSet = newCodeSet; - } - - // Get the pattern - patterns.add(Code128Reader.CODE_PATTERNS[patternIndex]); - - // Compute checksum - checkSum += patternIndex * checkWeight; - if (position != 0) { - checkWeight++; - } - } - - // Compute and append checksum - checkSum %= 103; - patterns.add(Code128Reader.CODE_PATTERNS[checkSum]); - - // Append stop code - patterns.add(Code128Reader.CODE_PATTERNS[CODE_STOP]); - - // Compute code width - int codeWidth = 0; - for (int[] pattern : patterns) { - for (int width : pattern) { - codeWidth += width; - } - } - - // Compute result - boolean[] result = new boolean[codeWidth]; - int pos = 0; - for (int[] pattern : patterns) { - pos += appendPattern(result, pos, pattern, true); - } - - return result; - } - - private static boolean isDigits(CharSequence value, int start, int length) { - int end = start + length; - int last = value.length(); - for (int i = start; i < end && i < last; i++) { - char c = value.charAt(i); - if (c < '0' || c > '9') { - if (c != ESCAPE_FNC_1) { - return false; - } - end++; // ignore FNC_1 - } - } - return end <= last; // end > last if we've run out of string - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code39Reader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code39Reader.java deleted file mode 100755 index cc44d140..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code39Reader.java +++ /dev/null @@ -1,324 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.Arrays; -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.ChecksumException; -import com.google.zxing.DecodeHintType; -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.Result; -import com.google.zxing.ResultPoint; -import com.google.zxing.common.BitArray; - -/** - * <p>Decodes Code 39 barcodes. This does not support "Full ASCII Code 39" yet.</p> - * - * @author Sean Owen - * @see Code93Reader - */ -public final class Code39Reader extends OneDReader { - - static final String ALPHABET_STRING = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%"; - // Note this lacks '*' compared to ALPHABET_STRING - private static final String CHECK_DIGIT_STRING = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%"; - - /** - * These represent the encodings of characters, as patterns of wide and narrow bars. - * The 9 least-significant bits of each int correspond to the pattern of wide and narrow, - * with 1s representing "wide" and 0s representing narrow. - */ - static final int[] CHARACTER_ENCODINGS = { - 0x034, 0x121, 0x061, 0x160, 0x031, 0x130, 0x070, 0x025, 0x124, 0x064, // 0-9 - 0x109, 0x049, 0x148, 0x019, 0x118, 0x058, 0x00D, 0x10C, 0x04C, 0x01C, // A-J - 0x103, 0x043, 0x142, 0x013, 0x112, 0x052, 0x007, 0x106, 0x046, 0x016, // K-T - 0x181, 0x0C1, 0x1C0, 0x091, 0x190, 0x0D0, 0x085, 0x184, 0x0C4, 0x094, // U-* - 0x0A8, 0x0A2, 0x08A, 0x02A // $-% - }; - - static final int ASTERISK_ENCODING = CHARACTER_ENCODINGS[39]; - - private final boolean usingCheckDigit; - private final boolean extendedMode; - private final StringBuilder decodeRowResult; - private final int[] counters; - - /** - * Creates a reader that assumes all encoded data is data, and does not treat the final - * character as a check digit. It will not decoded "extended Code 39" sequences. - */ - public Code39Reader() { - this(false); - } - - /** - * Creates a reader that can be configured to check the last character as a check digit. - * It will not decoded "extended Code 39" sequences. - * - * @param usingCheckDigit if true, treat the last data character as a check digit, not - * data, and verify that the checksum passes. - */ - public Code39Reader(boolean usingCheckDigit) { - this(usingCheckDigit, false); - } - - /** - * Creates a reader that can be configured to check the last character as a check digit, - * or optionally attempt to decode "extended Code 39" sequences that are used to encode - * the full ASCII character set. - * - * @param usingCheckDigit if true, treat the last data character as a check digit, not - * data, and verify that the checksum passes. - * @param extendedMode if true, will attempt to decode extended Code 39 sequences in the - * text. - */ - public Code39Reader(boolean usingCheckDigit, boolean extendedMode) { - this.usingCheckDigit = usingCheckDigit; - this.extendedMode = extendedMode; - decodeRowResult = new StringBuilder(20); - counters = new int[9]; - } - - @Override - public Result decodeRow(int rowNumber, BitArray row, Map<DecodeHintType,?> hints) - throws NotFoundException, ChecksumException, FormatException { - - int[] theCounters = counters; - Arrays.fill(theCounters, 0); - StringBuilder result = decodeRowResult; - result.setLength(0); - - int[] start = findAsteriskPattern(row, theCounters); - // Read off white space - int nextStart = row.getNextSet(start[1]); - int end = row.getSize(); - - char decodedChar; - int lastStart; - do { - recordPattern(row, nextStart, theCounters); - int pattern = toNarrowWidePattern(theCounters); - if (pattern < 0) { - throw NotFoundException.getNotFoundInstance(); - } - decodedChar = patternToChar(pattern); - result.append(decodedChar); - lastStart = nextStart; - for (int counter : theCounters) { - nextStart += counter; - } - // Read off white space - nextStart = row.getNextSet(nextStart); - } while (decodedChar != '*'); - result.setLength(result.length() - 1); // remove asterisk - - // Look for whitespace after pattern: - int lastPatternSize = 0; - for (int counter : theCounters) { - lastPatternSize += counter; - } - int whiteSpaceAfterEnd = nextStart - lastStart - lastPatternSize; - // If 50% of last pattern size, following last pattern, is not whitespace, fail - // (but if it's whitespace to the very end of the image, that's OK) - if (nextStart != end && (whiteSpaceAfterEnd * 2) < lastPatternSize) { - throw NotFoundException.getNotFoundInstance(); - } - - if (usingCheckDigit) { - int max = result.length() - 1; - int total = 0; - for (int i = 0; i < max; i++) { - total += CHECK_DIGIT_STRING.indexOf(decodeRowResult.charAt(i)); - } - if (result.charAt(max) != CHECK_DIGIT_STRING.charAt(total % 43)) { - throw ChecksumException.getChecksumInstance(); - } - result.setLength(max); - } - - if (result.length() == 0) { - // false positive - throw NotFoundException.getNotFoundInstance(); - } - - String resultString; - if (extendedMode) { - resultString = decodeExtended(result); - } else { - resultString = result.toString(); - } - - float left = (float) (start[1] + start[0]) / 2.0f; - float right = lastStart + lastPatternSize / 2.0f; - return new Result( - resultString, - null, - new ResultPoint[]{ - new ResultPoint(left, (float) rowNumber), - new ResultPoint(right, (float) rowNumber)}, - BarcodeFormat.CODE_39); - - } - - private static int[] findAsteriskPattern(BitArray row, int[] counters) throws NotFoundException { - int width = row.getSize(); - int rowOffset = row.getNextSet(0); - - int counterPosition = 0; - int patternStart = rowOffset; - boolean isWhite = false; - int patternLength = counters.length; - - for (int i = rowOffset; i < width; i++) { - if (row.get(i) ^ isWhite) { - counters[counterPosition]++; - } else { - if (counterPosition == patternLength - 1) { - // Look for whitespace before start pattern, >= 50% of width of start pattern - if (toNarrowWidePattern(counters) == ASTERISK_ENCODING && - row.isRange(Math.max(0, patternStart - ((i - patternStart) / 2)), patternStart, false)) { - return new int[]{patternStart, i}; - } - patternStart += counters[0] + counters[1]; - System.arraycopy(counters, 2, counters, 0, patternLength - 2); - counters[patternLength - 2] = 0; - counters[patternLength - 1] = 0; - counterPosition--; - } else { - counterPosition++; - } - counters[counterPosition] = 1; - isWhite = !isWhite; - } - } - throw NotFoundException.getNotFoundInstance(); - } - - // For efficiency, returns -1 on failure. Not throwing here saved as many as 700 exceptions - // per image when using some of our blackbox images. - private static int toNarrowWidePattern(int[] counters) { - int numCounters = counters.length; - int maxNarrowCounter = 0; - int wideCounters; - do { - int minCounter = Integer.MAX_VALUE; - for (int counter : counters) { - if (counter < minCounter && counter > maxNarrowCounter) { - minCounter = counter; - } - } - maxNarrowCounter = minCounter; - wideCounters = 0; - int totalWideCountersWidth = 0; - int pattern = 0; - for (int i = 0; i < numCounters; i++) { - int counter = counters[i]; - if (counter > maxNarrowCounter) { - pattern |= 1 << (numCounters - 1 - i); - wideCounters++; - totalWideCountersWidth += counter; - } - } - if (wideCounters == 3) { - // Found 3 wide counters, but are they close enough in width? - // We can perform a cheap, conservative check to see if any individual - // counter is more than 1.5 times the average: - for (int i = 0; i < numCounters && wideCounters > 0; i++) { - int counter = counters[i]; - if (counter > maxNarrowCounter) { - wideCounters--; - // totalWideCountersWidth = 3 * average, so this checks if counter >= 3/2 * average - if ((counter * 2) >= totalWideCountersWidth) { - return -1; - } - } - } - return pattern; - } - } while (wideCounters > 3); - return -1; - } - - private static char patternToChar(int pattern) throws NotFoundException { - for (int i = 0; i < CHARACTER_ENCODINGS.length; i++) { - if (CHARACTER_ENCODINGS[i] == pattern) { - return ALPHABET_STRING.charAt(i); - } - } - throw NotFoundException.getNotFoundInstance(); - } - - private static String decodeExtended(CharSequence encoded) throws FormatException { - int length = encoded.length(); - StringBuilder decoded = new StringBuilder(length); - for (int i = 0; i < length; i++) { - char c = encoded.charAt(i); - if (c == '+' || c == '$' || c == '%' || c == '/') { - char next = encoded.charAt(i + 1); - char decodedChar = '\0'; - switch (c) { - case '+': - // +A to +Z map to a to z - if (next >= 'A' && next <= 'Z') { - decodedChar = (char) (next + 32); - } else { - throw FormatException.getFormatInstance(); - } - break; - case '$': - // $A to $Z map to control codes SH to SB - if (next >= 'A' && next <= 'Z') { - decodedChar = (char) (next - 64); - } else { - throw FormatException.getFormatInstance(); - } - break; - case '%': - // %A to %E map to control codes ESC to US - if (next >= 'A' && next <= 'E') { - decodedChar = (char) (next - 38); - } else if (next >= 'F' && next <= 'W') { - decodedChar = (char) (next - 11); - } else { - throw FormatException.getFormatInstance(); - } - break; - case '/': - // /A to /O map to ! to , and /Z maps to : - if (next >= 'A' && next <= 'O') { - decodedChar = (char) (next - 32); - } else if (next == 'Z') { - decodedChar = ':'; - } else { - throw FormatException.getFormatInstance(); - } - break; - } - decoded.append(decodedChar); - // bump up i again since we read two characters - i++; - } else { - decoded.append(c); - } - } - return decoded.toString(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code39Writer.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code39Writer.java deleted file mode 100755 index d5af7c45..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code39Writer.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.EncodeHintType; -import com.google.zxing.WriterException; -import com.google.zxing.common.BitMatrix; - -/** - * This object renders a CODE39 code as a {@link BitMatrix}. - * - * @author erik.barbara@gmail.com (Erik Barbara) - */ -public final class Code39Writer extends OneDimensionalCodeWriter { - - @Override - public BitMatrix encode(String contents, - BarcodeFormat format, - int width, - int height, - Map<EncodeHintType,?> hints) throws WriterException { - if (format != BarcodeFormat.CODE_39) { - throw new IllegalArgumentException("Can only encode CODE_39, but got " + format); - } - return super.encode(contents, format, width, height, hints); - } - - @Override - public boolean[] encode(String contents) { - int length = contents.length(); - if (length > 80) { - throw new IllegalArgumentException( - "Requested contents should be less than 80 digits long, but got " + length); - } - - int[] widths = new int[9]; - int codeWidth = 24 + 1 + length; - for (int i = 0; i < length; i++) { - int indexInString = Code39Reader.ALPHABET_STRING.indexOf(contents.charAt(i)); - if (indexInString < 0) { - throw new IllegalArgumentException("Bad contents: " + contents); - } - toIntArray(Code39Reader.CHARACTER_ENCODINGS[indexInString], widths); - for (int width : widths) { - codeWidth += width; - } - } - boolean[] result = new boolean[codeWidth]; - toIntArray(Code39Reader.ASTERISK_ENCODING, widths); - int pos = appendPattern(result, 0, widths, true); - int[] narrowWhite = {1}; - pos += appendPattern(result, pos, narrowWhite, false); - //append next character to byte matrix - for (int i = 0; i < length; i++) { - int indexInString = Code39Reader.ALPHABET_STRING.indexOf(contents.charAt(i)); - toIntArray(Code39Reader.CHARACTER_ENCODINGS[indexInString], widths); - pos += appendPattern(result, pos, widths, true); - pos += appendPattern(result, pos, narrowWhite, false); - } - toIntArray(Code39Reader.ASTERISK_ENCODING, widths); - appendPattern(result, pos, widths, true); - return result; - } - - private static void toIntArray(int a, int[] toReturn) { - for (int i = 0; i < 9; i++) { - int temp = a & (1 << (8 - i)); - toReturn[i] = temp == 0 ? 1 : 2; - } - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code93Reader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code93Reader.java deleted file mode 100755 index 7d7aa80b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code93Reader.java +++ /dev/null @@ -1,287 +0,0 @@ -/* - * Copyright 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.Arrays; -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.ChecksumException; -import com.google.zxing.DecodeHintType; -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.Result; -import com.google.zxing.ResultPoint; -import com.google.zxing.common.BitArray; - -/** - * <p>Decodes Code 93 barcodes.</p> - * - * @author Sean Owen - * @see Code39Reader - */ -public final class Code93Reader extends OneDReader { - - // Note that 'abcd' are dummy characters in place of control characters. - static final String ALPHABET_STRING = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%abcd*"; - private static final char[] ALPHABET = ALPHABET_STRING.toCharArray(); - - /** - * These represent the encodings of characters, as patterns of wide and narrow bars. - * The 9 least-significant bits of each int correspond to the pattern of wide and narrow. - */ - static final int[] CHARACTER_ENCODINGS = { - 0x114, 0x148, 0x144, 0x142, 0x128, 0x124, 0x122, 0x150, 0x112, 0x10A, // 0-9 - 0x1A8, 0x1A4, 0x1A2, 0x194, 0x192, 0x18A, 0x168, 0x164, 0x162, 0x134, // A-J - 0x11A, 0x158, 0x14C, 0x146, 0x12C, 0x116, 0x1B4, 0x1B2, 0x1AC, 0x1A6, // K-T - 0x196, 0x19A, 0x16C, 0x166, 0x136, 0x13A, // U-Z - 0x12E, 0x1D4, 0x1D2, 0x1CA, 0x16E, 0x176, 0x1AE, // - - % - 0x126, 0x1DA, 0x1D6, 0x132, 0x15E, // Control chars? $-* - }; - private static final int ASTERISK_ENCODING = CHARACTER_ENCODINGS[47]; - - private final StringBuilder decodeRowResult; - private final int[] counters; - - public Code93Reader() { - decodeRowResult = new StringBuilder(20); - counters = new int[6]; - } - - @Override - public Result decodeRow(int rowNumber, BitArray row, Map<DecodeHintType,?> hints) - throws NotFoundException, ChecksumException, FormatException { - - int[] start = findAsteriskPattern(row); - // Read off white space - int nextStart = row.getNextSet(start[1]); - int end = row.getSize(); - - int[] theCounters = counters; - Arrays.fill(theCounters, 0); - StringBuilder result = decodeRowResult; - result.setLength(0); - - char decodedChar; - int lastStart; - do { - recordPattern(row, nextStart, theCounters); - int pattern = toPattern(theCounters); - if (pattern < 0) { - throw NotFoundException.getNotFoundInstance(); - } - decodedChar = patternToChar(pattern); - result.append(decodedChar); - lastStart = nextStart; - for (int counter : theCounters) { - nextStart += counter; - } - // Read off white space - nextStart = row.getNextSet(nextStart); - } while (decodedChar != '*'); - result.deleteCharAt(result.length() - 1); // remove asterisk - - int lastPatternSize = 0; - for (int counter : theCounters) { - lastPatternSize += counter; - } - - // Should be at least one more black module - if (nextStart == end || !row.get(nextStart)) { - throw NotFoundException.getNotFoundInstance(); - } - - if (result.length() < 2) { - // false positive -- need at least 2 checksum digits - throw NotFoundException.getNotFoundInstance(); - } - - checkChecksums(result); - // Remove checksum digits - result.setLength(result.length() - 2); - - String resultString = decodeExtended(result); - - float left = (float) (start[1] + start[0]) / 2.0f; - float right = lastStart + lastPatternSize / 2.0f; - return new Result( - resultString, - null, - new ResultPoint[]{ - new ResultPoint(left, (float) rowNumber), - new ResultPoint(right, (float) rowNumber)}, - BarcodeFormat.CODE_93); - - } - - private int[] findAsteriskPattern(BitArray row) throws NotFoundException { - int width = row.getSize(); - int rowOffset = row.getNextSet(0); - - Arrays.fill(counters, 0); - int[] theCounters = counters; - int patternStart = rowOffset; - boolean isWhite = false; - int patternLength = theCounters.length; - - int counterPosition = 0; - for (int i = rowOffset; i < width; i++) { - if (row.get(i) ^ isWhite) { - theCounters[counterPosition]++; - } else { - if (counterPosition == patternLength - 1) { - if (toPattern(theCounters) == ASTERISK_ENCODING) { - return new int[]{patternStart, i}; - } - patternStart += theCounters[0] + theCounters[1]; - System.arraycopy(theCounters, 2, theCounters, 0, patternLength - 2); - theCounters[patternLength - 2] = 0; - theCounters[patternLength - 1] = 0; - counterPosition--; - } else { - counterPosition++; - } - theCounters[counterPosition] = 1; - isWhite = !isWhite; - } - } - throw NotFoundException.getNotFoundInstance(); - } - - private static int toPattern(int[] counters) { - int max = counters.length; - int sum = 0; - for (int counter : counters) { - sum += counter; - } - int pattern = 0; - for (int i = 0; i < max; i++) { - int scaled = Math.round(counters[i] * 9.0f / sum); - if (scaled < 1 || scaled > 4) { - return -1; - } - if ((i & 0x01) == 0) { - for (int j = 0; j < scaled; j++) { - pattern = (pattern << 1) | 0x01; - } - } else { - pattern <<= scaled; - } - } - return pattern; - } - - private static char patternToChar(int pattern) throws NotFoundException { - for (int i = 0; i < CHARACTER_ENCODINGS.length; i++) { - if (CHARACTER_ENCODINGS[i] == pattern) { - return ALPHABET[i]; - } - } - throw NotFoundException.getNotFoundInstance(); - } - - private static String decodeExtended(CharSequence encoded) throws FormatException { - int length = encoded.length(); - StringBuilder decoded = new StringBuilder(length); - for (int i = 0; i < length; i++) { - char c = encoded.charAt(i); - if (c >= 'a' && c <= 'd') { - if (i >= length - 1) { - throw FormatException.getFormatInstance(); - } - char next = encoded.charAt(i + 1); - char decodedChar = '\0'; - switch (c) { - case 'd': - // +A to +Z map to a to z - if (next >= 'A' && next <= 'Z') { - decodedChar = (char) (next + 32); - } else { - throw FormatException.getFormatInstance(); - } - break; - case 'a': - // $A to $Z map to control codes SH to SB - if (next >= 'A' && next <= 'Z') { - decodedChar = (char) (next - 64); - } else { - throw FormatException.getFormatInstance(); - } - break; - case 'b': - if (next >= 'A' && next <= 'E') { - // %A to %E map to control codes ESC to USep - decodedChar = (char) (next - 38); - } else if (next >= 'F' && next <= 'J') { - // %F to %J map to ; < = > ? - decodedChar = (char) (next - 11); - } else if (next >= 'K' && next <= 'O') { - // %K to %O map to [ \ ] ^ _ - decodedChar = (char) (next + 16); - } else if (next >= 'P' && next <= 'S') { - // %P to %S map to { | } ~ - decodedChar = (char) (next + 43); - } else if (next >= 'T' && next <= 'Z') { - // %T to %Z all map to DEL (127) - decodedChar = 127; - } else { - throw FormatException.getFormatInstance(); - } - break; - case 'c': - // /A to /O map to ! to , and /Z maps to : - if (next >= 'A' && next <= 'O') { - decodedChar = (char) (next - 32); - } else if (next == 'Z') { - decodedChar = ':'; - } else { - throw FormatException.getFormatInstance(); - } - break; - } - decoded.append(decodedChar); - // bump up i again since we read two characters - i++; - } else { - decoded.append(c); - } - } - return decoded.toString(); - } - - private static void checkChecksums(CharSequence result) throws ChecksumException { - int length = result.length(); - checkOneChecksum(result, length - 2, 20); - checkOneChecksum(result, length - 1, 15); - } - - private static void checkOneChecksum(CharSequence result, int checkPosition, int weightMax) - throws ChecksumException { - int weight = 1; - int total = 0; - for (int i = checkPosition - 1; i >= 0; i--) { - total += weight * ALPHABET_STRING.indexOf(result.charAt(i)); - if (++weight > weightMax) { - weight = 1; - } - } - if (result.charAt(checkPosition) != ALPHABET[total % 47]) { - throw ChecksumException.getChecksumInstance(); - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code93Writer.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code93Writer.java deleted file mode 100755 index e4e796bc..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/Code93Writer.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright 2015 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.google.zxing.oned; - -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.EncodeHintType; -import com.google.zxing.WriterException; -import com.google.zxing.common.BitMatrix; - -/** - * This object renders a CODE93 code as a BitMatrix - */ -public class Code93Writer extends OneDimensionalCodeWriter { - @Override - public BitMatrix encode(String contents, - BarcodeFormat format, - int width, - int height, - Map<EncodeHintType,?> hints) throws WriterException { - if (format != BarcodeFormat.CODE_93) { - throw new IllegalArgumentException("Can only encode CODE_93, but got " + format); - } - return super.encode(contents, format, width, height, hints); - } - - @Override - public boolean[] encode(String contents) { - int length = contents.length(); - if (length > 80) { - throw new IllegalArgumentException( - "Requested contents should be less than 80 digits long, but got " + length); - } - //each character is encoded by 9 of 0/1's - int[] widths = new int[9]; - - //lenght of code + 2 start/stop characters + 2 checksums, each of 9 bits, plus a termination bar - int codeWidth = (contents.length() + 2 + 2) * 9 + 1; - - boolean[] result = new boolean[codeWidth]; - - //start character (*) - toIntArray(Code93Reader.CHARACTER_ENCODINGS[47], widths); - int pos = appendPattern(result, 0, widths, true); - - for (int i = 0; i < length; i++) { - int indexInString = Code93Reader.ALPHABET_STRING.indexOf(contents.charAt(i)); - toIntArray(Code93Reader.CHARACTER_ENCODINGS[indexInString], widths); - pos += appendPattern(result, pos, widths, true); - } - - //add two checksums - int check1 = computeChecksumIndex(contents, 20); - toIntArray(Code93Reader.CHARACTER_ENCODINGS[check1], widths); - pos += appendPattern(result, pos, widths, true); - - //append the contents to reflect the first checksum added - contents += Code93Reader.ALPHABET_STRING.charAt(check1); - - int check2 = computeChecksumIndex(contents, 15); - toIntArray(Code93Reader.CHARACTER_ENCODINGS[check2], widths); - pos += appendPattern(result, pos, widths, true); - - //end character (*) - toIntArray(Code93Reader.CHARACTER_ENCODINGS[47], widths); - pos += appendPattern(result, pos, widths, true); - - //termination bar (single black bar) - result[pos] = true; - - return result; - } - - private static void toIntArray(int a, int[] toReturn) { - for (int i = 0; i < 9; i++) { - int temp = a & (1 << (8 - i)); - toReturn[i] = temp == 0 ? 0 : 1; - } - } - - protected static int appendPattern(boolean[] target, int pos, int[] pattern, boolean startColor) { - for (int bit : pattern) { - target[pos++] = bit != 0; - } - return 9; - } - - private static int computeChecksumIndex(String contents, int maxWeight) { - int weight = 1; - int total = 0; - - for (int i = contents.length() - 1; i >= 0; i--) { - int indexInString = Code93Reader.ALPHABET_STRING.indexOf(contents.charAt(i)); - total += indexInString * weight; - if (++weight > maxWeight) { - weight = 1; - } - } - return total % 47; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/EAN13Reader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/EAN13Reader.java deleted file mode 100755 index c537eac5..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/EAN13Reader.java +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.NotFoundException; -import com.google.zxing.common.BitArray; - -/** - * <p>Implements decoding of the EAN-13 format.</p> - * - * @author dswitkin@google.com (Daniel Switkin) - * @author Sean Owen - * @author alasdair@google.com (Alasdair Mackintosh) - */ -public final class EAN13Reader extends UPCEANReader { - - // For an EAN-13 barcode, the first digit is represented by the parities used - // to encode the next six digits, according to the table below. For example, - // if the barcode is 5 123456 789012 then the value of the first digit is - // signified by using odd for '1', even for '2', even for '3', odd for '4', - // odd for '5', and even for '6'. See http://en.wikipedia.org/wiki/EAN-13 - // - // Parity of next 6 digits - // Digit 0 1 2 3 4 5 - // 0 Odd Odd Odd Odd Odd Odd - // 1 Odd Odd Even Odd Even Even - // 2 Odd Odd Even Even Odd Even - // 3 Odd Odd Even Even Even Odd - // 4 Odd Even Odd Odd Even Even - // 5 Odd Even Even Odd Odd Even - // 6 Odd Even Even Even Odd Odd - // 7 Odd Even Odd Even Odd Even - // 8 Odd Even Odd Even Even Odd - // 9 Odd Even Even Odd Even Odd - // - // Note that the encoding for '0' uses the same parity as a UPC barcode. Hence - // a UPC barcode can be converted to an EAN-13 barcode by prepending a 0. - // - // The encoding is represented by the following array, which is a bit pattern - // using Odd = 0 and Even = 1. For example, 5 is represented by: - // - // Odd Even Even Odd Odd Even - // in binary: - // 0 1 1 0 0 1 == 0x19 - // - static final int[] FIRST_DIGIT_ENCODINGS = { - 0x00, 0x0B, 0x0D, 0xE, 0x13, 0x19, 0x1C, 0x15, 0x16, 0x1A - }; - - private final int[] decodeMiddleCounters; - - public EAN13Reader() { - decodeMiddleCounters = new int[4]; - } - - @Override - protected int decodeMiddle(BitArray row, - int[] startRange, - StringBuilder resultString) throws NotFoundException { - int[] counters = decodeMiddleCounters; - counters[0] = 0; - counters[1] = 0; - counters[2] = 0; - counters[3] = 0; - int end = row.getSize(); - int rowOffset = startRange[1]; - - int lgPatternFound = 0; - - for (int x = 0; x < 6 && rowOffset < end; x++) { - int bestMatch = decodeDigit(row, counters, rowOffset, L_AND_G_PATTERNS); - resultString.append((char) ('0' + bestMatch % 10)); - for (int counter : counters) { - rowOffset += counter; - } - if (bestMatch >= 10) { - lgPatternFound |= 1 << (5 - x); - } - } - - determineFirstDigit(resultString, lgPatternFound); - - int[] middleRange = findGuardPattern(row, rowOffset, true, MIDDLE_PATTERN); - rowOffset = middleRange[1]; - - for (int x = 0; x < 6 && rowOffset < end; x++) { - int bestMatch = decodeDigit(row, counters, rowOffset, L_PATTERNS); - resultString.append((char) ('0' + bestMatch)); - for (int counter : counters) { - rowOffset += counter; - } - } - - return rowOffset; - } - - @Override - BarcodeFormat getBarcodeFormat() { - return BarcodeFormat.EAN_13; - } - - /** - * Based on pattern of odd-even ('L' and 'G') patterns used to encoded the explicitly-encoded - * digits in a barcode, determines the implicitly encoded first digit and adds it to the - * result string. - * - * @param resultString string to insert decoded first digit into - * @param lgPatternFound int whose bits indicates the pattern of odd/even L/G patterns used to - * encode digits - * @throws NotFoundException if first digit cannot be determined - */ - private static void determineFirstDigit(StringBuilder resultString, int lgPatternFound) - throws NotFoundException { - for (int d = 0; d < 10; d++) { - if (lgPatternFound == FIRST_DIGIT_ENCODINGS[d]) { - resultString.insert(0, (char) ('0' + d)); - return; - } - } - throw NotFoundException.getNotFoundInstance(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/EAN13Writer.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/EAN13Writer.java deleted file mode 100755 index ecc64402..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/EAN13Writer.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.EncodeHintType; -import com.google.zxing.FormatException; -import com.google.zxing.WriterException; -import com.google.zxing.common.BitMatrix; - -/** - * This object renders an EAN13 code as a {@link BitMatrix}. - * - * @author aripollak@gmail.com (Ari Pollak) - */ -public final class EAN13Writer extends UPCEANWriter { - - private static final int CODE_WIDTH = 3 + // start guard - (7 * 6) + // left bars - 5 + // middle guard - (7 * 6) + // right bars - 3; // end guard - - @Override - public BitMatrix encode(String contents, - BarcodeFormat format, - int width, - int height, - Map<EncodeHintType,?> hints) throws WriterException { - if (format != BarcodeFormat.EAN_13) { - throw new IllegalArgumentException("Can only encode EAN_13, but got " + format); - } - - return super.encode(contents, format, width, height, hints); - } - - @Override - public boolean[] encode(String contents) { - if (contents.length() != 13) { - throw new IllegalArgumentException( - "Requested contents should be 13 digits long, but got " + contents.length()); - } - try { - if (!UPCEANReader.checkStandardUPCEANChecksum(contents)) { - throw new IllegalArgumentException("Contents do not pass checksum"); - } - } catch (FormatException ignored) { - throw new IllegalArgumentException("Illegal contents"); - } - - int firstDigit = Integer.parseInt(contents.substring(0, 1)); - int parities = EAN13Reader.FIRST_DIGIT_ENCODINGS[firstDigit]; - boolean[] result = new boolean[CODE_WIDTH]; - int pos = 0; - - pos += appendPattern(result, pos, UPCEANReader.START_END_PATTERN, true); - - // See {@link #EAN13Reader} for a description of how the first digit & left bars are encoded - for (int i = 1; i <= 6; i++) { - int digit = Integer.parseInt(contents.substring(i, i + 1)); - if ((parities >> (6 - i) & 1) == 1) { - digit += 10; - } - pos += appendPattern(result, pos, UPCEANReader.L_AND_G_PATTERNS[digit], false); - } - - pos += appendPattern(result, pos, UPCEANReader.MIDDLE_PATTERN, false); - - for (int i = 7; i <= 12; i++) { - int digit = Integer.parseInt(contents.substring(i, i + 1)); - pos += appendPattern(result, pos, UPCEANReader.L_PATTERNS[digit], true); - } - appendPattern(result, pos, UPCEANReader.START_END_PATTERN, true); - - return result; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/EAN8Reader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/EAN8Reader.java deleted file mode 100755 index 8d0b7e21..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/EAN8Reader.java +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.NotFoundException; -import com.google.zxing.common.BitArray; - -/** - * <p>Implements decoding of the EAN-8 format.</p> - * - * @author Sean Owen - */ -public final class EAN8Reader extends UPCEANReader { - - private final int[] decodeMiddleCounters; - - public EAN8Reader() { - decodeMiddleCounters = new int[4]; - } - - @Override - protected int decodeMiddle(BitArray row, - int[] startRange, - StringBuilder result) throws NotFoundException { - int[] counters = decodeMiddleCounters; - counters[0] = 0; - counters[1] = 0; - counters[2] = 0; - counters[3] = 0; - int end = row.getSize(); - int rowOffset = startRange[1]; - - for (int x = 0; x < 4 && rowOffset < end; x++) { - int bestMatch = decodeDigit(row, counters, rowOffset, L_PATTERNS); - result.append((char) ('0' + bestMatch)); - for (int counter : counters) { - rowOffset += counter; - } - } - - int[] middleRange = findGuardPattern(row, rowOffset, true, MIDDLE_PATTERN); - rowOffset = middleRange[1]; - - for (int x = 0; x < 4 && rowOffset < end; x++) { - int bestMatch = decodeDigit(row, counters, rowOffset, L_PATTERNS); - result.append((char) ('0' + bestMatch)); - for (int counter : counters) { - rowOffset += counter; - } - } - - return rowOffset; - } - - @Override - BarcodeFormat getBarcodeFormat() { - return BarcodeFormat.EAN_8; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/EAN8Writer.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/EAN8Writer.java deleted file mode 100755 index 25ea277b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/EAN8Writer.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.EncodeHintType; -import com.google.zxing.WriterException; -import com.google.zxing.common.BitMatrix; - -/** - * This object renders an EAN8 code as a {@link BitMatrix}. - * - * @author aripollak@gmail.com (Ari Pollak) - */ -public final class EAN8Writer extends UPCEANWriter { - - private static final int CODE_WIDTH = 3 + // start guard - (7 * 4) + // left bars - 5 + // middle guard - (7 * 4) + // right bars - 3; // end guard - - @Override - public BitMatrix encode(String contents, - BarcodeFormat format, - int width, - int height, - Map<EncodeHintType,?> hints) throws WriterException { - if (format != BarcodeFormat.EAN_8) { - throw new IllegalArgumentException("Can only encode EAN_8, but got " - + format); - } - - return super.encode(contents, format, width, height, hints); - } - - /** - * @return a byte array of horizontal pixels (false = white, true = black) - */ - @Override - public boolean[] encode(String contents) { - if (contents.length() != 8) { - throw new IllegalArgumentException( - "Requested contents should be 8 digits long, but got " + contents.length()); - } - - boolean[] result = new boolean[CODE_WIDTH]; - int pos = 0; - - pos += appendPattern(result, pos, UPCEANReader.START_END_PATTERN, true); - - for (int i = 0; i <= 3; i++) { - int digit = Integer.parseInt(contents.substring(i, i + 1)); - pos += appendPattern(result, pos, UPCEANReader.L_PATTERNS[digit], false); - } - - pos += appendPattern(result, pos, UPCEANReader.MIDDLE_PATTERN, false); - - for (int i = 4; i <= 7; i++) { - int digit = Integer.parseInt(contents.substring(i, i + 1)); - pos += appendPattern(result, pos, UPCEANReader.L_PATTERNS[digit], true); - } - appendPattern(result, pos, UPCEANReader.START_END_PATTERN, true); - - return result; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/EANManufacturerOrgSupport.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/EANManufacturerOrgSupport.java deleted file mode 100755 index e5b43926..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/EANManufacturerOrgSupport.java +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.ArrayList; -import java.util.List; - -/** - * Records EAN prefix to GS1 Member Organization, where the member organization - * correlates strongly with a country. This is an imperfect means of identifying - * a country of origin by EAN-13 barcode value. See - * <a href="http://en.wikipedia.org/wiki/List_of_GS1_country_codes"> - * http://en.wikipedia.org/wiki/List_of_GS1_country_codes</a>. - * - * @author Sean Owen - */ -final class EANManufacturerOrgSupport { - - private final List<int[]> ranges = new ArrayList<>(); - private final List<String> countryIdentifiers = new ArrayList<>(); - - String lookupCountryIdentifier(String productCode) { - initIfNeeded(); - int prefix = Integer.parseInt(productCode.substring(0, 3)); - int max = ranges.size(); - for (int i = 0; i < max; i++) { - int[] range = ranges.get(i); - int start = range[0]; - if (prefix < start) { - return null; - } - int end = range.length == 1 ? start : range[1]; - if (prefix <= end) { - return countryIdentifiers.get(i); - } - } - return null; - } - - private void add(int[] range, String id) { - ranges.add(range); - countryIdentifiers.add(id); - } - - private synchronized void initIfNeeded() { - if (!ranges.isEmpty()) { - return; - } - add(new int[] {0,19}, "US/CA"); - add(new int[] {30,39}, "US"); - add(new int[] {60,139}, "US/CA"); - add(new int[] {300,379}, "FR"); - add(new int[] {380}, "BG"); - add(new int[] {383}, "SI"); - add(new int[] {385}, "HR"); - add(new int[] {387}, "BA"); - add(new int[] {400,440}, "DE"); - add(new int[] {450,459}, "JP"); - add(new int[] {460,469}, "RU"); - add(new int[] {471}, "TW"); - add(new int[] {474}, "EE"); - add(new int[] {475}, "LV"); - add(new int[] {476}, "AZ"); - add(new int[] {477}, "LT"); - add(new int[] {478}, "UZ"); - add(new int[] {479}, "LK"); - add(new int[] {480}, "PH"); - add(new int[] {481}, "BY"); - add(new int[] {482}, "UA"); - add(new int[] {484}, "MD"); - add(new int[] {485}, "AM"); - add(new int[] {486}, "GE"); - add(new int[] {487}, "KZ"); - add(new int[] {489}, "HK"); - add(new int[] {490,499}, "JP"); - add(new int[] {500,509}, "GB"); - add(new int[] {520}, "GR"); - add(new int[] {528}, "LB"); - add(new int[] {529}, "CY"); - add(new int[] {531}, "MK"); - add(new int[] {535}, "MT"); - add(new int[] {539}, "IE"); - add(new int[] {540,549}, "BE/LU"); - add(new int[] {560}, "PT"); - add(new int[] {569}, "IS"); - add(new int[] {570,579}, "DK"); - add(new int[] {590}, "PL"); - add(new int[] {594}, "RO"); - add(new int[] {599}, "HU"); - add(new int[] {600,601}, "ZA"); - add(new int[] {603}, "GH"); - add(new int[] {608}, "BH"); - add(new int[] {609}, "MU"); - add(new int[] {611}, "MA"); - add(new int[] {613}, "DZ"); - add(new int[] {616}, "KE"); - add(new int[] {618}, "CI"); - add(new int[] {619}, "TN"); - add(new int[] {621}, "SY"); - add(new int[] {622}, "EG"); - add(new int[] {624}, "LY"); - add(new int[] {625}, "JO"); - add(new int[] {626}, "IR"); - add(new int[] {627}, "KW"); - add(new int[] {628}, "SA"); - add(new int[] {629}, "AE"); - add(new int[] {640,649}, "FI"); - add(new int[] {690,695}, "CN"); - add(new int[] {700,709}, "NO"); - add(new int[] {729}, "IL"); - add(new int[] {730,739}, "SE"); - add(new int[] {740}, "GT"); - add(new int[] {741}, "SV"); - add(new int[] {742}, "HN"); - add(new int[] {743}, "NI"); - add(new int[] {744}, "CR"); - add(new int[] {745}, "PA"); - add(new int[] {746}, "DO"); - add(new int[] {750}, "MX"); - add(new int[] {754,755}, "CA"); - add(new int[] {759}, "VE"); - add(new int[] {760,769}, "CH"); - add(new int[] {770}, "CO"); - add(new int[] {773}, "UY"); - add(new int[] {775}, "PE"); - add(new int[] {777}, "BO"); - add(new int[] {779}, "AR"); - add(new int[] {780}, "CL"); - add(new int[] {784}, "PY"); - add(new int[] {785}, "PE"); - add(new int[] {786}, "EC"); - add(new int[] {789,790}, "BR"); - add(new int[] {800,839}, "IT"); - add(new int[] {840,849}, "ES"); - add(new int[] {850}, "CU"); - add(new int[] {858}, "SK"); - add(new int[] {859}, "CZ"); - add(new int[] {860}, "YU"); - add(new int[] {865}, "MN"); - add(new int[] {867}, "KP"); - add(new int[] {868,869}, "TR"); - add(new int[] {870,879}, "NL"); - add(new int[] {880}, "KR"); - add(new int[] {885}, "TH"); - add(new int[] {888}, "SG"); - add(new int[] {890}, "IN"); - add(new int[] {893}, "VN"); - add(new int[] {896}, "PK"); - add(new int[] {899}, "ID"); - add(new int[] {900,919}, "AT"); - add(new int[] {930,939}, "AU"); - add(new int[] {940,949}, "AZ"); - add(new int[] {955}, "MY"); - add(new int[] {958}, "MO"); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/ITFReader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/ITFReader.java deleted file mode 100755 index 7ea18346..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/ITFReader.java +++ /dev/null @@ -1,354 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.DecodeHintType; -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.Result; -import com.google.zxing.ResultPoint; -import com.google.zxing.common.BitArray; - -/** - * <p>Implements decoding of the ITF format, or Interleaved Two of Five.</p> - * - * <p>This Reader will scan ITF barcodes of certain lengths only. - * At the moment it reads length 6, 8, 10, 12, 14, 16, 18, 20, 24, and 44 as these have appeared "in the wild". Not all - * lengths are scanned, especially shorter ones, to avoid false positives. This in turn is due to a lack of - * required checksum function.</p> - * - * <p>The checksum is optional and is not applied by this Reader. The consumer of the decoded - * value will have to apply a checksum if required.</p> - * - * <p><a href="http://en.wikipedia.org/wiki/Interleaved_2_of_5">http://en.wikipedia.org/wiki/Interleaved_2_of_5</a> - * is a great reference for Interleaved 2 of 5 information.</p> - * - * @author kevin.osullivan@sita.aero, SITA Lab. - */ -public final class ITFReader extends OneDReader { - - private static final float MAX_AVG_VARIANCE = 0.38f; - private static final float MAX_INDIVIDUAL_VARIANCE = 0.78f; - - private static final int W = 3; // Pixel width of a wide line - private static final int N = 1; // Pixed width of a narrow line - - /** Valid ITF lengths. Anything longer than the largest value is also allowed. */ - private static final int[] DEFAULT_ALLOWED_LENGTHS = { 6, 8, 10, 12, 14 }; - - // Stores the actual narrow line width of the image being decoded. - private int narrowLineWidth = -1; - - /** - * Start/end guard pattern. - * - * Note: The end pattern is reversed because the row is reversed before - * searching for the END_PATTERN - */ - private static final int[] START_PATTERN = {N, N, N, N}; - private static final int[] END_PATTERN_REVERSED = {N, N, W}; - - /** - * Patterns of Wide / Narrow lines to indicate each digit - */ - static final int[][] PATTERNS = { - {N, N, W, W, N}, // 0 - {W, N, N, N, W}, // 1 - {N, W, N, N, W}, // 2 - {W, W, N, N, N}, // 3 - {N, N, W, N, W}, // 4 - {W, N, W, N, N}, // 5 - {N, W, W, N, N}, // 6 - {N, N, N, W, W}, // 7 - {W, N, N, W, N}, // 8 - {N, W, N, W, N} // 9 - }; - - @Override - public Result decodeRow(int rowNumber, BitArray row, Map<DecodeHintType,?> hints) - throws FormatException, NotFoundException { - - // Find out where the Middle section (payload) starts & ends - int[] startRange = decodeStart(row); - int[] endRange = decodeEnd(row); - - StringBuilder result = new StringBuilder(20); - decodeMiddle(row, startRange[1], endRange[0], result); - String resultString = result.toString(); - - int[] allowedLengths = null; - if (hints != null) { - allowedLengths = (int[]) hints.get(DecodeHintType.ALLOWED_LENGTHS); - - } - if (allowedLengths == null) { - allowedLengths = DEFAULT_ALLOWED_LENGTHS; - } - - // To avoid false positives with 2D barcodes (and other patterns), make - // an assumption that the decoded string must be a 'standard' length if it's short - int length = resultString.length(); - boolean lengthOK = false; - int maxAllowedLength = 0; - for (int allowedLength : allowedLengths) { - if (length == allowedLength) { - lengthOK = true; - break; - } - if (allowedLength > maxAllowedLength) { - maxAllowedLength = allowedLength; - } - } - if (!lengthOK && length > maxAllowedLength) { - lengthOK = true; - } - if (!lengthOK) { - throw FormatException.getFormatInstance(); - } - - return new Result( - resultString, - null, // no natural byte representation for these barcodes - new ResultPoint[] { new ResultPoint(startRange[1], (float) rowNumber), - new ResultPoint(endRange[0], (float) rowNumber)}, - BarcodeFormat.ITF); - } - - /** - * @param row row of black/white values to search - * @param payloadStart offset of start pattern - * @param resultString {@link StringBuilder} to append decoded chars to - * @throws NotFoundException if decoding could not complete successfully - */ - private static void decodeMiddle(BitArray row, - int payloadStart, - int payloadEnd, - StringBuilder resultString) throws NotFoundException { - - // Digits are interleaved in pairs - 5 black lines for one digit, and the - // 5 - // interleaved white lines for the second digit. - // Therefore, need to scan 10 lines and then - // split these into two arrays - int[] counterDigitPair = new int[10]; - int[] counterBlack = new int[5]; - int[] counterWhite = new int[5]; - - while (payloadStart < payloadEnd) { - - // Get 10 runs of black/white. - recordPattern(row, payloadStart, counterDigitPair); - // Split them into each array - for (int k = 0; k < 5; k++) { - int twoK = 2 * k; - counterBlack[k] = counterDigitPair[twoK]; - counterWhite[k] = counterDigitPair[twoK + 1]; - } - - int bestMatch = decodeDigit(counterBlack); - resultString.append((char) ('0' + bestMatch)); - bestMatch = decodeDigit(counterWhite); - resultString.append((char) ('0' + bestMatch)); - - for (int counterDigit : counterDigitPair) { - payloadStart += counterDigit; - } - } - } - - /** - * Identify where the start of the middle / payload section starts. - * - * @param row row of black/white values to search - * @return Array, containing index of start of 'start block' and end of - * 'start block' - * @throws NotFoundException - */ - int[] decodeStart(BitArray row) throws NotFoundException { - int endStart = skipWhiteSpace(row); - int[] startPattern = findGuardPattern(row, endStart, START_PATTERN); - - // Determine the width of a narrow line in pixels. We can do this by - // getting the width of the start pattern and dividing by 4 because its - // made up of 4 narrow lines. - this.narrowLineWidth = (startPattern[1] - startPattern[0]) / 4; - - validateQuietZone(row, startPattern[0]); - - return startPattern; - } - - /** - * The start & end patterns must be pre/post fixed by a quiet zone. This - * zone must be at least 10 times the width of a narrow line. Scan back until - * we either get to the start of the barcode or match the necessary number of - * quiet zone pixels. - * - * Note: Its assumed the row is reversed when using this method to find - * quiet zone after the end pattern. - * - * ref: http://www.barcode-1.net/i25code.html - * - * @param row bit array representing the scanned barcode. - * @param startPattern index into row of the start or end pattern. - * @throws NotFoundException if the quiet zone cannot be found, a ReaderException is thrown. - */ - private void validateQuietZone(BitArray row, int startPattern) throws NotFoundException { - - int quietCount = this.narrowLineWidth * 10; // expect to find this many pixels of quiet zone - - // if there are not so many pixel at all let's try as many as possible - quietCount = quietCount < startPattern ? quietCount : startPattern; - - for (int i = startPattern - 1; quietCount > 0 && i >= 0; i--) { - if (row.get(i)) { - break; - } - quietCount--; - } - if (quietCount != 0) { - // Unable to find the necessary number of quiet zone pixels. - throw NotFoundException.getNotFoundInstance(); - } - } - - /** - * Skip all whitespace until we get to the first black line. - * - * @param row row of black/white values to search - * @return index of the first black line. - * @throws NotFoundException Throws exception if no black lines are found in the row - */ - private static int skipWhiteSpace(BitArray row) throws NotFoundException { - int width = row.getSize(); - int endStart = row.getNextSet(0); - if (endStart == width) { - throw NotFoundException.getNotFoundInstance(); - } - - return endStart; - } - - /** - * Identify where the end of the middle / payload section ends. - * - * @param row row of black/white values to search - * @return Array, containing index of start of 'end block' and end of 'end - * block' - * @throws NotFoundException - */ - int[] decodeEnd(BitArray row) throws NotFoundException { - - // For convenience, reverse the row and then - // search from 'the start' for the end block - row.reverse(); - try { - int endStart = skipWhiteSpace(row); - int[] endPattern = findGuardPattern(row, endStart, END_PATTERN_REVERSED); - - // The start & end patterns must be pre/post fixed by a quiet zone. This - // zone must be at least 10 times the width of a narrow line. - // ref: http://www.barcode-1.net/i25code.html - validateQuietZone(row, endPattern[0]); - - // Now recalculate the indices of where the 'endblock' starts & stops to - // accommodate - // the reversed nature of the search - int temp = endPattern[0]; - endPattern[0] = row.getSize() - endPattern[1]; - endPattern[1] = row.getSize() - temp; - - return endPattern; - } finally { - // Put the row back the right way. - row.reverse(); - } - } - - /** - * @param row row of black/white values to search - * @param rowOffset position to start search - * @param pattern pattern of counts of number of black and white pixels that are - * being searched for as a pattern - * @return start/end horizontal offset of guard pattern, as an array of two - * ints - * @throws NotFoundException if pattern is not found - */ - private static int[] findGuardPattern(BitArray row, - int rowOffset, - int[] pattern) throws NotFoundException { - int patternLength = pattern.length; - int[] counters = new int[patternLength]; - int width = row.getSize(); - boolean isWhite = false; - - int counterPosition = 0; - int patternStart = rowOffset; - for (int x = rowOffset; x < width; x++) { - if (row.get(x) ^ isWhite) { - counters[counterPosition]++; - } else { - if (counterPosition == patternLength - 1) { - if (patternMatchVariance(counters, pattern, MAX_INDIVIDUAL_VARIANCE) < MAX_AVG_VARIANCE) { - return new int[]{patternStart, x}; - } - patternStart += counters[0] + counters[1]; - System.arraycopy(counters, 2, counters, 0, patternLength - 2); - counters[patternLength - 2] = 0; - counters[patternLength - 1] = 0; - counterPosition--; - } else { - counterPosition++; - } - counters[counterPosition] = 1; - isWhite = !isWhite; - } - } - throw NotFoundException.getNotFoundInstance(); - } - - /** - * Attempts to decode a sequence of ITF black/white lines into single - * digit. - * - * @param counters the counts of runs of observed black/white/black/... values - * @return The decoded digit - * @throws NotFoundException if digit cannot be decoded - */ - private static int decodeDigit(int[] counters) throws NotFoundException { - float bestVariance = MAX_AVG_VARIANCE; // worst variance we'll accept - int bestMatch = -1; - int max = PATTERNS.length; - for (int i = 0; i < max; i++) { - int[] pattern = PATTERNS[i]; - float variance = patternMatchVariance(counters, pattern, MAX_INDIVIDUAL_VARIANCE); - if (variance < bestVariance) { - bestVariance = variance; - bestMatch = i; - } - } - if (bestMatch >= 0) { - return bestMatch; - } else { - throw NotFoundException.getNotFoundInstance(); - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/ITFWriter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/ITFWriter.java deleted file mode 100755 index 7f039758..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/ITFWriter.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.EncodeHintType; -import com.google.zxing.WriterException; -import com.google.zxing.common.BitMatrix; - -/** - * This object renders a ITF code as a {@link BitMatrix}. - * - * @author erik.barbara@gmail.com (Erik Barbara) - */ -public final class ITFWriter extends OneDimensionalCodeWriter { - - private static final int[] START_PATTERN = {1, 1, 1, 1}; - private static final int[] END_PATTERN = {3, 1, 1}; - - @Override - public BitMatrix encode(String contents, - BarcodeFormat format, - int width, - int height, - Map<EncodeHintType,?> hints) throws WriterException { - if (format != BarcodeFormat.ITF) { - throw new IllegalArgumentException("Can only encode ITF, but got " + format); - } - - return super.encode(contents, format, width, height, hints); - } - - @Override - public boolean[] encode(String contents) { - int length = contents.length(); - if (length % 2 != 0) { - throw new IllegalArgumentException("The length of the input should be even"); - } - if (length > 80) { - throw new IllegalArgumentException( - "Requested contents should be less than 80 digits long, but got " + length); - } - boolean[] result = new boolean[9 + 9 * length]; - int pos = appendPattern(result, 0, START_PATTERN, true); - for (int i = 0; i < length; i += 2) { - int one = Character.digit(contents.charAt(i), 10); - int two = Character.digit(contents.charAt(i+1), 10); - int[] encoding = new int[18]; - for (int j = 0; j < 5; j++) { - encoding[2 * j] = ITFReader.PATTERNS[one][j]; - encoding[2 * j + 1] = ITFReader.PATTERNS[two][j]; - } - pos += appendPattern(result, pos, encoding, true); - } - appendPattern(result, pos, END_PATTERN, true); - - return result; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/MultiFormatOneDReader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/MultiFormatOneDReader.java deleted file mode 100755 index 14b9e25d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/MultiFormatOneDReader.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.DecodeHintType; -import com.google.zxing.NotFoundException; -import com.google.zxing.Reader; -import com.google.zxing.ReaderException; -import com.google.zxing.Result; -import com.google.zxing.common.BitArray; -import com.google.zxing.oned.rss.RSS14Reader; -import com.google.zxing.oned.rss.expanded.RSSExpandedReader; - -/** - * @author dswitkin@google.com (Daniel Switkin) - * @author Sean Owen - */ -public final class MultiFormatOneDReader extends OneDReader { - - private final OneDReader[] readers; - - public MultiFormatOneDReader(Map<DecodeHintType,?> hints) { - @SuppressWarnings("unchecked") - Collection<BarcodeFormat> possibleFormats = hints == null ? null : - (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS); - boolean useCode39CheckDigit = hints != null && - hints.get(DecodeHintType.ASSUME_CODE_39_CHECK_DIGIT) != null; - Collection<OneDReader> readers = new ArrayList<>(); - if (possibleFormats != null) { - if (possibleFormats.contains(BarcodeFormat.EAN_13) || - possibleFormats.contains(BarcodeFormat.UPC_A) || - possibleFormats.contains(BarcodeFormat.EAN_8) || - possibleFormats.contains(BarcodeFormat.UPC_E)) { - readers.add(new MultiFormatUPCEANReader(hints)); - } - if (possibleFormats.contains(BarcodeFormat.CODE_39)) { - readers.add(new Code39Reader(useCode39CheckDigit)); - } - if (possibleFormats.contains(BarcodeFormat.CODE_93)) { - readers.add(new Code93Reader()); - } - if (possibleFormats.contains(BarcodeFormat.CODE_128)) { - readers.add(new Code128Reader()); - } - if (possibleFormats.contains(BarcodeFormat.ITF)) { - readers.add(new ITFReader()); - } - if (possibleFormats.contains(BarcodeFormat.CODABAR)) { - readers.add(new CodaBarReader()); - } - if (possibleFormats.contains(BarcodeFormat.RSS_14)) { - readers.add(new RSS14Reader()); - } - if (possibleFormats.contains(BarcodeFormat.RSS_EXPANDED)){ - readers.add(new RSSExpandedReader()); - } - } - if (readers.isEmpty()) { - readers.add(new MultiFormatUPCEANReader(hints)); - readers.add(new Code39Reader()); - readers.add(new CodaBarReader()); - readers.add(new Code93Reader()); - readers.add(new Code128Reader()); - readers.add(new ITFReader()); - readers.add(new RSS14Reader()); - readers.add(new RSSExpandedReader()); - } - this.readers = readers.toArray(new OneDReader[readers.size()]); - } - - @Override - public Result decodeRow(int rowNumber, - BitArray row, - Map<DecodeHintType,?> hints) throws NotFoundException { - for (OneDReader reader : readers) { - try { - return reader.decodeRow(rowNumber, row, hints); - } catch (ReaderException re) { - // continue - } - } - - throw NotFoundException.getNotFoundInstance(); - } - - @Override - public void reset() { - for (Reader reader : readers) { - reader.reset(); - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/MultiFormatUPCEANReader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/MultiFormatUPCEANReader.java deleted file mode 100755 index 8759b182..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/MultiFormatUPCEANReader.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.DecodeHintType; -import com.google.zxing.NotFoundException; -import com.google.zxing.Reader; -import com.google.zxing.ReaderException; -import com.google.zxing.Result; -import com.google.zxing.common.BitArray; - -/** - * <p>A reader that can read all available UPC/EAN formats. If a caller wants to try to - * read all such formats, it is most efficient to use this implementation rather than invoke - * individual readers.</p> - * - * @author Sean Owen - */ -public final class MultiFormatUPCEANReader extends OneDReader { - - private final UPCEANReader[] readers; - - public MultiFormatUPCEANReader(Map<DecodeHintType,?> hints) { - @SuppressWarnings("unchecked") - Collection<BarcodeFormat> possibleFormats = hints == null ? null : - (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS); - Collection<UPCEANReader> readers = new ArrayList<>(); - if (possibleFormats != null) { - if (possibleFormats.contains(BarcodeFormat.EAN_13)) { - readers.add(new EAN13Reader()); - } else if (possibleFormats.contains(BarcodeFormat.UPC_A)) { - readers.add(new UPCAReader()); - } - if (possibleFormats.contains(BarcodeFormat.EAN_8)) { - readers.add(new EAN8Reader()); - } - if (possibleFormats.contains(BarcodeFormat.UPC_E)) { - readers.add(new UPCEReader()); - } - } - if (readers.isEmpty()) { - readers.add(new EAN13Reader()); - // UPC-A is covered by EAN-13 - readers.add(new EAN8Reader()); - readers.add(new UPCEReader()); - } - this.readers = readers.toArray(new UPCEANReader[readers.size()]); - } - - @Override - public Result decodeRow(int rowNumber, - BitArray row, - Map<DecodeHintType,?> hints) throws NotFoundException { - // Compute this location once and reuse it on multiple implementations - int[] startGuardPattern = UPCEANReader.findStartGuardPattern(row); - for (UPCEANReader reader : readers) { - Result result; - try { - result = reader.decodeRow(rowNumber, row, startGuardPattern, hints); - } catch (ReaderException ignored) { - continue; - } - // Special case: a 12-digit code encoded in UPC-A is identical to a "0" - // followed by those 12 digits encoded as EAN-13. Each will recognize such a code, - // UPC-A as a 12-digit string and EAN-13 as a 13-digit string starting with "0". - // Individually these are correct and their readers will both read such a code - // and correctly call it EAN-13, or UPC-A, respectively. - // - // In this case, if we've been looking for both types, we'd like to call it - // a UPC-A code. But for efficiency we only run the EAN-13 decoder to also read - // UPC-A. So we special case it here, and convert an EAN-13 result to a UPC-A - // result if appropriate. - // - // But, don't return UPC-A if UPC-A was not a requested format! - boolean ean13MayBeUPCA = - result.getBarcodeFormat() == BarcodeFormat.EAN_13 && - result.getText().charAt(0) == '0'; - @SuppressWarnings("unchecked") - Collection<BarcodeFormat> possibleFormats = - hints == null ? null : (Collection<BarcodeFormat>) hints.get(DecodeHintType.POSSIBLE_FORMATS); - boolean canReturnUPCA = possibleFormats == null || possibleFormats.contains(BarcodeFormat.UPC_A); - - if (ean13MayBeUPCA && canReturnUPCA) { - // Transfer the metdata across - Result resultUPCA = new Result(result.getText().substring(1), - result.getRawBytes(), - result.getResultPoints(), - BarcodeFormat.UPC_A); - resultUPCA.putAllMetadata(result.getResultMetadata()); - return resultUPCA; - } - return result; - } - - throw NotFoundException.getNotFoundInstance(); - } - - @Override - public void reset() { - for (Reader reader : readers) { - reader.reset(); - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/OneDReader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/OneDReader.java deleted file mode 100755 index 15814ad1..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/OneDReader.java +++ /dev/null @@ -1,297 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.Arrays; -import java.util.EnumMap; -import java.util.Map; - -import com.google.zxing.BinaryBitmap; -import com.google.zxing.ChecksumException; -import com.google.zxing.DecodeHintType; -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.Reader; -import com.google.zxing.ReaderException; -import com.google.zxing.Result; -import com.google.zxing.ResultMetadataType; -import com.google.zxing.ResultPoint; -import com.google.zxing.common.BitArray; - -/** - * Encapsulates functionality and implementation that is common to all families - * of one-dimensional barcodes. - * - * @author dswitkin@google.com (Daniel Switkin) - * @author Sean Owen - */ -public abstract class OneDReader implements Reader { - - @Override - public Result decode(BinaryBitmap image) throws NotFoundException, FormatException { - return decode(image, null); - } - - // Note that we don't try rotation without the try harder flag, even if rotation was supported. - @Override - public Result decode(BinaryBitmap image, - Map<DecodeHintType,?> hints) throws NotFoundException, FormatException { - try { - return doDecode(image, hints); - } catch (NotFoundException nfe) { - boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER); - if (tryHarder && image.isRotateSupported()) { - BinaryBitmap rotatedImage = image.rotateCounterClockwise(); - Result result = doDecode(rotatedImage, hints); - // Record that we found it rotated 90 degrees CCW / 270 degrees CW - Map<ResultMetadataType,?> metadata = result.getResultMetadata(); - int orientation = 270; - if (metadata != null && metadata.containsKey(ResultMetadataType.ORIENTATION)) { - // But if we found it reversed in doDecode(), add in that result here: - orientation = (orientation + - (Integer) metadata.get(ResultMetadataType.ORIENTATION)) % 360; - } - result.putMetadata(ResultMetadataType.ORIENTATION, orientation); - // Update result points - ResultPoint[] points = result.getResultPoints(); - if (points != null) { - int height = rotatedImage.getHeight(); - for (int i = 0; i < points.length; i++) { - points[i] = new ResultPoint(height - points[i].getY() - 1, points[i].getX()); - } - } - return result; - } else { - throw nfe; - } - } - } - - @Override - public void reset() { - // do nothing - } - - /** - * We're going to examine rows from the middle outward, searching alternately above and below the - * middle, and farther out each time. rowStep is the number of rows between each successive - * attempt above and below the middle. So we'd scan row middle, then middle - rowStep, then - * middle + rowStep, then middle - (2 * rowStep), etc. - * rowStep is bigger as the image is taller, but is always at least 1. We've somewhat arbitrarily - * decided that moving up and down by about 1/16 of the image is pretty good; we try more of the - * image if "trying harder". - * - * @param image The image to decode - * @param hints Any hints that were requested - * @return The contents of the decoded barcode - * @throws NotFoundException Any spontaneous errors which occur - */ - private Result doDecode(BinaryBitmap image, - Map<DecodeHintType,?> hints) throws NotFoundException { - int width = image.getWidth(); - int height = image.getHeight(); - BitArray row = new BitArray(width); - - int middle = height >> 1; - boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER); - int rowStep = Math.max(1, height >> (tryHarder ? 8 : 5)); - int maxLines; - if (tryHarder) { - maxLines = height; // Look at the whole image, not just the center - } else { - maxLines = 15; // 15 rows spaced 1/32 apart is roughly the middle half of the image - } - - for (int x = 0; x < maxLines; x++) { - - // Scanning from the middle out. Determine which row we're looking at next: - int rowStepsAboveOrBelow = (x + 1) / 2; - boolean isAbove = (x & 0x01) == 0; // i.e. is x even? - int rowNumber = middle + rowStep * (isAbove ? rowStepsAboveOrBelow : -rowStepsAboveOrBelow); - if (rowNumber < 0 || rowNumber >= height) { - // Oops, if we run off the top or bottom, stop - break; - } - - // Estimate black point for this row and load it: - try { - row = image.getBlackRow(rowNumber, row); - } catch (NotFoundException ignored) { - continue; - } - - // While we have the image data in a BitArray, it's fairly cheap to reverse it in place to - // handle decoding upside down barcodes. - for (int attempt = 0; attempt < 2; attempt++) { - if (attempt == 1) { // trying again? - row.reverse(); // reverse the row and continue - // This means we will only ever draw result points *once* in the life of this method - // since we want to avoid drawing the wrong points after flipping the row, and, - // don't want to clutter with noise from every single row scan -- just the scans - // that start on the center line. - if (hints != null && hints.containsKey(DecodeHintType.NEED_RESULT_POINT_CALLBACK)) { - Map<DecodeHintType,Object> newHints = new EnumMap<>(DecodeHintType.class); - newHints.putAll(hints); - newHints.remove(DecodeHintType.NEED_RESULT_POINT_CALLBACK); - hints = newHints; - } - } - try { - // Look for a barcode - Result result = decodeRow(rowNumber, row, hints); - // We found our barcode - if (attempt == 1) { - // But it was upside down, so note that - result.putMetadata(ResultMetadataType.ORIENTATION, 180); - // And remember to flip the result points horizontally. - ResultPoint[] points = result.getResultPoints(); - if (points != null) { - points[0] = new ResultPoint(width - points[0].getX() - 1, points[0].getY()); - points[1] = new ResultPoint(width - points[1].getX() - 1, points[1].getY()); - } - } - return result; - } catch (ReaderException re) { - // continue -- just couldn't decode this row - } - } - } - - throw NotFoundException.getNotFoundInstance(); - } - - /** - * Records the size of successive runs of white and black pixels in a row, starting at a given point. - * The values are recorded in the given array, and the number of runs recorded is equal to the size - * of the array. If the row starts on a white pixel at the given start point, then the first count - * recorded is the run of white pixels starting from that point; likewise it is the count of a run - * of black pixels if the row begin on a black pixels at that point. - * - * @param row row to count from - * @param start offset into row to start at - * @param counters array into which to record counts - * @throws NotFoundException if counters cannot be filled entirely from row before running out - * of pixels - */ - protected static void recordPattern(BitArray row, - int start, - int[] counters) throws NotFoundException { - int numCounters = counters.length; - Arrays.fill(counters, 0, numCounters, 0); - int end = row.getSize(); - if (start >= end) { - throw NotFoundException.getNotFoundInstance(); - } - boolean isWhite = !row.get(start); - int counterPosition = 0; - int i = start; - while (i < end) { - if (row.get(i) ^ isWhite) { // that is, exactly one is true - counters[counterPosition]++; - } else { - counterPosition++; - if (counterPosition == numCounters) { - break; - } else { - counters[counterPosition] = 1; - isWhite = !isWhite; - } - } - i++; - } - // If we read fully the last section of pixels and filled up our counters -- or filled - // the last counter but ran off the side of the image, OK. Otherwise, a problem. - if (!(counterPosition == numCounters || (counterPosition == numCounters - 1 && i == end))) { - throw NotFoundException.getNotFoundInstance(); - } - } - - protected static void recordPatternInReverse(BitArray row, int start, int[] counters) - throws NotFoundException { - // This could be more efficient I guess - int numTransitionsLeft = counters.length; - boolean last = row.get(start); - while (start > 0 && numTransitionsLeft >= 0) { - if (row.get(--start) != last) { - numTransitionsLeft--; - last = !last; - } - } - if (numTransitionsLeft >= 0) { - throw NotFoundException.getNotFoundInstance(); - } - recordPattern(row, start + 1, counters); - } - - /** - * Determines how closely a set of observed counts of runs of black/white values matches a given - * target pattern. This is reported as the ratio of the total variance from the expected pattern - * proportions across all pattern elements, to the length of the pattern. - * - * @param counters observed counters - * @param pattern expected pattern - * @param maxIndividualVariance The most any counter can differ before we give up - * @return ratio of total variance between counters and pattern compared to total pattern size - */ - protected static float patternMatchVariance(int[] counters, - int[] pattern, - float maxIndividualVariance) { - int numCounters = counters.length; - int total = 0; - int patternLength = 0; - for (int i = 0; i < numCounters; i++) { - total += counters[i]; - patternLength += pattern[i]; - } - if (total < patternLength) { - // If we don't even have one pixel per unit of bar width, assume this is too small - // to reliably match, so fail: - return Float.POSITIVE_INFINITY; - } - - float unitBarWidth = (float) total / patternLength; - maxIndividualVariance *= unitBarWidth; - - float totalVariance = 0.0f; - for (int x = 0; x < numCounters; x++) { - int counter = counters[x]; - float scaledPattern = pattern[x] * unitBarWidth; - float variance = counter > scaledPattern ? counter - scaledPattern : scaledPattern - counter; - if (variance > maxIndividualVariance) { - return Float.POSITIVE_INFINITY; - } - totalVariance += variance; - } - return totalVariance / total; - } - - /** - * <p>Attempts to decode a one-dimensional barcode format given a single row of - * an image.</p> - * - * @param rowNumber row number from top of the row - * @param row the black/white pixel data of the row - * @param hints decode hints - * @return {@link Result} containing encoded string and start/end of barcode - * @throws NotFoundException if no potential barcode is found - * @throws ChecksumException if a potential barcode is found but does not pass its checksum - * @throws FormatException if a potential barcode is found but format is invalid - */ - public abstract Result decodeRow(int rowNumber, BitArray row, Map<DecodeHintType,?> hints) - throws NotFoundException, ChecksumException, FormatException; - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/OneDimensionalCodeWriter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/OneDimensionalCodeWriter.java deleted file mode 100755 index 847ee8b0..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/OneDimensionalCodeWriter.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright 2011 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.EncodeHintType; -import com.google.zxing.Writer; -import com.google.zxing.WriterException; -import com.google.zxing.common.BitMatrix; - -/** - * <p>Encapsulates functionality and implementation that is common to one-dimensional barcodes.</p> - * - * @author dsbnatut@gmail.com (Kazuki Nishiura) - */ -public abstract class OneDimensionalCodeWriter implements Writer { - - @Override - public final BitMatrix encode(String contents, BarcodeFormat format, int width, int height) - throws WriterException { - return encode(contents, format, width, height, null); - } - - /** - * Encode the contents following specified format. - * {@code width} and {@code height} are required size. This method may return bigger size - * {@code BitMatrix} when specified size is too small. The user can set both {@code width} and - * {@code height} to zero to get minimum size barcode. If negative value is set to {@code width} - * or {@code height}, {@code IllegalArgumentException} is thrown. - */ - @Override - public BitMatrix encode(String contents, - BarcodeFormat format, - int width, - int height, - Map<EncodeHintType,?> hints) throws WriterException { - if (contents.isEmpty()) { - throw new IllegalArgumentException("Found empty contents"); - } - - if (width < 0 || height < 0) { - throw new IllegalArgumentException("Negative size is not allowed. Input: " - + width + 'x' + height); - } - - int sidesMargin = getDefaultMargin(); - if (hints != null && hints.containsKey(EncodeHintType.MARGIN)) { - sidesMargin = Integer.parseInt(hints.get(EncodeHintType.MARGIN).toString()); - } - - boolean[] code = encode(contents); - return renderResult(code, width, height, sidesMargin); - } - - /** - * @return a byte array of horizontal pixels (0 = white, 1 = black) - */ - private static BitMatrix renderResult(boolean[] code, int width, int height, int sidesMargin) { - int inputWidth = code.length; - // Add quiet zone on both sides. - int fullWidth = inputWidth + sidesMargin; - int outputWidth = Math.max(width, fullWidth); - int outputHeight = Math.max(1, height); - - int multiple = outputWidth / fullWidth; - int leftPadding = (outputWidth - (inputWidth * multiple)) / 2; - - BitMatrix output = new BitMatrix(outputWidth, outputHeight); - for (int inputX = 0, outputX = leftPadding; inputX < inputWidth; inputX++, outputX += multiple) { - if (code[inputX]) { - output.setRegion(outputX, 0, multiple, outputHeight); - } - } - return output; - } - - - /** - * @param target encode black/white pattern into this array - * @param pos position to start encoding at in {@code target} - * @param pattern lengths of black/white runs to encode - * @param startColor starting color - false for white, true for black - * @return the number of elements added to target. - */ - protected static int appendPattern(boolean[] target, int pos, int[] pattern, boolean startColor) { - boolean color = startColor; - int numAdded = 0; - for (int len : pattern) { - for (int j = 0; j < len; j++) { - target[pos++] = color; - } - numAdded += len; - color = !color; // flip color after each segment - } - return numAdded; - } - - public int getDefaultMargin() { - // CodaBar spec requires a side margin to be more than ten times wider than narrow space. - // This seems like a decent idea for a default for all formats. - return 10; - } - - /** - * Encode the contents to boolean array expression of one-dimensional barcode. - * Start code and end code should be included in result, and side margins should not be included. - * - * @param contents barcode contents to encode - * @return a {@code boolean[]} of horizontal pixels (false = white, true = black) - */ - public abstract boolean[] encode(String contents); -} - diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCAReader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCAReader.java deleted file mode 100755 index 75d1fa20..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCAReader.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.BinaryBitmap; -import com.google.zxing.ChecksumException; -import com.google.zxing.DecodeHintType; -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.Result; -import com.google.zxing.common.BitArray; - -/** - * <p>Implements decoding of the UPC-A format.</p> - * - * @author dswitkin@google.com (Daniel Switkin) - * @author Sean Owen - */ -public final class UPCAReader extends UPCEANReader { - - private final UPCEANReader ean13Reader = new EAN13Reader(); - - @Override - public Result decodeRow(int rowNumber, - BitArray row, - int[] startGuardRange, - Map<DecodeHintType,?> hints) - throws NotFoundException, FormatException, ChecksumException { - return maybeReturnResult(ean13Reader.decodeRow(rowNumber, row, startGuardRange, hints)); - } - - @Override - public Result decodeRow(int rowNumber, BitArray row, Map<DecodeHintType,?> hints) - throws NotFoundException, FormatException, ChecksumException { - return maybeReturnResult(ean13Reader.decodeRow(rowNumber, row, hints)); - } - - @Override - public Result decode(BinaryBitmap image) throws NotFoundException, FormatException { - return maybeReturnResult(ean13Reader.decode(image)); - } - - @Override - public Result decode(BinaryBitmap image, Map<DecodeHintType,?> hints) - throws NotFoundException, FormatException { - return maybeReturnResult(ean13Reader.decode(image, hints)); - } - - @Override - BarcodeFormat getBarcodeFormat() { - return BarcodeFormat.UPC_A; - } - - @Override - protected int decodeMiddle(BitArray row, int[] startRange, StringBuilder resultString) - throws NotFoundException { - return ean13Reader.decodeMiddle(row, startRange, resultString); - } - - private static Result maybeReturnResult(Result result) throws FormatException { - String text = result.getText(); - if (text.charAt(0) == '0') { - return new Result(text.substring(1), null, result.getResultPoints(), BarcodeFormat.UPC_A); - } else { - throw FormatException.getFormatInstance(); - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCAWriter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCAWriter.java deleted file mode 100755 index ea9e4a56..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCAWriter.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.EncodeHintType; -import com.google.zxing.Writer; -import com.google.zxing.WriterException; -import com.google.zxing.common.BitMatrix; - -/** - * This object renders a UPC-A code as a {@link BitMatrix}. - * - * @author qwandor@google.com (Andrew Walbran) - */ -public final class UPCAWriter implements Writer { - - private final EAN13Writer subWriter = new EAN13Writer(); - - @Override - public BitMatrix encode(String contents, BarcodeFormat format, int width, int height) - throws WriterException { - return encode(contents, format, width, height, null); - } - - @Override - public BitMatrix encode(String contents, - BarcodeFormat format, - int width, - int height, - Map<EncodeHintType,?> hints) throws WriterException { - if (format != BarcodeFormat.UPC_A) { - throw new IllegalArgumentException("Can only encode UPC-A, but got " + format); - } - return subWriter.encode(preencode(contents), BarcodeFormat.EAN_13, width, height, hints); - } - - /** - * Transform a UPC-A code into the equivalent EAN-13 code, and add a check digit if it is not - * already present. - */ - private static String preencode(String contents) { - int length = contents.length(); - if (length == 11) { - // No check digit present, calculate it and add it - int sum = 0; - for (int i = 0; i < 11; ++i) { - sum += (contents.charAt(i) - '0') * (i % 2 == 0 ? 3 : 1); - } - contents += (1000 - sum) % 10; - } else if (length != 12) { - throw new IllegalArgumentException( - "Requested contents should be 11 or 12 digits long, but got " + contents.length()); - } - return '0' + contents; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEANExtension2Support.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEANExtension2Support.java deleted file mode 100755 index 9bf38ff5..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEANExtension2Support.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (C) 2012 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.EnumMap; -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.NotFoundException; -import com.google.zxing.Result; -import com.google.zxing.ResultMetadataType; -import com.google.zxing.ResultPoint; -import com.google.zxing.common.BitArray; - -/** - * @see UPCEANExtension5Support - */ -final class UPCEANExtension2Support { - - private final int[] decodeMiddleCounters = new int[4]; - private final StringBuilder decodeRowStringBuffer = new StringBuilder(); - - Result decodeRow(int rowNumber, BitArray row, int[] extensionStartRange) throws NotFoundException { - - StringBuilder result = decodeRowStringBuffer; - result.setLength(0); - int end = decodeMiddle(row, extensionStartRange, result); - - String resultString = result.toString(); - Map<ResultMetadataType,Object> extensionData = parseExtensionString(resultString); - - Result extensionResult = - new Result(resultString, - null, - new ResultPoint[] { - new ResultPoint((extensionStartRange[0] + extensionStartRange[1]) / 2.0f, (float) rowNumber), - new ResultPoint((float) end, (float) rowNumber), - }, - BarcodeFormat.UPC_EAN_EXTENSION); - if (extensionData != null) { - extensionResult.putAllMetadata(extensionData); - } - return extensionResult; - } - - int decodeMiddle(BitArray row, int[] startRange, StringBuilder resultString) throws NotFoundException { - int[] counters = decodeMiddleCounters; - counters[0] = 0; - counters[1] = 0; - counters[2] = 0; - counters[3] = 0; - int end = row.getSize(); - int rowOffset = startRange[1]; - - int checkParity = 0; - - for (int x = 0; x < 2 && rowOffset < end; x++) { - int bestMatch = UPCEANReader.decodeDigit(row, counters, rowOffset, UPCEANReader.L_AND_G_PATTERNS); - resultString.append((char) ('0' + bestMatch % 10)); - for (int counter : counters) { - rowOffset += counter; - } - if (bestMatch >= 10) { - checkParity |= 1 << (1 - x); - } - if (x != 1) { - // Read off separator if not last - rowOffset = row.getNextSet(rowOffset); - rowOffset = row.getNextUnset(rowOffset); - } - } - - if (resultString.length() != 2) { - throw NotFoundException.getNotFoundInstance(); - } - - if (Integer.parseInt(resultString.toString()) % 4 != checkParity) { - throw NotFoundException.getNotFoundInstance(); - } - - return rowOffset; - } - - /** - * @param raw raw content of extension - * @return formatted interpretation of raw content as a {@link Map} mapping - * one {@link ResultMetadataType} to appropriate value, or {@code null} if not known - */ - private static Map<ResultMetadataType,Object> parseExtensionString(String raw) { - if (raw.length() != 2) { - return null; - } - Map<ResultMetadataType,Object> result = new EnumMap<>(ResultMetadataType.class); - result.put(ResultMetadataType.ISSUE_NUMBER, Integer.valueOf(raw)); - return result; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEANExtension5Support.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEANExtension5Support.java deleted file mode 100755 index 8296f160..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEANExtension5Support.java +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.EnumMap; -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.NotFoundException; -import com.google.zxing.Result; -import com.google.zxing.ResultMetadataType; -import com.google.zxing.ResultPoint; -import com.google.zxing.common.BitArray; - -/** - * @see UPCEANExtension2Support - */ -final class UPCEANExtension5Support { - - private static final int[] CHECK_DIGIT_ENCODINGS = { - 0x18, 0x14, 0x12, 0x11, 0x0C, 0x06, 0x03, 0x0A, 0x09, 0x05 - }; - - private final int[] decodeMiddleCounters = new int[4]; - private final StringBuilder decodeRowStringBuffer = new StringBuilder(); - - Result decodeRow(int rowNumber, BitArray row, int[] extensionStartRange) throws NotFoundException { - - StringBuilder result = decodeRowStringBuffer; - result.setLength(0); - int end = decodeMiddle(row, extensionStartRange, result); - - String resultString = result.toString(); - Map<ResultMetadataType,Object> extensionData = parseExtensionString(resultString); - - Result extensionResult = - new Result(resultString, - null, - new ResultPoint[] { - new ResultPoint((extensionStartRange[0] + extensionStartRange[1]) / 2.0f, (float) rowNumber), - new ResultPoint((float) end, (float) rowNumber), - }, - BarcodeFormat.UPC_EAN_EXTENSION); - if (extensionData != null) { - extensionResult.putAllMetadata(extensionData); - } - return extensionResult; - } - - int decodeMiddle(BitArray row, int[] startRange, StringBuilder resultString) throws NotFoundException { - int[] counters = decodeMiddleCounters; - counters[0] = 0; - counters[1] = 0; - counters[2] = 0; - counters[3] = 0; - int end = row.getSize(); - int rowOffset = startRange[1]; - - int lgPatternFound = 0; - - for (int x = 0; x < 5 && rowOffset < end; x++) { - int bestMatch = UPCEANReader.decodeDigit(row, counters, rowOffset, UPCEANReader.L_AND_G_PATTERNS); - resultString.append((char) ('0' + bestMatch % 10)); - for (int counter : counters) { - rowOffset += counter; - } - if (bestMatch >= 10) { - lgPatternFound |= 1 << (4 - x); - } - if (x != 4) { - // Read off separator if not last - rowOffset = row.getNextSet(rowOffset); - rowOffset = row.getNextUnset(rowOffset); - } - } - - if (resultString.length() != 5) { - throw NotFoundException.getNotFoundInstance(); - } - - int checkDigit = determineCheckDigit(lgPatternFound); - if (extensionChecksum(resultString.toString()) != checkDigit) { - throw NotFoundException.getNotFoundInstance(); - } - - return rowOffset; - } - - private static int extensionChecksum(CharSequence s) { - int length = s.length(); - int sum = 0; - for (int i = length - 2; i >= 0; i -= 2) { - sum += (int) s.charAt(i) - (int) '0'; - } - sum *= 3; - for (int i = length - 1; i >= 0; i -= 2) { - sum += (int) s.charAt(i) - (int) '0'; - } - sum *= 3; - return sum % 10; - } - - private static int determineCheckDigit(int lgPatternFound) - throws NotFoundException { - for (int d = 0; d < 10; d++) { - if (lgPatternFound == CHECK_DIGIT_ENCODINGS[d]) { - return d; - } - } - throw NotFoundException.getNotFoundInstance(); - } - - /** - * @param raw raw content of extension - * @return formatted interpretation of raw content as a {@link Map} mapping - * one {@link ResultMetadataType} to appropriate value, or {@code null} if not known - */ - private static Map<ResultMetadataType,Object> parseExtensionString(String raw) { - if (raw.length() != 5) { - return null; - } - Object value = parseExtension5String(raw); - if (value == null) { - return null; - } - Map<ResultMetadataType,Object> result = new EnumMap<>(ResultMetadataType.class); - result.put(ResultMetadataType.SUGGESTED_PRICE, value); - return result; - } - - private static String parseExtension5String(String raw) { - String currency; - switch (raw.charAt(0)) { - case '0': - currency = "£"; - break; - case '5': - currency = "$"; - break; - case '9': - // Reference: http://www.jollytech.com - if ("90000".equals(raw)) { - // No suggested retail price - return null; - } - if ("99991".equals(raw)) { - // Complementary - return "0.00"; - } - if ("99990".equals(raw)) { - return "Used"; - } - // Otherwise... unknown currency? - currency = ""; - break; - default: - currency = ""; - break; - } - int rawAmount = Integer.parseInt(raw.substring(1)); - String unitsString = String.valueOf(rawAmount / 100); - int hundredths = rawAmount % 100; - String hundredthsString = hundredths < 10 ? "0" + hundredths : String.valueOf(hundredths); - return currency + unitsString + '.' + hundredthsString; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEANExtensionSupport.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEANExtensionSupport.java deleted file mode 100755 index b36a5814..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEANExtensionSupport.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import com.google.zxing.NotFoundException; -import com.google.zxing.ReaderException; -import com.google.zxing.Result; -import com.google.zxing.common.BitArray; - -final class UPCEANExtensionSupport { - - private static final int[] EXTENSION_START_PATTERN = {1,1,2}; - - private final UPCEANExtension2Support twoSupport = new UPCEANExtension2Support(); - private final UPCEANExtension5Support fiveSupport = new UPCEANExtension5Support(); - - Result decodeRow(int rowNumber, BitArray row, int rowOffset) throws NotFoundException { - int[] extensionStartRange = UPCEANReader.findGuardPattern(row, rowOffset, false, EXTENSION_START_PATTERN); - try { - return fiveSupport.decodeRow(rowNumber, row, extensionStartRange); - } catch (ReaderException ignored) { - return twoSupport.decodeRow(rowNumber, row, extensionStartRange); - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEANReader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEANReader.java deleted file mode 100755 index 0a98b319..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEANReader.java +++ /dev/null @@ -1,398 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.Arrays; -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.ChecksumException; -import com.google.zxing.DecodeHintType; -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.ReaderException; -import com.google.zxing.Result; -import com.google.zxing.ResultMetadataType; -import com.google.zxing.ResultPoint; -import com.google.zxing.ResultPointCallback; -import com.google.zxing.common.BitArray; - -/** - * <p>Encapsulates functionality and implementation that is common to UPC and EAN families - * of one-dimensional barcodes.</p> - * - * @author dswitkin@google.com (Daniel Switkin) - * @author Sean Owen - * @author alasdair@google.com (Alasdair Mackintosh) - */ -public abstract class UPCEANReader extends OneDReader { - - // These two values are critical for determining how permissive the decoding will be. - // We've arrived at these values through a lot of trial and error. Setting them any higher - // lets false positives creep in quickly. - private static final float MAX_AVG_VARIANCE = 0.48f; - private static final float MAX_INDIVIDUAL_VARIANCE = 0.7f; - - /** - * Start/end guard pattern. - */ - static final int[] START_END_PATTERN = {1, 1, 1,}; - - /** - * Pattern marking the middle of a UPC/EAN pattern, separating the two halves. - */ - static final int[] MIDDLE_PATTERN = {1, 1, 1, 1, 1}; - /** - * end guard pattern. - */ - static final int[] END_PATTERN = {1, 1, 1, 1, 1, 1}; - /** - * "Odd", or "L" patterns used to encode UPC/EAN digits. - */ - static final int[][] L_PATTERNS = { - {3, 2, 1, 1}, // 0 - {2, 2, 2, 1}, // 1 - {2, 1, 2, 2}, // 2 - {1, 4, 1, 1}, // 3 - {1, 1, 3, 2}, // 4 - {1, 2, 3, 1}, // 5 - {1, 1, 1, 4}, // 6 - {1, 3, 1, 2}, // 7 - {1, 2, 1, 3}, // 8 - {3, 1, 1, 2} // 9 - }; - - /** - * As above but also including the "even", or "G" patterns used to encode UPC/EAN digits. - */ - static final int[][] L_AND_G_PATTERNS; - - static { - L_AND_G_PATTERNS = new int[20][]; - System.arraycopy(L_PATTERNS, 0, L_AND_G_PATTERNS, 0, 10); - for (int i = 10; i < 20; i++) { - int[] widths = L_PATTERNS[i - 10]; - int[] reversedWidths = new int[widths.length]; - for (int j = 0; j < widths.length; j++) { - reversedWidths[j] = widths[widths.length - j - 1]; - } - L_AND_G_PATTERNS[i] = reversedWidths; - } - } - - private final StringBuilder decodeRowStringBuffer; - private final UPCEANExtensionSupport extensionReader; - private final EANManufacturerOrgSupport eanManSupport; - - protected UPCEANReader() { - decodeRowStringBuffer = new StringBuilder(20); - extensionReader = new UPCEANExtensionSupport(); - eanManSupport = new EANManufacturerOrgSupport(); - } - - static int[] findStartGuardPattern(BitArray row) throws NotFoundException { - boolean foundStart = false; - int[] startRange = null; - int nextStart = 0; - int[] counters = new int[START_END_PATTERN.length]; - while (!foundStart) { - Arrays.fill(counters, 0, START_END_PATTERN.length, 0); - startRange = findGuardPattern(row, nextStart, false, START_END_PATTERN, counters); - int start = startRange[0]; - nextStart = startRange[1]; - // Make sure there is a quiet zone at least as big as the start pattern before the barcode. - // If this check would run off the left edge of the image, do not accept this barcode, - // as it is very likely to be a false positive. - int quietStart = start - (nextStart - start); - if (quietStart >= 0) { - foundStart = row.isRange(quietStart, start, false); - } - } - return startRange; - } - - @Override - public Result decodeRow(int rowNumber, BitArray row, Map<DecodeHintType,?> hints) - throws NotFoundException, ChecksumException, FormatException { - return decodeRow(rowNumber, row, findStartGuardPattern(row), hints); - } - - /** - * <p>Like {@link #decodeRow(int, BitArray, Map)}, but - * allows caller to inform method about where the UPC/EAN start pattern is - * found. This allows this to be computed once and reused across many implementations.</p> - * - * @param rowNumber row index into the image - * @param row encoding of the row of the barcode image - * @param startGuardRange start/end column where the opening start pattern was found - * @param hints optional hints that influence decoding - * @return {@link Result} encapsulating the result of decoding a barcode in the row - * @throws NotFoundException if no potential barcode is found - * @throws ChecksumException if a potential barcode is found but does not pass its checksum - * @throws FormatException if a potential barcode is found but format is invalid - */ - public Result decodeRow(int rowNumber, - BitArray row, - int[] startGuardRange, - Map<DecodeHintType,?> hints) - throws NotFoundException, ChecksumException, FormatException { - - ResultPointCallback resultPointCallback = hints == null ? null : - (ResultPointCallback) hints.get(DecodeHintType.NEED_RESULT_POINT_CALLBACK); - - if (resultPointCallback != null) { - resultPointCallback.foundPossibleResultPoint(new ResultPoint( - (startGuardRange[0] + startGuardRange[1]) / 2.0f, rowNumber - )); - } - - StringBuilder result = decodeRowStringBuffer; - result.setLength(0); - int endStart = decodeMiddle(row, startGuardRange, result); - - if (resultPointCallback != null) { - resultPointCallback.foundPossibleResultPoint(new ResultPoint( - endStart, rowNumber - )); - } - - int[] endRange = decodeEnd(row, endStart); - - if (resultPointCallback != null) { - resultPointCallback.foundPossibleResultPoint(new ResultPoint( - (endRange[0] + endRange[1]) / 2.0f, rowNumber - )); - } - - - // Make sure there is a quiet zone at least as big as the end pattern after the barcode. The - // spec might want more whitespace, but in practice this is the maximum we can count on. - int end = endRange[1]; - int quietEnd = end + (end - endRange[0]); - if (quietEnd >= row.getSize() || !row.isRange(end, quietEnd, false)) { - throw NotFoundException.getNotFoundInstance(); - } - - String resultString = result.toString(); - // UPC/EAN should never be less than 8 chars anyway - if (resultString.length() < 8) { - throw FormatException.getFormatInstance(); - } - if (!checkChecksum(resultString)) { - throw ChecksumException.getChecksumInstance(); - } - - float left = (float) (startGuardRange[1] + startGuardRange[0]) / 2.0f; - float right = (float) (endRange[1] + endRange[0]) / 2.0f; - BarcodeFormat format = getBarcodeFormat(); - Result decodeResult = new Result(resultString, - null, // no natural byte representation for these barcodes - new ResultPoint[]{ - new ResultPoint(left, (float) rowNumber), - new ResultPoint(right, (float) rowNumber)}, - format); - - int extensionLength = 0; - - try { - Result extensionResult = extensionReader.decodeRow(rowNumber, row, endRange[1]); - decodeResult.putMetadata(ResultMetadataType.UPC_EAN_EXTENSION, extensionResult.getText()); - decodeResult.putAllMetadata(extensionResult.getResultMetadata()); - decodeResult.addResultPoints(extensionResult.getResultPoints()); - extensionLength = extensionResult.getText().length(); - } catch (ReaderException re) { - // continue - } - - int[] allowedExtensions = - hints == null ? null : (int[]) hints.get(DecodeHintType.ALLOWED_EAN_EXTENSIONS); - if (allowedExtensions != null) { - boolean valid = false; - for (int length : allowedExtensions) { - if (extensionLength == length) { - valid = true; - break; - } - } - if (!valid) { - throw NotFoundException.getNotFoundInstance(); - } - } - - if (format == BarcodeFormat.EAN_13 || format == BarcodeFormat.UPC_A) { - String countryID = eanManSupport.lookupCountryIdentifier(resultString); - if (countryID != null) { - decodeResult.putMetadata(ResultMetadataType.POSSIBLE_COUNTRY, countryID); - } - } - - return decodeResult; - } - - /** - * @param s string of digits to check - * @return {@link #checkStandardUPCEANChecksum(CharSequence)} - * @throws FormatException if the string does not contain only digits - */ - boolean checkChecksum(String s) throws FormatException { - return checkStandardUPCEANChecksum(s); - } - - /** - * Computes the UPC/EAN checksum on a string of digits, and reports - * whether the checksum is correct or not. - * - * @param s string of digits to check - * @return true iff string of digits passes the UPC/EAN checksum algorithm - * @throws FormatException if the string does not contain only digits - */ - static boolean checkStandardUPCEANChecksum(CharSequence s) throws FormatException { - int length = s.length(); - if (length == 0) { - return false; - } - - int sum = 0; - for (int i = length - 2; i >= 0; i -= 2) { - int digit = (int) s.charAt(i) - (int) '0'; - if (digit < 0 || digit > 9) { - throw FormatException.getFormatInstance(); - } - sum += digit; - } - sum *= 3; - for (int i = length - 1; i >= 0; i -= 2) { - int digit = (int) s.charAt(i) - (int) '0'; - if (digit < 0 || digit > 9) { - throw FormatException.getFormatInstance(); - } - sum += digit; - } - return sum % 10 == 0; - } - - int[] decodeEnd(BitArray row, int endStart) throws NotFoundException { - return findGuardPattern(row, endStart, false, START_END_PATTERN); - } - - static int[] findGuardPattern(BitArray row, - int rowOffset, - boolean whiteFirst, - int[] pattern) throws NotFoundException { - return findGuardPattern(row, rowOffset, whiteFirst, pattern, new int[pattern.length]); - } - - /** - * @param row row of black/white values to search - * @param rowOffset position to start search - * @param whiteFirst if true, indicates that the pattern specifies white/black/white/... - * pixel counts, otherwise, it is interpreted as black/white/black/... - * @param pattern pattern of counts of number of black and white pixels that are being - * searched for as a pattern - * @param counters array of counters, as long as pattern, to re-use - * @return start/end horizontal offset of guard pattern, as an array of two ints - * @throws NotFoundException if pattern is not found - */ - private static int[] findGuardPattern(BitArray row, - int rowOffset, - boolean whiteFirst, - int[] pattern, - int[] counters) throws NotFoundException { - int patternLength = pattern.length; - int width = row.getSize(); - boolean isWhite = whiteFirst; - rowOffset = whiteFirst ? row.getNextUnset(rowOffset) : row.getNextSet(rowOffset); - int counterPosition = 0; - int patternStart = rowOffset; - for (int x = rowOffset; x < width; x++) { - if (row.get(x) ^ isWhite) { - counters[counterPosition]++; - } else { - if (counterPosition == patternLength - 1) { - if (patternMatchVariance(counters, pattern, MAX_INDIVIDUAL_VARIANCE) < MAX_AVG_VARIANCE) { - return new int[]{patternStart, x}; - } - patternStart += counters[0] + counters[1]; - System.arraycopy(counters, 2, counters, 0, patternLength - 2); - counters[patternLength - 2] = 0; - counters[patternLength - 1] = 0; - counterPosition--; - } else { - counterPosition++; - } - counters[counterPosition] = 1; - isWhite = !isWhite; - } - } - throw NotFoundException.getNotFoundInstance(); - } - - /** - * Attempts to decode a single UPC/EAN-encoded digit. - * - * @param row row of black/white values to decode - * @param counters the counts of runs of observed black/white/black/... values - * @param rowOffset horizontal offset to start decoding from - * @param patterns the set of patterns to use to decode -- sometimes different encodings - * for the digits 0-9 are used, and this indicates the encodings for 0 to 9 that should - * be used - * @return horizontal offset of first pixel beyond the decoded digit - * @throws NotFoundException if digit cannot be decoded - */ - static int decodeDigit(BitArray row, int[] counters, int rowOffset, int[][] patterns) - throws NotFoundException { - recordPattern(row, rowOffset, counters); - float bestVariance = MAX_AVG_VARIANCE; // worst variance we'll accept - int bestMatch = -1; - int max = patterns.length; - for (int i = 0; i < max; i++) { - int[] pattern = patterns[i]; - float variance = patternMatchVariance(counters, pattern, MAX_INDIVIDUAL_VARIANCE); - if (variance < bestVariance) { - bestVariance = variance; - bestMatch = i; - } - } - if (bestMatch >= 0) { - return bestMatch; - } else { - throw NotFoundException.getNotFoundInstance(); - } - } - - /** - * Get the format of this decoder. - * - * @return The 1D format. - */ - abstract BarcodeFormat getBarcodeFormat(); - - /** - * Subclasses override this to decode the portion of a barcode between the start - * and end guard patterns. - * - * @param row row of black/white values to search - * @param startRange start/end offset of start guard pattern - * @param resultString {@link StringBuilder} to append decoded chars to - * @return horizontal offset of first pixel after the "middle" that was decoded - * @throws NotFoundException if decoding could not complete successfully - */ - protected abstract int decodeMiddle(BitArray row, - int[] startRange, - StringBuilder resultString) throws NotFoundException; - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEANWriter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEANWriter.java deleted file mode 100755 index a39937db..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEANWriter.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -/** - * <p>Encapsulates functionality and implementation that is common to UPC and EAN families - * of one-dimensional barcodes.</p> - * - * @author aripollak@gmail.com (Ari Pollak) - * @author dsbnatut@gmail.com (Kazuki Nishiura) - */ -public abstract class UPCEANWriter extends OneDimensionalCodeWriter { - - @Override - public int getDefaultMargin() { - // Use a different default more appropriate for UPC/EAN - return UPCEANReader.START_END_PATTERN.length; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEReader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEReader.java deleted file mode 100755 index bc04d3aa..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEReader.java +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.common.BitArray; - -/** - * <p>Implements decoding of the UPC-E format.</p> - * <p><a href="http://www.barcodeisland.com/upce.phtml">This</a> is a great reference for - * UPC-E information.</p> - * - * @author Sean Owen - */ -public final class UPCEReader extends UPCEANReader { - // For an UPC-E barcode, the final digit is represented by the parities used - // to encode the middle six digits, according to the table below. - // - // Parity of next 6 digits - // Digit 0 1 2 3 4 5 - // 0 Even Even Even Odd Odd Odd - // 1 Even Even Odd Even Odd Odd - // 2 Even Even Odd Odd Even Odd - // 3 Even Even Odd Odd Odd Even - // 4 Even Odd Even Even Odd Odd - // 5 Even Odd Odd Even Even Odd - // 6 Even Odd Odd Odd Even Even - // 7 Even Odd Even Odd Even Odd - // 8 Even Odd Even Odd Odd Even - // 9 Even Odd Odd Even Odd Even - // - // The encoding is represented by the following array, which is a bit pattern - // using Odd = 0 and Even = 1. For example, 5 is represented by: - // - // Odd Even Even Odd Odd Even - // in binary: - // 0 1 1 0 0 1 == 0x19 - // - static final int[] CHECK_DIGIT_ENCODINGS = { - 0x38, 0x34, 0x32, 0x31, 0x2C, 0x26, 0x23, 0x2A, 0x29, 0x25 - }; - /** - * The pattern that marks the middle, and end, of a UPC-E pattern. - * There is no "second half" to a UPC-E barcode. - */ - private static final int[] MIDDLE_END_PATTERN = {1, 1, 1, 1, 1, 1}; - - /** - * See {@link #L_AND_G_PATTERNS}; these values similarly represent patterns of - * even-odd parity encodings of digits that imply both the number system (0 or 1) - * used, and the check digit. - */ - private static final int[][] NUMSYS_AND_CHECK_DIGIT_PATTERNS = { - {0x38, 0x34, 0x32, 0x31, 0x2C, 0x26, 0x23, 0x2A, 0x29, 0x25}, - {0x07, 0x0B, 0x0D, 0x0E, 0x13, 0x19, 0x1C, 0x15, 0x16, 0x1A} - }; - - private final int[] decodeMiddleCounters; - - public UPCEReader() { - decodeMiddleCounters = new int[4]; - } - - @Override - protected int decodeMiddle(BitArray row, int[] startRange, StringBuilder result) - throws NotFoundException { - int[] counters = decodeMiddleCounters; - counters[0] = 0; - counters[1] = 0; - counters[2] = 0; - counters[3] = 0; - int end = row.getSize(); - int rowOffset = startRange[1]; - - int lgPatternFound = 0; - - for (int x = 0; x < 6 && rowOffset < end; x++) { - int bestMatch = decodeDigit(row, counters, rowOffset, L_AND_G_PATTERNS); - result.append((char) ('0' + bestMatch % 10)); - for (int counter : counters) { - rowOffset += counter; - } - if (bestMatch >= 10) { - lgPatternFound |= 1 << (5 - x); - } - } - - determineNumSysAndCheckDigit(result, lgPatternFound); - - return rowOffset; - } - - @Override - protected int[] decodeEnd(BitArray row, int endStart) throws NotFoundException { - return findGuardPattern(row, endStart, true, MIDDLE_END_PATTERN); - } - - @Override - protected boolean checkChecksum(String s) throws FormatException { - return super.checkChecksum(convertUPCEtoUPCA(s)); - } - - private static void determineNumSysAndCheckDigit(StringBuilder resultString, int lgPatternFound) - throws NotFoundException { - - for (int numSys = 0; numSys <= 1; numSys++) { - for (int d = 0; d < 10; d++) { - if (lgPatternFound == NUMSYS_AND_CHECK_DIGIT_PATTERNS[numSys][d]) { - resultString.insert(0, (char) ('0' + numSys)); - resultString.append((char) ('0' + d)); - return; - } - } - } - throw NotFoundException.getNotFoundInstance(); - } - - @Override - BarcodeFormat getBarcodeFormat() { - return BarcodeFormat.UPC_E; - } - - /** - * Expands a UPC-E value back into its full, equivalent UPC-A code value. - * - * @param upce UPC-E code as string of digits - * @return equivalent UPC-A code as string of digits - */ - public static String convertUPCEtoUPCA(String upce) { - char[] upceChars = new char[6]; - upce.getChars(1, 7, upceChars, 0); - StringBuilder result = new StringBuilder(12); - result.append(upce.charAt(0)); - char lastChar = upceChars[5]; - switch (lastChar) { - case '0': - case '1': - case '2': - result.append(upceChars, 0, 2); - result.append(lastChar); - result.append("0000"); - result.append(upceChars, 2, 3); - break; - case '3': - result.append(upceChars, 0, 3); - result.append("00000"); - result.append(upceChars, 3, 2); - break; - case '4': - result.append(upceChars, 0, 4); - result.append("00000"); - result.append(upceChars[4]); - break; - default: - result.append(upceChars, 0, 5); - result.append("0000"); - result.append(lastChar); - break; - } - result.append(upce.charAt(7)); - return result.toString(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEWriter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEWriter.java deleted file mode 100755 index 85872d46..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/UPCEWriter.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned; - -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.EncodeHintType; -import com.google.zxing.WriterException; -import com.google.zxing.common.BitMatrix; - -/** - * This object renders an UPC-E code as a {@link BitMatrix}. - * - * @author 0979097955s@gmail.com (RX) - */ -public final class UPCEWriter extends UPCEANWriter { - - private static final int CODE_WIDTH = 3 + // start guard - (7 * 6) + // bars - 6; // end guard - - @Override - public BitMatrix encode(String contents, - BarcodeFormat format, - int width, - int height, - Map<EncodeHintType, ?> hints) throws WriterException { - if (format != BarcodeFormat.UPC_E) { - throw new IllegalArgumentException("Can only encode UPC_E, but got " + format); - } - - return super.encode(contents, format, width, height, hints); - } - - @Override - public boolean[] encode(String contents) { - if (contents.length() != 8) { - throw new IllegalArgumentException( - "Requested contents should be 8 digits long, but got " + contents.length()); - } - - int checkDigit = Integer.parseInt(contents.substring(7, 8)); - int parities = UPCEReader.CHECK_DIGIT_ENCODINGS[checkDigit]; - boolean[] result = new boolean[CODE_WIDTH]; - int pos = 0; - - pos += appendPattern(result, pos, UPCEANReader.START_END_PATTERN, true); - - for (int i = 1; i <= 6; i++) { - int digit = Integer.parseInt(contents.substring(i, i + 1)); - if ((parities >> (6 - i) & 1) == 1) { - digit += 10; - } - pos += appendPattern(result, pos, UPCEANReader.L_AND_G_PATTERNS[digit], false); - } - - appendPattern(result, pos, UPCEANReader.END_PATTERN, false); - - return result; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/AbstractRSSReader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/AbstractRSSReader.java deleted file mode 100755 index e86b394d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/AbstractRSSReader.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned.rss; - -import com.google.zxing.NotFoundException; -import com.google.zxing.oned.OneDReader; - -public abstract class AbstractRSSReader extends OneDReader { - - private static final float MAX_AVG_VARIANCE = 0.2f; - private static final float MAX_INDIVIDUAL_VARIANCE = 0.45f; - - private static final float MIN_FINDER_PATTERN_RATIO = 9.5f / 12.0f; - private static final float MAX_FINDER_PATTERN_RATIO = 12.5f / 14.0f; - - private final int[] decodeFinderCounters; - private final int[] dataCharacterCounters; - private final float[] oddRoundingErrors; - private final float[] evenRoundingErrors; - private final int[] oddCounts; - private final int[] evenCounts; - - protected AbstractRSSReader(){ - decodeFinderCounters = new int[4]; - dataCharacterCounters = new int[8]; - oddRoundingErrors = new float[4]; - evenRoundingErrors = new float[4]; - oddCounts = new int[dataCharacterCounters.length / 2]; - evenCounts = new int[dataCharacterCounters.length / 2]; - } - - protected final int[] getDecodeFinderCounters() { - return decodeFinderCounters; - } - - protected final int[] getDataCharacterCounters() { - return dataCharacterCounters; - } - - protected final float[] getOddRoundingErrors() { - return oddRoundingErrors; - } - - protected final float[] getEvenRoundingErrors() { - return evenRoundingErrors; - } - - protected final int[] getOddCounts() { - return oddCounts; - } - - protected final int[] getEvenCounts() { - return evenCounts; - } - - protected static int parseFinderValue(int[] counters, - int[][] finderPatterns) throws NotFoundException { - for (int value = 0; value < finderPatterns.length; value++) { - if (patternMatchVariance(counters, finderPatterns[value], MAX_INDIVIDUAL_VARIANCE) < - MAX_AVG_VARIANCE) { - return value; - } - } - throw NotFoundException.getNotFoundInstance(); - } - - protected static int count(int[] array) { - int count = 0; - for (int a : array) { - count += a; - } - return count; - } - - protected static void increment(int[] array, float[] errors) { - int index = 0; - float biggestError = errors[0]; - for (int i = 1; i < array.length; i++) { - if (errors[i] > biggestError) { - biggestError = errors[i]; - index = i; - } - } - array[index]++; - } - - protected static void decrement(int[] array, float[] errors) { - int index = 0; - float biggestError = errors[0]; - for (int i = 1; i < array.length; i++) { - if (errors[i] < biggestError) { - biggestError = errors[i]; - index = i; - } - } - array[index]--; - } - - protected static boolean isFinderPattern(int[] counters) { - int firstTwoSum = counters[0] + counters[1]; - int sum = firstTwoSum + counters[2] + counters[3]; - float ratio = (float) firstTwoSum / (float) sum; - if (ratio >= MIN_FINDER_PATTERN_RATIO && ratio <= MAX_FINDER_PATTERN_RATIO) { - // passes ratio test in spec, but see if the counts are unreasonable - int minCounter = Integer.MAX_VALUE; - int maxCounter = Integer.MIN_VALUE; - for (int counter : counters) { - if (counter > maxCounter) { - maxCounter = counter; - } - if (counter < minCounter) { - minCounter = counter; - } - } - return maxCounter < 10 * minCounter; - } - return false; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/DataCharacter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/DataCharacter.java deleted file mode 100755 index 16793000..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/DataCharacter.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned.rss; - -public class DataCharacter { - - private final int value; - private final int checksumPortion; - - public DataCharacter(int value, int checksumPortion) { - this.value = value; - this.checksumPortion = checksumPortion; - } - - public final int getValue() { - return value; - } - - public final int getChecksumPortion() { - return checksumPortion; - } - - @Override - public final String toString() { - return value + "(" + checksumPortion + ')'; - } - - @Override - public final boolean equals(Object o) { - if(!(o instanceof DataCharacter)) { - return false; - } - DataCharacter that = (DataCharacter) o; - return value == that.value && checksumPortion == that.checksumPortion; - } - - @Override - public final int hashCode() { - return value ^ checksumPortion; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/FinderPattern.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/FinderPattern.java deleted file mode 100755 index 492aec97..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/FinderPattern.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned.rss; - -import com.google.zxing.ResultPoint; - -public final class FinderPattern { - - private final int value; - private final int[] startEnd; - private final ResultPoint[] resultPoints; - - public FinderPattern(int value, int[] startEnd, int start, int end, int rowNumber) { - this.value = value; - this.startEnd = startEnd; - this.resultPoints = new ResultPoint[] { - new ResultPoint((float) start, (float) rowNumber), - new ResultPoint((float) end, (float) rowNumber), - }; - } - - public int getValue() { - return value; - } - - public int[] getStartEnd() { - return startEnd; - } - - public ResultPoint[] getResultPoints() { - return resultPoints; - } - - @Override - public boolean equals(Object o) { - if(!(o instanceof FinderPattern)) { - return false; - } - FinderPattern that = (FinderPattern) o; - return value == that.value; - } - - @Override - public int hashCode() { - return value; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/Pair.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/Pair.java deleted file mode 100755 index e2371d29..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/Pair.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned.rss; - -final class Pair extends DataCharacter { - - private final FinderPattern finderPattern; - private int count; - - Pair(int value, int checksumPortion, FinderPattern finderPattern) { - super(value, checksumPortion); - this.finderPattern = finderPattern; - } - - FinderPattern getFinderPattern() { - return finderPattern; - } - - int getCount() { - return count; - } - - void incrementCount() { - count++; - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/RSS14Reader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/RSS14Reader.java deleted file mode 100755 index ac0cdc95..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/RSS14Reader.java +++ /dev/null @@ -1,477 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned.rss; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.DecodeHintType; -import com.google.zxing.NotFoundException; -import com.google.zxing.Result; -import com.google.zxing.ResultPoint; -import com.google.zxing.ResultPointCallback; -import com.google.zxing.common.BitArray; - -/** - * Decodes RSS-14, including truncated and stacked variants. See ISO/IEC 24724:2006. - */ -public final class RSS14Reader extends AbstractRSSReader { - - private static final int[] OUTSIDE_EVEN_TOTAL_SUBSET = {1,10,34,70,126}; - private static final int[] INSIDE_ODD_TOTAL_SUBSET = {4,20,48,81}; - private static final int[] OUTSIDE_GSUM = {0,161,961,2015,2715}; - private static final int[] INSIDE_GSUM = {0,336,1036,1516}; - private static final int[] OUTSIDE_ODD_WIDEST = {8,6,4,3,1}; - private static final int[] INSIDE_ODD_WIDEST = {2,4,6,8}; - - private static final int[][] FINDER_PATTERNS = { - {3,8,2,1}, - {3,5,5,1}, - {3,3,7,1}, - {3,1,9,1}, - {2,7,4,1}, - {2,5,6,1}, - {2,3,8,1}, - {1,5,7,1}, - {1,3,9,1}, - }; - - private final List<Pair> possibleLeftPairs; - private final List<Pair> possibleRightPairs; - - public RSS14Reader() { - possibleLeftPairs = new ArrayList<>(); - possibleRightPairs = new ArrayList<>(); - } - - @Override - public Result decodeRow(int rowNumber, - BitArray row, - Map<DecodeHintType,?> hints) throws NotFoundException { - Pair leftPair = decodePair(row, false, rowNumber, hints); - addOrTally(possibleLeftPairs, leftPair); - row.reverse(); - Pair rightPair = decodePair(row, true, rowNumber, hints); - addOrTally(possibleRightPairs, rightPair); - row.reverse(); - int lefSize = possibleLeftPairs.size(); - for (int i = 0; i < lefSize; i++) { - Pair left = possibleLeftPairs.get(i); - if (left.getCount() > 1) { - int rightSize = possibleRightPairs.size(); - for (int j = 0; j < rightSize; j++) { - Pair right = possibleRightPairs.get(j); - if (right.getCount() > 1) { - if (checkChecksum(left, right)) { - return constructResult(left, right); - } - } - } - } - } - throw NotFoundException.getNotFoundInstance(); - } - - private static void addOrTally(Collection<Pair> possiblePairs, Pair pair) { - if (pair == null) { - return; - } - boolean found = false; - for (Pair other : possiblePairs) { - if (other.getValue() == pair.getValue()) { - other.incrementCount(); - found = true; - break; - } - } - if (!found) { - possiblePairs.add(pair); - } - } - - @Override - public void reset() { - possibleLeftPairs.clear(); - possibleRightPairs.clear(); - } - - private static Result constructResult(Pair leftPair, Pair rightPair) { - long symbolValue = 4537077L * leftPair.getValue() + rightPair.getValue(); - String text = String.valueOf(symbolValue); - - StringBuilder buffer = new StringBuilder(14); - for (int i = 13 - text.length(); i > 0; i--) { - buffer.append('0'); - } - buffer.append(text); - - int checkDigit = 0; - for (int i = 0; i < 13; i++) { - int digit = buffer.charAt(i) - '0'; - checkDigit += (i & 0x01) == 0 ? 3 * digit : digit; - } - checkDigit = 10 - (checkDigit % 10); - if (checkDigit == 10) { - checkDigit = 0; - } - buffer.append(checkDigit); - - ResultPoint[] leftPoints = leftPair.getFinderPattern().getResultPoints(); - ResultPoint[] rightPoints = rightPair.getFinderPattern().getResultPoints(); - return new Result( - String.valueOf(buffer.toString()), - null, - new ResultPoint[] { leftPoints[0], leftPoints[1], rightPoints[0], rightPoints[1], }, - BarcodeFormat.RSS_14); - } - - private static boolean checkChecksum(Pair leftPair, Pair rightPair) { - //int leftFPValue = leftPair.getFinderPattern().getValue(); - //int rightFPValue = rightPair.getFinderPattern().getValue(); - //if ((leftFPValue == 0 && rightFPValue == 8) || - // (leftFPValue == 8 && rightFPValue == 0)) { - //} - int checkValue = (leftPair.getChecksumPortion() + 16 * rightPair.getChecksumPortion()) % 79; - int targetCheckValue = - 9 * leftPair.getFinderPattern().getValue() + rightPair.getFinderPattern().getValue(); - if (targetCheckValue > 72) { - targetCheckValue--; - } - if (targetCheckValue > 8) { - targetCheckValue--; - } - return checkValue == targetCheckValue; - } - - private Pair decodePair(BitArray row, boolean right, int rowNumber, Map<DecodeHintType,?> hints) { - try { - int[] startEnd = findFinderPattern(row, 0, right); - FinderPattern pattern = parseFoundFinderPattern(row, rowNumber, right, startEnd); - - ResultPointCallback resultPointCallback = hints == null ? null : - (ResultPointCallback) hints.get(DecodeHintType.NEED_RESULT_POINT_CALLBACK); - - if (resultPointCallback != null) { - float center = (startEnd[0] + startEnd[1]) / 2.0f; - if (right) { - // row is actually reversed - center = row.getSize() - 1 - center; - } - resultPointCallback.foundPossibleResultPoint(new ResultPoint(center, rowNumber)); - } - - DataCharacter outside = decodeDataCharacter(row, pattern, true); - DataCharacter inside = decodeDataCharacter(row, pattern, false); - return new Pair(1597 * outside.getValue() + inside.getValue(), - outside.getChecksumPortion() + 4 * inside.getChecksumPortion(), - pattern); - } catch (NotFoundException ignored) { - return null; - } - } - - private DataCharacter decodeDataCharacter(BitArray row, FinderPattern pattern, boolean outsideChar) - throws NotFoundException { - - int[] counters = getDataCharacterCounters(); - counters[0] = 0; - counters[1] = 0; - counters[2] = 0; - counters[3] = 0; - counters[4] = 0; - counters[5] = 0; - counters[6] = 0; - counters[7] = 0; - - if (outsideChar) { - recordPatternInReverse(row, pattern.getStartEnd()[0], counters); - } else { - recordPattern(row, pattern.getStartEnd()[1] + 1, counters); - // reverse it - for (int i = 0, j = counters.length - 1; i < j; i++, j--) { - int temp = counters[i]; - counters[i] = counters[j]; - counters[j] = temp; - } - } - - int numModules = outsideChar ? 16 : 15; - float elementWidth = (float) count(counters) / (float) numModules; - - int[] oddCounts = this.getOddCounts(); - int[] evenCounts = this.getEvenCounts(); - float[] oddRoundingErrors = this.getOddRoundingErrors(); - float[] evenRoundingErrors = this.getEvenRoundingErrors(); - - for (int i = 0; i < counters.length; i++) { - float value = (float) counters[i] / elementWidth; - int count = (int) (value + 0.5f); // Round - if (count < 1) { - count = 1; - } else if (count > 8) { - count = 8; - } - int offset = i / 2; - if ((i & 0x01) == 0) { - oddCounts[offset] = count; - oddRoundingErrors[offset] = value - count; - } else { - evenCounts[offset] = count; - evenRoundingErrors[offset] = value - count; - } - } - - adjustOddEvenCounts(outsideChar, numModules); - - int oddSum = 0; - int oddChecksumPortion = 0; - for (int i = oddCounts.length - 1; i >= 0; i--) { - oddChecksumPortion *= 9; - oddChecksumPortion += oddCounts[i]; - oddSum += oddCounts[i]; - } - int evenChecksumPortion = 0; - int evenSum = 0; - for (int i = evenCounts.length - 1; i >= 0; i--) { - evenChecksumPortion *= 9; - evenChecksumPortion += evenCounts[i]; - evenSum += evenCounts[i]; - } - int checksumPortion = oddChecksumPortion + 3*evenChecksumPortion; - - if (outsideChar) { - if ((oddSum & 0x01) != 0 || oddSum > 12 || oddSum < 4) { - throw NotFoundException.getNotFoundInstance(); - } - int group = (12 - oddSum) / 2; - int oddWidest = OUTSIDE_ODD_WIDEST[group]; - int evenWidest = 9 - oddWidest; - int vOdd = RSSUtils.getRSSvalue(oddCounts, oddWidest, false); - int vEven = RSSUtils.getRSSvalue(evenCounts, evenWidest, true); - int tEven = OUTSIDE_EVEN_TOTAL_SUBSET[group]; - int gSum = OUTSIDE_GSUM[group]; - return new DataCharacter(vOdd * tEven + vEven + gSum, checksumPortion); - } else { - if ((evenSum & 0x01) != 0 || evenSum > 10 || evenSum < 4) { - throw NotFoundException.getNotFoundInstance(); - } - int group = (10 - evenSum) / 2; - int oddWidest = INSIDE_ODD_WIDEST[group]; - int evenWidest = 9 - oddWidest; - int vOdd = RSSUtils.getRSSvalue(oddCounts, oddWidest, true); - int vEven = RSSUtils.getRSSvalue(evenCounts, evenWidest, false); - int tOdd = INSIDE_ODD_TOTAL_SUBSET[group]; - int gSum = INSIDE_GSUM[group]; - return new DataCharacter(vEven * tOdd + vOdd + gSum, checksumPortion); - } - - } - - private int[] findFinderPattern(BitArray row, int rowOffset, boolean rightFinderPattern) - throws NotFoundException { - - int[] counters = getDecodeFinderCounters(); - counters[0] = 0; - counters[1] = 0; - counters[2] = 0; - counters[3] = 0; - - int width = row.getSize(); - boolean isWhite = false; - while (rowOffset < width) { - isWhite = !row.get(rowOffset); - if (rightFinderPattern == isWhite) { - // Will encounter white first when searching for right finder pattern - break; - } - rowOffset++; - } - - int counterPosition = 0; - int patternStart = rowOffset; - for (int x = rowOffset; x < width; x++) { - if (row.get(x) ^ isWhite) { - counters[counterPosition]++; - } else { - if (counterPosition == 3) { - if (isFinderPattern(counters)) { - return new int[]{patternStart, x}; - } - patternStart += counters[0] + counters[1]; - counters[0] = counters[2]; - counters[1] = counters[3]; - counters[2] = 0; - counters[3] = 0; - counterPosition--; - } else { - counterPosition++; - } - counters[counterPosition] = 1; - isWhite = !isWhite; - } - } - throw NotFoundException.getNotFoundInstance(); - - } - - private FinderPattern parseFoundFinderPattern(BitArray row, int rowNumber, boolean right, int[] startEnd) - throws NotFoundException { - // Actually we found elements 2-5 - boolean firstIsBlack = row.get(startEnd[0]); - int firstElementStart = startEnd[0] - 1; - // Locate element 1 - while (firstElementStart >= 0 && firstIsBlack ^ row.get(firstElementStart)) { - firstElementStart--; - } - firstElementStart++; - int firstCounter = startEnd[0] - firstElementStart; - // Make 'counters' hold 1-4 - int[] counters = getDecodeFinderCounters(); - System.arraycopy(counters, 0, counters, 1, counters.length - 1); - counters[0] = firstCounter; - int value = parseFinderValue(counters, FINDER_PATTERNS); - int start = firstElementStart; - int end = startEnd[1]; - if (right) { - // row is actually reversed - start = row.getSize() - 1 - start; - end = row.getSize() - 1 - end; - } - return new FinderPattern(value, new int[] {firstElementStart, startEnd[1]}, start, end, rowNumber); - } - - private void adjustOddEvenCounts(boolean outsideChar, int numModules) throws NotFoundException { - - int oddSum = count(getOddCounts()); - int evenSum = count(getEvenCounts()); - int mismatch = oddSum + evenSum - numModules; - boolean oddParityBad = (oddSum & 0x01) == (outsideChar ? 1 : 0); - boolean evenParityBad = (evenSum & 0x01) == 1; - - boolean incrementOdd = false; - boolean decrementOdd = false; - boolean incrementEven = false; - boolean decrementEven = false; - - if (outsideChar) { - if (oddSum > 12) { - decrementOdd = true; - } else if (oddSum < 4) { - incrementOdd = true; - } - if (evenSum > 12) { - decrementEven = true; - } else if (evenSum < 4) { - incrementEven = true; - } - } else { - if (oddSum > 11) { - decrementOdd = true; - } else if (oddSum < 5) { - incrementOdd = true; - } - if (evenSum > 10) { - decrementEven = true; - } else if (evenSum < 4) { - incrementEven = true; - } - } - - /*if (mismatch == 2) { - if (!(oddParityBad && evenParityBad)) { - throw ReaderException.getInstance(); - } - decrementOdd = true; - decrementEven = true; - } else if (mismatch == -2) { - if (!(oddParityBad && evenParityBad)) { - throw ReaderException.getInstance(); - } - incrementOdd = true; - incrementEven = true; - } else */if (mismatch == 1) { - if (oddParityBad) { - if (evenParityBad) { - throw NotFoundException.getNotFoundInstance(); - } - decrementOdd = true; - } else { - if (!evenParityBad) { - throw NotFoundException.getNotFoundInstance(); - } - decrementEven = true; - } - } else if (mismatch == -1) { - if (oddParityBad) { - if (evenParityBad) { - throw NotFoundException.getNotFoundInstance(); - } - incrementOdd = true; - } else { - if (!evenParityBad) { - throw NotFoundException.getNotFoundInstance(); - } - incrementEven = true; - } - } else if (mismatch == 0) { - if (oddParityBad) { - if (!evenParityBad) { - throw NotFoundException.getNotFoundInstance(); - } - // Both bad - if (oddSum < evenSum) { - incrementOdd = true; - decrementEven = true; - } else { - decrementOdd = true; - incrementEven = true; - } - } else { - if (evenParityBad) { - throw NotFoundException.getNotFoundInstance(); - } - // Nothing to do! - } - } else { - throw NotFoundException.getNotFoundInstance(); - } - - if (incrementOdd) { - if (decrementOdd) { - throw NotFoundException.getNotFoundInstance(); - } - increment(getOddCounts(), getOddRoundingErrors()); - } - if (decrementOdd) { - decrement(getOddCounts(), getOddRoundingErrors()); - } - if (incrementEven) { - if (decrementEven) { - throw NotFoundException.getNotFoundInstance(); - } - increment(getEvenCounts(), getOddRoundingErrors()); - } - if (decrementEven) { - decrement(getEvenCounts(), getEvenRoundingErrors()); - } - - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/RSSUtils.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/RSSUtils.java deleted file mode 100755 index fb5a1d02..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/RSSUtils.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned.rss; - -/** Adapted from listings in ISO/IEC 24724 Appendix B and Appendix G. */ -public final class RSSUtils { - - private RSSUtils() {} - - /* - static int[] getRSSwidths(int val, int n, int elements, int maxWidth, boolean noNarrow) { - int[] widths = new int[elements]; - int bar; - int narrowMask = 0; - for (bar = 0; bar < elements - 1; bar++) { - narrowMask |= 1 << bar; - int elmWidth = 1; - int subVal; - while (true) { - subVal = combins(n - elmWidth - 1, elements - bar - 2); - if (noNarrow && (narrowMask == 0) && - (n - elmWidth - (elements - bar - 1) >= elements - bar - 1)) { - subVal -= combins(n - elmWidth - (elements - bar), elements - bar - 2); - } - if (elements - bar - 1 > 1) { - int lessVal = 0; - for (int mxwElement = n - elmWidth - (elements - bar - 2); - mxwElement > maxWidth; - mxwElement--) { - lessVal += combins(n - elmWidth - mxwElement - 1, elements - bar - 3); - } - subVal -= lessVal * (elements - 1 - bar); - } else if (n - elmWidth > maxWidth) { - subVal--; - } - val -= subVal; - if (val < 0) { - break; - } - elmWidth++; - narrowMask &= ~(1 << bar); - } - val += subVal; - n -= elmWidth; - widths[bar] = elmWidth; - } - widths[bar] = n; - return widths; - } - */ - - public static int getRSSvalue(int[] widths, int maxWidth, boolean noNarrow) { - int elements = widths.length; - int n = 0; - for (int width : widths) { - n += width; - } - int val = 0; - int narrowMask = 0; - for (int bar = 0; bar < elements - 1; bar++) { - int elmWidth; - for (elmWidth = 1, narrowMask |= 1 << bar; - elmWidth < widths[bar]; - elmWidth++, narrowMask &= ~(1 << bar)) { - int subVal = combins(n - elmWidth - 1, elements - bar - 2); - if (noNarrow && (narrowMask == 0) && - (n - elmWidth - (elements - bar - 1) >= elements - bar - 1)) { - subVal -= combins(n - elmWidth - (elements - bar), - elements - bar - 2); - } - if (elements - bar - 1 > 1) { - int lessVal = 0; - for (int mxwElement = n - elmWidth - (elements - bar - 2); - mxwElement > maxWidth; mxwElement--) { - lessVal += combins(n - elmWidth - mxwElement - 1, - elements - bar - 3); - } - subVal -= lessVal * (elements - 1 - bar); - } else if (n - elmWidth > maxWidth) { - subVal--; - } - val += subVal; - } - n -= elmWidth; - } - return val; - } - - private static int combins(int n, int r) { - int maxDenom; - int minDenom; - if (n - r > r) { - minDenom = r; - maxDenom = n - r; - } else { - minDenom = n - r; - maxDenom = r; - } - int val = 1; - int j = 1; - for (int i = n; i > maxDenom; i--) { - val *= i; - if (j <= minDenom) { - val /= j; - j++; - } - } - while (j <= minDenom) { - val /= j; - j++; - } - return val; - } - - /* - static int[] elements(int[] eDist, int N, int K) { - int[] widths = new int[eDist.length + 2]; - int twoK = 2 * K; - widths[0] = 1; - int i; - int minEven = 10; - int barSum = 1; - for (i = 1; i < twoK - 2; i += 2) { - widths[i] = eDist[i - 1] - widths[i - 1]; - widths[i + 1] = eDist[i] - widths[i]; - barSum += widths[i] + widths[i + 1]; - if (widths[i] < minEven) { - minEven = widths[i]; - } - } - widths[twoK - 1] = N - barSum; - if (widths[twoK - 1] < minEven) { - minEven = widths[twoK - 1]; - } - if (minEven > 1) { - for (i = 0; i < twoK; i += 2) { - widths[i] += minEven - 1; - widths[i + 1] -= minEven - 1; - } - } - return widths; - } - */ - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/BitArrayBuilder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/BitArrayBuilder.java deleted file mode 100755 index 516616a2..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/BitArrayBuilder.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded; - -import java.util.List; - -import com.google.zxing.common.BitArray; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - * @author Eduardo Castillejo, University of Deusto (eduardo.castillejo@deusto.es) - */ -final class BitArrayBuilder { - - private BitArrayBuilder() { - } - - static BitArray buildBitArray(List<ExpandedPair> pairs) { - int charNumber = (pairs.size() * 2) - 1; - if (pairs.get(pairs.size() - 1).getRightChar() == null) { - charNumber -= 1; - } - - int size = 12 * charNumber; - - BitArray binary = new BitArray(size); - int accPos = 0; - - ExpandedPair firstPair = pairs.get(0); - int firstValue = firstPair.getRightChar().getValue(); - for(int i = 11; i >= 0; --i){ - if ((firstValue & (1 << i)) != 0) { - binary.set(accPos); - } - accPos++; - } - - for(int i = 1; i < pairs.size(); ++i){ - ExpandedPair currentPair = pairs.get(i); - - int leftValue = currentPair.getLeftChar().getValue(); - for(int j = 11; j >= 0; --j){ - if ((leftValue & (1 << j)) != 0) { - binary.set(accPos); - } - accPos++; - } - - if(currentPair.getRightChar() != null){ - int rightValue = currentPair.getRightChar().getValue(); - for(int j = 11; j >= 0; --j){ - if ((rightValue & (1 << j)) != 0) { - binary.set(accPos); - } - accPos++; - } - } - } - return binary; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/ExpandedPair.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/ExpandedPair.java deleted file mode 100755 index 8c2a501f..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/ExpandedPair.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded; - -import com.google.zxing.oned.rss.DataCharacter; -import com.google.zxing.oned.rss.FinderPattern; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - */ -final class ExpandedPair { - - private final boolean mayBeLast; - private final DataCharacter leftChar; - private final DataCharacter rightChar; - private final FinderPattern finderPattern; - - ExpandedPair(DataCharacter leftChar, - DataCharacter rightChar, - FinderPattern finderPattern, - boolean mayBeLast) { - this.leftChar = leftChar; - this.rightChar = rightChar; - this.finderPattern = finderPattern; - this.mayBeLast = mayBeLast; - } - - boolean mayBeLast(){ - return this.mayBeLast; - } - - DataCharacter getLeftChar() { - return this.leftChar; - } - - DataCharacter getRightChar() { - return this.rightChar; - } - - FinderPattern getFinderPattern() { - return this.finderPattern; - } - - public boolean mustBeLast() { - return this.rightChar == null; - } - - @Override - public String toString() { - return - "[ " + leftChar + " , " + rightChar + " : " + - (finderPattern == null ? "null" : finderPattern.getValue()) + " ]"; - } - - @Override - public boolean equals(Object o) { - if (!(o instanceof ExpandedPair)) { - return false; - } - ExpandedPair that = (ExpandedPair) o; - return - equalsOrNull(leftChar, that.leftChar) && - equalsOrNull(rightChar, that.rightChar) && - equalsOrNull(finderPattern, that.finderPattern); - } - - private static boolean equalsOrNull(Object o1, Object o2) { - return o1 == null ? o2 == null : o1.equals(o2); - } - - @Override - public int hashCode() { - return hashNotNull(leftChar) ^ hashNotNull(rightChar) ^ hashNotNull(finderPattern); - } - - private static int hashNotNull(Object o) { - return o == null ? 0 : o.hashCode(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/ExpandedRow.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/ExpandedRow.java deleted file mode 100755 index 037328e8..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/ExpandedRow.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.oned.rss.expanded; - -import java.util.ArrayList; -import java.util.List; - -/** - * One row of an RSS Expanded Stacked symbol, consisting of 1+ expanded pairs. - */ -final class ExpandedRow { - - private final List<ExpandedPair> pairs; - private final int rowNumber; - /** Did this row of the image have to be reversed (mirrored) to recognize the pairs? */ - private final boolean wasReversed; - - ExpandedRow(List<ExpandedPair> pairs, int rowNumber, boolean wasReversed) { - this.pairs = new ArrayList<>(pairs); - this.rowNumber = rowNumber; - this.wasReversed = wasReversed; - } - - List<ExpandedPair> getPairs() { - return this.pairs; - } - - int getRowNumber() { - return this.rowNumber; - } - - boolean isReversed() { - return this.wasReversed; - } - - boolean isEquivalent(List<ExpandedPair> otherPairs) { - return this.pairs.equals(otherPairs); - } - - @Override - public String toString() { - return "{ " + pairs + " }"; - } - - /** - * Two rows are equal if they contain the same pairs in the same order. - */ - @Override - public boolean equals(Object o) { - if (!(o instanceof ExpandedRow)) { - return false; - } - ExpandedRow that = (ExpandedRow) o; - return this.pairs.equals(that.getPairs()) && wasReversed == that.wasReversed; - } - - @Override - public int hashCode() { - return pairs.hashCode() ^ Boolean.valueOf(wasReversed).hashCode(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/RSSExpandedReader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/RSSExpandedReader.java deleted file mode 100755 index 3c6d7138..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/RSSExpandedReader.java +++ /dev/null @@ -1,783 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.DecodeHintType; -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.Result; -import com.google.zxing.ResultPoint; -import com.google.zxing.common.BitArray; -import com.google.zxing.oned.rss.AbstractRSSReader; -import com.google.zxing.oned.rss.DataCharacter; -import com.google.zxing.oned.rss.FinderPattern; -import com.google.zxing.oned.rss.RSSUtils; -import com.google.zxing.oned.rss.expanded.decoders.AbstractExpandedDecoder; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - * @author Eduardo Castillejo, University of Deusto (eduardo.castillejo@deusto.es) - */ -public final class RSSExpandedReader extends AbstractRSSReader { - - private static final int[] SYMBOL_WIDEST = {7, 5, 4, 3, 1}; - private static final int[] EVEN_TOTAL_SUBSET = {4, 20, 52, 104, 204}; - private static final int[] GSUM = {0, 348, 1388, 2948, 3988}; - - private static final int[][] FINDER_PATTERNS = { - {1,8,4,1}, // A - {3,6,4,1}, // B - {3,4,6,1}, // C - {3,2,8,1}, // D - {2,6,5,1}, // E - {2,2,9,1} // F - }; - - private static final int[][] WEIGHTS = { - { 1, 3, 9, 27, 81, 32, 96, 77}, - { 20, 60, 180, 118, 143, 7, 21, 63}, - {189, 145, 13, 39, 117, 140, 209, 205}, - {193, 157, 49, 147, 19, 57, 171, 91}, - { 62, 186, 136, 197, 169, 85, 44, 132}, - {185, 133, 188, 142, 4, 12, 36, 108}, - {113, 128, 173, 97, 80, 29, 87, 50}, - {150, 28, 84, 41, 123, 158, 52, 156}, - { 46, 138, 203, 187, 139, 206, 196, 166}, - { 76, 17, 51, 153, 37, 111, 122, 155}, - { 43, 129, 176, 106, 107, 110, 119, 146}, - { 16, 48, 144, 10, 30, 90, 59, 177}, - {109, 116, 137, 200, 178, 112, 125, 164}, - { 70, 210, 208, 202, 184, 130, 179, 115}, - {134, 191, 151, 31, 93, 68, 204, 190}, - {148, 22, 66, 198, 172, 94, 71, 2}, - { 6, 18, 54, 162, 64, 192,154, 40}, - {120, 149, 25, 75, 14, 42,126, 167}, - { 79, 26, 78, 23, 69, 207,199, 175}, - {103, 98, 83, 38, 114, 131, 182, 124}, - {161, 61, 183, 127, 170, 88, 53, 159}, - { 55, 165, 73, 8, 24, 72, 5, 15}, - { 45, 135, 194, 160, 58, 174, 100, 89} - }; - - private static final int FINDER_PAT_A = 0; - private static final int FINDER_PAT_B = 1; - private static final int FINDER_PAT_C = 2; - private static final int FINDER_PAT_D = 3; - private static final int FINDER_PAT_E = 4; - private static final int FINDER_PAT_F = 5; - - private static final int[][] FINDER_PATTERN_SEQUENCES = { - { FINDER_PAT_A, FINDER_PAT_A }, - { FINDER_PAT_A, FINDER_PAT_B, FINDER_PAT_B }, - { FINDER_PAT_A, FINDER_PAT_C, FINDER_PAT_B, FINDER_PAT_D }, - { FINDER_PAT_A, FINDER_PAT_E, FINDER_PAT_B, FINDER_PAT_D, FINDER_PAT_C }, - { FINDER_PAT_A, FINDER_PAT_E, FINDER_PAT_B, FINDER_PAT_D, FINDER_PAT_D, FINDER_PAT_F }, - { FINDER_PAT_A, FINDER_PAT_E, FINDER_PAT_B, FINDER_PAT_D, FINDER_PAT_E, FINDER_PAT_F, FINDER_PAT_F }, - { FINDER_PAT_A, FINDER_PAT_A, FINDER_PAT_B, FINDER_PAT_B, FINDER_PAT_C, FINDER_PAT_C, FINDER_PAT_D, FINDER_PAT_D }, - { FINDER_PAT_A, FINDER_PAT_A, FINDER_PAT_B, FINDER_PAT_B, FINDER_PAT_C, FINDER_PAT_C, FINDER_PAT_D, FINDER_PAT_E, FINDER_PAT_E }, - { FINDER_PAT_A, FINDER_PAT_A, FINDER_PAT_B, FINDER_PAT_B, FINDER_PAT_C, FINDER_PAT_C, FINDER_PAT_D, FINDER_PAT_E, FINDER_PAT_F, FINDER_PAT_F }, - { FINDER_PAT_A, FINDER_PAT_A, FINDER_PAT_B, FINDER_PAT_B, FINDER_PAT_C, FINDER_PAT_D, FINDER_PAT_D, FINDER_PAT_E, FINDER_PAT_E, FINDER_PAT_F, FINDER_PAT_F }, - }; - - private static final int MAX_PAIRS = 11; - - private final List<ExpandedPair> pairs = new ArrayList<>(MAX_PAIRS); - private final List<ExpandedRow> rows = new ArrayList<>(); - private final int [] startEnd = new int[2]; - private boolean startFromEven; - - @Override - public Result decodeRow(int rowNumber, - BitArray row, - Map<DecodeHintType,?> hints) throws NotFoundException, FormatException { - // Rows can start with even pattern in case in prev rows there where odd number of patters. - // So lets try twice - this.pairs.clear(); - this.startFromEven = false; - try { - List<ExpandedPair> pairs = decodeRow2pairs(rowNumber, row); - return constructResult(pairs); - } catch (NotFoundException e) { - // OK - } - - this.pairs.clear(); - this.startFromEven = true; - List<ExpandedPair> pairs = decodeRow2pairs(rowNumber, row); - return constructResult(pairs); - } - - @Override - public void reset() { - this.pairs.clear(); - this.rows.clear(); - } - - // Not private for testing - List<ExpandedPair> decodeRow2pairs(int rowNumber, BitArray row) throws NotFoundException { - try { - while (true){ - ExpandedPair nextPair = retrieveNextPair(row, this.pairs, rowNumber); - this.pairs.add(nextPair); - // exit this loop when retrieveNextPair() fails and throws - } - } catch (NotFoundException nfe) { - if (this.pairs.isEmpty()) { - throw nfe; - } - } - - // TODO: verify sequence of finder patterns as in checkPairSequence() - if (checkChecksum()) { - return this.pairs; - } - - boolean tryStackedDecode = !this.rows.isEmpty(); - boolean wasReversed = false; // TODO: deal with reversed rows - storeRow(rowNumber, wasReversed); - if (tryStackedDecode) { - // When the image is 180-rotated, then rows are sorted in wrong direction. - // Try twice with both the directions. - List<ExpandedPair> ps = checkRows(false); - if (ps != null) { - return ps; - } - ps = checkRows(true); - if (ps != null) { - return ps; - } - } - - throw NotFoundException.getNotFoundInstance(); - } - - private List<ExpandedPair> checkRows(boolean reverse) { - // Limit number of rows we are checking - // We use recursive algorithm with pure complexity and don't want it to take forever - // Stacked barcode can have up to 11 rows, so 25 seems reasonable enough - if (this.rows.size() > 25) { - this.rows.clear(); // We will never have a chance to get result, so clear it - return null; - } - - this.pairs.clear(); - if (reverse) { - Collections.reverse(this.rows); - } - - List<ExpandedPair> ps = null; - try { - ps = checkRows(new ArrayList<ExpandedRow>(), 0); - } catch (NotFoundException e) { - // OK - } - - if (reverse) { - Collections.reverse(this.rows); - } - - return ps; - } - - // Try to construct a valid rows sequence - // Recursion is used to implement backtracking - private List<ExpandedPair> checkRows(List<ExpandedRow> collectedRows, int currentRow) throws NotFoundException { - for (int i = currentRow; i < rows.size(); i++) { - ExpandedRow row = rows.get(i); - this.pairs.clear(); - int size = collectedRows.size(); - for (int j = 0; j < size; j++) { - this.pairs.addAll(collectedRows.get(j).getPairs()); - } - this.pairs.addAll(row.getPairs()); - - if (!isValidSequence(this.pairs)) { - continue; - } - - if (checkChecksum()) { - return this.pairs; - } - - List<ExpandedRow> rs = new ArrayList<>(); - rs.addAll(collectedRows); - rs.add(row); - try { - // Recursion: try to add more rows - return checkRows(rs, i + 1); - } catch (NotFoundException e) { - // We failed, try the next candidate - } - } - - throw NotFoundException.getNotFoundInstance(); - } - - // Whether the pairs form a valid find pattern seqience, - // either complete or a prefix - private static boolean isValidSequence(List<ExpandedPair> pairs) { - for (int[] sequence : FINDER_PATTERN_SEQUENCES) { - if (pairs.size() > sequence.length) { - continue; - } - - boolean stop = true; - for (int j = 0; j < pairs.size(); j++) { - if (pairs.get(j).getFinderPattern().getValue() != sequence[j]) { - stop = false; - break; - } - } - - if (stop) { - return true; - } - } - - return false; - } - - private void storeRow(int rowNumber, boolean wasReversed) { - // Discard if duplicate above or below; otherwise insert in order by row number. - int insertPos = 0; - boolean prevIsSame = false; - boolean nextIsSame = false; - while (insertPos < this.rows.size()) { - ExpandedRow erow = this.rows.get(insertPos); - if (erow.getRowNumber() > rowNumber) { - nextIsSame = erow.isEquivalent(this.pairs); - break; - } - prevIsSame = erow.isEquivalent(this.pairs); - insertPos++; - } - if (nextIsSame || prevIsSame) { - return; - } - - // When the row was partially decoded (e.g. 2 pairs found instead of 3), - // it will prevent us from detecting the barcode. - // Try to merge partial rows - - // Check whether the row is part of an allready detected row - if (isPartialRow(this.pairs, this.rows)) { - return; - } - - this.rows.add(insertPos, new ExpandedRow(this.pairs, rowNumber, wasReversed)); - - removePartialRows(this.pairs, this.rows); - } - - // Remove all the rows that contains only specified pairs - private static void removePartialRows(List<ExpandedPair> pairs, List<ExpandedRow> rows) { - for (Iterator<ExpandedRow> iterator = rows.iterator(); iterator.hasNext();) { - ExpandedRow r = iterator.next(); - if (r.getPairs().size() == pairs.size()) { - continue; - } - boolean allFound = true; - for (ExpandedPair p : r.getPairs()) { - boolean found = false; - for (ExpandedPair pp : pairs) { - if (p.equals(pp)) { - found = true; - break; - } - } - if (!found) { - allFound = false; - break; - } - } - if (allFound) { - // 'pairs' contains all the pairs from the row 'r' - iterator.remove(); - } - } - } - - // Returns true when one of the rows already contains all the pairs - private static boolean isPartialRow(Iterable<ExpandedPair> pairs, Iterable<ExpandedRow> rows) { - for (ExpandedRow r : rows) { - boolean allFound = true; - for (ExpandedPair p : pairs) { - boolean found = false; - for (ExpandedPair pp : r.getPairs()) { - if (p.equals(pp)) { - found = true; - break; - } - } - if (!found) { - allFound = false; - break; - } - } - if (allFound) { - // the row 'r' contain all the pairs from 'pairs' - return true; - } - } - return false; - } - - // Only used for unit testing - List<ExpandedRow> getRows() { - return this.rows; - } - - // Not private for unit testing - static Result constructResult(List<ExpandedPair> pairs) throws NotFoundException, FormatException { - BitArray binary = BitArrayBuilder.buildBitArray(pairs); - - AbstractExpandedDecoder decoder = AbstractExpandedDecoder.createDecoder(binary); - String resultingString = decoder.parseInformation(); - - ResultPoint[] firstPoints = pairs.get(0).getFinderPattern().getResultPoints(); - ResultPoint[] lastPoints = pairs.get(pairs.size() - 1).getFinderPattern().getResultPoints(); - - return new Result( - resultingString, - null, - new ResultPoint[]{firstPoints[0], firstPoints[1], lastPoints[0], lastPoints[1]}, - BarcodeFormat.RSS_EXPANDED - ); - } - - private boolean checkChecksum() { - ExpandedPair firstPair = this.pairs.get(0); - DataCharacter checkCharacter = firstPair.getLeftChar(); - DataCharacter firstCharacter = firstPair.getRightChar(); - - if (firstCharacter == null) { - return false; - } - - int checksum = firstCharacter.getChecksumPortion(); - int s = 2; - - for(int i = 1; i < this.pairs.size(); ++i){ - ExpandedPair currentPair = this.pairs.get(i); - checksum += currentPair.getLeftChar().getChecksumPortion(); - s++; - DataCharacter currentRightChar = currentPair.getRightChar(); - if (currentRightChar != null) { - checksum += currentRightChar.getChecksumPortion(); - s++; - } - } - - checksum %= 211; - - int checkCharacterValue = 211 * (s - 4) + checksum; - - return checkCharacterValue == checkCharacter.getValue(); - } - - private static int getNextSecondBar(BitArray row, int initialPos){ - int currentPos; - if (row.get(initialPos)) { - currentPos = row.getNextUnset(initialPos); - currentPos = row.getNextSet(currentPos); - } else { - currentPos = row.getNextSet(initialPos); - currentPos = row.getNextUnset(currentPos); - } - return currentPos; - } - - // not private for testing - ExpandedPair retrieveNextPair(BitArray row, List<ExpandedPair> previousPairs, int rowNumber) - throws NotFoundException { - boolean isOddPattern = previousPairs.size() % 2 == 0; - if (startFromEven) { - isOddPattern = !isOddPattern; - } - - FinderPattern pattern; - - boolean keepFinding = true; - int forcedOffset = -1; - do{ - this.findNextPair(row, previousPairs, forcedOffset); - pattern = parseFoundFinderPattern(row, rowNumber, isOddPattern); - if (pattern == null){ - forcedOffset = getNextSecondBar(row, this.startEnd[0]); - } else { - keepFinding = false; - } - }while(keepFinding); - - // When stacked symbol is split over multiple rows, there's no way to guess if this pair can be last or not. - // boolean mayBeLast = checkPairSequence(previousPairs, pattern); - - DataCharacter leftChar = this.decodeDataCharacter(row, pattern, isOddPattern, true); - - if (!previousPairs.isEmpty() && previousPairs.get(previousPairs.size()-1).mustBeLast()) { - throw NotFoundException.getNotFoundInstance(); - } - - DataCharacter rightChar; - try { - rightChar = this.decodeDataCharacter(row, pattern, isOddPattern, false); - } catch(NotFoundException ignored) { - rightChar = null; - } - boolean mayBeLast = true; - return new ExpandedPair(leftChar, rightChar, pattern, mayBeLast); - } - - private void findNextPair(BitArray row, List<ExpandedPair> previousPairs, int forcedOffset) - throws NotFoundException { - int[] counters = this.getDecodeFinderCounters(); - counters[0] = 0; - counters[1] = 0; - counters[2] = 0; - counters[3] = 0; - - int width = row.getSize(); - - int rowOffset; - if (forcedOffset >= 0) { - rowOffset = forcedOffset; - } else if (previousPairs.isEmpty()) { - rowOffset = 0; - } else{ - ExpandedPair lastPair = previousPairs.get(previousPairs.size() - 1); - rowOffset = lastPair.getFinderPattern().getStartEnd()[1]; - } - boolean searchingEvenPair = previousPairs.size() % 2 != 0; - if (startFromEven) { - searchingEvenPair = !searchingEvenPair; - } - - boolean isWhite = false; - while (rowOffset < width) { - isWhite = !row.get(rowOffset); - if (!isWhite) { - break; - } - rowOffset++; - } - - int counterPosition = 0; - int patternStart = rowOffset; - for (int x = rowOffset; x < width; x++) { - if (row.get(x) ^ isWhite) { - counters[counterPosition]++; - } else { - if (counterPosition == 3) { - if (searchingEvenPair) { - reverseCounters(counters); - } - - if (isFinderPattern(counters)){ - this.startEnd[0] = patternStart; - this.startEnd[1] = x; - return; - } - - if (searchingEvenPair) { - reverseCounters(counters); - } - - patternStart += counters[0] + counters[1]; - counters[0] = counters[2]; - counters[1] = counters[3]; - counters[2] = 0; - counters[3] = 0; - counterPosition--; - } else { - counterPosition++; - } - counters[counterPosition] = 1; - isWhite = !isWhite; - } - } - throw NotFoundException.getNotFoundInstance(); - } - - private static void reverseCounters(int [] counters){ - int length = counters.length; - for(int i = 0; i < length / 2; ++i){ - int tmp = counters[i]; - counters[i] = counters[length - i - 1]; - counters[length - i - 1] = tmp; - } - } - - private FinderPattern parseFoundFinderPattern(BitArray row, int rowNumber, boolean oddPattern) { - // Actually we found elements 2-5. - int firstCounter; - int start; - int end; - - if(oddPattern){ - // If pattern number is odd, we need to locate element 1 *before* the current block. - - int firstElementStart = this.startEnd[0] - 1; - // Locate element 1 - while (firstElementStart >= 0 && !row.get(firstElementStart)) { - firstElementStart--; - } - - firstElementStart++; - firstCounter = this.startEnd[0] - firstElementStart; - start = firstElementStart; - end = this.startEnd[1]; - - }else{ - // If pattern number is even, the pattern is reversed, so we need to locate element 1 *after* the current block. - - start = this.startEnd[0]; - - end = row.getNextUnset(this.startEnd[1] + 1); - firstCounter = end - this.startEnd[1]; - } - - // Make 'counters' hold 1-4 - int [] counters = this.getDecodeFinderCounters(); - System.arraycopy(counters, 0, counters, 1, counters.length - 1); - - counters[0] = firstCounter; - int value; - try { - value = parseFinderValue(counters, FINDER_PATTERNS); - } catch (NotFoundException ignored) { - return null; - } - return new FinderPattern(value, new int[] {start, end}, start, end, rowNumber); - } - - DataCharacter decodeDataCharacter(BitArray row, - FinderPattern pattern, - boolean isOddPattern, - boolean leftChar) throws NotFoundException { - int[] counters = this.getDataCharacterCounters(); - counters[0] = 0; - counters[1] = 0; - counters[2] = 0; - counters[3] = 0; - counters[4] = 0; - counters[5] = 0; - counters[6] = 0; - counters[7] = 0; - - if (leftChar) { - recordPatternInReverse(row, pattern.getStartEnd()[0], counters); - } else { - recordPattern(row, pattern.getStartEnd()[1], counters); - // reverse it - for (int i = 0, j = counters.length - 1; i < j; i++, j--) { - int temp = counters[i]; - counters[i] = counters[j]; - counters[j] = temp; - } - }//counters[] has the pixels of the module - - int numModules = 17; //left and right data characters have all the same length - float elementWidth = (float) count(counters) / (float) numModules; - - // Sanity check: element width for pattern and the character should match - float expectedElementWidth = (pattern.getStartEnd()[1] - pattern.getStartEnd()[0]) / 15.0f; - if (Math.abs(elementWidth - expectedElementWidth) / expectedElementWidth > 0.3f) { - throw NotFoundException.getNotFoundInstance(); - } - - int[] oddCounts = this.getOddCounts(); - int[] evenCounts = this.getEvenCounts(); - float[] oddRoundingErrors = this.getOddRoundingErrors(); - float[] evenRoundingErrors = this.getEvenRoundingErrors(); - - for (int i = 0; i < counters.length; i++) { - float value = 1.0f * counters[i] / elementWidth; - int count = (int) (value + 0.5f); // Round - if (count < 1) { - if (value < 0.3f) { - throw NotFoundException.getNotFoundInstance(); - } - count = 1; - } else if (count > 8) { - if (value > 8.7f) { - throw NotFoundException.getNotFoundInstance(); - } - count = 8; - } - int offset = i / 2; - if ((i & 0x01) == 0) { - oddCounts[offset] = count; - oddRoundingErrors[offset] = value - count; - } else { - evenCounts[offset] = count; - evenRoundingErrors[offset] = value - count; - } - } - - adjustOddEvenCounts(numModules); - - int weightRowNumber = 4 * pattern.getValue() + (isOddPattern?0:2) + (leftChar?0:1) - 1; - - int oddSum = 0; - int oddChecksumPortion = 0; - for (int i = oddCounts.length - 1; i >= 0; i--) { - if(isNotA1left(pattern, isOddPattern, leftChar)){ - int weight = WEIGHTS[weightRowNumber][2 * i]; - oddChecksumPortion += oddCounts[i] * weight; - } - oddSum += oddCounts[i]; - } - int evenChecksumPortion = 0; - //int evenSum = 0; - for (int i = evenCounts.length - 1; i >= 0; i--) { - if(isNotA1left(pattern, isOddPattern, leftChar)){ - int weight = WEIGHTS[weightRowNumber][2 * i + 1]; - evenChecksumPortion += evenCounts[i] * weight; - } - //evenSum += evenCounts[i]; - } - int checksumPortion = oddChecksumPortion + evenChecksumPortion; - - if ((oddSum & 0x01) != 0 || oddSum > 13 || oddSum < 4) { - throw NotFoundException.getNotFoundInstance(); - } - - int group = (13 - oddSum) / 2; - int oddWidest = SYMBOL_WIDEST[group]; - int evenWidest = 9 - oddWidest; - int vOdd = RSSUtils.getRSSvalue(oddCounts, oddWidest, true); - int vEven = RSSUtils.getRSSvalue(evenCounts, evenWidest, false); - int tEven = EVEN_TOTAL_SUBSET[group]; - int gSum = GSUM[group]; - int value = vOdd * tEven + vEven + gSum; - - return new DataCharacter(value, checksumPortion); - } - - private static boolean isNotA1left(FinderPattern pattern, boolean isOddPattern, boolean leftChar) { - // A1: pattern.getValue is 0 (A), and it's an oddPattern, and it is a left char - return !(pattern.getValue() == 0 && isOddPattern && leftChar); - } - - private void adjustOddEvenCounts(int numModules) throws NotFoundException { - - int oddSum = count(this.getOddCounts()); - int evenSum = count(this.getEvenCounts()); - int mismatch = oddSum + evenSum - numModules; - boolean oddParityBad = (oddSum & 0x01) == 1; - boolean evenParityBad = (evenSum & 0x01) == 0; - - boolean incrementOdd = false; - boolean decrementOdd = false; - - if (oddSum > 13) { - decrementOdd = true; - } else if (oddSum < 4) { - incrementOdd = true; - } - boolean incrementEven = false; - boolean decrementEven = false; - if (evenSum > 13) { - decrementEven = true; - } else if (evenSum < 4) { - incrementEven = true; - } - - if (mismatch == 1) { - if (oddParityBad) { - if (evenParityBad) { - throw NotFoundException.getNotFoundInstance(); - } - decrementOdd = true; - } else { - if (!evenParityBad) { - throw NotFoundException.getNotFoundInstance(); - } - decrementEven = true; - } - } else if (mismatch == -1) { - if (oddParityBad) { - if (evenParityBad) { - throw NotFoundException.getNotFoundInstance(); - } - incrementOdd = true; - } else { - if (!evenParityBad) { - throw NotFoundException.getNotFoundInstance(); - } - incrementEven = true; - } - } else if (mismatch == 0) { - if (oddParityBad) { - if (!evenParityBad) { - throw NotFoundException.getNotFoundInstance(); - } - // Both bad - if (oddSum < evenSum) { - incrementOdd = true; - decrementEven = true; - } else { - decrementOdd = true; - incrementEven = true; - } - } else { - if (evenParityBad) { - throw NotFoundException.getNotFoundInstance(); - } - // Nothing to do! - } - } else { - throw NotFoundException.getNotFoundInstance(); - } - - if (incrementOdd) { - if (decrementOdd) { - throw NotFoundException.getNotFoundInstance(); - } - increment(this.getOddCounts(), this.getOddRoundingErrors()); - } - if (decrementOdd) { - decrement(this.getOddCounts(), this.getOddRoundingErrors()); - } - if (incrementEven) { - if (decrementEven) { - throw NotFoundException.getNotFoundInstance(); - } - increment(this.getEvenCounts(), this.getOddRoundingErrors()); - } - if (decrementEven) { - decrement(this.getEvenCounts(), this.getEvenRoundingErrors()); - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI013103decoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI013103decoder.java deleted file mode 100755 index 759cf96e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI013103decoder.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded.decoders; - -import com.google.zxing.common.BitArray; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - */ -final class AI013103decoder extends AI013x0xDecoder { - - AI013103decoder(BitArray information) { - super(information); - } - - @Override - protected void addWeightCode(StringBuilder buf, int weight) { - buf.append("(3103)"); - } - - @Override - protected int checkWeight(int weight) { - return weight; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01320xDecoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01320xDecoder.java deleted file mode 100755 index f4e807e0..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01320xDecoder.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded.decoders; - -import com.google.zxing.common.BitArray; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - */ -final class AI01320xDecoder extends AI013x0xDecoder { - - AI01320xDecoder(BitArray information) { - super(information); - } - - @Override - protected void addWeightCode(StringBuilder buf, int weight) { - if (weight < 10000) { - buf.append("(3202)"); - } else { - buf.append("(3203)"); - } - } - - @Override - protected int checkWeight(int weight) { - if(weight < 10000) { - return weight; - } - return weight - 10000; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01392xDecoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01392xDecoder.java deleted file mode 100755 index 9ea5bba6..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01392xDecoder.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded.decoders; - -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.common.BitArray; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - */ -final class AI01392xDecoder extends AI01decoder { - - private static final int HEADER_SIZE = 5 + 1 + 2; - private static final int LAST_DIGIT_SIZE = 2; - - AI01392xDecoder(BitArray information) { - super(information); - } - - @Override - public String parseInformation() throws NotFoundException, FormatException { - if (this.getInformation().getSize() < HEADER_SIZE + GTIN_SIZE) { - throw NotFoundException.getNotFoundInstance(); - } - - StringBuilder buf = new StringBuilder(); - - encodeCompressedGtin(buf, HEADER_SIZE); - - int lastAIdigit = - this.getGeneralDecoder().extractNumericValueFromBitArray(HEADER_SIZE + GTIN_SIZE, LAST_DIGIT_SIZE); - buf.append("(392"); - buf.append(lastAIdigit); - buf.append(')'); - - DecodedInformation decodedInformation = - this.getGeneralDecoder().decodeGeneralPurposeField(HEADER_SIZE + GTIN_SIZE + LAST_DIGIT_SIZE, null); - buf.append(decodedInformation.getNewString()); - - return buf.toString(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01393xDecoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01393xDecoder.java deleted file mode 100755 index 649da3f3..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01393xDecoder.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ -package com.google.zxing.oned.rss.expanded.decoders; - -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.common.BitArray; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - */ -final class AI01393xDecoder extends AI01decoder { - - private static final int HEADER_SIZE = 5 + 1 + 2; - private static final int LAST_DIGIT_SIZE = 2; - private static final int FIRST_THREE_DIGITS_SIZE = 10; - - AI01393xDecoder(BitArray information) { - super(information); - } - - @Override - public String parseInformation() throws NotFoundException, FormatException { - if(this.getInformation().getSize() < HEADER_SIZE + GTIN_SIZE) { - throw NotFoundException.getNotFoundInstance(); - } - - StringBuilder buf = new StringBuilder(); - - encodeCompressedGtin(buf, HEADER_SIZE); - - int lastAIdigit = - this.getGeneralDecoder().extractNumericValueFromBitArray(HEADER_SIZE + GTIN_SIZE, LAST_DIGIT_SIZE); - - buf.append("(393"); - buf.append(lastAIdigit); - buf.append(')'); - - int firstThreeDigits = - this.getGeneralDecoder().extractNumericValueFromBitArray(HEADER_SIZE + GTIN_SIZE + LAST_DIGIT_SIZE, FIRST_THREE_DIGITS_SIZE); - if(firstThreeDigits / 100 == 0) { - buf.append('0'); - } - if(firstThreeDigits / 10 == 0) { - buf.append('0'); - } - buf.append(firstThreeDigits); - - DecodedInformation generalInformation = - this.getGeneralDecoder().decodeGeneralPurposeField(HEADER_SIZE + GTIN_SIZE + LAST_DIGIT_SIZE + FIRST_THREE_DIGITS_SIZE, null); - buf.append(generalInformation.getNewString()); - - return buf.toString(); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder.java deleted file mode 100755 index 9bcf3e8b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI013x0x1xDecoder.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded.decoders; - -import com.google.zxing.NotFoundException; -import com.google.zxing.common.BitArray; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - * @author Eduardo Castillejo, University of Deusto (eduardo.castillejo@deusto.es) - */ -final class AI013x0x1xDecoder extends AI01weightDecoder { - - private static final int HEADER_SIZE = 7 + 1; - private static final int WEIGHT_SIZE = 20; - private static final int DATE_SIZE = 16; - - private final String dateCode; - private final String firstAIdigits; - - AI013x0x1xDecoder(BitArray information, String firstAIdigits, String dateCode) { - super(information); - this.dateCode = dateCode; - this.firstAIdigits = firstAIdigits; - } - - @Override - public String parseInformation() throws NotFoundException { - if (this.getInformation().getSize() != HEADER_SIZE + GTIN_SIZE + WEIGHT_SIZE + DATE_SIZE) { - throw NotFoundException.getNotFoundInstance(); - } - - StringBuilder buf = new StringBuilder(); - - encodeCompressedGtin(buf, HEADER_SIZE); - encodeCompressedWeight(buf, HEADER_SIZE + GTIN_SIZE, WEIGHT_SIZE); - encodeCompressedDate(buf, HEADER_SIZE + GTIN_SIZE + WEIGHT_SIZE); - - return buf.toString(); - } - - private void encodeCompressedDate(StringBuilder buf, int currentPos) { - int numericDate = this.getGeneralDecoder().extractNumericValueFromBitArray(currentPos, DATE_SIZE); - if(numericDate == 38400) { - return; - } - - buf.append('('); - buf.append(this.dateCode); - buf.append(')'); - - int day = numericDate % 32; - numericDate /= 32; - int month = numericDate % 12 + 1; - numericDate /= 12; - int year = numericDate; - - if (year / 10 == 0) { - buf.append('0'); - } - buf.append(year); - if (month / 10 == 0) { - buf.append('0'); - } - buf.append(month); - if (day / 10 == 0) { - buf.append('0'); - } - buf.append(day); - } - - @Override - protected void addWeightCode(StringBuilder buf, int weight) { - int lastAI = weight / 100000; - buf.append('('); - buf.append(this.firstAIdigits); - buf.append(lastAI); - buf.append(')'); - } - - @Override - protected int checkWeight(int weight) { - return weight % 100000; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI013x0xDecoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI013x0xDecoder.java deleted file mode 100755 index 54d32d6c..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI013x0xDecoder.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded.decoders; - -import com.google.zxing.NotFoundException; -import com.google.zxing.common.BitArray; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - */ -abstract class AI013x0xDecoder extends AI01weightDecoder { - - private static final int HEADER_SIZE = 4 + 1; - private static final int WEIGHT_SIZE = 15; - - AI013x0xDecoder(BitArray information) { - super(information); - } - - @Override - public String parseInformation() throws NotFoundException { - if (this.getInformation().getSize() != HEADER_SIZE + GTIN_SIZE + WEIGHT_SIZE) { - throw NotFoundException.getNotFoundInstance(); - } - - StringBuilder buf = new StringBuilder(); - - encodeCompressedGtin(buf, HEADER_SIZE); - encodeCompressedWeight(buf, HEADER_SIZE + GTIN_SIZE, WEIGHT_SIZE); - - return buf.toString(); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01AndOtherAIs.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01AndOtherAIs.java deleted file mode 100755 index 27222a38..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01AndOtherAIs.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded.decoders; - -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.common.BitArray; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - * @author Eduardo Castillejo, University of Deusto (eduardo.castillejo@deusto.es) - */ -final class AI01AndOtherAIs extends AI01decoder { - - private static final int HEADER_SIZE = 1 + 1 + 2; //first bit encodes the linkage flag, - //the second one is the encodation method, and the other two are for the variable length - AI01AndOtherAIs(BitArray information) { - super(information); - } - - @Override - public String parseInformation() throws NotFoundException, FormatException { - StringBuilder buff = new StringBuilder(); - - buff.append("(01)"); - int initialGtinPosition = buff.length(); - int firstGtinDigit = this.getGeneralDecoder().extractNumericValueFromBitArray(HEADER_SIZE, 4); - buff.append(firstGtinDigit); - - this.encodeCompressedGtinWithoutAI(buff, HEADER_SIZE + 4, initialGtinPosition); - - return this.getGeneralDecoder().decodeAllCodes(buff, HEADER_SIZE + 44); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01decoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01decoder.java deleted file mode 100755 index 49bc9f9b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01decoder.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded.decoders; - -import com.google.zxing.common.BitArray; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - * @author Eduardo Castillejo, University of Deusto (eduardo.castillejo@deusto.es) - */ -abstract class AI01decoder extends AbstractExpandedDecoder { - - protected static final int GTIN_SIZE = 40; - - AI01decoder(BitArray information) { - super(information); - } - - protected final void encodeCompressedGtin(StringBuilder buf, int currentPos) { - buf.append("(01)"); - int initialPosition = buf.length(); - buf.append('9'); - - encodeCompressedGtinWithoutAI(buf, currentPos, initialPosition); - } - - protected final void encodeCompressedGtinWithoutAI(StringBuilder buf, int currentPos, int initialBufferPosition) { - for(int i = 0; i < 4; ++i){ - int currentBlock = this.getGeneralDecoder().extractNumericValueFromBitArray(currentPos + 10 * i, 10); - if (currentBlock / 100 == 0) { - buf.append('0'); - } - if (currentBlock / 10 == 0) { - buf.append('0'); - } - buf.append(currentBlock); - } - - appendCheckDigit(buf, initialBufferPosition); - } - - private static void appendCheckDigit(StringBuilder buf, int currentPos){ - int checkDigit = 0; - for (int i = 0; i < 13; i++) { - int digit = buf.charAt(i + currentPos) - '0'; - checkDigit += (i & 0x01) == 0 ? 3 * digit : digit; - } - - checkDigit = 10 - (checkDigit % 10); - if (checkDigit == 10) { - checkDigit = 0; - } - - buf.append(checkDigit); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01weightDecoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01weightDecoder.java deleted file mode 100755 index 357a13dc..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AI01weightDecoder.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded.decoders; - -import com.google.zxing.common.BitArray; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - */ -abstract class AI01weightDecoder extends AI01decoder { - - AI01weightDecoder(BitArray information) { - super(information); - } - - protected final void encodeCompressedWeight(StringBuilder buf, int currentPos, int weightSize) { - int originalWeightNumeric = this.getGeneralDecoder().extractNumericValueFromBitArray(currentPos, weightSize); - addWeightCode(buf, originalWeightNumeric); - - int weightNumeric = checkWeight(originalWeightNumeric); - - int currentDivisor = 100000; - for(int i = 0; i < 5; ++i){ - if (weightNumeric / currentDivisor == 0) { - buf.append('0'); - } - currentDivisor /= 10; - } - buf.append(weightNumeric); - } - - protected abstract void addWeightCode(StringBuilder buf, int weight); - - protected abstract int checkWeight(int weight); - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder.java deleted file mode 100755 index bdb7e108..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AbstractExpandedDecoder.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded.decoders; - -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.common.BitArray; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - * @author Eduardo Castillejo, University of Deusto (eduardo.castillejo@deusto.es) - */ -public abstract class AbstractExpandedDecoder { - - private final BitArray information; - private final GeneralAppIdDecoder generalDecoder; - - AbstractExpandedDecoder(BitArray information){ - this.information = information; - this.generalDecoder = new GeneralAppIdDecoder(information); - } - - protected final BitArray getInformation() { - return information; - } - - protected final GeneralAppIdDecoder getGeneralDecoder() { - return generalDecoder; - } - - public abstract String parseInformation() throws NotFoundException, FormatException; - - public static AbstractExpandedDecoder createDecoder(BitArray information){ - if (information.get(1)) { - return new AI01AndOtherAIs(information); - } - if (!information.get(2)) { - return new AnyAIDecoder(information); - } - - int fourBitEncodationMethod = GeneralAppIdDecoder.extractNumericValueFromBitArray(information, 1, 4); - - switch(fourBitEncodationMethod){ - case 4: return new AI013103decoder(information); - case 5: return new AI01320xDecoder(information); - } - - int fiveBitEncodationMethod = GeneralAppIdDecoder.extractNumericValueFromBitArray(information, 1, 5); - switch(fiveBitEncodationMethod){ - case 12: return new AI01392xDecoder(information); - case 13: return new AI01393xDecoder(information); - } - - int sevenBitEncodationMethod = GeneralAppIdDecoder.extractNumericValueFromBitArray(information, 1, 7); - switch(sevenBitEncodationMethod){ - case 56: return new AI013x0x1xDecoder(information, "310", "11"); - case 57: return new AI013x0x1xDecoder(information, "320", "11"); - case 58: return new AI013x0x1xDecoder(information, "310", "13"); - case 59: return new AI013x0x1xDecoder(information, "320", "13"); - case 60: return new AI013x0x1xDecoder(information, "310", "15"); - case 61: return new AI013x0x1xDecoder(information, "320", "15"); - case 62: return new AI013x0x1xDecoder(information, "310", "17"); - case 63: return new AI013x0x1xDecoder(information, "320", "17"); - } - - throw new IllegalStateException("unknown decoder: " + information); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AnyAIDecoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AnyAIDecoder.java deleted file mode 100755 index 2074d8f0..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/AnyAIDecoder.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded.decoders; - -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.common.BitArray; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - * @author Eduardo Castillejo, University of Deusto (eduardo.castillejo@deusto.es) - */ -final class AnyAIDecoder extends AbstractExpandedDecoder { - - private static final int HEADER_SIZE = 2 + 1 + 2; - - AnyAIDecoder(BitArray information) { - super(information); - } - - @Override - public String parseInformation() throws NotFoundException, FormatException { - StringBuilder buf = new StringBuilder(); - return this.getGeneralDecoder().decodeAllCodes(buf, HEADER_SIZE); - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/BlockParsedResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/BlockParsedResult.java deleted file mode 100755 index a9593553..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/BlockParsedResult.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded.decoders; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - * @author Eduardo Castillejo, University of Deusto (eduardo.castillejo@deusto.es) - */ -final class BlockParsedResult { - - private final DecodedInformation decodedInformation; - private final boolean finished; - - BlockParsedResult(boolean finished) { - this(null, finished); - } - - BlockParsedResult(DecodedInformation information, boolean finished) { - this.finished = finished; - this.decodedInformation = information; - } - - DecodedInformation getDecodedInformation() { - return this.decodedInformation; - } - - boolean isFinished() { - return this.finished; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/CurrentParsingState.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/CurrentParsingState.java deleted file mode 100755 index 463cee2b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/CurrentParsingState.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded.decoders; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - */ -final class CurrentParsingState { - - private int position; - private State encoding; - - private enum State { - NUMERIC, - ALPHA, - ISO_IEC_646 - } - - CurrentParsingState() { - this.position = 0; - this.encoding = State.NUMERIC; - } - - int getPosition() { - return position; - } - - void setPosition(int position) { - this.position = position; - } - - void incrementPosition(int delta) { - position += delta; - } - - boolean isAlpha(){ - return this.encoding == State.ALPHA; - } - - boolean isNumeric(){ - return this.encoding == State.NUMERIC; - } - - boolean isIsoIec646(){ - return this.encoding == State.ISO_IEC_646; - } - - void setNumeric() { - this.encoding = State.NUMERIC; - } - - void setAlpha() { - this.encoding = State.ALPHA; - } - - void setIsoIec646() { - this.encoding = State.ISO_IEC_646; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/DecodedChar.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/DecodedChar.java deleted file mode 100755 index 790b6846..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/DecodedChar.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded.decoders; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - * @author Eduardo Castillejo, University of Deusto (eduardo.castillejo@deusto.es) - */ -final class DecodedChar extends DecodedObject { - - private final char value; - - static final char FNC1 = '$'; // It's not in Alphanumeric neither in ISO/IEC 646 charset - - DecodedChar(int newPosition, char value) { - super(newPosition); - this.value = value; - } - - char getValue(){ - return this.value; - } - - boolean isFNC1(){ - return this.value == FNC1; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/DecodedInformation.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/DecodedInformation.java deleted file mode 100755 index cc252259..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/DecodedInformation.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded.decoders; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - * @author Eduardo Castillejo, University of Deusto (eduardo.castillejo@deusto.es) - */ -final class DecodedInformation extends DecodedObject { - - private final String newString; - private final int remainingValue; - private final boolean remaining; - - DecodedInformation(int newPosition, String newString){ - super(newPosition); - this.newString = newString; - this.remaining = false; - this.remainingValue = 0; - } - - DecodedInformation(int newPosition, String newString, int remainingValue){ - super(newPosition); - this.remaining = true; - this.remainingValue = remainingValue; - this.newString = newString; - } - - String getNewString(){ - return this.newString; - } - - boolean isRemaining(){ - return this.remaining; - } - - int getRemainingValue(){ - return this.remainingValue; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/DecodedNumeric.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/DecodedNumeric.java deleted file mode 100755 index 29a7e672..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/DecodedNumeric.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded.decoders; - -import com.google.zxing.FormatException; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - * @author Eduardo Castillejo, University of Deusto (eduardo.castillejo@deusto.es) - */ -final class DecodedNumeric extends DecodedObject { - - private final int firstDigit; - private final int secondDigit; - - static final int FNC1 = 10; - - DecodedNumeric(int newPosition, int firstDigit, int secondDigit) throws FormatException { - super(newPosition); - - if (firstDigit < 0 || firstDigit > 10 || secondDigit < 0 || secondDigit > 10) { - throw FormatException.getFormatInstance(); - } - - this.firstDigit = firstDigit; - this.secondDigit = secondDigit; - } - - int getFirstDigit(){ - return this.firstDigit; - } - - int getSecondDigit(){ - return this.secondDigit; - } - - int getValue(){ - return this.firstDigit * 10 + this.secondDigit; - } - - boolean isFirstDigitFNC1(){ - return this.firstDigit == FNC1; - } - - boolean isSecondDigitFNC1(){ - return this.secondDigit == FNC1; - } - - boolean isAnyFNC1(){ - return this.firstDigit == FNC1 || this.secondDigit == FNC1; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/DecodedObject.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/DecodedObject.java deleted file mode 100755 index ea667aa5..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/DecodedObject.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded.decoders; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - */ -abstract class DecodedObject { - - private final int newPosition; - - DecodedObject(int newPosition){ - this.newPosition = newPosition; - } - - final int getNewPosition() { - return this.newPosition; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/FieldParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/FieldParser.java deleted file mode 100755 index 8de540b3..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/FieldParser.java +++ /dev/null @@ -1,291 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded.decoders; - -import com.google.zxing.NotFoundException; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - * @author Eduardo Castillejo, University of Deusto (eduardo.castillejo@deusto.es) - */ -final class FieldParser { - - private static final Object VARIABLE_LENGTH = new Object(); - - private static final Object [][] TWO_DIGIT_DATA_LENGTH = { - // "DIGITS", new Integer(LENGTH) - // or - // "DIGITS", VARIABLE_LENGTH, new Integer(MAX_SIZE) - - { "00", 18}, - { "01", 14}, - { "02", 14}, - - { "10", VARIABLE_LENGTH, 20}, - { "11", 6}, - { "12", 6}, - { "13", 6}, - { "15", 6}, - { "17", 6}, - - { "20", 2}, - { "21", VARIABLE_LENGTH, 20}, - { "22", VARIABLE_LENGTH, 29}, - - { "30", VARIABLE_LENGTH, 8}, - { "37", VARIABLE_LENGTH, 8}, - - //internal company codes - { "90", VARIABLE_LENGTH, 30}, - { "91", VARIABLE_LENGTH, 30}, - { "92", VARIABLE_LENGTH, 30}, - { "93", VARIABLE_LENGTH, 30}, - { "94", VARIABLE_LENGTH, 30}, - { "95", VARIABLE_LENGTH, 30}, - { "96", VARIABLE_LENGTH, 30}, - { "97", VARIABLE_LENGTH, 30}, - { "98", VARIABLE_LENGTH, 30}, - { "99", VARIABLE_LENGTH, 30}, - }; - - private static final Object [][] THREE_DIGIT_DATA_LENGTH = { - // Same format as above - - { "240", VARIABLE_LENGTH, 30}, - { "241", VARIABLE_LENGTH, 30}, - { "242", VARIABLE_LENGTH, 6}, - { "250", VARIABLE_LENGTH, 30}, - { "251", VARIABLE_LENGTH, 30}, - { "253", VARIABLE_LENGTH, 17}, - { "254", VARIABLE_LENGTH, 20}, - - { "400", VARIABLE_LENGTH, 30}, - { "401", VARIABLE_LENGTH, 30}, - { "402", 17}, - { "403", VARIABLE_LENGTH, 30}, - { "410", 13}, - { "411", 13}, - { "412", 13}, - { "413", 13}, - { "414", 13}, - { "420", VARIABLE_LENGTH, 20}, - { "421", VARIABLE_LENGTH, 15}, - { "422", 3}, - { "423", VARIABLE_LENGTH, 15}, - { "424", 3}, - { "425", 3}, - { "426", 3}, - }; - - private static final Object [][] THREE_DIGIT_PLUS_DIGIT_DATA_LENGTH = { - // Same format as above - - { "310", 6}, - { "311", 6}, - { "312", 6}, - { "313", 6}, - { "314", 6}, - { "315", 6}, - { "316", 6}, - { "320", 6}, - { "321", 6}, - { "322", 6}, - { "323", 6}, - { "324", 6}, - { "325", 6}, - { "326", 6}, - { "327", 6}, - { "328", 6}, - { "329", 6}, - { "330", 6}, - { "331", 6}, - { "332", 6}, - { "333", 6}, - { "334", 6}, - { "335", 6}, - { "336", 6}, - { "340", 6}, - { "341", 6}, - { "342", 6}, - { "343", 6}, - { "344", 6}, - { "345", 6}, - { "346", 6}, - { "347", 6}, - { "348", 6}, - { "349", 6}, - { "350", 6}, - { "351", 6}, - { "352", 6}, - { "353", 6}, - { "354", 6}, - { "355", 6}, - { "356", 6}, - { "357", 6}, - { "360", 6}, - { "361", 6}, - { "362", 6}, - { "363", 6}, - { "364", 6}, - { "365", 6}, - { "366", 6}, - { "367", 6}, - { "368", 6}, - { "369", 6}, - { "390", VARIABLE_LENGTH, 15}, - { "391", VARIABLE_LENGTH, 18}, - { "392", VARIABLE_LENGTH, 15}, - { "393", VARIABLE_LENGTH, 18}, - { "703", VARIABLE_LENGTH, 30} - }; - - private static final Object [][] FOUR_DIGIT_DATA_LENGTH = { - // Same format as above - - { "7001", 13}, - { "7002", VARIABLE_LENGTH, 30}, - { "7003", 10}, - - { "8001", 14}, - { "8002", VARIABLE_LENGTH, 20}, - { "8003", VARIABLE_LENGTH, 30}, - { "8004", VARIABLE_LENGTH, 30}, - { "8005", 6}, - { "8006", 18}, - { "8007", VARIABLE_LENGTH, 30}, - { "8008", VARIABLE_LENGTH, 12}, - { "8018", 18}, - { "8020", VARIABLE_LENGTH, 25}, - { "8100", 6}, - { "8101", 10}, - { "8102", 2}, - { "8110", VARIABLE_LENGTH, 70}, - { "8200", VARIABLE_LENGTH, 70}, - }; - - private FieldParser() { - } - - static String parseFieldsInGeneralPurpose(String rawInformation) throws NotFoundException{ - if (rawInformation.isEmpty()) { - return null; - } - - // Processing 2-digit AIs - - if(rawInformation.length() < 2) { - throw NotFoundException.getNotFoundInstance(); - } - - String firstTwoDigits = rawInformation.substring(0, 2); - - for (Object[] dataLength : TWO_DIGIT_DATA_LENGTH) { - if (dataLength[0].equals(firstTwoDigits)) { - if (dataLength[1] == VARIABLE_LENGTH) { - return processVariableAI(2, (Integer) dataLength[2], rawInformation); - } - return processFixedAI(2, (Integer) dataLength[1], rawInformation); - } - } - - if(rawInformation.length() < 3) { - throw NotFoundException.getNotFoundInstance(); - } - - String firstThreeDigits = rawInformation.substring(0, 3); - - for (Object[] dataLength : THREE_DIGIT_DATA_LENGTH) { - if (dataLength[0].equals(firstThreeDigits)) { - if (dataLength[1] == VARIABLE_LENGTH) { - return processVariableAI(3, (Integer) dataLength[2], rawInformation); - } - return processFixedAI(3, (Integer) dataLength[1], rawInformation); - } - } - - - for (Object[] dataLength : THREE_DIGIT_PLUS_DIGIT_DATA_LENGTH) { - if (dataLength[0].equals(firstThreeDigits)) { - if (dataLength[1] == VARIABLE_LENGTH) { - return processVariableAI(4, (Integer) dataLength[2], rawInformation); - } - return processFixedAI(4, (Integer) dataLength[1], rawInformation); - } - } - - if(rawInformation.length() < 4) { - throw NotFoundException.getNotFoundInstance(); - } - - String firstFourDigits = rawInformation.substring(0, 4); - - for (Object[] dataLength : FOUR_DIGIT_DATA_LENGTH) { - if (dataLength[0].equals(firstFourDigits)) { - if (dataLength[1] == VARIABLE_LENGTH) { - return processVariableAI(4, (Integer) dataLength[2], rawInformation); - } - return processFixedAI(4, (Integer) dataLength[1], rawInformation); - } - } - - throw NotFoundException.getNotFoundInstance(); - } - - private static String processFixedAI(int aiSize, int fieldSize, String rawInformation) throws NotFoundException{ - if (rawInformation.length() < aiSize) { - throw NotFoundException.getNotFoundInstance(); - } - - String ai = rawInformation.substring(0, aiSize); - - if(rawInformation.length() < aiSize + fieldSize) { - throw NotFoundException.getNotFoundInstance(); - } - - String field = rawInformation.substring(aiSize, aiSize + fieldSize); - String remaining = rawInformation.substring(aiSize + fieldSize); - String result = '(' + ai + ')' + field; - String parsedAI = parseFieldsInGeneralPurpose(remaining); - return parsedAI == null ? result : result + parsedAI; - } - - private static String processVariableAI(int aiSize, int variableFieldSize, String rawInformation) - throws NotFoundException { - String ai = rawInformation.substring(0, aiSize); - int maxSize; - if (rawInformation.length() < aiSize + variableFieldSize) { - maxSize = rawInformation.length(); - } else { - maxSize = aiSize + variableFieldSize; - } - String field = rawInformation.substring(aiSize, maxSize); - String remaining = rawInformation.substring(maxSize); - String result = '(' + ai + ')' + field; - String parsedAI = parseFieldsInGeneralPurpose(remaining); - return parsedAI == null ? result : result + parsedAI; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.java deleted file mode 100755 index 916a708e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/oned/rss/expanded/decoders/GeneralAppIdDecoder.java +++ /dev/null @@ -1,469 +0,0 @@ -/* - * Copyright (C) 2010 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * These authors would like to acknowledge the Spanish Ministry of Industry, - * Tourism and Trade, for the support in the project TSI020301-2008-2 - * "PIRAmIDE: Personalizable Interactions with Resources on AmI-enabled - * Mobile Dynamic Environments", led by Treelogic - * ( http://www.treelogic.com/ ): - * - * http://www.piramidepse.com/ - */ - -package com.google.zxing.oned.rss.expanded.decoders; - -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.common.BitArray; - -/** - * @author Pablo Orduña, University of Deusto (pablo.orduna@deusto.es) - * @author Eduardo Castillejo, University of Deusto (eduardo.castillejo@deusto.es) - */ -final class GeneralAppIdDecoder { - - private final BitArray information; - private final CurrentParsingState current = new CurrentParsingState(); - private final StringBuilder buffer = new StringBuilder(); - - GeneralAppIdDecoder(BitArray information){ - this.information = information; - } - - String decodeAllCodes(StringBuilder buff, int initialPosition) throws NotFoundException, FormatException { - int currentPosition = initialPosition; - String remaining = null; - do{ - DecodedInformation info = this.decodeGeneralPurposeField(currentPosition, remaining); - String parsedFields = FieldParser.parseFieldsInGeneralPurpose(info.getNewString()); - if (parsedFields != null) { - buff.append(parsedFields); - } - if(info.isRemaining()) { - remaining = String.valueOf(info.getRemainingValue()); - } else { - remaining = null; - } - - if(currentPosition == info.getNewPosition()) {// No step forward! - break; - } - currentPosition = info.getNewPosition(); - }while(true); - - return buff.toString(); - } - - private boolean isStillNumeric(int pos) { - // It's numeric if it still has 7 positions - // and one of the first 4 bits is "1". - if(pos + 7 > this.information.getSize()){ - return pos + 4 <= this.information.getSize(); - } - - for (int i = pos; i < pos + 3; ++i) { - if (this.information.get(i)) { - return true; - } - } - - return this.information.get(pos + 3); - } - - private DecodedNumeric decodeNumeric(int pos) throws FormatException { - if(pos + 7 > this.information.getSize()){ - int numeric = extractNumericValueFromBitArray(pos, 4); - if(numeric == 0) { - return new DecodedNumeric(this.information.getSize(), DecodedNumeric.FNC1, DecodedNumeric.FNC1); - } - return new DecodedNumeric(this.information.getSize(), numeric - 1, DecodedNumeric.FNC1); - } - int numeric = extractNumericValueFromBitArray(pos, 7); - - int digit1 = (numeric - 8) / 11; - int digit2 = (numeric - 8) % 11; - - return new DecodedNumeric(pos + 7, digit1, digit2); - } - - int extractNumericValueFromBitArray(int pos, int bits){ - return extractNumericValueFromBitArray(this.information, pos, bits); - } - - static int extractNumericValueFromBitArray(BitArray information, int pos, int bits) { - int value = 0; - for (int i = 0; i < bits; ++i) { - if (information.get(pos + i)) { - value |= 1 << (bits - i - 1); - } - } - - return value; - } - - DecodedInformation decodeGeneralPurposeField(int pos, String remaining) throws FormatException { - this.buffer.setLength(0); - - if(remaining != null) { - this.buffer.append(remaining); - } - - this.current.setPosition(pos); - - DecodedInformation lastDecoded = parseBlocks(); - if(lastDecoded != null && lastDecoded.isRemaining()) { - return new DecodedInformation(this.current.getPosition(), this.buffer.toString(), lastDecoded.getRemainingValue()); - } - return new DecodedInformation(this.current.getPosition(), this.buffer.toString()); - } - - private DecodedInformation parseBlocks() throws FormatException { - boolean isFinished; - BlockParsedResult result; - do{ - int initialPosition = current.getPosition(); - - if (current.isAlpha()){ - result = parseAlphaBlock(); - isFinished = result.isFinished(); - }else if (current.isIsoIec646()){ - result = parseIsoIec646Block(); - isFinished = result.isFinished(); - }else{ // it must be numeric - result = parseNumericBlock(); - isFinished = result.isFinished(); - } - - boolean positionChanged = initialPosition != current.getPosition(); - if(!positionChanged && !isFinished) { - break; - } - } while (!isFinished); - - return result.getDecodedInformation(); - } - - private BlockParsedResult parseNumericBlock() throws FormatException { - while (isStillNumeric(current.getPosition())) { - DecodedNumeric numeric = decodeNumeric(current.getPosition()); - current.setPosition(numeric.getNewPosition()); - - if(numeric.isFirstDigitFNC1()){ - DecodedInformation information; - if (numeric.isSecondDigitFNC1()) { - information = new DecodedInformation(current.getPosition(), buffer.toString()); - } else { - information = new DecodedInformation(current.getPosition(), buffer.toString(), numeric.getSecondDigit()); - } - return new BlockParsedResult(information, true); - } - buffer.append(numeric.getFirstDigit()); - - if(numeric.isSecondDigitFNC1()){ - DecodedInformation information = new DecodedInformation(current.getPosition(), buffer.toString()); - return new BlockParsedResult(information, true); - } - buffer.append(numeric.getSecondDigit()); - } - - if (isNumericToAlphaNumericLatch(current.getPosition())) { - current.setAlpha(); - current.incrementPosition(4); - } - return new BlockParsedResult(false); - } - - private BlockParsedResult parseIsoIec646Block() throws FormatException { - while (isStillIsoIec646(current.getPosition())) { - DecodedChar iso = decodeIsoIec646(current.getPosition()); - current.setPosition(iso.getNewPosition()); - - if (iso.isFNC1()) { - DecodedInformation information = new DecodedInformation(current.getPosition(), buffer.toString()); - return new BlockParsedResult(information, true); - } - buffer.append(iso.getValue()); - } - - if (isAlphaOr646ToNumericLatch(current.getPosition())) { - current.incrementPosition(3); - current.setNumeric(); - } else if (isAlphaTo646ToAlphaLatch(current.getPosition())) { - if (current.getPosition() + 5 < this.information.getSize()) { - current.incrementPosition(5); - } else { - current.setPosition(this.information.getSize()); - } - - current.setAlpha(); - } - return new BlockParsedResult(false); - } - - private BlockParsedResult parseAlphaBlock() { - while (isStillAlpha(current.getPosition())) { - DecodedChar alpha = decodeAlphanumeric(current.getPosition()); - current.setPosition(alpha.getNewPosition()); - - if(alpha.isFNC1()) { - DecodedInformation information = new DecodedInformation(current.getPosition(), buffer.toString()); - return new BlockParsedResult(information, true); //end of the char block - } - - buffer.append(alpha.getValue()); - } - - if (isAlphaOr646ToNumericLatch(current.getPosition())) { - current.incrementPosition(3); - current.setNumeric(); - } else if (isAlphaTo646ToAlphaLatch(current.getPosition())) { - if (current.getPosition() + 5 < this.information.getSize()) { - current.incrementPosition(5); - } else { - current.setPosition(this.information.getSize()); - } - - current.setIsoIec646(); - } - return new BlockParsedResult(false); - } - - private boolean isStillIsoIec646(int pos) { - if (pos + 5 > this.information.getSize()) { - return false; - } - - int fiveBitValue = extractNumericValueFromBitArray(pos, 5); - if (fiveBitValue >= 5 && fiveBitValue < 16) { - return true; - } - - if (pos + 7 > this.information.getSize()) { - return false; - } - - int sevenBitValue = extractNumericValueFromBitArray(pos, 7); - if(sevenBitValue >= 64 && sevenBitValue < 116) { - return true; - } - - if (pos + 8 > this.information.getSize()) { - return false; - } - - int eightBitValue = extractNumericValueFromBitArray(pos, 8); - return eightBitValue >= 232 && eightBitValue < 253; - - } - - private DecodedChar decodeIsoIec646(int pos) throws FormatException { - int fiveBitValue = extractNumericValueFromBitArray(pos, 5); - if (fiveBitValue == 15) { - return new DecodedChar(pos + 5, DecodedChar.FNC1); - } - - if (fiveBitValue >= 5 && fiveBitValue < 15) { - return new DecodedChar(pos + 5, (char) ('0' + fiveBitValue - 5)); - } - - int sevenBitValue = extractNumericValueFromBitArray(pos, 7); - - if (sevenBitValue >= 64 && sevenBitValue < 90) { - return new DecodedChar(pos + 7, (char) (sevenBitValue + 1)); - } - - if (sevenBitValue >= 90 && sevenBitValue < 116) { - return new DecodedChar(pos + 7, (char) (sevenBitValue + 7)); - } - - int eightBitValue = extractNumericValueFromBitArray(pos, 8); - char c; - switch (eightBitValue) { - case 232: - c = '!'; - break; - case 233: - c = '"'; - break; - case 234: - c = '%'; - break; - case 235: - c = '&'; - break; - case 236: - c = '\''; - break; - case 237: - c = '('; - break; - case 238: - c = ')'; - break; - case 239: - c = '*'; - break; - case 240: - c = '+'; - break; - case 241: - c = ','; - break; - case 242: - c = '-'; - break; - case 243: - c = '.'; - break; - case 244: - c = '/'; - break; - case 245: - c = ':'; - break; - case 246: - c = ';'; - break; - case 247: - c = '<'; - break; - case 248: - c = '='; - break; - case 249: - c = '>'; - break; - case 250: - c = '?'; - break; - case 251: - c = '_'; - break; - case 252: - c = ' '; - break; - default: - throw FormatException.getFormatInstance(); - } - return new DecodedChar(pos + 8, c); - } - - private boolean isStillAlpha(int pos) { - if(pos + 5 > this.information.getSize()) { - return false; - } - - // We now check if it's a valid 5-bit value (0..9 and FNC1) - int fiveBitValue = extractNumericValueFromBitArray(pos, 5); - if (fiveBitValue >= 5 && fiveBitValue < 16) { - return true; - } - - if (pos + 6 > this.information.getSize()) { - return false; - } - - int sixBitValue = extractNumericValueFromBitArray(pos, 6); - return sixBitValue >= 16 && sixBitValue < 63; // 63 not included - } - - private DecodedChar decodeAlphanumeric(int pos) { - int fiveBitValue = extractNumericValueFromBitArray(pos, 5); - if (fiveBitValue == 15) { - return new DecodedChar(pos + 5, DecodedChar.FNC1); - } - - if (fiveBitValue >= 5 && fiveBitValue < 15) { - return new DecodedChar(pos + 5, (char) ('0' + fiveBitValue - 5)); - } - - int sixBitValue = extractNumericValueFromBitArray(pos, 6); - - if (sixBitValue >= 32 && sixBitValue < 58) { - return new DecodedChar(pos + 6, (char) (sixBitValue + 33)); - } - - char c; - switch (sixBitValue){ - case 58: - c = '*'; - break; - case 59: - c = ','; - break; - case 60: - c = '-'; - break; - case 61: - c = '.'; - break; - case 62: - c = '/'; - break; - default: - throw new IllegalStateException("Decoding invalid alphanumeric value: " + sixBitValue); - } - return new DecodedChar(pos + 6, c); - } - - private boolean isAlphaTo646ToAlphaLatch(int pos) { - if (pos + 1 > this.information.getSize()) { - return false; - } - - for (int i = 0; i < 5 && i + pos < this.information.getSize(); ++i) { - if(i == 2){ - if (!this.information.get(pos + 2)) { - return false; - } - } else if (this.information.get(pos + i)) { - return false; - } - } - - return true; - } - - private boolean isAlphaOr646ToNumericLatch(int pos) { - // Next is alphanumeric if there are 3 positions and they are all zeros - if (pos + 3 > this.information.getSize()) { - return false; - } - - for (int i = pos; i < pos + 3; ++i) { - if (this.information.get(i)) { - return false; - } - } - return true; - } - - private boolean isNumericToAlphaNumericLatch(int pos) { - // Next is alphanumeric if there are 4 positions and they are all zeros, or - // if there is a subset of this just before the end of the symbol - if (pos + 1 > this.information.getSize()) { - return false; - } - - for (int i = 0; i < 4 && i + pos < this.information.getSize(); ++i) { - if (this.information.get(pos + i)) { - return false; - } - } - return true; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/PDF417Common.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/PDF417Common.java deleted file mode 100755 index 418f54cd..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/PDF417Common.java +++ /dev/null @@ -1,459 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.google.zxing.pdf417; - -import java.util.Arrays; -import java.util.Collection; - -/** - * @author SITA Lab (kevin.osullivan@sita.aero) - * @author Guenther Grau - */ -public final class PDF417Common { - - public static final int NUMBER_OF_CODEWORDS = 929; - // Maximum Codewords (Data + Error). - public static final int MAX_CODEWORDS_IN_BARCODE = NUMBER_OF_CODEWORDS - 1; - public static final int MIN_ROWS_IN_BARCODE = 3; - public static final int MAX_ROWS_IN_BARCODE = 90; - // One left row indication column + max 30 data columns + one right row indicator column - //public static final int MAX_CODEWORDS_IN_ROW = 32; - public static final int MODULES_IN_CODEWORD = 17; - public static final int MODULES_IN_STOP_PATTERN = 18; - public static final int BARS_IN_MODULE = 8; - - private static final int[] EMPTY_INT_ARRAY = {}; - - private PDF417Common() { - } - - public static int getBitCountSum(int[] moduleBitCount) { - int bitCountSum = 0; - for (int count : moduleBitCount) { - bitCountSum += count; - } - return bitCountSum; - } - - public static int[] toIntArray(Collection<Integer> list) { - if (list == null || list.isEmpty()) { - return EMPTY_INT_ARRAY; - } - int[] result = new int[list.size()]; - int i = 0; - for (Integer integer : list) { - result[i++] = integer; - } - return result; - } - - /** - * @param symbol encoded symbol to translate to a codeword - * @return the codeword corresponding to the symbol. - */ - public static int getCodeword(int symbol) { - int i = Arrays.binarySearch(SYMBOL_TABLE, symbol & 0x3FFFF); - if (i < 0) { - return -1; - } - return (CODEWORD_TABLE[i] - 1) % NUMBER_OF_CODEWORDS; - } - - /** - * The sorted table of all possible symbols. Extracted from the PDF417 - * specification. The index of a symbol in this table corresponds to the - * index into the codeword table. - */ - public static final int[] SYMBOL_TABLE = { - 0x1025e, 0x1027a, 0x1029e, 0x102bc, 0x102f2, 0x102f4, 0x1032e, 0x1034e, 0x1035c, 0x10396, 0x103a6, 0x103ac, - 0x10422, 0x10428, 0x10436, 0x10442, 0x10444, 0x10448, 0x10450, 0x1045e, 0x10466, 0x1046c, 0x1047a, 0x10482, - 0x1049e, 0x104a0, 0x104bc, 0x104c6, 0x104d8, 0x104ee, 0x104f2, 0x104f4, 0x10504, 0x10508, 0x10510, 0x1051e, - 0x10520, 0x1053c, 0x10540, 0x10578, 0x10586, 0x1058c, 0x10598, 0x105b0, 0x105be, 0x105ce, 0x105dc, 0x105e2, - 0x105e4, 0x105e8, 0x105f6, 0x1062e, 0x1064e, 0x1065c, 0x1068e, 0x1069c, 0x106b8, 0x106de, 0x106fa, 0x10716, - 0x10726, 0x1072c, 0x10746, 0x1074c, 0x10758, 0x1076e, 0x10792, 0x10794, 0x107a2, 0x107a4, 0x107a8, 0x107b6, - 0x10822, 0x10828, 0x10842, 0x10848, 0x10850, 0x1085e, 0x10866, 0x1086c, 0x1087a, 0x10882, 0x10884, 0x10890, - 0x1089e, 0x108a0, 0x108bc, 0x108c6, 0x108cc, 0x108d8, 0x108ee, 0x108f2, 0x108f4, 0x10902, 0x10908, 0x1091e, - 0x10920, 0x1093c, 0x10940, 0x10978, 0x10986, 0x10998, 0x109b0, 0x109be, 0x109ce, 0x109dc, 0x109e2, 0x109e4, - 0x109e8, 0x109f6, 0x10a08, 0x10a10, 0x10a1e, 0x10a20, 0x10a3c, 0x10a40, 0x10a78, 0x10af0, 0x10b06, 0x10b0c, - 0x10b18, 0x10b30, 0x10b3e, 0x10b60, 0x10b7c, 0x10b8e, 0x10b9c, 0x10bb8, 0x10bc2, 0x10bc4, 0x10bc8, 0x10bd0, - 0x10bde, 0x10be6, 0x10bec, 0x10c2e, 0x10c4e, 0x10c5c, 0x10c62, 0x10c64, 0x10c68, 0x10c76, 0x10c8e, 0x10c9c, - 0x10cb8, 0x10cc2, 0x10cc4, 0x10cc8, 0x10cd0, 0x10cde, 0x10ce6, 0x10cec, 0x10cfa, 0x10d0e, 0x10d1c, 0x10d38, - 0x10d70, 0x10d7e, 0x10d82, 0x10d84, 0x10d88, 0x10d90, 0x10d9e, 0x10da0, 0x10dbc, 0x10dc6, 0x10dcc, 0x10dd8, - 0x10dee, 0x10df2, 0x10df4, 0x10e16, 0x10e26, 0x10e2c, 0x10e46, 0x10e58, 0x10e6e, 0x10e86, 0x10e8c, 0x10e98, - 0x10eb0, 0x10ebe, 0x10ece, 0x10edc, 0x10f0a, 0x10f12, 0x10f14, 0x10f22, 0x10f28, 0x10f36, 0x10f42, 0x10f44, - 0x10f48, 0x10f50, 0x10f5e, 0x10f66, 0x10f6c, 0x10fb2, 0x10fb4, 0x11022, 0x11028, 0x11042, 0x11048, 0x11050, - 0x1105e, 0x1107a, 0x11082, 0x11084, 0x11090, 0x1109e, 0x110a0, 0x110bc, 0x110c6, 0x110cc, 0x110d8, 0x110ee, - 0x110f2, 0x110f4, 0x11102, 0x1111e, 0x11120, 0x1113c, 0x11140, 0x11178, 0x11186, 0x11198, 0x111b0, 0x111be, - 0x111ce, 0x111dc, 0x111e2, 0x111e4, 0x111e8, 0x111f6, 0x11208, 0x1121e, 0x11220, 0x11278, 0x112f0, 0x1130c, - 0x11330, 0x1133e, 0x11360, 0x1137c, 0x1138e, 0x1139c, 0x113b8, 0x113c2, 0x113c8, 0x113d0, 0x113de, 0x113e6, - 0x113ec, 0x11408, 0x11410, 0x1141e, 0x11420, 0x1143c, 0x11440, 0x11478, 0x114f0, 0x115e0, 0x1160c, 0x11618, - 0x11630, 0x1163e, 0x11660, 0x1167c, 0x116c0, 0x116f8, 0x1171c, 0x11738, 0x11770, 0x1177e, 0x11782, 0x11784, - 0x11788, 0x11790, 0x1179e, 0x117a0, 0x117bc, 0x117c6, 0x117cc, 0x117d8, 0x117ee, 0x1182e, 0x11834, 0x1184e, - 0x1185c, 0x11862, 0x11864, 0x11868, 0x11876, 0x1188e, 0x1189c, 0x118b8, 0x118c2, 0x118c8, 0x118d0, 0x118de, - 0x118e6, 0x118ec, 0x118fa, 0x1190e, 0x1191c, 0x11938, 0x11970, 0x1197e, 0x11982, 0x11984, 0x11990, 0x1199e, - 0x119a0, 0x119bc, 0x119c6, 0x119cc, 0x119d8, 0x119ee, 0x119f2, 0x119f4, 0x11a0e, 0x11a1c, 0x11a38, 0x11a70, - 0x11a7e, 0x11ae0, 0x11afc, 0x11b08, 0x11b10, 0x11b1e, 0x11b20, 0x11b3c, 0x11b40, 0x11b78, 0x11b8c, 0x11b98, - 0x11bb0, 0x11bbe, 0x11bce, 0x11bdc, 0x11be2, 0x11be4, 0x11be8, 0x11bf6, 0x11c16, 0x11c26, 0x11c2c, 0x11c46, - 0x11c4c, 0x11c58, 0x11c6e, 0x11c86, 0x11c98, 0x11cb0, 0x11cbe, 0x11cce, 0x11cdc, 0x11ce2, 0x11ce4, 0x11ce8, - 0x11cf6, 0x11d06, 0x11d0c, 0x11d18, 0x11d30, 0x11d3e, 0x11d60, 0x11d7c, 0x11d8e, 0x11d9c, 0x11db8, 0x11dc4, - 0x11dc8, 0x11dd0, 0x11dde, 0x11de6, 0x11dec, 0x11dfa, 0x11e0a, 0x11e12, 0x11e14, 0x11e22, 0x11e24, 0x11e28, - 0x11e36, 0x11e42, 0x11e44, 0x11e50, 0x11e5e, 0x11e66, 0x11e6c, 0x11e82, 0x11e84, 0x11e88, 0x11e90, 0x11e9e, - 0x11ea0, 0x11ebc, 0x11ec6, 0x11ecc, 0x11ed8, 0x11eee, 0x11f1a, 0x11f2e, 0x11f32, 0x11f34, 0x11f4e, 0x11f5c, - 0x11f62, 0x11f64, 0x11f68, 0x11f76, 0x12048, 0x1205e, 0x12082, 0x12084, 0x12090, 0x1209e, 0x120a0, 0x120bc, - 0x120d8, 0x120f2, 0x120f4, 0x12108, 0x1211e, 0x12120, 0x1213c, 0x12140, 0x12178, 0x12186, 0x12198, 0x121b0, - 0x121be, 0x121e2, 0x121e4, 0x121e8, 0x121f6, 0x12204, 0x12210, 0x1221e, 0x12220, 0x12278, 0x122f0, 0x12306, - 0x1230c, 0x12330, 0x1233e, 0x12360, 0x1237c, 0x1238e, 0x1239c, 0x123b8, 0x123c2, 0x123c8, 0x123d0, 0x123e6, - 0x123ec, 0x1241e, 0x12420, 0x1243c, 0x124f0, 0x125e0, 0x12618, 0x1263e, 0x12660, 0x1267c, 0x126c0, 0x126f8, - 0x12738, 0x12770, 0x1277e, 0x12782, 0x12784, 0x12790, 0x1279e, 0x127a0, 0x127bc, 0x127c6, 0x127cc, 0x127d8, - 0x127ee, 0x12820, 0x1283c, 0x12840, 0x12878, 0x128f0, 0x129e0, 0x12bc0, 0x12c18, 0x12c30, 0x12c3e, 0x12c60, - 0x12c7c, 0x12cc0, 0x12cf8, 0x12df0, 0x12e1c, 0x12e38, 0x12e70, 0x12e7e, 0x12ee0, 0x12efc, 0x12f04, 0x12f08, - 0x12f10, 0x12f20, 0x12f3c, 0x12f40, 0x12f78, 0x12f86, 0x12f8c, 0x12f98, 0x12fb0, 0x12fbe, 0x12fce, 0x12fdc, - 0x1302e, 0x1304e, 0x1305c, 0x13062, 0x13068, 0x1308e, 0x1309c, 0x130b8, 0x130c2, 0x130c8, 0x130d0, 0x130de, - 0x130ec, 0x130fa, 0x1310e, 0x13138, 0x13170, 0x1317e, 0x13182, 0x13184, 0x13190, 0x1319e, 0x131a0, 0x131bc, - 0x131c6, 0x131cc, 0x131d8, 0x131f2, 0x131f4, 0x1320e, 0x1321c, 0x13270, 0x1327e, 0x132e0, 0x132fc, 0x13308, - 0x1331e, 0x13320, 0x1333c, 0x13340, 0x13378, 0x13386, 0x13398, 0x133b0, 0x133be, 0x133ce, 0x133dc, 0x133e2, - 0x133e4, 0x133e8, 0x133f6, 0x1340e, 0x1341c, 0x13438, 0x13470, 0x1347e, 0x134e0, 0x134fc, 0x135c0, 0x135f8, - 0x13608, 0x13610, 0x1361e, 0x13620, 0x1363c, 0x13640, 0x13678, 0x136f0, 0x1370c, 0x13718, 0x13730, 0x1373e, - 0x13760, 0x1377c, 0x1379c, 0x137b8, 0x137c2, 0x137c4, 0x137c8, 0x137d0, 0x137de, 0x137e6, 0x137ec, 0x13816, - 0x13826, 0x1382c, 0x13846, 0x1384c, 0x13858, 0x1386e, 0x13874, 0x13886, 0x13898, 0x138b0, 0x138be, 0x138ce, - 0x138dc, 0x138e2, 0x138e4, 0x138e8, 0x13906, 0x1390c, 0x13930, 0x1393e, 0x13960, 0x1397c, 0x1398e, 0x1399c, - 0x139b8, 0x139c8, 0x139d0, 0x139de, 0x139e6, 0x139ec, 0x139fa, 0x13a06, 0x13a0c, 0x13a18, 0x13a30, 0x13a3e, - 0x13a60, 0x13a7c, 0x13ac0, 0x13af8, 0x13b0e, 0x13b1c, 0x13b38, 0x13b70, 0x13b7e, 0x13b88, 0x13b90, 0x13b9e, - 0x13ba0, 0x13bbc, 0x13bcc, 0x13bd8, 0x13bee, 0x13bf2, 0x13bf4, 0x13c12, 0x13c14, 0x13c22, 0x13c24, 0x13c28, - 0x13c36, 0x13c42, 0x13c48, 0x13c50, 0x13c5e, 0x13c66, 0x13c6c, 0x13c82, 0x13c84, 0x13c90, 0x13c9e, 0x13ca0, - 0x13cbc, 0x13cc6, 0x13ccc, 0x13cd8, 0x13cee, 0x13d02, 0x13d04, 0x13d08, 0x13d10, 0x13d1e, 0x13d20, 0x13d3c, - 0x13d40, 0x13d78, 0x13d86, 0x13d8c, 0x13d98, 0x13db0, 0x13dbe, 0x13dce, 0x13ddc, 0x13de4, 0x13de8, 0x13df6, - 0x13e1a, 0x13e2e, 0x13e32, 0x13e34, 0x13e4e, 0x13e5c, 0x13e62, 0x13e64, 0x13e68, 0x13e76, 0x13e8e, 0x13e9c, - 0x13eb8, 0x13ec2, 0x13ec4, 0x13ec8, 0x13ed0, 0x13ede, 0x13ee6, 0x13eec, 0x13f26, 0x13f2c, 0x13f3a, 0x13f46, - 0x13f4c, 0x13f58, 0x13f6e, 0x13f72, 0x13f74, 0x14082, 0x1409e, 0x140a0, 0x140bc, 0x14104, 0x14108, 0x14110, - 0x1411e, 0x14120, 0x1413c, 0x14140, 0x14178, 0x1418c, 0x14198, 0x141b0, 0x141be, 0x141e2, 0x141e4, 0x141e8, - 0x14208, 0x14210, 0x1421e, 0x14220, 0x1423c, 0x14240, 0x14278, 0x142f0, 0x14306, 0x1430c, 0x14318, 0x14330, - 0x1433e, 0x14360, 0x1437c, 0x1438e, 0x143c2, 0x143c4, 0x143c8, 0x143d0, 0x143e6, 0x143ec, 0x14408, 0x14410, - 0x1441e, 0x14420, 0x1443c, 0x14440, 0x14478, 0x144f0, 0x145e0, 0x1460c, 0x14618, 0x14630, 0x1463e, 0x14660, - 0x1467c, 0x146c0, 0x146f8, 0x1471c, 0x14738, 0x14770, 0x1477e, 0x14782, 0x14784, 0x14788, 0x14790, 0x147a0, - 0x147bc, 0x147c6, 0x147cc, 0x147d8, 0x147ee, 0x14810, 0x14820, 0x1483c, 0x14840, 0x14878, 0x148f0, 0x149e0, - 0x14bc0, 0x14c30, 0x14c3e, 0x14c60, 0x14c7c, 0x14cc0, 0x14cf8, 0x14df0, 0x14e38, 0x14e70, 0x14e7e, 0x14ee0, - 0x14efc, 0x14f04, 0x14f08, 0x14f10, 0x14f1e, 0x14f20, 0x14f3c, 0x14f40, 0x14f78, 0x14f86, 0x14f8c, 0x14f98, - 0x14fb0, 0x14fce, 0x14fdc, 0x15020, 0x15040, 0x15078, 0x150f0, 0x151e0, 0x153c0, 0x15860, 0x1587c, 0x158c0, - 0x158f8, 0x159f0, 0x15be0, 0x15c70, 0x15c7e, 0x15ce0, 0x15cfc, 0x15dc0, 0x15df8, 0x15e08, 0x15e10, 0x15e20, - 0x15e40, 0x15e78, 0x15ef0, 0x15f0c, 0x15f18, 0x15f30, 0x15f60, 0x15f7c, 0x15f8e, 0x15f9c, 0x15fb8, 0x1604e, - 0x1605c, 0x1608e, 0x1609c, 0x160b8, 0x160c2, 0x160c4, 0x160c8, 0x160de, 0x1610e, 0x1611c, 0x16138, 0x16170, - 0x1617e, 0x16184, 0x16188, 0x16190, 0x1619e, 0x161a0, 0x161bc, 0x161c6, 0x161cc, 0x161d8, 0x161f2, 0x161f4, - 0x1620e, 0x1621c, 0x16238, 0x16270, 0x1627e, 0x162e0, 0x162fc, 0x16304, 0x16308, 0x16310, 0x1631e, 0x16320, - 0x1633c, 0x16340, 0x16378, 0x16386, 0x1638c, 0x16398, 0x163b0, 0x163be, 0x163ce, 0x163dc, 0x163e2, 0x163e4, - 0x163e8, 0x163f6, 0x1640e, 0x1641c, 0x16438, 0x16470, 0x1647e, 0x164e0, 0x164fc, 0x165c0, 0x165f8, 0x16610, - 0x1661e, 0x16620, 0x1663c, 0x16640, 0x16678, 0x166f0, 0x16718, 0x16730, 0x1673e, 0x16760, 0x1677c, 0x1678e, - 0x1679c, 0x167b8, 0x167c2, 0x167c4, 0x167c8, 0x167d0, 0x167de, 0x167e6, 0x167ec, 0x1681c, 0x16838, 0x16870, - 0x168e0, 0x168fc, 0x169c0, 0x169f8, 0x16bf0, 0x16c10, 0x16c1e, 0x16c20, 0x16c3c, 0x16c40, 0x16c78, 0x16cf0, - 0x16de0, 0x16e18, 0x16e30, 0x16e3e, 0x16e60, 0x16e7c, 0x16ec0, 0x16ef8, 0x16f1c, 0x16f38, 0x16f70, 0x16f7e, - 0x16f84, 0x16f88, 0x16f90, 0x16f9e, 0x16fa0, 0x16fbc, 0x16fc6, 0x16fcc, 0x16fd8, 0x17026, 0x1702c, 0x17046, - 0x1704c, 0x17058, 0x1706e, 0x17086, 0x1708c, 0x17098, 0x170b0, 0x170be, 0x170ce, 0x170dc, 0x170e8, 0x17106, - 0x1710c, 0x17118, 0x17130, 0x1713e, 0x17160, 0x1717c, 0x1718e, 0x1719c, 0x171b8, 0x171c2, 0x171c4, 0x171c8, - 0x171d0, 0x171de, 0x171e6, 0x171ec, 0x171fa, 0x17206, 0x1720c, 0x17218, 0x17230, 0x1723e, 0x17260, 0x1727c, - 0x172c0, 0x172f8, 0x1730e, 0x1731c, 0x17338, 0x17370, 0x1737e, 0x17388, 0x17390, 0x1739e, 0x173a0, 0x173bc, - 0x173cc, 0x173d8, 0x173ee, 0x173f2, 0x173f4, 0x1740c, 0x17418, 0x17430, 0x1743e, 0x17460, 0x1747c, 0x174c0, - 0x174f8, 0x175f0, 0x1760e, 0x1761c, 0x17638, 0x17670, 0x1767e, 0x176e0, 0x176fc, 0x17708, 0x17710, 0x1771e, - 0x17720, 0x1773c, 0x17740, 0x17778, 0x17798, 0x177b0, 0x177be, 0x177dc, 0x177e2, 0x177e4, 0x177e8, 0x17822, - 0x17824, 0x17828, 0x17836, 0x17842, 0x17844, 0x17848, 0x17850, 0x1785e, 0x17866, 0x1786c, 0x17882, 0x17884, - 0x17888, 0x17890, 0x1789e, 0x178a0, 0x178bc, 0x178c6, 0x178cc, 0x178d8, 0x178ee, 0x178f2, 0x178f4, 0x17902, - 0x17904, 0x17908, 0x17910, 0x1791e, 0x17920, 0x1793c, 0x17940, 0x17978, 0x17986, 0x1798c, 0x17998, 0x179b0, - 0x179be, 0x179ce, 0x179dc, 0x179e2, 0x179e4, 0x179e8, 0x179f6, 0x17a04, 0x17a08, 0x17a10, 0x17a1e, 0x17a20, - 0x17a3c, 0x17a40, 0x17a78, 0x17af0, 0x17b06, 0x17b0c, 0x17b18, 0x17b30, 0x17b3e, 0x17b60, 0x17b7c, 0x17b8e, - 0x17b9c, 0x17bb8, 0x17bc4, 0x17bc8, 0x17bd0, 0x17bde, 0x17be6, 0x17bec, 0x17c2e, 0x17c32, 0x17c34, 0x17c4e, - 0x17c5c, 0x17c62, 0x17c64, 0x17c68, 0x17c76, 0x17c8e, 0x17c9c, 0x17cb8, 0x17cc2, 0x17cc4, 0x17cc8, 0x17cd0, - 0x17cde, 0x17ce6, 0x17cec, 0x17d0e, 0x17d1c, 0x17d38, 0x17d70, 0x17d82, 0x17d84, 0x17d88, 0x17d90, 0x17d9e, - 0x17da0, 0x17dbc, 0x17dc6, 0x17dcc, 0x17dd8, 0x17dee, 0x17e26, 0x17e2c, 0x17e3a, 0x17e46, 0x17e4c, 0x17e58, - 0x17e6e, 0x17e72, 0x17e74, 0x17e86, 0x17e8c, 0x17e98, 0x17eb0, 0x17ece, 0x17edc, 0x17ee2, 0x17ee4, 0x17ee8, - 0x17ef6, 0x1813a, 0x18172, 0x18174, 0x18216, 0x18226, 0x1823a, 0x1824c, 0x18258, 0x1826e, 0x18272, 0x18274, - 0x18298, 0x182be, 0x182e2, 0x182e4, 0x182e8, 0x182f6, 0x1835e, 0x1837a, 0x183ae, 0x183d6, 0x18416, 0x18426, - 0x1842c, 0x1843a, 0x18446, 0x18458, 0x1846e, 0x18472, 0x18474, 0x18486, 0x184b0, 0x184be, 0x184ce, 0x184dc, - 0x184e2, 0x184e4, 0x184e8, 0x184f6, 0x18506, 0x1850c, 0x18518, 0x18530, 0x1853e, 0x18560, 0x1857c, 0x1858e, - 0x1859c, 0x185b8, 0x185c2, 0x185c4, 0x185c8, 0x185d0, 0x185de, 0x185e6, 0x185ec, 0x185fa, 0x18612, 0x18614, - 0x18622, 0x18628, 0x18636, 0x18642, 0x18650, 0x1865e, 0x1867a, 0x18682, 0x18684, 0x18688, 0x18690, 0x1869e, - 0x186a0, 0x186bc, 0x186c6, 0x186cc, 0x186d8, 0x186ee, 0x186f2, 0x186f4, 0x1872e, 0x1874e, 0x1875c, 0x18796, - 0x187a6, 0x187ac, 0x187d2, 0x187d4, 0x18826, 0x1882c, 0x1883a, 0x18846, 0x1884c, 0x18858, 0x1886e, 0x18872, - 0x18874, 0x18886, 0x18898, 0x188b0, 0x188be, 0x188ce, 0x188dc, 0x188e2, 0x188e4, 0x188e8, 0x188f6, 0x1890c, - 0x18930, 0x1893e, 0x18960, 0x1897c, 0x1898e, 0x189b8, 0x189c2, 0x189c8, 0x189d0, 0x189de, 0x189e6, 0x189ec, - 0x189fa, 0x18a18, 0x18a30, 0x18a3e, 0x18a60, 0x18a7c, 0x18ac0, 0x18af8, 0x18b1c, 0x18b38, 0x18b70, 0x18b7e, - 0x18b82, 0x18b84, 0x18b88, 0x18b90, 0x18b9e, 0x18ba0, 0x18bbc, 0x18bc6, 0x18bcc, 0x18bd8, 0x18bee, 0x18bf2, - 0x18bf4, 0x18c22, 0x18c24, 0x18c28, 0x18c36, 0x18c42, 0x18c48, 0x18c50, 0x18c5e, 0x18c66, 0x18c7a, 0x18c82, - 0x18c84, 0x18c90, 0x18c9e, 0x18ca0, 0x18cbc, 0x18ccc, 0x18cf2, 0x18cf4, 0x18d04, 0x18d08, 0x18d10, 0x18d1e, - 0x18d20, 0x18d3c, 0x18d40, 0x18d78, 0x18d86, 0x18d98, 0x18dce, 0x18de2, 0x18de4, 0x18de8, 0x18e2e, 0x18e32, - 0x18e34, 0x18e4e, 0x18e5c, 0x18e62, 0x18e64, 0x18e68, 0x18e8e, 0x18e9c, 0x18eb8, 0x18ec2, 0x18ec4, 0x18ec8, - 0x18ed0, 0x18efa, 0x18f16, 0x18f26, 0x18f2c, 0x18f46, 0x18f4c, 0x18f58, 0x18f6e, 0x18f8a, 0x18f92, 0x18f94, - 0x18fa2, 0x18fa4, 0x18fa8, 0x18fb6, 0x1902c, 0x1903a, 0x19046, 0x1904c, 0x19058, 0x19072, 0x19074, 0x19086, - 0x19098, 0x190b0, 0x190be, 0x190ce, 0x190dc, 0x190e2, 0x190e8, 0x190f6, 0x19106, 0x1910c, 0x19130, 0x1913e, - 0x19160, 0x1917c, 0x1918e, 0x1919c, 0x191b8, 0x191c2, 0x191c8, 0x191d0, 0x191de, 0x191e6, 0x191ec, 0x191fa, - 0x19218, 0x1923e, 0x19260, 0x1927c, 0x192c0, 0x192f8, 0x19338, 0x19370, 0x1937e, 0x19382, 0x19384, 0x19390, - 0x1939e, 0x193a0, 0x193bc, 0x193c6, 0x193cc, 0x193d8, 0x193ee, 0x193f2, 0x193f4, 0x19430, 0x1943e, 0x19460, - 0x1947c, 0x194c0, 0x194f8, 0x195f0, 0x19638, 0x19670, 0x1967e, 0x196e0, 0x196fc, 0x19702, 0x19704, 0x19708, - 0x19710, 0x19720, 0x1973c, 0x19740, 0x19778, 0x19786, 0x1978c, 0x19798, 0x197b0, 0x197be, 0x197ce, 0x197dc, - 0x197e2, 0x197e4, 0x197e8, 0x19822, 0x19824, 0x19842, 0x19848, 0x19850, 0x1985e, 0x19866, 0x1987a, 0x19882, - 0x19884, 0x19890, 0x1989e, 0x198a0, 0x198bc, 0x198cc, 0x198f2, 0x198f4, 0x19902, 0x19908, 0x1991e, 0x19920, - 0x1993c, 0x19940, 0x19978, 0x19986, 0x19998, 0x199ce, 0x199e2, 0x199e4, 0x199e8, 0x19a08, 0x19a10, 0x19a1e, - 0x19a20, 0x19a3c, 0x19a40, 0x19a78, 0x19af0, 0x19b18, 0x19b3e, 0x19b60, 0x19b9c, 0x19bc2, 0x19bc4, 0x19bc8, - 0x19bd0, 0x19be6, 0x19c2e, 0x19c34, 0x19c4e, 0x19c5c, 0x19c62, 0x19c64, 0x19c68, 0x19c8e, 0x19c9c, 0x19cb8, - 0x19cc2, 0x19cc8, 0x19cd0, 0x19ce6, 0x19cfa, 0x19d0e, 0x19d1c, 0x19d38, 0x19d70, 0x19d7e, 0x19d82, 0x19d84, - 0x19d88, 0x19d90, 0x19da0, 0x19dcc, 0x19df2, 0x19df4, 0x19e16, 0x19e26, 0x19e2c, 0x19e46, 0x19e4c, 0x19e58, - 0x19e74, 0x19e86, 0x19e8c, 0x19e98, 0x19eb0, 0x19ebe, 0x19ece, 0x19ee2, 0x19ee4, 0x19ee8, 0x19f0a, 0x19f12, - 0x19f14, 0x19f22, 0x19f24, 0x19f28, 0x19f42, 0x19f44, 0x19f48, 0x19f50, 0x19f5e, 0x19f6c, 0x19f9a, 0x19fae, - 0x19fb2, 0x19fb4, 0x1a046, 0x1a04c, 0x1a072, 0x1a074, 0x1a086, 0x1a08c, 0x1a098, 0x1a0b0, 0x1a0be, 0x1a0e2, - 0x1a0e4, 0x1a0e8, 0x1a0f6, 0x1a106, 0x1a10c, 0x1a118, 0x1a130, 0x1a13e, 0x1a160, 0x1a17c, 0x1a18e, 0x1a19c, - 0x1a1b8, 0x1a1c2, 0x1a1c4, 0x1a1c8, 0x1a1d0, 0x1a1de, 0x1a1e6, 0x1a1ec, 0x1a218, 0x1a230, 0x1a23e, 0x1a260, - 0x1a27c, 0x1a2c0, 0x1a2f8, 0x1a31c, 0x1a338, 0x1a370, 0x1a37e, 0x1a382, 0x1a384, 0x1a388, 0x1a390, 0x1a39e, - 0x1a3a0, 0x1a3bc, 0x1a3c6, 0x1a3cc, 0x1a3d8, 0x1a3ee, 0x1a3f2, 0x1a3f4, 0x1a418, 0x1a430, 0x1a43e, 0x1a460, - 0x1a47c, 0x1a4c0, 0x1a4f8, 0x1a5f0, 0x1a61c, 0x1a638, 0x1a670, 0x1a67e, 0x1a6e0, 0x1a6fc, 0x1a702, 0x1a704, - 0x1a708, 0x1a710, 0x1a71e, 0x1a720, 0x1a73c, 0x1a740, 0x1a778, 0x1a786, 0x1a78c, 0x1a798, 0x1a7b0, 0x1a7be, - 0x1a7ce, 0x1a7dc, 0x1a7e2, 0x1a7e4, 0x1a7e8, 0x1a830, 0x1a860, 0x1a87c, 0x1a8c0, 0x1a8f8, 0x1a9f0, 0x1abe0, - 0x1ac70, 0x1ac7e, 0x1ace0, 0x1acfc, 0x1adc0, 0x1adf8, 0x1ae04, 0x1ae08, 0x1ae10, 0x1ae20, 0x1ae3c, 0x1ae40, - 0x1ae78, 0x1aef0, 0x1af06, 0x1af0c, 0x1af18, 0x1af30, 0x1af3e, 0x1af60, 0x1af7c, 0x1af8e, 0x1af9c, 0x1afb8, - 0x1afc4, 0x1afc8, 0x1afd0, 0x1afde, 0x1b042, 0x1b05e, 0x1b07a, 0x1b082, 0x1b084, 0x1b088, 0x1b090, 0x1b09e, - 0x1b0a0, 0x1b0bc, 0x1b0cc, 0x1b0f2, 0x1b0f4, 0x1b102, 0x1b104, 0x1b108, 0x1b110, 0x1b11e, 0x1b120, 0x1b13c, - 0x1b140, 0x1b178, 0x1b186, 0x1b198, 0x1b1ce, 0x1b1e2, 0x1b1e4, 0x1b1e8, 0x1b204, 0x1b208, 0x1b210, 0x1b21e, - 0x1b220, 0x1b23c, 0x1b240, 0x1b278, 0x1b2f0, 0x1b30c, 0x1b33e, 0x1b360, 0x1b39c, 0x1b3c2, 0x1b3c4, 0x1b3c8, - 0x1b3d0, 0x1b3e6, 0x1b410, 0x1b41e, 0x1b420, 0x1b43c, 0x1b440, 0x1b478, 0x1b4f0, 0x1b5e0, 0x1b618, 0x1b660, - 0x1b67c, 0x1b6c0, 0x1b738, 0x1b782, 0x1b784, 0x1b788, 0x1b790, 0x1b79e, 0x1b7a0, 0x1b7cc, 0x1b82e, 0x1b84e, - 0x1b85c, 0x1b88e, 0x1b89c, 0x1b8b8, 0x1b8c2, 0x1b8c4, 0x1b8c8, 0x1b8d0, 0x1b8e6, 0x1b8fa, 0x1b90e, 0x1b91c, - 0x1b938, 0x1b970, 0x1b97e, 0x1b982, 0x1b984, 0x1b988, 0x1b990, 0x1b99e, 0x1b9a0, 0x1b9cc, 0x1b9f2, 0x1b9f4, - 0x1ba0e, 0x1ba1c, 0x1ba38, 0x1ba70, 0x1ba7e, 0x1bae0, 0x1bafc, 0x1bb08, 0x1bb10, 0x1bb20, 0x1bb3c, 0x1bb40, - 0x1bb98, 0x1bbce, 0x1bbe2, 0x1bbe4, 0x1bbe8, 0x1bc16, 0x1bc26, 0x1bc2c, 0x1bc46, 0x1bc4c, 0x1bc58, 0x1bc72, - 0x1bc74, 0x1bc86, 0x1bc8c, 0x1bc98, 0x1bcb0, 0x1bcbe, 0x1bcce, 0x1bce2, 0x1bce4, 0x1bce8, 0x1bd06, 0x1bd0c, - 0x1bd18, 0x1bd30, 0x1bd3e, 0x1bd60, 0x1bd7c, 0x1bd9c, 0x1bdc2, 0x1bdc4, 0x1bdc8, 0x1bdd0, 0x1bde6, 0x1bdfa, - 0x1be12, 0x1be14, 0x1be22, 0x1be24, 0x1be28, 0x1be42, 0x1be44, 0x1be48, 0x1be50, 0x1be5e, 0x1be66, 0x1be82, - 0x1be84, 0x1be88, 0x1be90, 0x1be9e, 0x1bea0, 0x1bebc, 0x1becc, 0x1bef4, 0x1bf1a, 0x1bf2e, 0x1bf32, 0x1bf34, - 0x1bf4e, 0x1bf5c, 0x1bf62, 0x1bf64, 0x1bf68, 0x1c09a, 0x1c0b2, 0x1c0b4, 0x1c11a, 0x1c132, 0x1c134, 0x1c162, - 0x1c164, 0x1c168, 0x1c176, 0x1c1ba, 0x1c21a, 0x1c232, 0x1c234, 0x1c24e, 0x1c25c, 0x1c262, 0x1c264, 0x1c268, - 0x1c276, 0x1c28e, 0x1c2c2, 0x1c2c4, 0x1c2c8, 0x1c2d0, 0x1c2de, 0x1c2e6, 0x1c2ec, 0x1c2fa, 0x1c316, 0x1c326, - 0x1c33a, 0x1c346, 0x1c34c, 0x1c372, 0x1c374, 0x1c41a, 0x1c42e, 0x1c432, 0x1c434, 0x1c44e, 0x1c45c, 0x1c462, - 0x1c464, 0x1c468, 0x1c476, 0x1c48e, 0x1c49c, 0x1c4b8, 0x1c4c2, 0x1c4c8, 0x1c4d0, 0x1c4de, 0x1c4e6, 0x1c4ec, - 0x1c4fa, 0x1c51c, 0x1c538, 0x1c570, 0x1c57e, 0x1c582, 0x1c584, 0x1c588, 0x1c590, 0x1c59e, 0x1c5a0, 0x1c5bc, - 0x1c5c6, 0x1c5cc, 0x1c5d8, 0x1c5ee, 0x1c5f2, 0x1c5f4, 0x1c616, 0x1c626, 0x1c62c, 0x1c63a, 0x1c646, 0x1c64c, - 0x1c658, 0x1c66e, 0x1c672, 0x1c674, 0x1c686, 0x1c68c, 0x1c698, 0x1c6b0, 0x1c6be, 0x1c6ce, 0x1c6dc, 0x1c6e2, - 0x1c6e4, 0x1c6e8, 0x1c712, 0x1c714, 0x1c722, 0x1c728, 0x1c736, 0x1c742, 0x1c744, 0x1c748, 0x1c750, 0x1c75e, - 0x1c766, 0x1c76c, 0x1c77a, 0x1c7ae, 0x1c7d6, 0x1c7ea, 0x1c81a, 0x1c82e, 0x1c832, 0x1c834, 0x1c84e, 0x1c85c, - 0x1c862, 0x1c864, 0x1c868, 0x1c876, 0x1c88e, 0x1c89c, 0x1c8b8, 0x1c8c2, 0x1c8c8, 0x1c8d0, 0x1c8de, 0x1c8e6, - 0x1c8ec, 0x1c8fa, 0x1c90e, 0x1c938, 0x1c970, 0x1c97e, 0x1c982, 0x1c984, 0x1c990, 0x1c99e, 0x1c9a0, 0x1c9bc, - 0x1c9c6, 0x1c9cc, 0x1c9d8, 0x1c9ee, 0x1c9f2, 0x1c9f4, 0x1ca38, 0x1ca70, 0x1ca7e, 0x1cae0, 0x1cafc, 0x1cb02, - 0x1cb04, 0x1cb08, 0x1cb10, 0x1cb20, 0x1cb3c, 0x1cb40, 0x1cb78, 0x1cb86, 0x1cb8c, 0x1cb98, 0x1cbb0, 0x1cbbe, - 0x1cbce, 0x1cbdc, 0x1cbe2, 0x1cbe4, 0x1cbe8, 0x1cbf6, 0x1cc16, 0x1cc26, 0x1cc2c, 0x1cc3a, 0x1cc46, 0x1cc58, - 0x1cc72, 0x1cc74, 0x1cc86, 0x1ccb0, 0x1ccbe, 0x1ccce, 0x1cce2, 0x1cce4, 0x1cce8, 0x1cd06, 0x1cd0c, 0x1cd18, - 0x1cd30, 0x1cd3e, 0x1cd60, 0x1cd7c, 0x1cd9c, 0x1cdc2, 0x1cdc4, 0x1cdc8, 0x1cdd0, 0x1cdde, 0x1cde6, 0x1cdfa, - 0x1ce22, 0x1ce28, 0x1ce42, 0x1ce50, 0x1ce5e, 0x1ce66, 0x1ce7a, 0x1ce82, 0x1ce84, 0x1ce88, 0x1ce90, 0x1ce9e, - 0x1cea0, 0x1cebc, 0x1cecc, 0x1cef2, 0x1cef4, 0x1cf2e, 0x1cf32, 0x1cf34, 0x1cf4e, 0x1cf5c, 0x1cf62, 0x1cf64, - 0x1cf68, 0x1cf96, 0x1cfa6, 0x1cfac, 0x1cfca, 0x1cfd2, 0x1cfd4, 0x1d02e, 0x1d032, 0x1d034, 0x1d04e, 0x1d05c, - 0x1d062, 0x1d064, 0x1d068, 0x1d076, 0x1d08e, 0x1d09c, 0x1d0b8, 0x1d0c2, 0x1d0c4, 0x1d0c8, 0x1d0d0, 0x1d0de, - 0x1d0e6, 0x1d0ec, 0x1d0fa, 0x1d11c, 0x1d138, 0x1d170, 0x1d17e, 0x1d182, 0x1d184, 0x1d188, 0x1d190, 0x1d19e, - 0x1d1a0, 0x1d1bc, 0x1d1c6, 0x1d1cc, 0x1d1d8, 0x1d1ee, 0x1d1f2, 0x1d1f4, 0x1d21c, 0x1d238, 0x1d270, 0x1d27e, - 0x1d2e0, 0x1d2fc, 0x1d302, 0x1d304, 0x1d308, 0x1d310, 0x1d31e, 0x1d320, 0x1d33c, 0x1d340, 0x1d378, 0x1d386, - 0x1d38c, 0x1d398, 0x1d3b0, 0x1d3be, 0x1d3ce, 0x1d3dc, 0x1d3e2, 0x1d3e4, 0x1d3e8, 0x1d3f6, 0x1d470, 0x1d47e, - 0x1d4e0, 0x1d4fc, 0x1d5c0, 0x1d5f8, 0x1d604, 0x1d608, 0x1d610, 0x1d620, 0x1d640, 0x1d678, 0x1d6f0, 0x1d706, - 0x1d70c, 0x1d718, 0x1d730, 0x1d73e, 0x1d760, 0x1d77c, 0x1d78e, 0x1d79c, 0x1d7b8, 0x1d7c2, 0x1d7c4, 0x1d7c8, - 0x1d7d0, 0x1d7de, 0x1d7e6, 0x1d7ec, 0x1d826, 0x1d82c, 0x1d83a, 0x1d846, 0x1d84c, 0x1d858, 0x1d872, 0x1d874, - 0x1d886, 0x1d88c, 0x1d898, 0x1d8b0, 0x1d8be, 0x1d8ce, 0x1d8e2, 0x1d8e4, 0x1d8e8, 0x1d8f6, 0x1d90c, 0x1d918, - 0x1d930, 0x1d93e, 0x1d960, 0x1d97c, 0x1d99c, 0x1d9c2, 0x1d9c4, 0x1d9c8, 0x1d9d0, 0x1d9e6, 0x1d9fa, 0x1da0c, - 0x1da18, 0x1da30, 0x1da3e, 0x1da60, 0x1da7c, 0x1dac0, 0x1daf8, 0x1db38, 0x1db82, 0x1db84, 0x1db88, 0x1db90, - 0x1db9e, 0x1dba0, 0x1dbcc, 0x1dbf2, 0x1dbf4, 0x1dc22, 0x1dc42, 0x1dc44, 0x1dc48, 0x1dc50, 0x1dc5e, 0x1dc66, - 0x1dc7a, 0x1dc82, 0x1dc84, 0x1dc88, 0x1dc90, 0x1dc9e, 0x1dca0, 0x1dcbc, 0x1dccc, 0x1dcf2, 0x1dcf4, 0x1dd04, - 0x1dd08, 0x1dd10, 0x1dd1e, 0x1dd20, 0x1dd3c, 0x1dd40, 0x1dd78, 0x1dd86, 0x1dd98, 0x1ddce, 0x1dde2, 0x1dde4, - 0x1dde8, 0x1de2e, 0x1de32, 0x1de34, 0x1de4e, 0x1de5c, 0x1de62, 0x1de64, 0x1de68, 0x1de8e, 0x1de9c, 0x1deb8, - 0x1dec2, 0x1dec4, 0x1dec8, 0x1ded0, 0x1dee6, 0x1defa, 0x1df16, 0x1df26, 0x1df2c, 0x1df46, 0x1df4c, 0x1df58, - 0x1df72, 0x1df74, 0x1df8a, 0x1df92, 0x1df94, 0x1dfa2, 0x1dfa4, 0x1dfa8, 0x1e08a, 0x1e092, 0x1e094, 0x1e0a2, - 0x1e0a4, 0x1e0a8, 0x1e0b6, 0x1e0da, 0x1e10a, 0x1e112, 0x1e114, 0x1e122, 0x1e124, 0x1e128, 0x1e136, 0x1e142, - 0x1e144, 0x1e148, 0x1e150, 0x1e166, 0x1e16c, 0x1e17a, 0x1e19a, 0x1e1b2, 0x1e1b4, 0x1e20a, 0x1e212, 0x1e214, - 0x1e222, 0x1e224, 0x1e228, 0x1e236, 0x1e242, 0x1e248, 0x1e250, 0x1e25e, 0x1e266, 0x1e26c, 0x1e27a, 0x1e282, - 0x1e284, 0x1e288, 0x1e290, 0x1e2a0, 0x1e2bc, 0x1e2c6, 0x1e2cc, 0x1e2d8, 0x1e2ee, 0x1e2f2, 0x1e2f4, 0x1e31a, - 0x1e332, 0x1e334, 0x1e35c, 0x1e362, 0x1e364, 0x1e368, 0x1e3ba, 0x1e40a, 0x1e412, 0x1e414, 0x1e422, 0x1e428, - 0x1e436, 0x1e442, 0x1e448, 0x1e450, 0x1e45e, 0x1e466, 0x1e46c, 0x1e47a, 0x1e482, 0x1e484, 0x1e490, 0x1e49e, - 0x1e4a0, 0x1e4bc, 0x1e4c6, 0x1e4cc, 0x1e4d8, 0x1e4ee, 0x1e4f2, 0x1e4f4, 0x1e502, 0x1e504, 0x1e508, 0x1e510, - 0x1e51e, 0x1e520, 0x1e53c, 0x1e540, 0x1e578, 0x1e586, 0x1e58c, 0x1e598, 0x1e5b0, 0x1e5be, 0x1e5ce, 0x1e5dc, - 0x1e5e2, 0x1e5e4, 0x1e5e8, 0x1e5f6, 0x1e61a, 0x1e62e, 0x1e632, 0x1e634, 0x1e64e, 0x1e65c, 0x1e662, 0x1e668, - 0x1e68e, 0x1e69c, 0x1e6b8, 0x1e6c2, 0x1e6c4, 0x1e6c8, 0x1e6d0, 0x1e6e6, 0x1e6fa, 0x1e716, 0x1e726, 0x1e72c, - 0x1e73a, 0x1e746, 0x1e74c, 0x1e758, 0x1e772, 0x1e774, 0x1e792, 0x1e794, 0x1e7a2, 0x1e7a4, 0x1e7a8, 0x1e7b6, - 0x1e812, 0x1e814, 0x1e822, 0x1e824, 0x1e828, 0x1e836, 0x1e842, 0x1e844, 0x1e848, 0x1e850, 0x1e85e, 0x1e866, - 0x1e86c, 0x1e87a, 0x1e882, 0x1e884, 0x1e888, 0x1e890, 0x1e89e, 0x1e8a0, 0x1e8bc, 0x1e8c6, 0x1e8cc, 0x1e8d8, - 0x1e8ee, 0x1e8f2, 0x1e8f4, 0x1e902, 0x1e904, 0x1e908, 0x1e910, 0x1e920, 0x1e93c, 0x1e940, 0x1e978, 0x1e986, - 0x1e98c, 0x1e998, 0x1e9b0, 0x1e9be, 0x1e9ce, 0x1e9dc, 0x1e9e2, 0x1e9e4, 0x1e9e8, 0x1e9f6, 0x1ea04, 0x1ea08, - 0x1ea10, 0x1ea20, 0x1ea40, 0x1ea78, 0x1eaf0, 0x1eb06, 0x1eb0c, 0x1eb18, 0x1eb30, 0x1eb3e, 0x1eb60, 0x1eb7c, - 0x1eb8e, 0x1eb9c, 0x1ebb8, 0x1ebc2, 0x1ebc4, 0x1ebc8, 0x1ebd0, 0x1ebde, 0x1ebe6, 0x1ebec, 0x1ec1a, 0x1ec2e, - 0x1ec32, 0x1ec34, 0x1ec4e, 0x1ec5c, 0x1ec62, 0x1ec64, 0x1ec68, 0x1ec8e, 0x1ec9c, 0x1ecb8, 0x1ecc2, 0x1ecc4, - 0x1ecc8, 0x1ecd0, 0x1ece6, 0x1ecfa, 0x1ed0e, 0x1ed1c, 0x1ed38, 0x1ed70, 0x1ed7e, 0x1ed82, 0x1ed84, 0x1ed88, - 0x1ed90, 0x1ed9e, 0x1eda0, 0x1edcc, 0x1edf2, 0x1edf4, 0x1ee16, 0x1ee26, 0x1ee2c, 0x1ee3a, 0x1ee46, 0x1ee4c, - 0x1ee58, 0x1ee6e, 0x1ee72, 0x1ee74, 0x1ee86, 0x1ee8c, 0x1ee98, 0x1eeb0, 0x1eebe, 0x1eece, 0x1eedc, 0x1eee2, - 0x1eee4, 0x1eee8, 0x1ef12, 0x1ef22, 0x1ef24, 0x1ef28, 0x1ef36, 0x1ef42, 0x1ef44, 0x1ef48, 0x1ef50, 0x1ef5e, - 0x1ef66, 0x1ef6c, 0x1ef7a, 0x1efae, 0x1efb2, 0x1efb4, 0x1efd6, 0x1f096, 0x1f0a6, 0x1f0ac, 0x1f0ba, 0x1f0ca, - 0x1f0d2, 0x1f0d4, 0x1f116, 0x1f126, 0x1f12c, 0x1f13a, 0x1f146, 0x1f14c, 0x1f158, 0x1f16e, 0x1f172, 0x1f174, - 0x1f18a, 0x1f192, 0x1f194, 0x1f1a2, 0x1f1a4, 0x1f1a8, 0x1f1da, 0x1f216, 0x1f226, 0x1f22c, 0x1f23a, 0x1f246, - 0x1f258, 0x1f26e, 0x1f272, 0x1f274, 0x1f286, 0x1f28c, 0x1f298, 0x1f2b0, 0x1f2be, 0x1f2ce, 0x1f2dc, 0x1f2e2, - 0x1f2e4, 0x1f2e8, 0x1f2f6, 0x1f30a, 0x1f312, 0x1f314, 0x1f322, 0x1f328, 0x1f342, 0x1f344, 0x1f348, 0x1f350, - 0x1f35e, 0x1f366, 0x1f37a, 0x1f39a, 0x1f3ae, 0x1f3b2, 0x1f3b4, 0x1f416, 0x1f426, 0x1f42c, 0x1f43a, 0x1f446, - 0x1f44c, 0x1f458, 0x1f46e, 0x1f472, 0x1f474, 0x1f486, 0x1f48c, 0x1f498, 0x1f4b0, 0x1f4be, 0x1f4ce, 0x1f4dc, - 0x1f4e2, 0x1f4e4, 0x1f4e8, 0x1f4f6, 0x1f506, 0x1f50c, 0x1f518, 0x1f530, 0x1f53e, 0x1f560, 0x1f57c, 0x1f58e, - 0x1f59c, 0x1f5b8, 0x1f5c2, 0x1f5c4, 0x1f5c8, 0x1f5d0, 0x1f5de, 0x1f5e6, 0x1f5ec, 0x1f5fa, 0x1f60a, 0x1f612, - 0x1f614, 0x1f622, 0x1f624, 0x1f628, 0x1f636, 0x1f642, 0x1f644, 0x1f648, 0x1f650, 0x1f65e, 0x1f666, 0x1f67a, - 0x1f682, 0x1f684, 0x1f688, 0x1f690, 0x1f69e, 0x1f6a0, 0x1f6bc, 0x1f6cc, 0x1f6f2, 0x1f6f4, 0x1f71a, 0x1f72e, - 0x1f732, 0x1f734, 0x1f74e, 0x1f75c, 0x1f762, 0x1f764, 0x1f768, 0x1f776, 0x1f796, 0x1f7a6, 0x1f7ac, 0x1f7ba, - 0x1f7d2, 0x1f7d4, 0x1f89a, 0x1f8ae, 0x1f8b2, 0x1f8b4, 0x1f8d6, 0x1f8ea, 0x1f91a, 0x1f92e, 0x1f932, 0x1f934, - 0x1f94e, 0x1f95c, 0x1f962, 0x1f964, 0x1f968, 0x1f976, 0x1f996, 0x1f9a6, 0x1f9ac, 0x1f9ba, 0x1f9ca, 0x1f9d2, - 0x1f9d4, 0x1fa1a, 0x1fa2e, 0x1fa32, 0x1fa34, 0x1fa4e, 0x1fa5c, 0x1fa62, 0x1fa64, 0x1fa68, 0x1fa76, 0x1fa8e, - 0x1fa9c, 0x1fab8, 0x1fac2, 0x1fac4, 0x1fac8, 0x1fad0, 0x1fade, 0x1fae6, 0x1faec, 0x1fb16, 0x1fb26, 0x1fb2c, - 0x1fb3a, 0x1fb46, 0x1fb4c, 0x1fb58, 0x1fb6e, 0x1fb72, 0x1fb74, 0x1fb8a, 0x1fb92, 0x1fb94, 0x1fba2, 0x1fba4, - 0x1fba8, 0x1fbb6, 0x1fbda}; - - /** - * This table contains to codewords for all symbols. - */ - private static final int[] CODEWORD_TABLE = { - 2627, 1819, 2622, 2621, 1813, 1812, 2729, 2724, 2723, 2779, 2774, 2773, 902, 896, 908, 868, 865, 861, 859, 2511, - 873, 871, 1780, 835, 2493, 825, 2491, 842, 837, 844, 1764, 1762, 811, 810, 809, 2483, 807, 2482, 806, 2480, 815, - 814, 813, 812, 2484, 817, 816, 1745, 1744, 1742, 1746, 2655, 2637, 2635, 2626, 2625, 2623, 2628, 1820, 2752, - 2739, 2737, 2728, 2727, 2725, 2730, 2785, 2783, 2778, 2777, 2775, 2780, 787, 781, 747, 739, 736, 2413, 754, 752, - 1719, 692, 689, 681, 2371, 678, 2369, 700, 697, 694, 703, 1688, 1686, 642, 638, 2343, 631, 2341, 627, 2338, 651, - 646, 643, 2345, 654, 652, 1652, 1650, 1647, 1654, 601, 599, 2322, 596, 2321, 594, 2319, 2317, 611, 610, 608, 606, - 2324, 603, 2323, 615, 614, 612, 1617, 1616, 1614, 1612, 616, 1619, 1618, 2575, 2538, 2536, 905, 901, 898, 909, - 2509, 2507, 2504, 870, 867, 864, 860, 2512, 875, 872, 1781, 2490, 2489, 2487, 2485, 1748, 836, 834, 832, 830, - 2494, 827, 2492, 843, 841, 839, 845, 1765, 1763, 2701, 2676, 2674, 2653, 2648, 2656, 2634, 2633, 2631, 2629, - 1821, 2638, 2636, 2770, 2763, 2761, 2750, 2745, 2753, 2736, 2735, 2733, 2731, 1848, 2740, 2738, 2786, 2784, 591, - 588, 576, 569, 566, 2296, 1590, 537, 534, 526, 2276, 522, 2274, 545, 542, 539, 548, 1572, 1570, 481, 2245, 466, - 2242, 462, 2239, 492, 485, 482, 2249, 496, 494, 1534, 1531, 1528, 1538, 413, 2196, 406, 2191, 2188, 425, 419, - 2202, 415, 2199, 432, 430, 427, 1472, 1467, 1464, 433, 1476, 1474, 368, 367, 2160, 365, 2159, 362, 2157, 2155, - 2152, 378, 377, 375, 2166, 372, 2165, 369, 2162, 383, 381, 379, 2168, 1419, 1418, 1416, 1414, 385, 1411, 384, - 1423, 1422, 1420, 1424, 2461, 802, 2441, 2439, 790, 786, 783, 794, 2409, 2406, 2403, 750, 742, 738, 2414, 756, - 753, 1720, 2367, 2365, 2362, 2359, 1663, 693, 691, 684, 2373, 680, 2370, 702, 699, 696, 704, 1690, 1687, 2337, - 2336, 2334, 2332, 1624, 2329, 1622, 640, 637, 2344, 634, 2342, 630, 2340, 650, 648, 645, 2346, 655, 653, 1653, - 1651, 1649, 1655, 2612, 2597, 2595, 2571, 2568, 2565, 2576, 2534, 2529, 2526, 1787, 2540, 2537, 907, 904, 900, - 910, 2503, 2502, 2500, 2498, 1768, 2495, 1767, 2510, 2508, 2506, 869, 866, 863, 2513, 876, 874, 1782, 2720, 2713, - 2711, 2697, 2694, 2691, 2702, 2672, 2670, 2664, 1828, 2678, 2675, 2647, 2646, 2644, 2642, 1823, 2639, 1822, 2654, - 2652, 2650, 2657, 2771, 1855, 2765, 2762, 1850, 1849, 2751, 2749, 2747, 2754, 353, 2148, 344, 342, 336, 2142, - 332, 2140, 345, 1375, 1373, 306, 2130, 299, 2128, 295, 2125, 319, 314, 311, 2132, 1354, 1352, 1349, 1356, 262, - 257, 2101, 253, 2096, 2093, 274, 273, 267, 2107, 263, 2104, 280, 278, 275, 1316, 1311, 1308, 1320, 1318, 2052, - 202, 2050, 2044, 2040, 219, 2063, 212, 2060, 208, 2055, 224, 221, 2066, 1260, 1258, 1252, 231, 1248, 229, 1266, - 1264, 1261, 1268, 155, 1998, 153, 1996, 1994, 1991, 1988, 165, 164, 2007, 162, 2006, 159, 2003, 2000, 172, 171, - 169, 2012, 166, 2010, 1186, 1184, 1182, 1179, 175, 1176, 173, 1192, 1191, 1189, 1187, 176, 1194, 1193, 2313, - 2307, 2305, 592, 589, 2294, 2292, 2289, 578, 572, 568, 2297, 580, 1591, 2272, 2267, 2264, 1547, 538, 536, 529, - 2278, 525, 2275, 547, 544, 541, 1574, 1571, 2237, 2235, 2229, 1493, 2225, 1489, 478, 2247, 470, 2244, 465, 2241, - 493, 488, 484, 2250, 498, 495, 1536, 1533, 1530, 1539, 2187, 2186, 2184, 2182, 1432, 2179, 1430, 2176, 1427, 414, - 412, 2197, 409, 2195, 405, 2193, 2190, 426, 424, 421, 2203, 418, 2201, 431, 429, 1473, 1471, 1469, 1466, 434, - 1477, 1475, 2478, 2472, 2470, 2459, 2457, 2454, 2462, 803, 2437, 2432, 2429, 1726, 2443, 2440, 792, 789, 785, - 2401, 2399, 2393, 1702, 2389, 1699, 2411, 2408, 2405, 745, 741, 2415, 758, 755, 1721, 2358, 2357, 2355, 2353, - 1661, 2350, 1660, 2347, 1657, 2368, 2366, 2364, 2361, 1666, 690, 687, 2374, 683, 2372, 701, 698, 705, 1691, 1689, - 2619, 2617, 2610, 2608, 2605, 2613, 2593, 2588, 2585, 1803, 2599, 2596, 2563, 2561, 2555, 1797, 2551, 1795, 2573, - 2570, 2567, 2577, 2525, 2524, 2522, 2520, 1786, 2517, 1785, 2514, 1783, 2535, 2533, 2531, 2528, 1788, 2541, 2539, - 906, 903, 911, 2721, 1844, 2715, 2712, 1838, 1836, 2699, 2696, 2693, 2703, 1827, 1826, 1824, 2673, 2671, 2669, - 2666, 1829, 2679, 2677, 1858, 1857, 2772, 1854, 1853, 1851, 1856, 2766, 2764, 143, 1987, 139, 1986, 135, 133, - 131, 1984, 128, 1983, 125, 1981, 138, 137, 136, 1985, 1133, 1132, 1130, 112, 110, 1974, 107, 1973, 104, 1971, - 1969, 122, 121, 119, 117, 1977, 114, 1976, 124, 1115, 1114, 1112, 1110, 1117, 1116, 84, 83, 1953, 81, 1952, 78, - 1950, 1948, 1945, 94, 93, 91, 1959, 88, 1958, 85, 1955, 99, 97, 95, 1961, 1086, 1085, 1083, 1081, 1078, 100, - 1090, 1089, 1087, 1091, 49, 47, 1917, 44, 1915, 1913, 1910, 1907, 59, 1926, 56, 1925, 53, 1922, 1919, 66, 64, - 1931, 61, 1929, 1042, 1040, 1038, 71, 1035, 70, 1032, 68, 1048, 1047, 1045, 1043, 1050, 1049, 12, 10, 1869, 1867, - 1864, 1861, 21, 1880, 19, 1877, 1874, 1871, 28, 1888, 25, 1886, 22, 1883, 982, 980, 977, 974, 32, 30, 991, 989, - 987, 984, 34, 995, 994, 992, 2151, 2150, 2147, 2146, 2144, 356, 355, 354, 2149, 2139, 2138, 2136, 2134, 1359, - 343, 341, 338, 2143, 335, 2141, 348, 347, 346, 1376, 1374, 2124, 2123, 2121, 2119, 1326, 2116, 1324, 310, 308, - 305, 2131, 302, 2129, 298, 2127, 320, 318, 316, 313, 2133, 322, 321, 1355, 1353, 1351, 1357, 2092, 2091, 2089, - 2087, 1276, 2084, 1274, 2081, 1271, 259, 2102, 256, 2100, 252, 2098, 2095, 272, 269, 2108, 266, 2106, 281, 279, - 277, 1317, 1315, 1313, 1310, 282, 1321, 1319, 2039, 2037, 2035, 2032, 1203, 2029, 1200, 1197, 207, 2053, 205, - 2051, 201, 2049, 2046, 2043, 220, 218, 2064, 215, 2062, 211, 2059, 228, 226, 223, 2069, 1259, 1257, 1254, 232, - 1251, 230, 1267, 1265, 1263, 2316, 2315, 2312, 2311, 2309, 2314, 2304, 2303, 2301, 2299, 1593, 2308, 2306, 590, - 2288, 2287, 2285, 2283, 1578, 2280, 1577, 2295, 2293, 2291, 579, 577, 574, 571, 2298, 582, 581, 1592, 2263, 2262, - 2260, 2258, 1545, 2255, 1544, 2252, 1541, 2273, 2271, 2269, 2266, 1550, 535, 532, 2279, 528, 2277, 546, 543, 549, - 1575, 1573, 2224, 2222, 2220, 1486, 2217, 1485, 2214, 1482, 1479, 2238, 2236, 2234, 2231, 1496, 2228, 1492, 480, - 477, 2248, 473, 2246, 469, 2243, 490, 487, 2251, 497, 1537, 1535, 1532, 2477, 2476, 2474, 2479, 2469, 2468, 2466, - 2464, 1730, 2473, 2471, 2453, 2452, 2450, 2448, 1729, 2445, 1728, 2460, 2458, 2456, 2463, 805, 804, 2428, 2427, - 2425, 2423, 1725, 2420, 1724, 2417, 1722, 2438, 2436, 2434, 2431, 1727, 2444, 2442, 793, 791, 788, 795, 2388, - 2386, 2384, 1697, 2381, 1696, 2378, 1694, 1692, 2402, 2400, 2398, 2395, 1703, 2392, 1701, 2412, 2410, 2407, 751, - 748, 744, 2416, 759, 757, 1807, 2620, 2618, 1806, 1805, 2611, 2609, 2607, 2614, 1802, 1801, 1799, 2594, 2592, - 2590, 2587, 1804, 2600, 2598, 1794, 1793, 1791, 1789, 2564, 2562, 2560, 2557, 1798, 2554, 1796, 2574, 2572, 2569, - 2578, 1847, 1846, 2722, 1843, 1842, 1840, 1845, 2716, 2714, 1835, 1834, 1832, 1830, 1839, 1837, 2700, 2698, 2695, - 2704, 1817, 1811, 1810, 897, 862, 1777, 829, 826, 838, 1760, 1758, 808, 2481, 1741, 1740, 1738, 1743, 2624, 1818, - 2726, 2776, 782, 740, 737, 1715, 686, 679, 695, 1682, 1680, 639, 628, 2339, 647, 644, 1645, 1643, 1640, 1648, - 602, 600, 597, 595, 2320, 593, 2318, 609, 607, 604, 1611, 1610, 1608, 1606, 613, 1615, 1613, 2328, 926, 924, 892, - 886, 899, 857, 850, 2505, 1778, 824, 823, 821, 819, 2488, 818, 2486, 833, 831, 828, 840, 1761, 1759, 2649, 2632, - 2630, 2746, 2734, 2732, 2782, 2781, 570, 567, 1587, 531, 527, 523, 540, 1566, 1564, 476, 467, 463, 2240, 486, - 483, 1524, 1521, 1518, 1529, 411, 403, 2192, 399, 2189, 423, 416, 1462, 1457, 1454, 428, 1468, 1465, 2210, 366, - 363, 2158, 360, 2156, 357, 2153, 376, 373, 370, 2163, 1410, 1409, 1407, 1405, 382, 1402, 380, 1417, 1415, 1412, - 1421, 2175, 2174, 777, 774, 771, 784, 732, 725, 722, 2404, 743, 1716, 676, 674, 668, 2363, 665, 2360, 685, 1684, - 1681, 626, 624, 622, 2335, 620, 2333, 617, 2330, 641, 635, 649, 1646, 1644, 1642, 2566, 928, 925, 2530, 2527, - 894, 891, 888, 2501, 2499, 2496, 858, 856, 854, 851, 1779, 2692, 2668, 2665, 2645, 2643, 2640, 2651, 2768, 2759, - 2757, 2744, 2743, 2741, 2748, 352, 1382, 340, 337, 333, 1371, 1369, 307, 300, 296, 2126, 315, 312, 1347, 1342, - 1350, 261, 258, 250, 2097, 246, 2094, 271, 268, 264, 1306, 1301, 1298, 276, 1312, 1309, 2115, 203, 2048, 195, - 2045, 191, 2041, 213, 209, 2056, 1246, 1244, 1238, 225, 1234, 222, 1256, 1253, 1249, 1262, 2080, 2079, 154, 1997, - 150, 1995, 147, 1992, 1989, 163, 160, 2004, 156, 2001, 1175, 1174, 1172, 1170, 1167, 170, 1164, 167, 1185, 1183, - 1180, 1177, 174, 1190, 1188, 2025, 2024, 2022, 587, 586, 564, 559, 556, 2290, 573, 1588, 520, 518, 512, 2268, - 508, 2265, 530, 1568, 1565, 461, 457, 2233, 450, 2230, 446, 2226, 479, 471, 489, 1526, 1523, 1520, 397, 395, - 2185, 392, 2183, 389, 2180, 2177, 410, 2194, 402, 422, 1463, 1461, 1459, 1456, 1470, 2455, 799, 2433, 2430, 779, - 776, 773, 2397, 2394, 2390, 734, 728, 724, 746, 1717, 2356, 2354, 2351, 2348, 1658, 677, 675, 673, 670, 667, 688, - 1685, 1683, 2606, 2589, 2586, 2559, 2556, 2552, 927, 2523, 2521, 2518, 2515, 1784, 2532, 895, 893, 890, 2718, - 2709, 2707, 2689, 2687, 2684, 2663, 2662, 2660, 2658, 1825, 2667, 2769, 1852, 2760, 2758, 142, 141, 1139, 1138, - 134, 132, 129, 126, 1982, 1129, 1128, 1126, 1131, 113, 111, 108, 105, 1972, 101, 1970, 120, 118, 115, 1109, 1108, - 1106, 1104, 123, 1113, 1111, 82, 79, 1951, 75, 1949, 72, 1946, 92, 89, 86, 1956, 1077, 1076, 1074, 1072, 98, - 1069, 96, 1084, 1082, 1079, 1088, 1968, 1967, 48, 45, 1916, 42, 1914, 39, 1911, 1908, 60, 57, 54, 1923, 50, 1920, - 1031, 1030, 1028, 1026, 67, 1023, 65, 1020, 62, 1041, 1039, 1036, 1033, 69, 1046, 1044, 1944, 1943, 1941, 11, 9, - 1868, 7, 1865, 1862, 1859, 20, 1878, 16, 1875, 13, 1872, 970, 968, 966, 963, 29, 960, 26, 23, 983, 981, 978, 975, - 33, 971, 31, 990, 988, 985, 1906, 1904, 1902, 993, 351, 2145, 1383, 331, 330, 328, 326, 2137, 323, 2135, 339, - 1372, 1370, 294, 293, 291, 289, 2122, 286, 2120, 283, 2117, 309, 303, 317, 1348, 1346, 1344, 245, 244, 242, 2090, - 239, 2088, 236, 2085, 2082, 260, 2099, 249, 270, 1307, 1305, 1303, 1300, 1314, 189, 2038, 186, 2036, 183, 2033, - 2030, 2026, 206, 198, 2047, 194, 216, 1247, 1245, 1243, 1240, 227, 1237, 1255, 2310, 2302, 2300, 2286, 2284, - 2281, 565, 563, 561, 558, 575, 1589, 2261, 2259, 2256, 2253, 1542, 521, 519, 517, 514, 2270, 511, 533, 1569, - 1567, 2223, 2221, 2218, 2215, 1483, 2211, 1480, 459, 456, 453, 2232, 449, 474, 491, 1527, 1525, 1522, 2475, 2467, - 2465, 2451, 2449, 2446, 801, 800, 2426, 2424, 2421, 2418, 1723, 2435, 780, 778, 775, 2387, 2385, 2382, 2379, - 1695, 2375, 1693, 2396, 735, 733, 730, 727, 749, 1718, 2616, 2615, 2604, 2603, 2601, 2584, 2583, 2581, 2579, - 1800, 2591, 2550, 2549, 2547, 2545, 1792, 2542, 1790, 2558, 929, 2719, 1841, 2710, 2708, 1833, 1831, 2690, 2688, - 2686, 1815, 1809, 1808, 1774, 1756, 1754, 1737, 1736, 1734, 1739, 1816, 1711, 1676, 1674, 633, 629, 1638, 1636, - 1633, 1641, 598, 1605, 1604, 1602, 1600, 605, 1609, 1607, 2327, 887, 853, 1775, 822, 820, 1757, 1755, 1584, 524, - 1560, 1558, 468, 464, 1514, 1511, 1508, 1519, 408, 404, 400, 1452, 1447, 1444, 417, 1458, 1455, 2208, 364, 361, - 358, 2154, 1401, 1400, 1398, 1396, 374, 1393, 371, 1408, 1406, 1403, 1413, 2173, 2172, 772, 726, 723, 1712, 672, - 669, 666, 682, 1678, 1675, 625, 623, 621, 618, 2331, 636, 632, 1639, 1637, 1635, 920, 918, 884, 880, 889, 849, - 848, 847, 846, 2497, 855, 852, 1776, 2641, 2742, 2787, 1380, 334, 1367, 1365, 301, 297, 1340, 1338, 1335, 1343, - 255, 251, 247, 1296, 1291, 1288, 265, 1302, 1299, 2113, 204, 196, 192, 2042, 1232, 1230, 1224, 214, 1220, 210, - 1242, 1239, 1235, 1250, 2077, 2075, 151, 148, 1993, 144, 1990, 1163, 1162, 1160, 1158, 1155, 161, 1152, 157, - 1173, 1171, 1168, 1165, 168, 1181, 1178, 2021, 2020, 2018, 2023, 585, 560, 557, 1585, 516, 509, 1562, 1559, 458, - 447, 2227, 472, 1516, 1513, 1510, 398, 396, 393, 390, 2181, 386, 2178, 407, 1453, 1451, 1449, 1446, 420, 1460, - 2209, 769, 764, 720, 712, 2391, 729, 1713, 664, 663, 661, 659, 2352, 656, 2349, 671, 1679, 1677, 2553, 922, 919, - 2519, 2516, 885, 883, 881, 2685, 2661, 2659, 2767, 2756, 2755, 140, 1137, 1136, 130, 127, 1125, 1124, 1122, 1127, - 109, 106, 102, 1103, 1102, 1100, 1098, 116, 1107, 1105, 1980, 80, 76, 73, 1947, 1068, 1067, 1065, 1063, 90, 1060, - 87, 1075, 1073, 1070, 1080, 1966, 1965, 46, 43, 40, 1912, 36, 1909, 1019, 1018, 1016, 1014, 58, 1011, 55, 1008, - 51, 1029, 1027, 1024, 1021, 63, 1037, 1034, 1940, 1939, 1937, 1942, 8, 1866, 4, 1863, 1, 1860, 956, 954, 952, - 949, 946, 17, 14, 969, 967, 964, 961, 27, 957, 24, 979, 976, 972, 1901, 1900, 1898, 1896, 986, 1905, 1903, 350, - 349, 1381, 329, 327, 324, 1368, 1366, 292, 290, 287, 284, 2118, 304, 1341, 1339, 1337, 1345, 243, 240, 237, 2086, - 233, 2083, 254, 1297, 1295, 1293, 1290, 1304, 2114, 190, 187, 184, 2034, 180, 2031, 177, 2027, 199, 1233, 1231, - 1229, 1226, 217, 1223, 1241, 2078, 2076, 584, 555, 554, 552, 550, 2282, 562, 1586, 507, 506, 504, 502, 2257, 499, - 2254, 515, 1563, 1561, 445, 443, 441, 2219, 438, 2216, 435, 2212, 460, 454, 475, 1517, 1515, 1512, 2447, 798, - 797, 2422, 2419, 770, 768, 766, 2383, 2380, 2376, 721, 719, 717, 714, 731, 1714, 2602, 2582, 2580, 2548, 2546, - 2543, 923, 921, 2717, 2706, 2705, 2683, 2682, 2680, 1771, 1752, 1750, 1733, 1732, 1731, 1735, 1814, 1707, 1670, - 1668, 1631, 1629, 1626, 1634, 1599, 1598, 1596, 1594, 1603, 1601, 2326, 1772, 1753, 1751, 1581, 1554, 1552, 1504, - 1501, 1498, 1509, 1442, 1437, 1434, 401, 1448, 1445, 2206, 1392, 1391, 1389, 1387, 1384, 359, 1399, 1397, 1394, - 1404, 2171, 2170, 1708, 1672, 1669, 619, 1632, 1630, 1628, 1773, 1378, 1363, 1361, 1333, 1328, 1336, 1286, 1281, - 1278, 248, 1292, 1289, 2111, 1218, 1216, 1210, 197, 1206, 193, 1228, 1225, 1221, 1236, 2073, 2071, 1151, 1150, - 1148, 1146, 152, 1143, 149, 1140, 145, 1161, 1159, 1156, 1153, 158, 1169, 1166, 2017, 2016, 2014, 2019, 1582, - 510, 1556, 1553, 452, 448, 1506, 1500, 394, 391, 387, 1443, 1441, 1439, 1436, 1450, 2207, 765, 716, 713, 1709, - 662, 660, 657, 1673, 1671, 916, 914, 879, 878, 877, 882, 1135, 1134, 1121, 1120, 1118, 1123, 1097, 1096, 1094, - 1092, 103, 1101, 1099, 1979, 1059, 1058, 1056, 1054, 77, 1051, 74, 1066, 1064, 1061, 1071, 1964, 1963, 1007, - 1006, 1004, 1002, 999, 41, 996, 37, 1017, 1015, 1012, 1009, 52, 1025, 1022, 1936, 1935, 1933, 1938, 942, 940, - 938, 935, 932, 5, 2, 955, 953, 950, 947, 18, 943, 15, 965, 962, 958, 1895, 1894, 1892, 1890, 973, 1899, 1897, - 1379, 325, 1364, 1362, 288, 285, 1334, 1332, 1330, 241, 238, 234, 1287, 1285, 1283, 1280, 1294, 2112, 188, 185, - 181, 178, 2028, 1219, 1217, 1215, 1212, 200, 1209, 1227, 2074, 2072, 583, 553, 551, 1583, 505, 503, 500, 513, - 1557, 1555, 444, 442, 439, 436, 2213, 455, 451, 1507, 1505, 1502, 796, 763, 762, 760, 767, 711, 710, 708, 706, - 2377, 718, 715, 1710, 2544, 917, 915, 2681, 1627, 1597, 1595, 2325, 1769, 1749, 1747, 1499, 1438, 1435, 2204, - 1390, 1388, 1385, 1395, 2169, 2167, 1704, 1665, 1662, 1625, 1623, 1620, 1770, 1329, 1282, 1279, 2109, 1214, 1207, - 1222, 2068, 2065, 1149, 1147, 1144, 1141, 146, 1157, 1154, 2013, 2011, 2008, 2015, 1579, 1549, 1546, 1495, 1487, - 1433, 1431, 1428, 1425, 388, 1440, 2205, 1705, 658, 1667, 1664, 1119, 1095, 1093, 1978, 1057, 1055, 1052, 1062, - 1962, 1960, 1005, 1003, 1000, 997, 38, 1013, 1010, 1932, 1930, 1927, 1934, 941, 939, 936, 933, 6, 930, 3, 951, - 948, 944, 1889, 1887, 1884, 1881, 959, 1893, 1891, 35, 1377, 1360, 1358, 1327, 1325, 1322, 1331, 1277, 1275, - 1272, 1269, 235, 1284, 2110, 1205, 1204, 1201, 1198, 182, 1195, 179, 1213, 2070, 2067, 1580, 501, 1551, 1548, - 440, 437, 1497, 1494, 1490, 1503, 761, 709, 707, 1706, 913, 912, 2198, 1386, 2164, 2161, 1621, 1766, 2103, 1208, - 2058, 2054, 1145, 1142, 2005, 2002, 1999, 2009, 1488, 1429, 1426, 2200, 1698, 1659, 1656, 1975, 1053, 1957, 1954, - 1001, 998, 1924, 1921, 1918, 1928, 937, 934, 931, 1879, 1876, 1873, 1870, 945, 1885, 1882, 1323, 1273, 1270, - 2105, 1202, 1199, 1196, 1211, 2061, 2057, 1576, 1543, 1540, 1484, 1481, 1478, 1491, 1700}; -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/PDF417Reader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/PDF417Reader.java deleted file mode 100755 index af1c3aaa..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/PDF417Reader.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.BinaryBitmap; -import com.google.zxing.ChecksumException; -import com.google.zxing.DecodeHintType; -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.Reader; -import com.google.zxing.Result; -import com.google.zxing.ResultMetadataType; -import com.google.zxing.ResultPoint; -import com.google.zxing.common.DecoderResult; -import com.google.zxing.multi.MultipleBarcodeReader; -import com.google.zxing.pdf417.decoder.PDF417ScanningDecoder; -import com.google.zxing.pdf417.detector.Detector; -import com.google.zxing.pdf417.detector.PDF417DetectorResult; - -/** - * This implementation can detect and decode PDF417 codes in an image. - * - * @author Guenther Grau - */ -public final class PDF417Reader implements Reader, MultipleBarcodeReader { - - /** - * Locates and decodes a PDF417 code in an image. - * - * @return a String representing the content encoded by the PDF417 code - * @throws NotFoundException if a PDF417 code cannot be found, - * @throws FormatException if a PDF417 cannot be decoded - */ - @Override - public Result decode(BinaryBitmap image) throws NotFoundException, FormatException, ChecksumException { - return decode(image, null); - } - - @Override - public Result decode(BinaryBitmap image, Map<DecodeHintType,?> hints) throws NotFoundException, FormatException, - ChecksumException { - Result[] result = decode(image, hints, false); - if (result == null || result.length == 0 || result[0] == null) { - throw NotFoundException.getNotFoundInstance(); - } - return result[0]; - } - - @Override - public Result[] decodeMultiple(BinaryBitmap image) throws NotFoundException { - return decodeMultiple(image, null); - } - - @Override - public Result[] decodeMultiple(BinaryBitmap image, Map<DecodeHintType,?> hints) throws NotFoundException { - try { - return decode(image, hints, true); - } catch (FormatException | ChecksumException ignored) { - throw NotFoundException.getNotFoundInstance(); - } - } - - private static Result[] decode(BinaryBitmap image, Map<DecodeHintType, ?> hints, boolean multiple) - throws NotFoundException, FormatException, ChecksumException { - List<Result> results = new ArrayList<>(); - PDF417DetectorResult detectorResult = Detector.detect(image, hints, multiple); - for (ResultPoint[] points : detectorResult.getPoints()) { - DecoderResult decoderResult = PDF417ScanningDecoder.decode(detectorResult.getBits(), points[4], points[5], - points[6], points[7], getMinCodewordWidth(points), getMaxCodewordWidth(points)); - Result result = new Result(decoderResult.getText(), decoderResult.getRawBytes(), points, BarcodeFormat.PDF_417); - result.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, decoderResult.getECLevel()); - PDF417ResultMetadata pdf417ResultMetadata = (PDF417ResultMetadata) decoderResult.getOther(); - if (pdf417ResultMetadata != null) { - result.putMetadata(ResultMetadataType.PDF417_EXTRA_METADATA, pdf417ResultMetadata); - } - results.add(result); - } - return results.toArray(new Result[results.size()]); - } - - private static int getMaxWidth(ResultPoint p1, ResultPoint p2) { - if (p1 == null || p2 == null) { - return 0; - } - return (int) Math.abs(p1.getX() - p2.getX()); - } - - private static int getMinWidth(ResultPoint p1, ResultPoint p2) { - if (p1 == null || p2 == null) { - return Integer.MAX_VALUE; - } - return (int) Math.abs(p1.getX() - p2.getX()); - } - - private static int getMaxCodewordWidth(ResultPoint[] p) { - return Math.max( - Math.max(getMaxWidth(p[0], p[4]), getMaxWidth(p[6], p[2]) * PDF417Common.MODULES_IN_CODEWORD / - PDF417Common.MODULES_IN_STOP_PATTERN), - Math.max(getMaxWidth(p[1], p[5]), getMaxWidth(p[7], p[3]) * PDF417Common.MODULES_IN_CODEWORD / - PDF417Common.MODULES_IN_STOP_PATTERN)); - } - - private static int getMinCodewordWidth(ResultPoint[] p) { - return Math.min( - Math.min(getMinWidth(p[0], p[4]), getMinWidth(p[6], p[2]) * PDF417Common.MODULES_IN_CODEWORD / - PDF417Common.MODULES_IN_STOP_PATTERN), - Math.min(getMinWidth(p[1], p[5]), getMinWidth(p[7], p[3]) * PDF417Common.MODULES_IN_CODEWORD / - PDF417Common.MODULES_IN_STOP_PATTERN)); - } - - @Override - public void reset() { - // nothing needs to be reset - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/PDF417ResultMetadata.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/PDF417ResultMetadata.java deleted file mode 100755 index 2e1c4ee2..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/PDF417ResultMetadata.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417; - -/** - * @author Guenther Grau - */ -public final class PDF417ResultMetadata { - - private int segmentIndex; - private String fileId; - private int[] optionalData; - private boolean lastSegment; - - public int getSegmentIndex() { - return segmentIndex; - } - - public void setSegmentIndex(int segmentIndex) { - this.segmentIndex = segmentIndex; - } - - public String getFileId() { - return fileId; - } - - public void setFileId(String fileId) { - this.fileId = fileId; - } - - public int[] getOptionalData() { - return optionalData; - } - - public void setOptionalData(int[] optionalData) { - this.optionalData = optionalData; - } - - public boolean isLastSegment() { - return lastSegment; - } - - public void setLastSegment(boolean lastSegment) { - this.lastSegment = lastSegment; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/PDF417Writer.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/PDF417Writer.java deleted file mode 100755 index 6931cf46..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/PDF417Writer.java +++ /dev/null @@ -1,176 +0,0 @@ -/* - * Copyright 2012 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417; - -import java.nio.charset.Charset; -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.EncodeHintType; -import com.google.zxing.Writer; -import com.google.zxing.WriterException; -import com.google.zxing.common.BitMatrix; -import com.google.zxing.pdf417.encoder.Compaction; -import com.google.zxing.pdf417.encoder.Dimensions; -import com.google.zxing.pdf417.encoder.PDF417; - -/** - * @author Jacob Haynes - * @author qwandor@google.com (Andrew Walbran) - */ -public final class PDF417Writer implements Writer { - - /** - * default white space (margin) around the code - */ - static final int WHITE_SPACE = 30; - - /** - * default error correction level - */ - static final int DEFAULT_ERROR_CORRECTION_LEVEL = 2; - - @Override - public BitMatrix encode(String contents, - BarcodeFormat format, - int width, - int height, - Map<EncodeHintType,?> hints) throws WriterException { - if (format != BarcodeFormat.PDF_417) { - throw new IllegalArgumentException("Can only encode PDF_417, but got " + format); - } - - PDF417 encoder = new PDF417(); - int margin = WHITE_SPACE; - int errorCorrectionLevel = DEFAULT_ERROR_CORRECTION_LEVEL; - - if (hints != null) { - if (hints.containsKey(EncodeHintType.PDF417_COMPACT)) { - encoder.setCompact(Boolean.valueOf(hints.get(EncodeHintType.PDF417_COMPACT).toString())); - } - if (hints.containsKey(EncodeHintType.PDF417_COMPACTION)) { - encoder.setCompaction(Compaction.valueOf(hints.get(EncodeHintType.PDF417_COMPACTION).toString())); - } - if (hints.containsKey(EncodeHintType.PDF417_DIMENSIONS)) { - Dimensions dimensions = (Dimensions) hints.get(EncodeHintType.PDF417_DIMENSIONS); - encoder.setDimensions(dimensions.getMaxCols(), - dimensions.getMinCols(), - dimensions.getMaxRows(), - dimensions.getMinRows()); - } - if (hints.containsKey(EncodeHintType.MARGIN)) { - margin = Integer.parseInt(hints.get(EncodeHintType.MARGIN).toString()); - } - if (hints.containsKey(EncodeHintType.ERROR_CORRECTION)) { - errorCorrectionLevel = Integer.parseInt(hints.get(EncodeHintType.ERROR_CORRECTION).toString()); - } - if (hints.containsKey(EncodeHintType.CHARACTER_SET)) { - Charset encoding = Charset.forName(hints.get(EncodeHintType.CHARACTER_SET).toString()); - encoder.setEncoding(encoding); - } - } - - return bitMatrixFromEncoder(encoder, contents, errorCorrectionLevel, width, height, margin); - } - - @Override - public BitMatrix encode(String contents, - BarcodeFormat format, - int width, - int height) throws WriterException { - return encode(contents, format, width, height, null); - } - - /** - * Takes encoder, accounts for width/height, and retrieves bit matrix - */ - private static BitMatrix bitMatrixFromEncoder(PDF417 encoder, - String contents, - int errorCorrectionLevel, - int width, - int height, - int margin) throws WriterException { - encoder.generateBarcodeLogic(contents, errorCorrectionLevel); - - int aspectRatio = 4; - byte[][] originalScale = encoder.getBarcodeMatrix().getScaledMatrix(1, aspectRatio); - boolean rotated = false; - if ((height > width) ^ (originalScale[0].length < originalScale.length)) { - originalScale = rotateArray(originalScale); - rotated = true; - } - - int scaleX = width / originalScale[0].length; - int scaleY = height / originalScale.length; - - int scale; - if (scaleX < scaleY) { - scale = scaleX; - } else { - scale = scaleY; - } - - if (scale > 1) { - byte[][] scaledMatrix = - encoder.getBarcodeMatrix().getScaledMatrix(scale, scale * aspectRatio); - if (rotated) { - scaledMatrix = rotateArray(scaledMatrix); - } - return bitMatrixFrombitArray(scaledMatrix, margin); - } - return bitMatrixFrombitArray(originalScale, margin); - } - - /** - * This takes an array holding the values of the PDF 417 - * - * @param input a byte array of information with 0 is black, and 1 is white - * @param margin border around the barcode - * @return BitMatrix of the input - */ - private static BitMatrix bitMatrixFrombitArray(byte[][] input, int margin) { - // Creates the bitmatrix with extra space for whitespace - BitMatrix output = new BitMatrix(input[0].length + 2 * margin, input.length + 2 * margin); - output.clear(); - for (int y = 0, yOutput = output.getHeight() - margin - 1; y < input.length; y++, yOutput--) { - for (int x = 0; x < input[0].length; x++) { - // Zero is white in the bytematrix - if (input[y][x] == 1) { - output.set(x + margin, yOutput); - } - } - } - return output; - } - - /** - * Takes and rotates the it 90 degrees - */ - private static byte[][] rotateArray(byte[][] bitarray) { - byte[][] temp = new byte[bitarray[0].length][bitarray.length]; - for (int ii = 0; ii < bitarray.length; ii++) { - // This makes the direction consistent on screen when rotating the - // screen; - int inverseii = bitarray.length - ii - 1; - for (int jj = 0; jj < bitarray[0].length; jj++) { - temp[jj][inverseii] = bitarray[ii][jj]; - } - } - return temp; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/BarcodeMetadata.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/BarcodeMetadata.java deleted file mode 100755 index 9c1acbf7..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/BarcodeMetadata.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417.decoder; - -/** - * @author Guenther Grau - */ -final class BarcodeMetadata { - - private final int columnCount; - private final int errorCorrectionLevel; - private final int rowCountUpperPart; - private final int rowCountLowerPart; - private final int rowCount; - - BarcodeMetadata(int columnCount, int rowCountUpperPart, int rowCountLowerPart, int errorCorrectionLevel) { - this.columnCount = columnCount; - this.errorCorrectionLevel = errorCorrectionLevel; - this.rowCountUpperPart = rowCountUpperPart; - this.rowCountLowerPart = rowCountLowerPart; - this.rowCount = rowCountUpperPart + rowCountLowerPart; - } - - int getColumnCount() { - return columnCount; - } - - int getErrorCorrectionLevel() { - return errorCorrectionLevel; - } - - int getRowCount() { - return rowCount; - } - - int getRowCountUpperPart() { - return rowCountUpperPart; - } - - int getRowCountLowerPart() { - return rowCountLowerPart; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/BarcodeValue.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/BarcodeValue.java deleted file mode 100755 index 52bbdddc..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/BarcodeValue.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417.decoder; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; -import java.util.Map.Entry; - -import com.google.zxing.pdf417.PDF417Common; - -/** - * @author Guenther Grau - */ -final class BarcodeValue { - private final Map<Integer,Integer> values = new HashMap<>(); - - /** - * Add an occurrence of a value - */ - void setValue(int value) { - Integer confidence = values.get(value); - if (confidence == null) { - confidence = 0; - } - confidence++; - values.put(value, confidence); - } - - /** - * Determines the maximum occurrence of a set value and returns all values which were set with this occurrence. - * @return an array of int, containing the values with the highest occurrence, or null, if no value was set - */ - int[] getValue() { - int maxConfidence = -1; - Collection<Integer> result = new ArrayList<>(); - for (Entry<Integer,Integer> entry : values.entrySet()) { - if (entry.getValue() > maxConfidence) { - maxConfidence = entry.getValue(); - result.clear(); - result.add(entry.getKey()); - } else if (entry.getValue() == maxConfidence) { - result.add(entry.getKey()); - } - } - return PDF417Common.toIntArray(result); - } - - public Integer getConfidence(int value) { - return values.get(value); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/BoundingBox.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/BoundingBox.java deleted file mode 100755 index b7731456..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/BoundingBox.java +++ /dev/null @@ -1,176 +0,0 @@ -/* - * Copyright 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417.decoder; - -import com.google.zxing.NotFoundException; -import com.google.zxing.ResultPoint; -import com.google.zxing.common.BitMatrix; - -/** - * @author Guenther Grau - */ -final class BoundingBox { - - private BitMatrix image; - private ResultPoint topLeft; - private ResultPoint bottomLeft; - private ResultPoint topRight; - private ResultPoint bottomRight; - private int minX; - private int maxX; - private int minY; - private int maxY; - - BoundingBox(BitMatrix image, - ResultPoint topLeft, - ResultPoint bottomLeft, - ResultPoint topRight, - ResultPoint bottomRight) throws NotFoundException { - if ((topLeft == null && topRight == null) || - (bottomLeft == null && bottomRight == null) || - (topLeft != null && bottomLeft == null) || - (topRight != null && bottomRight == null)) { - throw NotFoundException.getNotFoundInstance(); - } - init(image, topLeft, bottomLeft, topRight, bottomRight); - } - - BoundingBox(BoundingBox boundingBox) { - init(boundingBox.image, boundingBox.topLeft, boundingBox.bottomLeft, boundingBox.topRight, boundingBox.bottomRight); - } - - private void init(BitMatrix image, - ResultPoint topLeft, - ResultPoint bottomLeft, - ResultPoint topRight, - ResultPoint bottomRight) { - this.image = image; - this.topLeft = topLeft; - this.bottomLeft = bottomLeft; - this.topRight = topRight; - this.bottomRight = bottomRight; - calculateMinMaxValues(); - } - - static BoundingBox merge(BoundingBox leftBox, BoundingBox rightBox) throws NotFoundException { - if (leftBox == null) { - return rightBox; - } - if (rightBox == null) { - return leftBox; - } - return new BoundingBox(leftBox.image, leftBox.topLeft, leftBox.bottomLeft, rightBox.topRight, rightBox.bottomRight); - } - - BoundingBox addMissingRows(int missingStartRows, int missingEndRows, boolean isLeft) throws NotFoundException { - ResultPoint newTopLeft = topLeft; - ResultPoint newBottomLeft = bottomLeft; - ResultPoint newTopRight = topRight; - ResultPoint newBottomRight = bottomRight; - - if (missingStartRows > 0) { - ResultPoint top = isLeft ? topLeft : topRight; - int newMinY = (int) top.getY() - missingStartRows; - if (newMinY < 0) { - newMinY = 0; - } - ResultPoint newTop = new ResultPoint(top.getX(), newMinY); - if (isLeft) { - newTopLeft = newTop; - } else { - newTopRight = newTop; - } - } - - if (missingEndRows > 0) { - ResultPoint bottom = isLeft ? bottomLeft : bottomRight; - int newMaxY = (int) bottom.getY() + missingEndRows; - if (newMaxY >= image.getHeight()) { - newMaxY = image.getHeight() - 1; - } - ResultPoint newBottom = new ResultPoint(bottom.getX(), newMaxY); - if (isLeft) { - newBottomLeft = newBottom; - } else { - newBottomRight = newBottom; - } - } - - calculateMinMaxValues(); - return new BoundingBox(image, newTopLeft, newBottomLeft, newTopRight, newBottomRight); - } - - private void calculateMinMaxValues() { - if (topLeft == null) { - topLeft = new ResultPoint(0, topRight.getY()); - bottomLeft = new ResultPoint(0, bottomRight.getY()); - } else if (topRight == null) { - topRight = new ResultPoint(image.getWidth() - 1, topLeft.getY()); - bottomRight = new ResultPoint(image.getWidth() - 1, bottomLeft.getY()); - } - - minX = (int) Math.min(topLeft.getX(), bottomLeft.getX()); - maxX = (int) Math.max(topRight.getX(), bottomRight.getX()); - minY = (int) Math.min(topLeft.getY(), topRight.getY()); - maxY = (int) Math.max(bottomLeft.getY(), bottomRight.getY()); - } - - /* - void setTopRight(ResultPoint topRight) { - this.topRight = topRight; - calculateMinMaxValues(); - } - - void setBottomRight(ResultPoint bottomRight) { - this.bottomRight = bottomRight; - calculateMinMaxValues(); - } - */ - - int getMinX() { - return minX; - } - - int getMaxX() { - return maxX; - } - - int getMinY() { - return minY; - } - - int getMaxY() { - return maxY; - } - - ResultPoint getTopLeft() { - return topLeft; - } - - ResultPoint getTopRight() { - return topRight; - } - - ResultPoint getBottomLeft() { - return bottomLeft; - } - - ResultPoint getBottomRight() { - return bottomRight; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/Codeword.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/Codeword.java deleted file mode 100755 index bb5477da..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/Codeword.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417.decoder; - -/** - * @author Guenther Grau - */ -final class Codeword { - - private static final int BARCODE_ROW_UNKNOWN = -1; - - private final int startX; - private final int endX; - private final int bucket; - private final int value; - private int rowNumber = BARCODE_ROW_UNKNOWN; - - Codeword(int startX, int endX, int bucket, int value) { - this.startX = startX; - this.endX = endX; - this.bucket = bucket; - this.value = value; - } - - boolean hasValidRowNumber() { - return isValidRowNumber(rowNumber); - } - - boolean isValidRowNumber(int rowNumber) { - return rowNumber != BARCODE_ROW_UNKNOWN && bucket == (rowNumber % 3) * 3; - } - - void setRowNumberAsRowIndicatorColumn() { - rowNumber = (value / 30) * 3 + bucket / 3; - } - - int getWidth() { - return endX - startX; - } - - int getStartX() { - return startX; - } - - int getEndX() { - return endX; - } - - int getBucket() { - return bucket; - } - - int getValue() { - return value; - } - - int getRowNumber() { - return rowNumber; - } - - void setRowNumber(int rowNumber) { - this.rowNumber = rowNumber; - } - - @Override - public String toString() { - return rowNumber + "|" + value; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/DecodedBitStreamParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/DecodedBitStreamParser.java deleted file mode 100755 index 44a906b3..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/DecodedBitStreamParser.java +++ /dev/null @@ -1,641 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417.decoder; - -import java.io.ByteArrayOutputStream; -import java.math.BigInteger; -import java.nio.charset.Charset; -import java.util.Arrays; - -import com.google.zxing.FormatException; -import com.google.zxing.common.CharacterSetECI; -import com.google.zxing.common.DecoderResult; -import com.google.zxing.pdf417.PDF417ResultMetadata; - -/** - * <p>This class contains the methods for decoding the PDF417 codewords.</p> - * - * @author SITA Lab (kevin.osullivan@sita.aero) - * @author Guenther Grau - */ -final class DecodedBitStreamParser { - - private enum Mode { - ALPHA, - LOWER, - MIXED, - PUNCT, - ALPHA_SHIFT, - PUNCT_SHIFT - } - - private static final int TEXT_COMPACTION_MODE_LATCH = 900; - private static final int BYTE_COMPACTION_MODE_LATCH = 901; - private static final int NUMERIC_COMPACTION_MODE_LATCH = 902; - private static final int BYTE_COMPACTION_MODE_LATCH_6 = 924; - private static final int ECI_USER_DEFINED = 925; - private static final int ECI_GENERAL_PURPOSE = 926; - private static final int ECI_CHARSET = 927; - private static final int BEGIN_MACRO_PDF417_CONTROL_BLOCK = 928; - private static final int BEGIN_MACRO_PDF417_OPTIONAL_FIELD = 923; - private static final int MACRO_PDF417_TERMINATOR = 922; - private static final int MODE_SHIFT_TO_BYTE_COMPACTION_MODE = 913; - private static final int MAX_NUMERIC_CODEWORDS = 15; - - private static final int PL = 25; - private static final int LL = 27; - private static final int AS = 27; - private static final int ML = 28; - private static final int AL = 28; - private static final int PS = 29; - private static final int PAL = 29; - - private static final char[] PUNCT_CHARS = { - ';', '<', '>', '@', '[', '\\', ']', '_', '`', '~', '!', - '\r', '\t', ',', ':', '\n', '-', '.', '$', '/', '"', '|', '*', - '(', ')', '?', '{', '}', '\''}; - - private static final char[] MIXED_CHARS = { - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '&', - '\r', '\t', ',', ':', '#', '-', '.', '$', '/', '+', '%', '*', - '=', '^'}; - - private static final Charset DEFAULT_ENCODING = Charset.forName("ISO-8859-1"); - - /** - * Table containing values for the exponent of 900. - * This is used in the numeric compaction decode algorithm. - */ - private static final BigInteger[] EXP900; - static { - EXP900 = new BigInteger[16]; - EXP900[0] = BigInteger.ONE; - BigInteger nineHundred = BigInteger.valueOf(900); - EXP900[1] = nineHundred; - for (int i = 2; i < EXP900.length; i++) { - EXP900[i] = EXP900[i - 1].multiply(nineHundred); - } - } - - private static final int NUMBER_OF_SEQUENCE_CODEWORDS = 2; - - private DecodedBitStreamParser() { - } - - static DecoderResult decode(int[] codewords, String ecLevel) throws FormatException { - StringBuilder result = new StringBuilder(codewords.length * 2); - Charset encoding = DEFAULT_ENCODING; - // Get compaction mode - int codeIndex = 1; - int code = codewords[codeIndex++]; - PDF417ResultMetadata resultMetadata = new PDF417ResultMetadata(); - while (codeIndex < codewords[0]) { - switch (code) { - case TEXT_COMPACTION_MODE_LATCH: - codeIndex = textCompaction(codewords, codeIndex, result); - break; - case BYTE_COMPACTION_MODE_LATCH: - case BYTE_COMPACTION_MODE_LATCH_6: - codeIndex = byteCompaction(code, codewords, encoding, codeIndex, result); - break; - case MODE_SHIFT_TO_BYTE_COMPACTION_MODE: - result.append((char) codewords[codeIndex++]); - break; - case NUMERIC_COMPACTION_MODE_LATCH: - codeIndex = numericCompaction(codewords, codeIndex, result); - break; - case ECI_CHARSET: - CharacterSetECI charsetECI = - CharacterSetECI.getCharacterSetECIByValue(codewords[codeIndex++]); - encoding = Charset.forName(charsetECI.name()); - break; - case ECI_GENERAL_PURPOSE: - // Can't do anything with generic ECI; skip its 2 characters - codeIndex += 2; - break; - case ECI_USER_DEFINED: - // Can't do anything with user ECI; skip its 1 character - codeIndex ++; - break; - case BEGIN_MACRO_PDF417_CONTROL_BLOCK: - codeIndex = decodeMacroBlock(codewords, codeIndex, resultMetadata); - break; - case BEGIN_MACRO_PDF417_OPTIONAL_FIELD: - case MACRO_PDF417_TERMINATOR: - // Should not see these outside a macro block - throw FormatException.getFormatInstance(); - default: - // Default to text compaction. During testing numerous barcodes - // appeared to be missing the starting mode. In these cases defaulting - // to text compaction seems to work. - codeIndex--; - codeIndex = textCompaction(codewords, codeIndex, result); - break; - } - if (codeIndex < codewords.length) { - code = codewords[codeIndex++]; - } else { - throw FormatException.getFormatInstance(); - } - } - if (result.length() == 0) { - throw FormatException.getFormatInstance(); - } - DecoderResult decoderResult = new DecoderResult(null, result.toString(), null, ecLevel); - decoderResult.setOther(resultMetadata); - return decoderResult; - } - - private static int decodeMacroBlock(int[] codewords, int codeIndex, PDF417ResultMetadata resultMetadata) - throws FormatException { - if (codeIndex + NUMBER_OF_SEQUENCE_CODEWORDS > codewords[0]) { - // we must have at least two bytes left for the segment index - throw FormatException.getFormatInstance(); - } - int[] segmentIndexArray = new int[NUMBER_OF_SEQUENCE_CODEWORDS]; - for (int i = 0; i < NUMBER_OF_SEQUENCE_CODEWORDS; i++, codeIndex++) { - segmentIndexArray[i] = codewords[codeIndex]; - } - resultMetadata.setSegmentIndex(Integer.parseInt(decodeBase900toBase10(segmentIndexArray, - NUMBER_OF_SEQUENCE_CODEWORDS))); - - StringBuilder fileId = new StringBuilder(); - codeIndex = textCompaction(codewords, codeIndex, fileId); - resultMetadata.setFileId(fileId.toString()); - - if (codewords[codeIndex] == BEGIN_MACRO_PDF417_OPTIONAL_FIELD) { - codeIndex++; - int[] additionalOptionCodeWords = new int[codewords[0] - codeIndex]; - int additionalOptionCodeWordsIndex = 0; - - boolean end = false; - while ((codeIndex < codewords[0]) && !end) { - int code = codewords[codeIndex++]; - if (code < TEXT_COMPACTION_MODE_LATCH) { - additionalOptionCodeWords[additionalOptionCodeWordsIndex++] = code; - } else { - switch (code) { - case MACRO_PDF417_TERMINATOR: - resultMetadata.setLastSegment(true); - codeIndex++; - end = true; - break; - default: - throw FormatException.getFormatInstance(); - } - } - } - - resultMetadata.setOptionalData(Arrays.copyOf(additionalOptionCodeWords, additionalOptionCodeWordsIndex)); - } else if (codewords[codeIndex] == MACRO_PDF417_TERMINATOR) { - resultMetadata.setLastSegment(true); - codeIndex++; - } - - return codeIndex; - } - - /** - * Text Compaction mode (see 5.4.1.5) permits all printable ASCII characters to be - * encoded, i.e. values 32 - 126 inclusive in accordance with ISO/IEC 646 (IRV), as - * well as selected control characters. - * - * @param codewords The array of codewords (data + error) - * @param codeIndex The current index into the codeword array. - * @param result The decoded data is appended to the result. - * @return The next index into the codeword array. - */ - private static int textCompaction(int[] codewords, int codeIndex, StringBuilder result) { - // 2 character per codeword - int[] textCompactionData = new int[(codewords[0] - codeIndex) * 2]; - // Used to hold the byte compaction value if there is a mode shift - int[] byteCompactionData = new int[(codewords[0] - codeIndex) * 2]; - - int index = 0; - boolean end = false; - while ((codeIndex < codewords[0]) && !end) { - int code = codewords[codeIndex++]; - if (code < TEXT_COMPACTION_MODE_LATCH) { - textCompactionData[index] = code / 30; - textCompactionData[index + 1] = code % 30; - index += 2; - } else { - switch (code) { - case TEXT_COMPACTION_MODE_LATCH: - // reinitialize text compaction mode to alpha sub mode - textCompactionData[index++] = TEXT_COMPACTION_MODE_LATCH; - break; - case BYTE_COMPACTION_MODE_LATCH: - case BYTE_COMPACTION_MODE_LATCH_6: - case NUMERIC_COMPACTION_MODE_LATCH: - case BEGIN_MACRO_PDF417_CONTROL_BLOCK: - case BEGIN_MACRO_PDF417_OPTIONAL_FIELD: - case MACRO_PDF417_TERMINATOR: - codeIndex--; - end = true; - break; - case MODE_SHIFT_TO_BYTE_COMPACTION_MODE: - // The Mode Shift codeword 913 shall cause a temporary - // switch from Text Compaction mode to Byte Compaction mode. - // This switch shall be in effect for only the next codeword, - // after which the mode shall revert to the prevailing sub-mode - // of the Text Compaction mode. Codeword 913 is only available - // in Text Compaction mode; its use is described in 5.4.2.4. - textCompactionData[index] = MODE_SHIFT_TO_BYTE_COMPACTION_MODE; - code = codewords[codeIndex++]; - byteCompactionData[index] = code; - index++; - break; - } - } - } - decodeTextCompaction(textCompactionData, byteCompactionData, index, result); - return codeIndex; - } - - /** - * The Text Compaction mode includes all the printable ASCII characters - * (i.e. values from 32 to 126) and three ASCII control characters: HT or tab - * (ASCII value 9), LF or line feed (ASCII value 10), and CR or carriage - * return (ASCII value 13). The Text Compaction mode also includes various latch - * and shift characters which are used exclusively within the mode. The Text - * Compaction mode encodes up to 2 characters per codeword. The compaction rules - * for converting data into PDF417 codewords are defined in 5.4.2.2. The sub-mode - * switches are defined in 5.4.2.3. - * - * @param textCompactionData The text compaction data. - * @param byteCompactionData The byte compaction data if there - * was a mode shift. - * @param length The size of the text compaction and byte compaction data. - * @param result The decoded data is appended to the result. - */ - private static void decodeTextCompaction(int[] textCompactionData, - int[] byteCompactionData, - int length, - StringBuilder result) { - // Beginning from an initial state of the Alpha sub-mode - // The default compaction mode for PDF417 in effect at the start of each symbol shall always be Text - // Compaction mode Alpha sub-mode (uppercase alphabetic). A latch codeword from another mode to the Text - // Compaction mode shall always switch to the Text Compaction Alpha sub-mode. - Mode subMode = Mode.ALPHA; - Mode priorToShiftMode = Mode.ALPHA; - int i = 0; - while (i < length) { - int subModeCh = textCompactionData[i]; - char ch = 0; - switch (subMode) { - case ALPHA: - // Alpha (uppercase alphabetic) - if (subModeCh < 26) { - // Upper case Alpha Character - ch = (char) ('A' + subModeCh); - } else { - if (subModeCh == 26) { - ch = ' '; - } else if (subModeCh == LL) { - subMode = Mode.LOWER; - } else if (subModeCh == ML) { - subMode = Mode.MIXED; - } else if (subModeCh == PS) { - // Shift to punctuation - priorToShiftMode = subMode; - subMode = Mode.PUNCT_SHIFT; - } else if (subModeCh == MODE_SHIFT_TO_BYTE_COMPACTION_MODE) { - result.append((char) byteCompactionData[i]); - } else if (subModeCh == TEXT_COMPACTION_MODE_LATCH) { - subMode = Mode.ALPHA; - } - } - break; - - case LOWER: - // Lower (lowercase alphabetic) - if (subModeCh < 26) { - ch = (char) ('a' + subModeCh); - } else { - if (subModeCh == 26) { - ch = ' '; - } else if (subModeCh == AS) { - // Shift to alpha - priorToShiftMode = subMode; - subMode = Mode.ALPHA_SHIFT; - } else if (subModeCh == ML) { - subMode = Mode.MIXED; - } else if (subModeCh == PS) { - // Shift to punctuation - priorToShiftMode = subMode; - subMode = Mode.PUNCT_SHIFT; - } else if (subModeCh == MODE_SHIFT_TO_BYTE_COMPACTION_MODE) { - // TODO Does this need to use the current character encoding? See other occurrences below - result.append((char) byteCompactionData[i]); - } else if (subModeCh == TEXT_COMPACTION_MODE_LATCH) { - subMode = Mode.ALPHA; - } - } - break; - - case MIXED: - // Mixed (numeric and some punctuation) - if (subModeCh < PL) { - ch = MIXED_CHARS[subModeCh]; - } else { - if (subModeCh == PL) { - subMode = Mode.PUNCT; - } else if (subModeCh == 26) { - ch = ' '; - } else if (subModeCh == LL) { - subMode = Mode.LOWER; - } else if (subModeCh == AL) { - subMode = Mode.ALPHA; - } else if (subModeCh == PS) { - // Shift to punctuation - priorToShiftMode = subMode; - subMode = Mode.PUNCT_SHIFT; - } else if (subModeCh == MODE_SHIFT_TO_BYTE_COMPACTION_MODE) { - result.append((char) byteCompactionData[i]); - } else if (subModeCh == TEXT_COMPACTION_MODE_LATCH) { - subMode = Mode.ALPHA; - } - } - break; - - case PUNCT: - // Punctuation - if (subModeCh < PAL) { - ch = PUNCT_CHARS[subModeCh]; - } else { - if (subModeCh == PAL) { - subMode = Mode.ALPHA; - } else if (subModeCh == MODE_SHIFT_TO_BYTE_COMPACTION_MODE) { - result.append((char) byteCompactionData[i]); - } else if (subModeCh == TEXT_COMPACTION_MODE_LATCH) { - subMode = Mode.ALPHA; - } - } - break; - - case ALPHA_SHIFT: - // Restore sub-mode - subMode = priorToShiftMode; - if (subModeCh < 26) { - ch = (char) ('A' + subModeCh); - } else { - if (subModeCh == 26) { - ch = ' '; - } else if (subModeCh == TEXT_COMPACTION_MODE_LATCH) { - subMode = Mode.ALPHA; - } - } - break; - - case PUNCT_SHIFT: - // Restore sub-mode - subMode = priorToShiftMode; - if (subModeCh < PAL) { - ch = PUNCT_CHARS[subModeCh]; - } else { - if (subModeCh == PAL) { - subMode = Mode.ALPHA; - } else if (subModeCh == MODE_SHIFT_TO_BYTE_COMPACTION_MODE) { - // PS before Shift-to-Byte is used as a padding character, - // see 5.4.2.4 of the specification - result.append((char) byteCompactionData[i]); - } else if (subModeCh == TEXT_COMPACTION_MODE_LATCH) { - subMode = Mode.ALPHA; - } - } - break; - } - if (ch != 0) { - // Append decoded character to result - result.append(ch); - } - i++; - } - } - - /** - * Byte Compaction mode (see 5.4.3) permits all 256 possible 8-bit byte values to be encoded. - * This includes all ASCII characters value 0 to 127 inclusive and provides for international - * character set support. - * - * @param mode The byte compaction mode i.e. 901 or 924 - * @param codewords The array of codewords (data + error) - * @param encoding Currently active character encoding - * @param codeIndex The current index into the codeword array. - * @param result The decoded data is appended to the result. - * @return The next index into the codeword array. - */ - private static int byteCompaction(int mode, - int[] codewords, - Charset encoding, - int codeIndex, - StringBuilder result) { - ByteArrayOutputStream decodedBytes = new ByteArrayOutputStream(); - if (mode == BYTE_COMPACTION_MODE_LATCH) { - // Total number of Byte Compaction characters to be encoded - // is not a multiple of 6 - int count = 0; - long value = 0; - int[] byteCompactedCodewords = new int[6]; - boolean end = false; - int nextCode = codewords[codeIndex++]; - while ((codeIndex < codewords[0]) && !end) { - byteCompactedCodewords[count++] = nextCode; - // Base 900 - value = 900 * value + nextCode; - nextCode = codewords[codeIndex++]; - // perhaps it should be ok to check only nextCode >= TEXT_COMPACTION_MODE_LATCH - if (nextCode == TEXT_COMPACTION_MODE_LATCH || - nextCode == BYTE_COMPACTION_MODE_LATCH || - nextCode == NUMERIC_COMPACTION_MODE_LATCH || - nextCode == BYTE_COMPACTION_MODE_LATCH_6 || - nextCode == BEGIN_MACRO_PDF417_CONTROL_BLOCK || - nextCode == BEGIN_MACRO_PDF417_OPTIONAL_FIELD || - nextCode == MACRO_PDF417_TERMINATOR) { - codeIndex--; - end = true; - } else { - if ((count % 5 == 0) && (count > 0)) { - // Decode every 5 codewords - // Convert to Base 256 - for (int j = 0; j < 6; ++j) { - decodedBytes.write((byte) (value >> (8 * (5 - j)))); - } - value = 0; - count = 0; - } - } - } - - // if the end of all codewords is reached the last codeword needs to be added - if (codeIndex == codewords[0] && nextCode < TEXT_COMPACTION_MODE_LATCH) { - byteCompactedCodewords[count++] = nextCode; - } - - // If Byte Compaction mode is invoked with codeword 901, - // the last group of codewords is interpreted directly - // as one byte per codeword, without compaction. - for (int i = 0; i < count; i++) { - decodedBytes.write((byte) byteCompactedCodewords[i]); - } - - } else if (mode == BYTE_COMPACTION_MODE_LATCH_6) { - // Total number of Byte Compaction characters to be encoded - // is an integer multiple of 6 - int count = 0; - long value = 0; - boolean end = false; - while (codeIndex < codewords[0] && !end) { - int code = codewords[codeIndex++]; - if (code < TEXT_COMPACTION_MODE_LATCH) { - count++; - // Base 900 - value = 900 * value + code; - } else { - if (code == TEXT_COMPACTION_MODE_LATCH || - code == BYTE_COMPACTION_MODE_LATCH || - code == NUMERIC_COMPACTION_MODE_LATCH || - code == BYTE_COMPACTION_MODE_LATCH_6 || - code == BEGIN_MACRO_PDF417_CONTROL_BLOCK || - code == BEGIN_MACRO_PDF417_OPTIONAL_FIELD || - code == MACRO_PDF417_TERMINATOR) { - codeIndex--; - end = true; - } - } - if ((count % 5 == 0) && (count > 0)) { - // Decode every 5 codewords - // Convert to Base 256 - for (int j = 0; j < 6; ++j) { - decodedBytes.write((byte) (value >> (8 * (5 - j)))); - } - value = 0; - count = 0; - } - } - } - result.append(new String(decodedBytes.toByteArray(), encoding)); - return codeIndex; - } - - /** - * Numeric Compaction mode (see 5.4.4) permits efficient encoding of numeric data strings. - * - * @param codewords The array of codewords (data + error) - * @param codeIndex The current index into the codeword array. - * @param result The decoded data is appended to the result. - * @return The next index into the codeword array. - */ - private static int numericCompaction(int[] codewords, int codeIndex, StringBuilder result) throws FormatException { - int count = 0; - boolean end = false; - - int[] numericCodewords = new int[MAX_NUMERIC_CODEWORDS]; - - while (codeIndex < codewords[0] && !end) { - int code = codewords[codeIndex++]; - if (codeIndex == codewords[0]) { - end = true; - } - if (code < TEXT_COMPACTION_MODE_LATCH) { - numericCodewords[count] = code; - count++; - } else { - if (code == TEXT_COMPACTION_MODE_LATCH || - code == BYTE_COMPACTION_MODE_LATCH || - code == BYTE_COMPACTION_MODE_LATCH_6 || - code == BEGIN_MACRO_PDF417_CONTROL_BLOCK || - code == BEGIN_MACRO_PDF417_OPTIONAL_FIELD || - code == MACRO_PDF417_TERMINATOR) { - codeIndex--; - end = true; - } - } - if (count % MAX_NUMERIC_CODEWORDS == 0 || - code == NUMERIC_COMPACTION_MODE_LATCH || - end) { - // Re-invoking Numeric Compaction mode (by using codeword 902 - // while in Numeric Compaction mode) serves to terminate the - // current Numeric Compaction mode grouping as described in 5.4.4.2, - // and then to start a new one grouping. - if (count > 0) { - String s = decodeBase900toBase10(numericCodewords, count); - result.append(s); - count = 0; - } - } - } - return codeIndex; - } - - /** - * Convert a list of Numeric Compacted codewords from Base 900 to Base 10. - * - * @param codewords The array of codewords - * @param count The number of codewords - * @return The decoded string representing the Numeric data. - */ - /* - EXAMPLE - Encode the fifteen digit numeric string 000213298174000 - Prefix the numeric string with a 1 and set the initial value of - t = 1 000 213 298 174 000 - Calculate codeword 0 - d0 = 1 000 213 298 174 000 mod 900 = 200 - - t = 1 000 213 298 174 000 div 900 = 1 111 348 109 082 - Calculate codeword 1 - d1 = 1 111 348 109 082 mod 900 = 282 - - t = 1 111 348 109 082 div 900 = 1 234 831 232 - Calculate codeword 2 - d2 = 1 234 831 232 mod 900 = 632 - - t = 1 234 831 232 div 900 = 1 372 034 - Calculate codeword 3 - d3 = 1 372 034 mod 900 = 434 - - t = 1 372 034 div 900 = 1 524 - Calculate codeword 4 - d4 = 1 524 mod 900 = 624 - - t = 1 524 div 900 = 1 - Calculate codeword 5 - d5 = 1 mod 900 = 1 - t = 1 div 900 = 0 - Codeword sequence is: 1, 624, 434, 632, 282, 200 - - Decode the above codewords involves - 1 x 900 power of 5 + 624 x 900 power of 4 + 434 x 900 power of 3 + - 632 x 900 power of 2 + 282 x 900 power of 1 + 200 x 900 power of 0 = 1000213298174000 - - Remove leading 1 => Result is 000213298174000 - */ - private static String decodeBase900toBase10(int[] codewords, int count) throws FormatException { - BigInteger result = BigInteger.ZERO; - for (int i = 0; i < count; i++) { - result = result.add(EXP900[count - i - 1].multiply(BigInteger.valueOf(codewords[i]))); - } - String resultString = result.toString(); - if (resultString.charAt(0) != '1') { - throw FormatException.getFormatInstance(); - } - return resultString.substring(1); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/DetectionResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/DetectionResult.java deleted file mode 100755 index 3b206f44..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/DetectionResult.java +++ /dev/null @@ -1,296 +0,0 @@ -/* - * Copyright 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417.decoder; - -import java.util.Formatter; - -import com.google.zxing.pdf417.PDF417Common; - -/** - * @author Guenther Grau - */ -final class DetectionResult { - - private static final int ADJUST_ROW_NUMBER_SKIP = 2; - - private final BarcodeMetadata barcodeMetadata; - private final DetectionResultColumn[] detectionResultColumns; - private BoundingBox boundingBox; - private final int barcodeColumnCount; - - DetectionResult(BarcodeMetadata barcodeMetadata, BoundingBox boundingBox) { - this.barcodeMetadata = barcodeMetadata; - this.barcodeColumnCount = barcodeMetadata.getColumnCount(); - this.boundingBox = boundingBox; - detectionResultColumns = new DetectionResultColumn[barcodeColumnCount + 2]; - } - - DetectionResultColumn[] getDetectionResultColumns() { - adjustIndicatorColumnRowNumbers(detectionResultColumns[0]); - adjustIndicatorColumnRowNumbers(detectionResultColumns[barcodeColumnCount + 1]); - int unadjustedCodewordCount = PDF417Common.MAX_CODEWORDS_IN_BARCODE; - int previousUnadjustedCount; - do { - previousUnadjustedCount = unadjustedCodewordCount; - unadjustedCodewordCount = adjustRowNumbers(); - } while (unadjustedCodewordCount > 0 && unadjustedCodewordCount < previousUnadjustedCount); - return detectionResultColumns; - } - - private void adjustIndicatorColumnRowNumbers(DetectionResultColumn detectionResultColumn) { - if (detectionResultColumn != null) { - ((DetectionResultRowIndicatorColumn) detectionResultColumn) - .adjustCompleteIndicatorColumnRowNumbers(barcodeMetadata); - } - } - - // TODO ensure that no detected codewords with unknown row number are left - // we should be able to estimate the row height and use it as a hint for the row number - // we should also fill the rows top to bottom and bottom to top - /** - * @return number of codewords which don't have a valid row number. Note that the count is not accurate as codewords - * will be counted several times. It just serves as an indicator to see when we can stop adjusting row numbers - */ - private int adjustRowNumbers() { - int unadjustedCount = adjustRowNumbersByRow(); - if (unadjustedCount == 0) { - return 0; - } - for (int barcodeColumn = 1; barcodeColumn < barcodeColumnCount + 1; barcodeColumn++) { - Codeword[] codewords = detectionResultColumns[barcodeColumn].getCodewords(); - for (int codewordsRow = 0; codewordsRow < codewords.length; codewordsRow++) { - if (codewords[codewordsRow] == null) { - continue; - } - if (!codewords[codewordsRow].hasValidRowNumber()) { - adjustRowNumbers(barcodeColumn, codewordsRow, codewords); - } - } - } - return unadjustedCount; - } - - private int adjustRowNumbersByRow() { - adjustRowNumbersFromBothRI(); - // TODO we should only do full row adjustments if row numbers of left and right row indicator column match. - // Maybe it's even better to calculated the height (in codeword rows) and divide it by the number of barcode - // rows. This, together with the LRI and RRI row numbers should allow us to get a good estimate where a row - // number starts and ends. - int unadjustedCount = adjustRowNumbersFromLRI(); - return unadjustedCount + adjustRowNumbersFromRRI(); - } - - private void adjustRowNumbersFromBothRI() { - if (detectionResultColumns[0] == null || detectionResultColumns[barcodeColumnCount + 1] == null) { - return; - } - Codeword[] LRIcodewords = detectionResultColumns[0].getCodewords(); - Codeword[] RRIcodewords = detectionResultColumns[barcodeColumnCount + 1].getCodewords(); - for (int codewordsRow = 0; codewordsRow < LRIcodewords.length; codewordsRow++) { - if (LRIcodewords[codewordsRow] != null && - RRIcodewords[codewordsRow] != null && - LRIcodewords[codewordsRow].getRowNumber() == RRIcodewords[codewordsRow].getRowNumber()) { - for (int barcodeColumn = 1; barcodeColumn <= barcodeColumnCount; barcodeColumn++) { - Codeword codeword = detectionResultColumns[barcodeColumn].getCodewords()[codewordsRow]; - if (codeword == null) { - continue; - } - codeword.setRowNumber(LRIcodewords[codewordsRow].getRowNumber()); - if (!codeword.hasValidRowNumber()) { - detectionResultColumns[barcodeColumn].getCodewords()[codewordsRow] = null; - } - } - } - } - } - - private int adjustRowNumbersFromRRI() { - if (detectionResultColumns[barcodeColumnCount + 1] == null) { - return 0; - } - int unadjustedCount = 0; - Codeword[] codewords = detectionResultColumns[barcodeColumnCount + 1].getCodewords(); - for (int codewordsRow = 0; codewordsRow < codewords.length; codewordsRow++) { - if (codewords[codewordsRow] == null) { - continue; - } - int rowIndicatorRowNumber = codewords[codewordsRow].getRowNumber(); - int invalidRowCounts = 0; - for (int barcodeColumn = barcodeColumnCount + 1; barcodeColumn > 0 && invalidRowCounts < ADJUST_ROW_NUMBER_SKIP; barcodeColumn--) { - Codeword codeword = detectionResultColumns[barcodeColumn].getCodewords()[codewordsRow]; - if (codeword != null) { - invalidRowCounts = adjustRowNumberIfValid(rowIndicatorRowNumber, invalidRowCounts, codeword); - if (!codeword.hasValidRowNumber()) { - unadjustedCount++; - } - } - } - } - return unadjustedCount; - } - - private int adjustRowNumbersFromLRI() { - if (detectionResultColumns[0] == null) { - return 0; - } - int unadjustedCount = 0; - Codeword[] codewords = detectionResultColumns[0].getCodewords(); - for (int codewordsRow = 0; codewordsRow < codewords.length; codewordsRow++) { - if (codewords[codewordsRow] == null) { - continue; - } - int rowIndicatorRowNumber = codewords[codewordsRow].getRowNumber(); - int invalidRowCounts = 0; - for (int barcodeColumn = 1; barcodeColumn < barcodeColumnCount + 1 && invalidRowCounts < ADJUST_ROW_NUMBER_SKIP; barcodeColumn++) { - Codeword codeword = detectionResultColumns[barcodeColumn].getCodewords()[codewordsRow]; - if (codeword != null) { - invalidRowCounts = adjustRowNumberIfValid(rowIndicatorRowNumber, invalidRowCounts, codeword); - if (!codeword.hasValidRowNumber()) { - unadjustedCount++; - } - } - } - } - return unadjustedCount; - } - - private static int adjustRowNumberIfValid(int rowIndicatorRowNumber, int invalidRowCounts, Codeword codeword) { - if (codeword == null) { - return invalidRowCounts; - } - if (!codeword.hasValidRowNumber()) { - if (codeword.isValidRowNumber(rowIndicatorRowNumber)) { - codeword.setRowNumber(rowIndicatorRowNumber); - invalidRowCounts = 0; - } else { - ++invalidRowCounts; - } - } - return invalidRowCounts; - } - - private void adjustRowNumbers(int barcodeColumn, int codewordsRow, Codeword[] codewords) { - Codeword codeword = codewords[codewordsRow]; - Codeword[] previousColumnCodewords = detectionResultColumns[barcodeColumn - 1].getCodewords(); - Codeword[] nextColumnCodewords = previousColumnCodewords; - if (detectionResultColumns[barcodeColumn + 1] != null) { - nextColumnCodewords = detectionResultColumns[barcodeColumn + 1].getCodewords(); - } - - Codeword[] otherCodewords = new Codeword[14]; - - otherCodewords[2] = previousColumnCodewords[codewordsRow]; - otherCodewords[3] = nextColumnCodewords[codewordsRow]; - - if (codewordsRow > 0) { - otherCodewords[0] = codewords[codewordsRow - 1]; - otherCodewords[4] = previousColumnCodewords[codewordsRow - 1]; - otherCodewords[5] = nextColumnCodewords[codewordsRow - 1]; - } - if (codewordsRow > 1) { - otherCodewords[8] = codewords[codewordsRow - 2]; - otherCodewords[10] = previousColumnCodewords[codewordsRow - 2]; - otherCodewords[11] = nextColumnCodewords[codewordsRow - 2]; - } - if (codewordsRow < codewords.length - 1) { - otherCodewords[1] = codewords[codewordsRow + 1]; - otherCodewords[6] = previousColumnCodewords[codewordsRow + 1]; - otherCodewords[7] = nextColumnCodewords[codewordsRow + 1]; - } - if (codewordsRow < codewords.length - 2) { - otherCodewords[9] = codewords[codewordsRow + 2]; - otherCodewords[12] = previousColumnCodewords[codewordsRow + 2]; - otherCodewords[13] = nextColumnCodewords[codewordsRow + 2]; - } - for (Codeword otherCodeword : otherCodewords) { - if (adjustRowNumber(codeword, otherCodeword)) { - return; - } - } - } - - /** - * @return true, if row number was adjusted, false otherwise - */ - private static boolean adjustRowNumber(Codeword codeword, Codeword otherCodeword) { - if (otherCodeword == null) { - return false; - } - if (otherCodeword.hasValidRowNumber() && otherCodeword.getBucket() == codeword.getBucket()) { - codeword.setRowNumber(otherCodeword.getRowNumber()); - return true; - } - return false; - } - - int getBarcodeColumnCount() { - return barcodeColumnCount; - } - - int getBarcodeRowCount() { - return barcodeMetadata.getRowCount(); - } - - int getBarcodeECLevel() { - return barcodeMetadata.getErrorCorrectionLevel(); - } - - public void setBoundingBox(BoundingBox boundingBox) { - this.boundingBox = boundingBox; - } - - BoundingBox getBoundingBox() { - return boundingBox; - } - - void setDetectionResultColumn(int barcodeColumn, DetectionResultColumn detectionResultColumn) { - detectionResultColumns[barcodeColumn] = detectionResultColumn; - } - - DetectionResultColumn getDetectionResultColumn(int barcodeColumn) { - return detectionResultColumns[barcodeColumn]; - } - - @Override - public String toString() { - DetectionResultColumn rowIndicatorColumn = detectionResultColumns[0]; - if (rowIndicatorColumn == null) { - rowIndicatorColumn = detectionResultColumns[barcodeColumnCount + 1]; - } - Formatter formatter = new Formatter(); - for (int codewordsRow = 0; codewordsRow < rowIndicatorColumn.getCodewords().length; codewordsRow++) { - formatter.format("CW %3d:", codewordsRow); - for (int barcodeColumn = 0; barcodeColumn < barcodeColumnCount + 2; barcodeColumn++) { - if (detectionResultColumns[barcodeColumn] == null) { - formatter.format(" | "); - continue; - } - Codeword codeword = detectionResultColumns[barcodeColumn].getCodewords()[codewordsRow]; - if (codeword == null) { - formatter.format(" | "); - continue; - } - formatter.format(" %3d|%3d", codeword.getRowNumber(), codeword.getValue()); - } - formatter.format("%n"); - } - String result = formatter.toString(); - formatter.close(); - return result; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/DetectionResultColumn.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/DetectionResultColumn.java deleted file mode 100755 index bda0b398..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/DetectionResultColumn.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417.decoder; - -import java.util.Formatter; - -/** - * @author Guenther Grau - */ -class DetectionResultColumn { - - private static final int MAX_NEARBY_DISTANCE = 5; - - private final BoundingBox boundingBox; - private final Codeword[] codewords; - - DetectionResultColumn(BoundingBox boundingBox) { - this.boundingBox = new BoundingBox(boundingBox); - codewords = new Codeword[boundingBox.getMaxY() - boundingBox.getMinY() + 1]; - } - - final Codeword getCodewordNearby(int imageRow) { - Codeword codeword = getCodeword(imageRow); - if (codeword != null) { - return codeword; - } - for (int i = 1; i < MAX_NEARBY_DISTANCE; i++) { - int nearImageRow = imageRowToCodewordIndex(imageRow) - i; - if (nearImageRow >= 0) { - codeword = codewords[nearImageRow]; - if (codeword != null) { - return codeword; - } - } - nearImageRow = imageRowToCodewordIndex(imageRow) + i; - if (nearImageRow < codewords.length) { - codeword = codewords[nearImageRow]; - if (codeword != null) { - return codeword; - } - } - } - return null; - } - - final int imageRowToCodewordIndex(int imageRow) { - return imageRow - boundingBox.getMinY(); - } - - final void setCodeword(int imageRow, Codeword codeword) { - codewords[imageRowToCodewordIndex(imageRow)] = codeword; - } - - final Codeword getCodeword(int imageRow) { - return codewords[imageRowToCodewordIndex(imageRow)]; - } - - final BoundingBox getBoundingBox() { - return boundingBox; - } - - final Codeword[] getCodewords() { - return codewords; - } - - @Override - public String toString() { - Formatter formatter = new Formatter(); - int row = 0; - for (Codeword codeword : codewords) { - if (codeword == null) { - formatter.format("%3d: | %n", row++); - continue; - } - formatter.format("%3d: %3d|%3d%n", row++, codeword.getRowNumber(), codeword.getValue()); - } - String result = formatter.toString(); - formatter.close(); - return result; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/DetectionResultRowIndicatorColumn.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/DetectionResultRowIndicatorColumn.java deleted file mode 100755 index 85f40bf2..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/DetectionResultRowIndicatorColumn.java +++ /dev/null @@ -1,268 +0,0 @@ -/* - * Copyright 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417.decoder; - -import com.google.zxing.FormatException; -import com.google.zxing.ResultPoint; -import com.google.zxing.pdf417.PDF417Common; - -/** - * @author Guenther Grau - */ -final class DetectionResultRowIndicatorColumn extends DetectionResultColumn { - - private final boolean isLeft; - - DetectionResultRowIndicatorColumn(BoundingBox boundingBox, boolean isLeft) { - super(boundingBox); - this.isLeft = isLeft; - } - - void setRowNumbers() { - for (Codeword codeword : getCodewords()) { - if (codeword != null) { - codeword.setRowNumberAsRowIndicatorColumn(); - } - } - } - - // TODO implement properly - // TODO maybe we should add missing codewords to store the correct row number to make - // finding row numbers for other columns easier - // use row height count to make detection of invalid row numbers more reliable - int adjustCompleteIndicatorColumnRowNumbers(BarcodeMetadata barcodeMetadata) { - Codeword[] codewords = getCodewords(); - setRowNumbers(); - removeIncorrectCodewords(codewords, barcodeMetadata); - BoundingBox boundingBox = getBoundingBox(); - ResultPoint top = isLeft ? boundingBox.getTopLeft() : boundingBox.getTopRight(); - ResultPoint bottom = isLeft ? boundingBox.getBottomLeft() : boundingBox.getBottomRight(); - int firstRow = imageRowToCodewordIndex((int) top.getY()); - int lastRow = imageRowToCodewordIndex((int) bottom.getY()); - // We need to be careful using the average row height. Barcode could be skewed so that we have smaller and - // taller rows - float averageRowHeight = (lastRow - firstRow) / (float) barcodeMetadata.getRowCount(); - int barcodeRow = -1; - int maxRowHeight = 1; - int currentRowHeight = 0; - for (int codewordsRow = firstRow; codewordsRow < lastRow; codewordsRow++) { - if (codewords[codewordsRow] == null) { - continue; - } - Codeword codeword = codewords[codewordsRow]; - - // float expectedRowNumber = (codewordsRow - firstRow) / averageRowHeight; - // if (Math.abs(codeword.getRowNumber() - expectedRowNumber) > 2) { - // SimpleLog.log(LEVEL.WARNING, - // "Removing codeword, rowNumberSkew too high, codeword[" + codewordsRow + "]: Expected Row: " + - // expectedRowNumber + ", RealRow: " + codeword.getRowNumber() + ", value: " + codeword.getValue()); - // codewords[codewordsRow] = null; - // } - - int rowDifference = codeword.getRowNumber() - barcodeRow; - - // TODO improve handling with case where first row indicator doesn't start with 0 - - if (rowDifference == 0) { - currentRowHeight++; - } else if (rowDifference == 1) { - maxRowHeight = Math.max(maxRowHeight, currentRowHeight); - currentRowHeight = 1; - barcodeRow = codeword.getRowNumber(); - } else if (rowDifference < 0 || - codeword.getRowNumber() >= barcodeMetadata.getRowCount() || - rowDifference > codewordsRow) { - codewords[codewordsRow] = null; - } else { - int checkedRows; - if (maxRowHeight > 2) { - checkedRows = (maxRowHeight - 2) * rowDifference; - } else { - checkedRows = rowDifference; - } - boolean closePreviousCodewordFound = checkedRows >= codewordsRow; - for (int i = 1; i <= checkedRows && !closePreviousCodewordFound; i++) { - // there must be (height * rowDifference) number of codewords missing. For now we assume height = 1. - // This should hopefully get rid of most problems already. - closePreviousCodewordFound = codewords[codewordsRow - i] != null; - } - if (closePreviousCodewordFound) { - codewords[codewordsRow] = null; - } else { - barcodeRow = codeword.getRowNumber(); - currentRowHeight = 1; - } - } - } - return (int) (averageRowHeight + 0.5); - } - - int[] getRowHeights() throws FormatException { - BarcodeMetadata barcodeMetadata = getBarcodeMetadata(); - if (barcodeMetadata == null) { - return null; - } - adjustIncompleteIndicatorColumnRowNumbers(barcodeMetadata); - int[] result = new int[barcodeMetadata.getRowCount()]; - for (Codeword codeword : getCodewords()) { - if (codeword != null) { - int rowNumber = codeword.getRowNumber(); - if (rowNumber >= result.length) { - // We have more rows than the barcode metadata allows for, ignore them. - continue; - } - result[rowNumber]++; - } // else throw exception? - } - return result; - } - - // TODO maybe we should add missing codewords to store the correct row number to make - // finding row numbers for other columns easier - // use row height count to make detection of invalid row numbers more reliable - int adjustIncompleteIndicatorColumnRowNumbers(BarcodeMetadata barcodeMetadata) { - BoundingBox boundingBox = getBoundingBox(); - ResultPoint top = isLeft ? boundingBox.getTopLeft() : boundingBox.getTopRight(); - ResultPoint bottom = isLeft ? boundingBox.getBottomLeft() : boundingBox.getBottomRight(); - int firstRow = imageRowToCodewordIndex((int) top.getY()); - int lastRow = imageRowToCodewordIndex((int) bottom.getY()); - float averageRowHeight = (lastRow - firstRow) / (float) barcodeMetadata.getRowCount(); - Codeword[] codewords = getCodewords(); - int barcodeRow = -1; - int maxRowHeight = 1; - int currentRowHeight = 0; - for (int codewordsRow = firstRow; codewordsRow < lastRow; codewordsRow++) { - if (codewords[codewordsRow] == null) { - continue; - } - Codeword codeword = codewords[codewordsRow]; - - codeword.setRowNumberAsRowIndicatorColumn(); - - int rowDifference = codeword.getRowNumber() - barcodeRow; - - // TODO improve handling with case where first row indicator doesn't start with 0 - - if (rowDifference == 0) { - currentRowHeight++; - } else if (rowDifference == 1) { - maxRowHeight = Math.max(maxRowHeight, currentRowHeight); - currentRowHeight = 1; - barcodeRow = codeword.getRowNumber(); - } else if (codeword.getRowNumber() >= barcodeMetadata.getRowCount()) { - codewords[codewordsRow] = null; - } else { - barcodeRow = codeword.getRowNumber(); - currentRowHeight = 1; - } - } - return (int) (averageRowHeight + 0.5); - } - - BarcodeMetadata getBarcodeMetadata() { - Codeword[] codewords = getCodewords(); - BarcodeValue barcodeColumnCount = new BarcodeValue(); - BarcodeValue barcodeRowCountUpperPart = new BarcodeValue(); - BarcodeValue barcodeRowCountLowerPart = new BarcodeValue(); - BarcodeValue barcodeECLevel = new BarcodeValue(); - for (Codeword codeword : codewords) { - if (codeword == null) { - continue; - } - codeword.setRowNumberAsRowIndicatorColumn(); - int rowIndicatorValue = codeword.getValue() % 30; - int codewordRowNumber = codeword.getRowNumber(); - if (!isLeft) { - codewordRowNumber += 2; - } - switch (codewordRowNumber % 3) { - case 0: - barcodeRowCountUpperPart.setValue(rowIndicatorValue * 3 + 1); - break; - case 1: - barcodeECLevel.setValue(rowIndicatorValue / 3); - barcodeRowCountLowerPart.setValue(rowIndicatorValue % 3); - break; - case 2: - barcodeColumnCount.setValue(rowIndicatorValue + 1); - break; - } - } - // Maybe we should check if we have ambiguous values? - if ((barcodeColumnCount.getValue().length == 0) || - (barcodeRowCountUpperPart.getValue().length == 0) || - (barcodeRowCountLowerPart.getValue().length == 0) || - (barcodeECLevel.getValue().length == 0) || - barcodeColumnCount.getValue()[0] < 1 || - barcodeRowCountUpperPart.getValue()[0] + barcodeRowCountLowerPart.getValue()[0] < PDF417Common.MIN_ROWS_IN_BARCODE || - barcodeRowCountUpperPart.getValue()[0] + barcodeRowCountLowerPart.getValue()[0] > PDF417Common.MAX_ROWS_IN_BARCODE) { - return null; - } - BarcodeMetadata barcodeMetadata = new BarcodeMetadata(barcodeColumnCount.getValue()[0], - barcodeRowCountUpperPart.getValue()[0], barcodeRowCountLowerPart.getValue()[0], barcodeECLevel.getValue()[0]); - removeIncorrectCodewords(codewords, barcodeMetadata); - return barcodeMetadata; - } - - private void removeIncorrectCodewords(Codeword[] codewords, BarcodeMetadata barcodeMetadata) { - // Remove codewords which do not match the metadata - // TODO Maybe we should keep the incorrect codewords for the start and end positions? - for (int codewordRow = 0; codewordRow < codewords.length; codewordRow++) { - Codeword codeword = codewords[codewordRow]; - if (codewords[codewordRow] == null) { - continue; - } - int rowIndicatorValue = codeword.getValue() % 30; - int codewordRowNumber = codeword.getRowNumber(); - if (codewordRowNumber > barcodeMetadata.getRowCount()) { - codewords[codewordRow] = null; - continue; - } - if (!isLeft) { - codewordRowNumber += 2; - } - switch (codewordRowNumber % 3) { - case 0: - if (rowIndicatorValue * 3 + 1 != barcodeMetadata.getRowCountUpperPart()) { - codewords[codewordRow] = null; - } - break; - case 1: - if (rowIndicatorValue / 3 != barcodeMetadata.getErrorCorrectionLevel() || - rowIndicatorValue % 3 != barcodeMetadata.getRowCountLowerPart()) { - codewords[codewordRow] = null; - } - break; - case 2: - if (rowIndicatorValue + 1 != barcodeMetadata.getColumnCount()) { - codewords[codewordRow] = null; - } - break; - } - } - } - - boolean isLeft() { - return isLeft; - } - - @Override - public String toString() { - return "IsLeft: " + isLeft + '\n' + super.toString(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/PDF417CodewordDecoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/PDF417CodewordDecoder.java deleted file mode 100755 index 017f3f39..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/PDF417CodewordDecoder.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417.decoder; - -import com.google.zxing.pdf417.PDF417Common; - -/** - * @author Guenther Grau - * @author creatale GmbH (christoph.schulz@creatale.de) - */ -final class PDF417CodewordDecoder { - - private static final float[][] RATIOS_TABLE = - new float[PDF417Common.SYMBOL_TABLE.length][PDF417Common.BARS_IN_MODULE]; - - static { - // Pre-computes the symbol ratio table. - for (int i = 0; i < PDF417Common.SYMBOL_TABLE.length; i++) { - int currentSymbol = PDF417Common.SYMBOL_TABLE[i]; - int currentBit = currentSymbol & 0x1; - for (int j = 0; j < PDF417Common.BARS_IN_MODULE; j++) { - float size = 0.0f; - while ((currentSymbol & 0x1) == currentBit) { - size += 1.0f; - currentSymbol >>= 1; - } - currentBit = currentSymbol & 0x1; - RATIOS_TABLE[i][PDF417Common.BARS_IN_MODULE - j - 1] = size / PDF417Common.MODULES_IN_CODEWORD; - } - } - } - - private PDF417CodewordDecoder() { - } - - static int getDecodedValue(int[] moduleBitCount) { - int decodedValue = getDecodedCodewordValue(sampleBitCounts(moduleBitCount)); - if (decodedValue != -1) { - return decodedValue; - } - return getClosestDecodedValue(moduleBitCount); - } - - private static int[] sampleBitCounts(int[] moduleBitCount) { - float bitCountSum = PDF417Common.getBitCountSum(moduleBitCount); - int[] result = new int[PDF417Common.BARS_IN_MODULE]; - int bitCountIndex = 0; - int sumPreviousBits = 0; - for (int i = 0; i < PDF417Common.MODULES_IN_CODEWORD; i++) { - float sampleIndex = - bitCountSum / (2 * PDF417Common.MODULES_IN_CODEWORD) + - (i * bitCountSum) / PDF417Common.MODULES_IN_CODEWORD; - if (sumPreviousBits + moduleBitCount[bitCountIndex] <= sampleIndex) { - sumPreviousBits += moduleBitCount[bitCountIndex]; - bitCountIndex++; - } - result[bitCountIndex]++; - } - return result; - } - - private static int getDecodedCodewordValue(int[] moduleBitCount) { - int decodedValue = getBitValue(moduleBitCount); - return PDF417Common.getCodeword(decodedValue) == -1 ? -1 : decodedValue; - } - - private static int getBitValue(int[] moduleBitCount) { - long result = 0; - for (int i = 0; i < moduleBitCount.length; i++) { - for (int bit = 0; bit < moduleBitCount[i]; bit++) { - result = (result << 1) | (i % 2 == 0 ? 1 : 0); - } - } - return (int) result; - } - - private static int getClosestDecodedValue(int[] moduleBitCount) { - int bitCountSum = PDF417Common.getBitCountSum(moduleBitCount); - float[] bitCountRatios = new float[PDF417Common.BARS_IN_MODULE]; - for (int i = 0; i < bitCountRatios.length; i++) { - bitCountRatios[i] = moduleBitCount[i] / (float) bitCountSum; - } - float bestMatchError = Float.MAX_VALUE; - int bestMatch = -1; - for (int j = 0; j < RATIOS_TABLE.length; j++) { - float error = 0.0f; - float[] ratioTableRow = RATIOS_TABLE[j]; - for (int k = 0; k < PDF417Common.BARS_IN_MODULE; k++) { - float diff = ratioTableRow[k] - bitCountRatios[k]; - error += diff * diff; - if (error >= bestMatchError) { - break; - } - } - if (error < bestMatchError) { - bestMatchError = error; - bestMatch = PDF417Common.SYMBOL_TABLE[j]; - } - } - return bestMatch; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/PDF417ScanningDecoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/PDF417ScanningDecoder.java deleted file mode 100755 index 6544b46f..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/PDF417ScanningDecoder.java +++ /dev/null @@ -1,629 +0,0 @@ -/* - * Copyright 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417.decoder; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Formatter; -import java.util.List; - -import com.google.zxing.ChecksumException; -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.ResultPoint; -import com.google.zxing.common.BitMatrix; -import com.google.zxing.common.DecoderResult; -import com.google.zxing.pdf417.PDF417Common; -import com.google.zxing.pdf417.decoder.ec.ErrorCorrection; - -/** - * @author Guenther Grau - */ -public final class PDF417ScanningDecoder { - - private static final int CODEWORD_SKEW_SIZE = 2; - - private static final int MAX_ERRORS = 3; - private static final int MAX_EC_CODEWORDS = 512; - private static final ErrorCorrection errorCorrection = new ErrorCorrection(); - - private PDF417ScanningDecoder() { - } - - // TODO don't pass in minCodewordWidth and maxCodewordWidth, pass in barcode columns for start and stop pattern - // columns. That way width can be deducted from the pattern column. - // This approach also allows to detect more details about the barcode, e.g. if a bar type (white or black) is wider - // than it should be. This can happen if the scanner used a bad blackpoint. - public static DecoderResult decode(BitMatrix image, - ResultPoint imageTopLeft, - ResultPoint imageBottomLeft, - ResultPoint imageTopRight, - ResultPoint imageBottomRight, - int minCodewordWidth, - int maxCodewordWidth) throws NotFoundException, FormatException, ChecksumException { - BoundingBox boundingBox = new BoundingBox(image, imageTopLeft, imageBottomLeft, imageTopRight, imageBottomRight); - DetectionResultRowIndicatorColumn leftRowIndicatorColumn = null; - DetectionResultRowIndicatorColumn rightRowIndicatorColumn = null; - DetectionResult detectionResult = null; - for (int i = 0; i < 2; i++) { - if (imageTopLeft != null) { - leftRowIndicatorColumn = getRowIndicatorColumn(image, boundingBox, imageTopLeft, true, minCodewordWidth, - maxCodewordWidth); - } - if (imageTopRight != null) { - rightRowIndicatorColumn = getRowIndicatorColumn(image, boundingBox, imageTopRight, false, minCodewordWidth, - maxCodewordWidth); - } - detectionResult = merge(leftRowIndicatorColumn, rightRowIndicatorColumn); - if (detectionResult == null) { - throw NotFoundException.getNotFoundInstance(); - } - if (i == 0 && detectionResult.getBoundingBox() != null && - (detectionResult.getBoundingBox().getMinY() < boundingBox.getMinY() || detectionResult.getBoundingBox() - .getMaxY() > boundingBox.getMaxY())) { - boundingBox = detectionResult.getBoundingBox(); - } else { - detectionResult.setBoundingBox(boundingBox); - break; - } - } - int maxBarcodeColumn = detectionResult.getBarcodeColumnCount() + 1; - detectionResult.setDetectionResultColumn(0, leftRowIndicatorColumn); - detectionResult.setDetectionResultColumn(maxBarcodeColumn, rightRowIndicatorColumn); - - boolean leftToRight = leftRowIndicatorColumn != null; - for (int barcodeColumnCount = 1; barcodeColumnCount <= maxBarcodeColumn; barcodeColumnCount++) { - int barcodeColumn = leftToRight ? barcodeColumnCount : maxBarcodeColumn - barcodeColumnCount; - if (detectionResult.getDetectionResultColumn(barcodeColumn) != null) { - // This will be the case for the opposite row indicator column, which doesn't need to be decoded again. - continue; - } - DetectionResultColumn detectionResultColumn; - if (barcodeColumn == 0 || barcodeColumn == maxBarcodeColumn) { - detectionResultColumn = new DetectionResultRowIndicatorColumn(boundingBox, barcodeColumn == 0); - } else { - detectionResultColumn = new DetectionResultColumn(boundingBox); - } - detectionResult.setDetectionResultColumn(barcodeColumn, detectionResultColumn); - int startColumn = -1; - int previousStartColumn = startColumn; - // TODO start at a row for which we know the start position, then detect upwards and downwards from there. - for (int imageRow = boundingBox.getMinY(); imageRow <= boundingBox.getMaxY(); imageRow++) { - startColumn = getStartColumn(detectionResult, barcodeColumn, imageRow, leftToRight); - if (startColumn < 0 || startColumn > boundingBox.getMaxX()) { - if (previousStartColumn == -1) { - continue; - } - startColumn = previousStartColumn; - } - Codeword codeword = detectCodeword(image, boundingBox.getMinX(), boundingBox.getMaxX(), leftToRight, - startColumn, imageRow, minCodewordWidth, maxCodewordWidth); - if (codeword != null) { - detectionResultColumn.setCodeword(imageRow, codeword); - previousStartColumn = startColumn; - minCodewordWidth = Math.min(minCodewordWidth, codeword.getWidth()); - maxCodewordWidth = Math.max(maxCodewordWidth, codeword.getWidth()); - } - } - } - return createDecoderResult(detectionResult); - } - - private static DetectionResult merge(DetectionResultRowIndicatorColumn leftRowIndicatorColumn, - DetectionResultRowIndicatorColumn rightRowIndicatorColumn) - throws NotFoundException, FormatException { - if (leftRowIndicatorColumn == null && rightRowIndicatorColumn == null) { - return null; - } - BarcodeMetadata barcodeMetadata = getBarcodeMetadata(leftRowIndicatorColumn, rightRowIndicatorColumn); - if (barcodeMetadata == null) { - return null; - } - BoundingBox boundingBox = BoundingBox.merge(adjustBoundingBox(leftRowIndicatorColumn), - adjustBoundingBox(rightRowIndicatorColumn)); - return new DetectionResult(barcodeMetadata, boundingBox); - } - - private static BoundingBox adjustBoundingBox(DetectionResultRowIndicatorColumn rowIndicatorColumn) - throws NotFoundException, FormatException { - if (rowIndicatorColumn == null) { - return null; - } - int[] rowHeights = rowIndicatorColumn.getRowHeights(); - if (rowHeights == null) { - return null; - } - int maxRowHeight = getMax(rowHeights); - int missingStartRows = 0; - for (int rowHeight : rowHeights) { - missingStartRows += maxRowHeight - rowHeight; - if (rowHeight > 0) { - break; - } - } - Codeword[] codewords = rowIndicatorColumn.getCodewords(); - for (int row = 0; missingStartRows > 0 && codewords[row] == null; row++) { - missingStartRows--; - } - int missingEndRows = 0; - for (int row = rowHeights.length - 1; row >= 0; row--) { - missingEndRows += maxRowHeight - rowHeights[row]; - if (rowHeights[row] > 0) { - break; - } - } - for (int row = codewords.length - 1; missingEndRows > 0 && codewords[row] == null; row--) { - missingEndRows--; - } - return rowIndicatorColumn.getBoundingBox().addMissingRows(missingStartRows, missingEndRows, - rowIndicatorColumn.isLeft()); - } - - private static int getMax(int[] values) { - int maxValue = -1; - for (int value : values) { - maxValue = Math.max(maxValue, value); - } - return maxValue; - } - - private static BarcodeMetadata getBarcodeMetadata(DetectionResultRowIndicatorColumn leftRowIndicatorColumn, - DetectionResultRowIndicatorColumn rightRowIndicatorColumn) { - BarcodeMetadata leftBarcodeMetadata; - if (leftRowIndicatorColumn == null || - (leftBarcodeMetadata = leftRowIndicatorColumn.getBarcodeMetadata()) == null) { - return rightRowIndicatorColumn == null ? null : rightRowIndicatorColumn.getBarcodeMetadata(); - } - BarcodeMetadata rightBarcodeMetadata; - if (rightRowIndicatorColumn == null || - (rightBarcodeMetadata = rightRowIndicatorColumn.getBarcodeMetadata()) == null) { - return leftBarcodeMetadata; - } - - if (leftBarcodeMetadata.getColumnCount() != rightBarcodeMetadata.getColumnCount() && - leftBarcodeMetadata.getErrorCorrectionLevel() != rightBarcodeMetadata.getErrorCorrectionLevel() && - leftBarcodeMetadata.getRowCount() != rightBarcodeMetadata.getRowCount()) { - return null; - } - return leftBarcodeMetadata; - } - - private static DetectionResultRowIndicatorColumn getRowIndicatorColumn(BitMatrix image, - BoundingBox boundingBox, - ResultPoint startPoint, - boolean leftToRight, - int minCodewordWidth, - int maxCodewordWidth) { - DetectionResultRowIndicatorColumn rowIndicatorColumn = new DetectionResultRowIndicatorColumn(boundingBox, - leftToRight); - for (int i = 0; i < 2; i++) { - int increment = i == 0 ? 1 : -1; - int startColumn = (int) startPoint.getX(); - for (int imageRow = (int) startPoint.getY(); imageRow <= boundingBox.getMaxY() && - imageRow >= boundingBox.getMinY(); imageRow += increment) { - Codeword codeword = detectCodeword(image, 0, image.getWidth(), leftToRight, startColumn, imageRow, - minCodewordWidth, maxCodewordWidth); - if (codeword != null) { - rowIndicatorColumn.setCodeword(imageRow, codeword); - if (leftToRight) { - startColumn = codeword.getStartX(); - } else { - startColumn = codeword.getEndX(); - } - } - } - } - return rowIndicatorColumn; - } - - private static void adjustCodewordCount(DetectionResult detectionResult, BarcodeValue[][] barcodeMatrix) - throws NotFoundException { - int[] numberOfCodewords = barcodeMatrix[0][1].getValue(); - int calculatedNumberOfCodewords = detectionResult.getBarcodeColumnCount() * - detectionResult.getBarcodeRowCount() - - getNumberOfECCodeWords(detectionResult.getBarcodeECLevel()); - if (numberOfCodewords.length == 0) { - if (calculatedNumberOfCodewords < 1 || calculatedNumberOfCodewords > PDF417Common.MAX_CODEWORDS_IN_BARCODE) { - throw NotFoundException.getNotFoundInstance(); - } - barcodeMatrix[0][1].setValue(calculatedNumberOfCodewords); - } else if (numberOfCodewords[0] != calculatedNumberOfCodewords) { - // The calculated one is more reliable as it is derived from the row indicator columns - barcodeMatrix[0][1].setValue(calculatedNumberOfCodewords); - } - } - - private static DecoderResult createDecoderResult(DetectionResult detectionResult) throws FormatException, - ChecksumException, NotFoundException { - BarcodeValue[][] barcodeMatrix = createBarcodeMatrix(detectionResult); - adjustCodewordCount(detectionResult, barcodeMatrix); - Collection<Integer> erasures = new ArrayList<>(); - int[] codewords = new int[detectionResult.getBarcodeRowCount() * detectionResult.getBarcodeColumnCount()]; - List<int[]> ambiguousIndexValuesList = new ArrayList<>(); - List<Integer> ambiguousIndexesList = new ArrayList<>(); - for (int row = 0; row < detectionResult.getBarcodeRowCount(); row++) { - for (int column = 0; column < detectionResult.getBarcodeColumnCount(); column++) { - int[] values = barcodeMatrix[row][column + 1].getValue(); - int codewordIndex = row * detectionResult.getBarcodeColumnCount() + column; - if (values.length == 0) { - erasures.add(codewordIndex); - } else if (values.length == 1) { - codewords[codewordIndex] = values[0]; - } else { - ambiguousIndexesList.add(codewordIndex); - ambiguousIndexValuesList.add(values); - } - } - } - int[][] ambiguousIndexValues = new int[ambiguousIndexValuesList.size()][]; - for (int i = 0; i < ambiguousIndexValues.length; i++) { - ambiguousIndexValues[i] = ambiguousIndexValuesList.get(i); - } - return createDecoderResultFromAmbiguousValues(detectionResult.getBarcodeECLevel(), codewords, - PDF417Common.toIntArray(erasures), PDF417Common.toIntArray(ambiguousIndexesList), ambiguousIndexValues); - } - - /** - * This method deals with the fact, that the decoding process doesn't always yield a single most likely value. The - * current error correction implementation doesn't deal with erasures very well, so it's better to provide a value - * for these ambiguous codewords instead of treating it as an erasure. The problem is that we don't know which of - * the ambiguous values to choose. We try decode using the first value, and if that fails, we use another of the - * ambiguous values and try to decode again. This usually only happens on very hard to read and decode barcodes, - * so decoding the normal barcodes is not affected by this. - * - * @param erasureArray contains the indexes of erasures - * @param ambiguousIndexes array with the indexes that have more than one most likely value - * @param ambiguousIndexValues two dimensional array that contains the ambiguous values. The first dimension must - * be the same length as the ambiguousIndexes array - */ - private static DecoderResult createDecoderResultFromAmbiguousValues(int ecLevel, - int[] codewords, - int[] erasureArray, - int[] ambiguousIndexes, - int[][] ambiguousIndexValues) - throws FormatException, ChecksumException { - int[] ambiguousIndexCount = new int[ambiguousIndexes.length]; - - int tries = 100; - while (tries-- > 0) { - for (int i = 0; i < ambiguousIndexCount.length; i++) { - codewords[ambiguousIndexes[i]] = ambiguousIndexValues[i][ambiguousIndexCount[i]]; - } - try { - return decodeCodewords(codewords, ecLevel, erasureArray); - } catch (ChecksumException ignored) { - // - } - if (ambiguousIndexCount.length == 0) { - throw ChecksumException.getChecksumInstance(); - } - for (int i = 0; i < ambiguousIndexCount.length; i++) { - if (ambiguousIndexCount[i] < ambiguousIndexValues[i].length - 1) { - ambiguousIndexCount[i]++; - break; - } else { - ambiguousIndexCount[i] = 0; - if (i == ambiguousIndexCount.length - 1) { - throw ChecksumException.getChecksumInstance(); - } - } - } - } - throw ChecksumException.getChecksumInstance(); - } - - private static BarcodeValue[][] createBarcodeMatrix(DetectionResult detectionResult) throws FormatException { - BarcodeValue[][] barcodeMatrix = - new BarcodeValue[detectionResult.getBarcodeRowCount()][detectionResult.getBarcodeColumnCount() + 2]; - for (int row = 0; row < barcodeMatrix.length; row++) { - for (int column = 0; column < barcodeMatrix[row].length; column++) { - barcodeMatrix[row][column] = new BarcodeValue(); - } - } - - int column = 0; - for (DetectionResultColumn detectionResultColumn : detectionResult.getDetectionResultColumns()) { - if (detectionResultColumn != null) { - for (Codeword codeword : detectionResultColumn.getCodewords()) { - if (codeword != null) { - int rowNumber = codeword.getRowNumber(); - if (rowNumber >= 0) { - if (rowNumber >= barcodeMatrix.length) { - // We have more rows than the barcode metadata allows for, ignore them. - continue; - } - barcodeMatrix[rowNumber][column].setValue(codeword.getValue()); - } - } - } - } - column++; - } - return barcodeMatrix; - } - - private static boolean isValidBarcodeColumn(DetectionResult detectionResult, int barcodeColumn) { - return barcodeColumn >= 0 && barcodeColumn <= detectionResult.getBarcodeColumnCount() + 1; - } - - private static int getStartColumn(DetectionResult detectionResult, - int barcodeColumn, - int imageRow, - boolean leftToRight) { - int offset = leftToRight ? 1 : -1; - Codeword codeword = null; - if (isValidBarcodeColumn(detectionResult, barcodeColumn - offset)) { - codeword = detectionResult.getDetectionResultColumn(barcodeColumn - offset).getCodeword(imageRow); - } - if (codeword != null) { - return leftToRight ? codeword.getEndX() : codeword.getStartX(); - } - codeword = detectionResult.getDetectionResultColumn(barcodeColumn).getCodewordNearby(imageRow); - if (codeword != null) { - return leftToRight ? codeword.getStartX() : codeword.getEndX(); - } - if (isValidBarcodeColumn(detectionResult, barcodeColumn - offset)) { - codeword = detectionResult.getDetectionResultColumn(barcodeColumn - offset).getCodewordNearby(imageRow); - } - if (codeword != null) { - return leftToRight ? codeword.getEndX() : codeword.getStartX(); - } - int skippedColumns = 0; - - while (isValidBarcodeColumn(detectionResult, barcodeColumn - offset)) { - barcodeColumn -= offset; - for (Codeword previousRowCodeword : detectionResult.getDetectionResultColumn(barcodeColumn).getCodewords()) { - if (previousRowCodeword != null) { - return (leftToRight ? previousRowCodeword.getEndX() : previousRowCodeword.getStartX()) + - offset * - skippedColumns * - (previousRowCodeword.getEndX() - previousRowCodeword.getStartX()); - } - } - skippedColumns++; - } - return leftToRight ? detectionResult.getBoundingBox().getMinX() : detectionResult.getBoundingBox().getMaxX(); - } - - private static Codeword detectCodeword(BitMatrix image, - int minColumn, - int maxColumn, - boolean leftToRight, - int startColumn, - int imageRow, - int minCodewordWidth, - int maxCodewordWidth) { - startColumn = adjustCodewordStartColumn(image, minColumn, maxColumn, leftToRight, startColumn, imageRow); - // we usually know fairly exact now how long a codeword is. We should provide minimum and maximum expected length - // and try to adjust the read pixels, e.g. remove single pixel errors or try to cut off exceeding pixels. - // min and maxCodewordWidth should not be used as they are calculated for the whole barcode an can be inaccurate - // for the current position - int[] moduleBitCount = getModuleBitCount(image, minColumn, maxColumn, leftToRight, startColumn, imageRow); - if (moduleBitCount == null) { - return null; - } - int endColumn; - int codewordBitCount = PDF417Common.getBitCountSum(moduleBitCount); - if (leftToRight) { - endColumn = startColumn + codewordBitCount; - } else { - for (int i = 0; i < moduleBitCount.length / 2; i++) { - int tmpCount = moduleBitCount[i]; - moduleBitCount[i] = moduleBitCount[moduleBitCount.length - 1 - i]; - moduleBitCount[moduleBitCount.length - 1 - i] = tmpCount; - } - endColumn = startColumn; - startColumn = endColumn - codewordBitCount; - } - // TODO implement check for width and correction of black and white bars - // use start (and maybe stop pattern) to determine if blackbars are wider than white bars. If so, adjust. - // should probably done only for codewords with a lot more than 17 bits. - // The following fixes 10-1.png, which has wide black bars and small white bars - // for (int i = 0; i < moduleBitCount.length; i++) { - // if (i % 2 == 0) { - // moduleBitCount[i]--; - // } else { - // moduleBitCount[i]++; - // } - // } - - // We could also use the width of surrounding codewords for more accurate results, but this seems - // sufficient for now - if (!checkCodewordSkew(codewordBitCount, minCodewordWidth, maxCodewordWidth)) { - // We could try to use the startX and endX position of the codeword in the same column in the previous row, - // create the bit count from it and normalize it to 8. This would help with single pixel errors. - return null; - } - - int decodedValue = PDF417CodewordDecoder.getDecodedValue(moduleBitCount); - int codeword = PDF417Common.getCodeword(decodedValue); - if (codeword == -1) { - return null; - } - return new Codeword(startColumn, endColumn, getCodewordBucketNumber(decodedValue), codeword); - } - - private static int[] getModuleBitCount(BitMatrix image, - int minColumn, - int maxColumn, - boolean leftToRight, - int startColumn, - int imageRow) { - int imageColumn = startColumn; - int[] moduleBitCount = new int[8]; - int moduleNumber = 0; - int increment = leftToRight ? 1 : -1; - boolean previousPixelValue = leftToRight; - while (((leftToRight && imageColumn < maxColumn) || (!leftToRight && imageColumn >= minColumn)) && - moduleNumber < moduleBitCount.length) { - if (image.get(imageColumn, imageRow) == previousPixelValue) { - moduleBitCount[moduleNumber]++; - imageColumn += increment; - } else { - moduleNumber++; - previousPixelValue = !previousPixelValue; - } - } - if (moduleNumber == moduleBitCount.length || - (((leftToRight && imageColumn == maxColumn) || (!leftToRight && imageColumn == minColumn)) && moduleNumber == moduleBitCount.length - 1)) { - return moduleBitCount; - } - return null; - } - - private static int getNumberOfECCodeWords(int barcodeECLevel) { - return 2 << barcodeECLevel; - } - - private static int adjustCodewordStartColumn(BitMatrix image, - int minColumn, - int maxColumn, - boolean leftToRight, - int codewordStartColumn, - int imageRow) { - int correctedStartColumn = codewordStartColumn; - int increment = leftToRight ? -1 : 1; - // there should be no black pixels before the start column. If there are, then we need to start earlier. - for (int i = 0; i < 2; i++) { - while (((leftToRight && correctedStartColumn >= minColumn) || (!leftToRight && correctedStartColumn < maxColumn)) && - leftToRight == image.get(correctedStartColumn, imageRow)) { - if (Math.abs(codewordStartColumn - correctedStartColumn) > CODEWORD_SKEW_SIZE) { - return codewordStartColumn; - } - correctedStartColumn += increment; - } - increment = -increment; - leftToRight = !leftToRight; - } - return correctedStartColumn; - } - - private static boolean checkCodewordSkew(int codewordSize, int minCodewordWidth, int maxCodewordWidth) { - return minCodewordWidth - CODEWORD_SKEW_SIZE <= codewordSize && - codewordSize <= maxCodewordWidth + CODEWORD_SKEW_SIZE; - } - - private static DecoderResult decodeCodewords(int[] codewords, int ecLevel, int[] erasures) throws FormatException, - ChecksumException { - if (codewords.length == 0) { - throw FormatException.getFormatInstance(); - } - - int numECCodewords = 1 << (ecLevel + 1); - int correctedErrorsCount = correctErrors(codewords, erasures, numECCodewords); - verifyCodewordCount(codewords, numECCodewords); - - // Decode the codewords - DecoderResult decoderResult = DecodedBitStreamParser.decode(codewords, String.valueOf(ecLevel)); - decoderResult.setErrorsCorrected(correctedErrorsCount); - decoderResult.setErasures(erasures.length); - return decoderResult; - } - - /** - * <p>Given data and error-correction codewords received, possibly corrupted by errors, attempts to - * correct the errors in-place.</p> - * - * @param codewords data and error correction codewords - * @param erasures positions of any known erasures - * @param numECCodewords number of error correction codewords that are available in codewords - * @throws ChecksumException if error correction fails - */ - private static int correctErrors(int[] codewords, int[] erasures, int numECCodewords) throws ChecksumException { - if (erasures != null && - erasures.length > numECCodewords / 2 + MAX_ERRORS || - numECCodewords < 0 || - numECCodewords > MAX_EC_CODEWORDS) { - // Too many errors or EC Codewords is corrupted - throw ChecksumException.getChecksumInstance(); - } - return errorCorrection.decode(codewords, numECCodewords, erasures); - } - - /** - * Verify that all is OK with the codeword array. - */ - private static void verifyCodewordCount(int[] codewords, int numECCodewords) throws FormatException { - if (codewords.length < 4) { - // Codeword array size should be at least 4 allowing for - // Count CW, At least one Data CW, Error Correction CW, Error Correction CW - throw FormatException.getFormatInstance(); - } - // The first codeword, the Symbol Length Descriptor, shall always encode the total number of data - // codewords in the symbol, including the Symbol Length Descriptor itself, data codewords and pad - // codewords, but excluding the number of error correction codewords. - int numberOfCodewords = codewords[0]; - if (numberOfCodewords > codewords.length) { - throw FormatException.getFormatInstance(); - } - if (numberOfCodewords == 0) { - // Reset to the length of the array - 8 (Allow for at least level 3 Error Correction (8 Error Codewords) - if (numECCodewords < codewords.length) { - codewords[0] = codewords.length - numECCodewords; - } else { - throw FormatException.getFormatInstance(); - } - } - } - - private static int[] getBitCountForCodeword(int codeword) { - int[] result = new int[8]; - int previousValue = 0; - int i = result.length - 1; - while (true) { - if ((codeword & 0x1) != previousValue) { - previousValue = codeword & 0x1; - i--; - if (i < 0) { - break; - } - } - result[i]++; - codeword >>= 1; - } - return result; - } - - private static int getCodewordBucketNumber(int codeword) { - return getCodewordBucketNumber(getBitCountForCodeword(codeword)); - } - - private static int getCodewordBucketNumber(int[] moduleBitCount) { - return (moduleBitCount[0] - moduleBitCount[2] + moduleBitCount[4] - moduleBitCount[6] + 9) % 9; - } - - public static String toString(BarcodeValue[][] barcodeMatrix) { - Formatter formatter = new Formatter(); - for (int row = 0; row < barcodeMatrix.length; row++) { - formatter.format("Row %2d: ", row); - for (int column = 0; column < barcodeMatrix[row].length; column++) { - BarcodeValue barcodeValue = barcodeMatrix[row][column]; - if (barcodeValue.getValue().length == 0) { - formatter.format(" ", (Object[]) null); - } else { - formatter.format("%4d(%2d)", barcodeValue.getValue()[0], - barcodeValue.getConfidence(barcodeValue.getValue()[0])); - } - } - formatter.format("%n"); - } - String result = formatter.toString(); - formatter.close(); - return result; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/ec/ErrorCorrection.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/ec/ErrorCorrection.java deleted file mode 100755 index e34cb7fe..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/ec/ErrorCorrection.java +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Copyright 2012 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417.decoder.ec; - -import com.google.zxing.ChecksumException; - -/** - * <p>PDF417 error correction implementation.</p> - * - * <p>This <a href="http://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction#Example">example</a> - * is quite useful in understanding the algorithm.</p> - * - * @author Sean Owen - * @see com.google.zxing.common.reedsolomon.ReedSolomonDecoder - */ -public final class ErrorCorrection { - - private final ModulusGF field; - - public ErrorCorrection() { - this.field = ModulusGF.PDF417_GF; - } - - /** - * @param received received codewords - * @param numECCodewords number of those codewords used for EC - * @param erasures location of erasures - * @return number of errors - * @throws ChecksumException if errors cannot be corrected, maybe because of too many errors - */ - public int decode(int[] received, - int numECCodewords, - int[] erasures) throws ChecksumException { - - ModulusPoly poly = new ModulusPoly(field, received); - int[] S = new int[numECCodewords]; - boolean error = false; - for (int i = numECCodewords; i > 0; i--) { - int eval = poly.evaluateAt(field.exp(i)); - S[numECCodewords - i] = eval; - if (eval != 0) { - error = true; - } - } - - if (!error) { - return 0; - } - - ModulusPoly knownErrors = field.getOne(); - if (erasures != null) { - for (int erasure : erasures) { - int b = field.exp(received.length - 1 - erasure); - // Add (1 - bx) term: - ModulusPoly term = new ModulusPoly(field, new int[]{field.subtract(0, b), 1}); - knownErrors = knownErrors.multiply(term); - } - } - - ModulusPoly syndrome = new ModulusPoly(field, S); - //syndrome = syndrome.multiply(knownErrors); - - ModulusPoly[] sigmaOmega = - runEuclideanAlgorithm(field.buildMonomial(numECCodewords, 1), syndrome, numECCodewords); - ModulusPoly sigma = sigmaOmega[0]; - ModulusPoly omega = sigmaOmega[1]; - - //sigma = sigma.multiply(knownErrors); - - int[] errorLocations = findErrorLocations(sigma); - int[] errorMagnitudes = findErrorMagnitudes(omega, sigma, errorLocations); - - for (int i = 0; i < errorLocations.length; i++) { - int position = received.length - 1 - field.log(errorLocations[i]); - if (position < 0) { - throw ChecksumException.getChecksumInstance(); - } - received[position] = field.subtract(received[position], errorMagnitudes[i]); - } - return errorLocations.length; - } - - private ModulusPoly[] runEuclideanAlgorithm(ModulusPoly a, ModulusPoly b, int R) - throws ChecksumException { - // Assume a's degree is >= b's - if (a.getDegree() < b.getDegree()) { - ModulusPoly temp = a; - a = b; - b = temp; - } - - ModulusPoly rLast = a; - ModulusPoly r = b; - ModulusPoly tLast = field.getZero(); - ModulusPoly t = field.getOne(); - - // Run Euclidean algorithm until r's degree is less than R/2 - while (r.getDegree() >= R / 2) { - ModulusPoly rLastLast = rLast; - ModulusPoly tLastLast = tLast; - rLast = r; - tLast = t; - - // Divide rLastLast by rLast, with quotient in q and remainder in r - if (rLast.isZero()) { - // Oops, Euclidean algorithm already terminated? - throw ChecksumException.getChecksumInstance(); - } - r = rLastLast; - ModulusPoly q = field.getZero(); - int denominatorLeadingTerm = rLast.getCoefficient(rLast.getDegree()); - int dltInverse = field.inverse(denominatorLeadingTerm); - while (r.getDegree() >= rLast.getDegree() && !r.isZero()) { - int degreeDiff = r.getDegree() - rLast.getDegree(); - int scale = field.multiply(r.getCoefficient(r.getDegree()), dltInverse); - q = q.add(field.buildMonomial(degreeDiff, scale)); - r = r.subtract(rLast.multiplyByMonomial(degreeDiff, scale)); - } - - t = q.multiply(tLast).subtract(tLastLast).negative(); - } - - int sigmaTildeAtZero = t.getCoefficient(0); - if (sigmaTildeAtZero == 0) { - throw ChecksumException.getChecksumInstance(); - } - - int inverse = field.inverse(sigmaTildeAtZero); - ModulusPoly sigma = t.multiply(inverse); - ModulusPoly omega = r.multiply(inverse); - return new ModulusPoly[]{sigma, omega}; - } - - private int[] findErrorLocations(ModulusPoly errorLocator) throws ChecksumException { - // This is a direct application of Chien's search - int numErrors = errorLocator.getDegree(); - int[] result = new int[numErrors]; - int e = 0; - for (int i = 1; i < field.getSize() && e < numErrors; i++) { - if (errorLocator.evaluateAt(i) == 0) { - result[e] = field.inverse(i); - e++; - } - } - if (e != numErrors) { - throw ChecksumException.getChecksumInstance(); - } - return result; - } - - private int[] findErrorMagnitudes(ModulusPoly errorEvaluator, - ModulusPoly errorLocator, - int[] errorLocations) { - int errorLocatorDegree = errorLocator.getDegree(); - int[] formalDerivativeCoefficients = new int[errorLocatorDegree]; - for (int i = 1; i <= errorLocatorDegree; i++) { - formalDerivativeCoefficients[errorLocatorDegree - i] = - field.multiply(i, errorLocator.getCoefficient(i)); - } - ModulusPoly formalDerivative = new ModulusPoly(field, formalDerivativeCoefficients); - - // This is directly applying Forney's Formula - int s = errorLocations.length; - int[] result = new int[s]; - for (int i = 0; i < s; i++) { - int xiInverse = field.inverse(errorLocations[i]); - int numerator = field.subtract(0, errorEvaluator.evaluateAt(xiInverse)); - int denominator = field.inverse(formalDerivative.evaluateAt(xiInverse)); - result[i] = field.multiply(numerator, denominator); - } - return result; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/ec/ModulusGF.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/ec/ModulusGF.java deleted file mode 100755 index 4b66d57f..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/ec/ModulusGF.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright 2012 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417.decoder.ec; - -import com.google.zxing.pdf417.PDF417Common; - -/** - * <p>A field based on powers of a generator integer, modulo some modulus.</p> - * - * @author Sean Owen - * @see com.google.zxing.common.reedsolomon.GenericGF - */ -public final class ModulusGF { - - public static final ModulusGF PDF417_GF = new ModulusGF(PDF417Common.NUMBER_OF_CODEWORDS, 3); - - private final int[] expTable; - private final int[] logTable; - private final ModulusPoly zero; - private final ModulusPoly one; - private final int modulus; - - private ModulusGF(int modulus, int generator) { - this.modulus = modulus; - expTable = new int[modulus]; - logTable = new int[modulus]; - int x = 1; - for (int i = 0; i < modulus; i++) { - expTable[i] = x; - x = (x * generator) % modulus; - } - for (int i = 0; i < modulus-1; i++) { - logTable[expTable[i]] = i; - } - // logTable[0] == 0 but this should never be used - zero = new ModulusPoly(this, new int[]{0}); - one = new ModulusPoly(this, new int[]{1}); - } - - - ModulusPoly getZero() { - return zero; - } - - ModulusPoly getOne() { - return one; - } - - ModulusPoly buildMonomial(int degree, int coefficient) { - if (degree < 0) { - throw new IllegalArgumentException(); - } - if (coefficient == 0) { - return zero; - } - int[] coefficients = new int[degree + 1]; - coefficients[0] = coefficient; - return new ModulusPoly(this, coefficients); - } - - int add(int a, int b) { - return (a + b) % modulus; - } - - int subtract(int a, int b) { - return (modulus + a - b) % modulus; - } - - int exp(int a) { - return expTable[a]; - } - - int log(int a) { - if (a == 0) { - throw new IllegalArgumentException(); - } - return logTable[a]; - } - - int inverse(int a) { - if (a == 0) { - throw new ArithmeticException(); - } - return expTable[modulus - logTable[a] - 1]; - } - - int multiply(int a, int b) { - if (a == 0 || b == 0) { - return 0; - } - return expTable[(logTable[a] + logTable[b]) % (modulus - 1)]; - } - - int getSize() { - return modulus; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/ec/ModulusPoly.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/ec/ModulusPoly.java deleted file mode 100755 index 053bbf7a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/decoder/ec/ModulusPoly.java +++ /dev/null @@ -1,260 +0,0 @@ -/* - * Copyright 2012 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417.decoder.ec; - -/** - * @author Sean Owen - * @see com.google.zxing.common.reedsolomon.GenericGFPoly - */ -final class ModulusPoly { - - private final ModulusGF field; - private final int[] coefficients; - - ModulusPoly(ModulusGF field, int[] coefficients) { - if (coefficients.length == 0) { - throw new IllegalArgumentException(); - } - this.field = field; - int coefficientsLength = coefficients.length; - if (coefficientsLength > 1 && coefficients[0] == 0) { - // Leading term must be non-zero for anything except the constant polynomial "0" - int firstNonZero = 1; - while (firstNonZero < coefficientsLength && coefficients[firstNonZero] == 0) { - firstNonZero++; - } - if (firstNonZero == coefficientsLength) { - this.coefficients = new int[]{0}; - } else { - this.coefficients = new int[coefficientsLength - firstNonZero]; - System.arraycopy(coefficients, - firstNonZero, - this.coefficients, - 0, - this.coefficients.length); - } - } else { - this.coefficients = coefficients; - } - } - - int[] getCoefficients() { - return coefficients; - } - - /** - * @return degree of this polynomial - */ - int getDegree() { - return coefficients.length - 1; - } - - /** - * @return true iff this polynomial is the monomial "0" - */ - boolean isZero() { - return coefficients[0] == 0; - } - - /** - * @return coefficient of x^degree term in this polynomial - */ - int getCoefficient(int degree) { - return coefficients[coefficients.length - 1 - degree]; - } - - /** - * @return evaluation of this polynomial at a given point - */ - int evaluateAt(int a) { - if (a == 0) { - // Just return the x^0 coefficient - return getCoefficient(0); - } - int size = coefficients.length; - if (a == 1) { - // Just the sum of the coefficients - int result = 0; - for (int coefficient : coefficients) { - result = field.add(result, coefficient); - } - return result; - } - int result = coefficients[0]; - for (int i = 1; i < size; i++) { - result = field.add(field.multiply(a, result), coefficients[i]); - } - return result; - } - - ModulusPoly add(ModulusPoly other) { - if (!field.equals(other.field)) { - throw new IllegalArgumentException("ModulusPolys do not have same ModulusGF field"); - } - if (isZero()) { - return other; - } - if (other.isZero()) { - return this; - } - - int[] smallerCoefficients = this.coefficients; - int[] largerCoefficients = other.coefficients; - if (smallerCoefficients.length > largerCoefficients.length) { - int[] temp = smallerCoefficients; - smallerCoefficients = largerCoefficients; - largerCoefficients = temp; - } - int[] sumDiff = new int[largerCoefficients.length]; - int lengthDiff = largerCoefficients.length - smallerCoefficients.length; - // Copy high-order terms only found in higher-degree polynomial's coefficients - System.arraycopy(largerCoefficients, 0, sumDiff, 0, lengthDiff); - - for (int i = lengthDiff; i < largerCoefficients.length; i++) { - sumDiff[i] = field.add(smallerCoefficients[i - lengthDiff], largerCoefficients[i]); - } - - return new ModulusPoly(field, sumDiff); - } - - ModulusPoly subtract(ModulusPoly other) { - if (!field.equals(other.field)) { - throw new IllegalArgumentException("ModulusPolys do not have same ModulusGF field"); - } - if (other.isZero()) { - return this; - } - return add(other.negative()); - } - - ModulusPoly multiply(ModulusPoly other) { - if (!field.equals(other.field)) { - throw new IllegalArgumentException("ModulusPolys do not have same ModulusGF field"); - } - if (isZero() || other.isZero()) { - return field.getZero(); - } - int[] aCoefficients = this.coefficients; - int aLength = aCoefficients.length; - int[] bCoefficients = other.coefficients; - int bLength = bCoefficients.length; - int[] product = new int[aLength + bLength - 1]; - for (int i = 0; i < aLength; i++) { - int aCoeff = aCoefficients[i]; - for (int j = 0; j < bLength; j++) { - product[i + j] = field.add(product[i + j], field.multiply(aCoeff, bCoefficients[j])); - } - } - return new ModulusPoly(field, product); - } - - ModulusPoly negative() { - int size = coefficients.length; - int[] negativeCoefficients = new int[size]; - for (int i = 0; i < size; i++) { - negativeCoefficients[i] = field.subtract(0, coefficients[i]); - } - return new ModulusPoly(field, negativeCoefficients); - } - - ModulusPoly multiply(int scalar) { - if (scalar == 0) { - return field.getZero(); - } - if (scalar == 1) { - return this; - } - int size = coefficients.length; - int[] product = new int[size]; - for (int i = 0; i < size; i++) { - product[i] = field.multiply(coefficients[i], scalar); - } - return new ModulusPoly(field, product); - } - - ModulusPoly multiplyByMonomial(int degree, int coefficient) { - if (degree < 0) { - throw new IllegalArgumentException(); - } - if (coefficient == 0) { - return field.getZero(); - } - int size = coefficients.length; - int[] product = new int[size + degree]; - for (int i = 0; i < size; i++) { - product[i] = field.multiply(coefficients[i], coefficient); - } - return new ModulusPoly(field, product); - } - - ModulusPoly[] divide(ModulusPoly other) { - if (!field.equals(other.field)) { - throw new IllegalArgumentException("ModulusPolys do not have same ModulusGF field"); - } - if (other.isZero()) { - throw new IllegalArgumentException("Divide by 0"); - } - - ModulusPoly quotient = field.getZero(); - ModulusPoly remainder = this; - - int denominatorLeadingTerm = other.getCoefficient(other.getDegree()); - int inverseDenominatorLeadingTerm = field.inverse(denominatorLeadingTerm); - - while (remainder.getDegree() >= other.getDegree() && !remainder.isZero()) { - int degreeDifference = remainder.getDegree() - other.getDegree(); - int scale = field.multiply(remainder.getCoefficient(remainder.getDegree()), inverseDenominatorLeadingTerm); - ModulusPoly term = other.multiplyByMonomial(degreeDifference, scale); - ModulusPoly iterationQuotient = field.buildMonomial(degreeDifference, scale); - quotient = quotient.add(iterationQuotient); - remainder = remainder.subtract(term); - } - - return new ModulusPoly[] { quotient, remainder }; - } - - @Override - public String toString() { - StringBuilder result = new StringBuilder(8 * getDegree()); - for (int degree = getDegree(); degree >= 0; degree--) { - int coefficient = getCoefficient(degree); - if (coefficient != 0) { - if (coefficient < 0) { - result.append(" - "); - coefficient = -coefficient; - } else { - if (result.length() > 0) { - result.append(" + "); - } - } - if (degree == 0 || coefficient != 1) { - result.append(coefficient); - } - if (degree != 0) { - if (degree == 1) { - result.append('x'); - } else { - result.append("x^"); - result.append(degree); - } - } - } - } - return result.toString(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/detector/Detector.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/detector/Detector.java deleted file mode 100755 index d72e4f32..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/detector/Detector.java +++ /dev/null @@ -1,344 +0,0 @@ -/* - * Copyright 2009 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417.detector; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Map; - -import com.google.zxing.BinaryBitmap; -import com.google.zxing.DecodeHintType; -import com.google.zxing.NotFoundException; -import com.google.zxing.ResultPoint; -import com.google.zxing.common.BitMatrix; - -/** - * <p>Encapsulates logic that can detect a PDF417 Code in an image, even if the - * PDF417 Code is rotated or skewed, or partially obscured.</p> - * - * @author SITA Lab (kevin.osullivan@sita.aero) - * @author dswitkin@google.com (Daniel Switkin) - * @author Guenther Grau - */ -public final class Detector { - - private static final int[] INDEXES_START_PATTERN = {0, 4, 1, 5}; - private static final int[] INDEXES_STOP_PATTERN = {6, 2, 7, 3}; - private static final float MAX_AVG_VARIANCE = 0.42f; - private static final float MAX_INDIVIDUAL_VARIANCE = 0.8f; - - // B S B S B S B S Bar/Space pattern - // 11111111 0 1 0 1 0 1 000 - private static final int[] START_PATTERN = {8, 1, 1, 1, 1, 1, 1, 3}; - // 1111111 0 1 000 1 0 1 00 1 - private static final int[] STOP_PATTERN = {7, 1, 1, 3, 1, 1, 1, 2, 1}; - private static final int MAX_PIXEL_DRIFT = 3; - private static final int MAX_PATTERN_DRIFT = 5; - // if we set the value too low, then we don't detect the correct height of the bar if the start patterns are damaged. - // if we set the value too high, then we might detect the start pattern from a neighbor barcode. - private static final int SKIPPED_ROW_COUNT_MAX = 25; - // A PDF471 barcode should have at least 3 rows, with each row being >= 3 times the module width. Therefore it should be at least - // 9 pixels tall. To be conservative, we use about half the size to ensure we don't miss it. - private static final int ROW_STEP = 5; - private static final int BARCODE_MIN_HEIGHT = 10; - - private Detector() { - } - - /** - * <p>Detects a PDF417 Code in an image. Only checks 0 and 180 degree rotations.</p> - * - * @param image barcode image to decode - * @param hints optional hints to detector - * @param multiple if true, then the image is searched for multiple codes. If false, then at most one code will - * be found and returned - * @return {@link PDF417DetectorResult} encapsulating results of detecting a PDF417 code - * @throws NotFoundException if no PDF417 Code can be found - */ - public static PDF417DetectorResult detect(BinaryBitmap image, Map<DecodeHintType,?> hints, boolean multiple) - throws NotFoundException { - // TODO detection improvement, tryHarder could try several different luminance thresholds/blackpoints or even - // different binarizers - //boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER); - - BitMatrix bitMatrix = image.getBlackMatrix(); - - List<ResultPoint[]> barcodeCoordinates = detect(multiple, bitMatrix); - if (barcodeCoordinates.isEmpty()) { - bitMatrix = bitMatrix.clone(); - bitMatrix.rotate180(); - barcodeCoordinates = detect(multiple, bitMatrix); - } - return new PDF417DetectorResult(bitMatrix, barcodeCoordinates); - } - - /** - * Detects PDF417 codes in an image. Only checks 0 degree rotation - * @param multiple if true, then the image is searched for multiple codes. If false, then at most one code will - * be found and returned - * @param bitMatrix bit matrix to detect barcodes in - * @return List of ResultPoint arrays containing the coordinates of found barcodes - */ - private static List<ResultPoint[]> detect(boolean multiple, BitMatrix bitMatrix) { - List<ResultPoint[]> barcodeCoordinates = new ArrayList<>(); - int row = 0; - int column = 0; - boolean foundBarcodeInRow = false; - while (row < bitMatrix.getHeight()) { - ResultPoint[] vertices = findVertices(bitMatrix, row, column); - - if (vertices[0] == null && vertices[3] == null) { - if (!foundBarcodeInRow) { - // we didn't find any barcode so that's the end of searching - break; - } - // we didn't find a barcode starting at the given column and row. Try again from the first column and slightly - // below the lowest barcode we found so far. - foundBarcodeInRow = false; - column = 0; - for (ResultPoint[] barcodeCoordinate : barcodeCoordinates) { - if (barcodeCoordinate[1] != null) { - row = (int) Math.max(row, barcodeCoordinate[1].getY()); - } - if (barcodeCoordinate[3] != null) { - row = Math.max(row, (int) barcodeCoordinate[3].getY()); - } - } - row += ROW_STEP; - continue; - } - foundBarcodeInRow = true; - barcodeCoordinates.add(vertices); - if (!multiple) { - break; - } - // if we didn't find a right row indicator column, then continue the search for the next barcode after the - // start pattern of the barcode just found. - if (vertices[2] != null) { - column = (int) vertices[2].getX(); - row = (int) vertices[2].getY(); - } else { - column = (int) vertices[4].getX(); - row = (int) vertices[4].getY(); - } - } - return barcodeCoordinates; - } - - /** - * Locate the vertices and the codewords area of a black blob using the Start - * and Stop patterns as locators. - * - * @param matrix the scanned barcode image. - * @return an array containing the vertices: - * vertices[0] x, y top left barcode - * vertices[1] x, y bottom left barcode - * vertices[2] x, y top right barcode - * vertices[3] x, y bottom right barcode - * vertices[4] x, y top left codeword area - * vertices[5] x, y bottom left codeword area - * vertices[6] x, y top right codeword area - * vertices[7] x, y bottom right codeword area - */ - private static ResultPoint[] findVertices(BitMatrix matrix, int startRow, int startColumn) { - int height = matrix.getHeight(); - int width = matrix.getWidth(); - - ResultPoint[] result = new ResultPoint[8]; - copyToResult(result, findRowsWithPattern(matrix, height, width, startRow, startColumn, START_PATTERN), - INDEXES_START_PATTERN); - - if (result[4] != null) { - startColumn = (int) result[4].getX(); - startRow = (int) result[4].getY(); - } - copyToResult(result, findRowsWithPattern(matrix, height, width, startRow, startColumn, STOP_PATTERN), - INDEXES_STOP_PATTERN); - return result; - } - - private static void copyToResult(ResultPoint[] result, ResultPoint[] tmpResult, int[] destinationIndexes) { - for (int i = 0; i < destinationIndexes.length; i++) { - result[destinationIndexes[i]] = tmpResult[i]; - } - } - - private static ResultPoint[] findRowsWithPattern(BitMatrix matrix, - int height, - int width, - int startRow, - int startColumn, - int[] pattern) { - ResultPoint[] result = new ResultPoint[4]; - boolean found = false; - int[] counters = new int[pattern.length]; - for (; startRow < height; startRow += ROW_STEP) { - int[] loc = findGuardPattern(matrix, startColumn, startRow, width, false, pattern, counters); - if (loc != null) { - while (startRow > 0) { - int[] previousRowLoc = findGuardPattern(matrix, startColumn, --startRow, width, false, pattern, counters); - if (previousRowLoc != null) { - loc = previousRowLoc; - } else { - startRow++; - break; - } - } - result[0] = new ResultPoint(loc[0], startRow); - result[1] = new ResultPoint(loc[1], startRow); - found = true; - break; - } - } - int stopRow = startRow + 1; - // Last row of the current symbol that contains pattern - if (found) { - int skippedRowCount = 0; - int[] previousRowLoc = {(int) result[0].getX(), (int) result[1].getX()}; - for (; stopRow < height; stopRow++) { - int[] loc = findGuardPattern(matrix, previousRowLoc[0], stopRow, width, false, pattern, counters); - // a found pattern is only considered to belong to the same barcode if the start and end positions - // don't differ too much. Pattern drift should be not bigger than two for consecutive rows. With - // a higher number of skipped rows drift could be larger. To keep it simple for now, we allow a slightly - // larger drift and don't check for skipped rows. - if (loc != null && - Math.abs(previousRowLoc[0] - loc[0]) < MAX_PATTERN_DRIFT && - Math.abs(previousRowLoc[1] - loc[1]) < MAX_PATTERN_DRIFT) { - previousRowLoc = loc; - skippedRowCount = 0; - } else { - if (skippedRowCount > SKIPPED_ROW_COUNT_MAX) { - break; - } else { - skippedRowCount++; - } - } - } - stopRow -= skippedRowCount + 1; - result[2] = new ResultPoint(previousRowLoc[0], stopRow); - result[3] = new ResultPoint(previousRowLoc[1], stopRow); - } - if (stopRow - startRow < BARCODE_MIN_HEIGHT) { - for (int i = 0; i < result.length; i++) { - result[i] = null; - } - } - return result; - } - - /** - * @param matrix row of black/white values to search - * @param column x position to start search - * @param row y position to start search - * @param width the number of pixels to search on this row - * @param pattern pattern of counts of number of black and white pixels that are - * being searched for as a pattern - * @param counters array of counters, as long as pattern, to re-use - * @return start/end horizontal offset of guard pattern, as an array of two ints. - */ - private static int[] findGuardPattern(BitMatrix matrix, - int column, - int row, - int width, - boolean whiteFirst, - int[] pattern, - int[] counters) { - Arrays.fill(counters, 0, counters.length, 0); - int patternLength = pattern.length; - boolean isWhite = whiteFirst; - int patternStart = column; - int pixelDrift = 0; - - // if there are black pixels left of the current pixel shift to the left, but only for MAX_PIXEL_DRIFT pixels - while (matrix.get(patternStart, row) && patternStart > 0 && pixelDrift++ < MAX_PIXEL_DRIFT) { - patternStart--; - } - int x = patternStart; - int counterPosition = 0; - for (; x < width; x++) { - boolean pixel = matrix.get(x, row); - if (pixel ^ isWhite) { - counters[counterPosition]++; - } else { - if (counterPosition == patternLength - 1) { - if (patternMatchVariance(counters, pattern, MAX_INDIVIDUAL_VARIANCE) < MAX_AVG_VARIANCE) { - return new int[] {patternStart, x}; - } - patternStart += counters[0] + counters[1]; - System.arraycopy(counters, 2, counters, 0, patternLength - 2); - counters[patternLength - 2] = 0; - counters[patternLength - 1] = 0; - counterPosition--; - } else { - counterPosition++; - } - counters[counterPosition] = 1; - isWhite = !isWhite; - } - } - if (counterPosition == patternLength - 1) { - if (patternMatchVariance(counters, pattern, MAX_INDIVIDUAL_VARIANCE) < MAX_AVG_VARIANCE) { - return new int[] {patternStart, x - 1}; - } - } - return null; - } - - /** - * Determines how closely a set of observed counts of runs of black/white - * values matches a given target pattern. This is reported as the ratio of - * the total variance from the expected pattern proportions across all - * pattern elements, to the length of the pattern. - * - * @param counters observed counters - * @param pattern expected pattern - * @param maxIndividualVariance The most any counter can differ before we give up - * @return ratio of total variance between counters and pattern compared to total pattern size - */ - private static float patternMatchVariance(int[] counters, int[] pattern, float maxIndividualVariance) { - int numCounters = counters.length; - int total = 0; - int patternLength = 0; - for (int i = 0; i < numCounters; i++) { - total += counters[i]; - patternLength += pattern[i]; - } - if (total < patternLength) { - // If we don't even have one pixel per unit of bar width, assume this - // is too small to reliably match, so fail: - return Float.POSITIVE_INFINITY; - } - // We're going to fake floating-point math in integers. We just need to use more bits. - // Scale up patternLength so that intermediate values below like scaledCounter will have - // more "significant digits". - float unitBarWidth = (float) total / patternLength; - maxIndividualVariance *= unitBarWidth; - - float totalVariance = 0.0f; - for (int x = 0; x < numCounters; x++) { - int counter = counters[x]; - float scaledPattern = pattern[x] * unitBarWidth; - float variance = counter > scaledPattern ? counter - scaledPattern : scaledPattern - counter; - if (variance > maxIndividualVariance) { - return Float.POSITIVE_INFINITY; - } - totalVariance += variance; - } - return totalVariance / total; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/detector/PDF417DetectorResult.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/detector/PDF417DetectorResult.java deleted file mode 100755 index 518479f1..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/detector/PDF417DetectorResult.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417.detector; - -import java.util.List; - -import com.google.zxing.ResultPoint; -import com.google.zxing.common.BitMatrix; - -/** - * @author Guenther Grau - */ -public final class PDF417DetectorResult { - - private final BitMatrix bits; - private final List<ResultPoint[]> points; - - public PDF417DetectorResult(BitMatrix bits, List<ResultPoint[]> points) { - this.bits = bits; - this.points = points; - } - - public BitMatrix getBits() { - return bits; - } - - public List<ResultPoint[]> getPoints() { - return points; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/BarcodeMatrix.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/BarcodeMatrix.java deleted file mode 100755 index 1cff1135..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/BarcodeMatrix.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 2011 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417.encoder; - -/** - * Holds all of the information for a barcode in a format where it can be easily accessable - * - * @author Jacob Haynes - */ -public final class BarcodeMatrix { - - private final BarcodeRow[] matrix; - private int currentRow; - private final int height; - private final int width; - - /** - * @param height the height of the matrix (Rows) - * @param width the width of the matrix (Cols) - */ - BarcodeMatrix(int height, int width) { - matrix = new BarcodeRow[height]; - //Initializes the array to the correct width - for (int i = 0, matrixLength = matrix.length; i < matrixLength; i++) { - matrix[i] = new BarcodeRow((width + 4) * 17 + 1); - } - this.width = width * 17; - this.height = height; - this.currentRow = -1; - } - - void set(int x, int y, byte value) { - matrix[y].set(x, value); - } - - /* - void setMatrix(int x, int y, boolean black) { - set(x, y, (byte) (black ? 1 : 0)); - } - */ - - void startRow() { - ++currentRow; - } - - BarcodeRow getCurrentRow() { - return matrix[currentRow]; - } - - public byte[][] getMatrix() { - return getScaledMatrix(1, 1); - } - - /* - public byte[][] getScaledMatrix(int scale) { - return getScaledMatrix(scale, scale); - } - */ - - public byte[][] getScaledMatrix(int xScale, int yScale) { - byte[][] matrixOut = new byte[height * yScale][width * xScale]; - int yMax = height * yScale; - for (int i = 0; i < yMax; i++) { - matrixOut[yMax - i - 1] = matrix[i / yScale].getScaledRow(xScale); - } - return matrixOut; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/BarcodeRow.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/BarcodeRow.java deleted file mode 100755 index 3ec70d58..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/BarcodeRow.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright 2011 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417.encoder; - -/** - * @author Jacob Haynes - */ -final class BarcodeRow { - - private final byte[] row; - //A tacker for position in the bar - private int currentLocation; - - /** - * Creates a Barcode row of the width - */ - BarcodeRow(int width) { - this.row = new byte[width]; - currentLocation = 0; - } - - /** - * Sets a specific location in the bar - * - * @param x The location in the bar - * @param value Black if true, white if false; - */ - void set(int x, byte value) { - row[x] = value; - } - - /** - * Sets a specific location in the bar - * - * @param x The location in the bar - * @param black Black if true, white if false; - */ - void set(int x, boolean black) { - row[x] = (byte) (black ? 1 : 0); - } - - /** - * @param black A boolean which is true if the bar black false if it is white - * @param width How many spots wide the bar is. - */ - void addBar(boolean black, int width) { - for (int ii = 0; ii < width; ii++) { - set(currentLocation++, black); - } - } - - /* - byte[] getRow() { - return row; - } - */ - - /** - * This function scales the row - * - * @param scale How much you want the image to be scaled, must be greater than or equal to 1. - * @return the scaled row - */ - byte[] getScaledRow(int scale) { - byte[] output = new byte[row.length * scale]; - for (int i = 0; i < output.length; i++) { - output[i] = row[i / scale]; - } - return output; - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/Compaction.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/Compaction.java deleted file mode 100755 index d0a85d60..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/Compaction.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright 2011 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417.encoder; - -public enum Compaction { - - AUTO, - TEXT, - BYTE, - NUMERIC - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/Dimensions.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/Dimensions.java deleted file mode 100755 index 83a736bd..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/Dimensions.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2012 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.pdf417.encoder; - -/** - * Data object to specify the minimum and maximum number of rows and columns for a PDF417 barcode. - * - * @author qwandor@google.com (Andrew Walbran) - */ -public final class Dimensions { - - private final int minCols; - private final int maxCols; - private final int minRows; - private final int maxRows; - - public Dimensions(int minCols, int maxCols, int minRows, int maxRows) { - this.minCols = minCols; - this.maxCols = maxCols; - this.minRows = minRows; - this.maxRows = maxRows; - } - - public int getMinCols() { - return minCols; - } - - public int getMaxCols() { - return maxCols; - } - - public int getMinRows() { - return minRows; - } - - public int getMaxRows() { - return maxRows; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/PDF417.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/PDF417.java deleted file mode 100755 index 17f17791..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/PDF417.java +++ /dev/null @@ -1,769 +0,0 @@ -/* - * Copyright 2006 Jeremias Maerki in part, and ZXing Authors in part - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * This file has been modified from its original form in Barcode4J. - */ - -package com.google.zxing.pdf417.encoder; - -import java.nio.charset.Charset; - -import com.google.zxing.WriterException; - -/** - * Top-level class for the logic part of the PDF417 implementation. - */ -public final class PDF417 { - - /** - * The start pattern (17 bits) - */ - private static final int START_PATTERN = 0x1fea8; - /** - * The stop pattern (18 bits) - */ - private static final int STOP_PATTERN = 0x3fa29; - - /** - * The codeword table from the Annex A of ISO/IEC 15438:2001(E). - */ - private static final int[][] CODEWORD_TABLE = { - {0x1d5c0, 0x1eaf0, 0x1f57c, 0x1d4e0, 0x1ea78, 0x1f53e, - 0x1a8c0, 0x1d470, 0x1a860, 0x15040, 0x1a830, 0x15020, - 0x1adc0, 0x1d6f0, 0x1eb7c, 0x1ace0, 0x1d678, 0x1eb3e, - 0x158c0, 0x1ac70, 0x15860, 0x15dc0, 0x1aef0, 0x1d77c, - 0x15ce0, 0x1ae78, 0x1d73e, 0x15c70, 0x1ae3c, 0x15ef0, - 0x1af7c, 0x15e78, 0x1af3e, 0x15f7c, 0x1f5fa, 0x1d2e0, - 0x1e978, 0x1f4be, 0x1a4c0, 0x1d270, 0x1e93c, 0x1a460, - 0x1d238, 0x14840, 0x1a430, 0x1d21c, 0x14820, 0x1a418, - 0x14810, 0x1a6e0, 0x1d378, 0x1e9be, 0x14cc0, 0x1a670, - 0x1d33c, 0x14c60, 0x1a638, 0x1d31e, 0x14c30, 0x1a61c, - 0x14ee0, 0x1a778, 0x1d3be, 0x14e70, 0x1a73c, 0x14e38, - 0x1a71e, 0x14f78, 0x1a7be, 0x14f3c, 0x14f1e, 0x1a2c0, - 0x1d170, 0x1e8bc, 0x1a260, 0x1d138, 0x1e89e, 0x14440, - 0x1a230, 0x1d11c, 0x14420, 0x1a218, 0x14410, 0x14408, - 0x146c0, 0x1a370, 0x1d1bc, 0x14660, 0x1a338, 0x1d19e, - 0x14630, 0x1a31c, 0x14618, 0x1460c, 0x14770, 0x1a3bc, - 0x14738, 0x1a39e, 0x1471c, 0x147bc, 0x1a160, 0x1d0b8, - 0x1e85e, 0x14240, 0x1a130, 0x1d09c, 0x14220, 0x1a118, - 0x1d08e, 0x14210, 0x1a10c, 0x14208, 0x1a106, 0x14360, - 0x1a1b8, 0x1d0de, 0x14330, 0x1a19c, 0x14318, 0x1a18e, - 0x1430c, 0x14306, 0x1a1de, 0x1438e, 0x14140, 0x1a0b0, - 0x1d05c, 0x14120, 0x1a098, 0x1d04e, 0x14110, 0x1a08c, - 0x14108, 0x1a086, 0x14104, 0x141b0, 0x14198, 0x1418c, - 0x140a0, 0x1d02e, 0x1a04c, 0x1a046, 0x14082, 0x1cae0, - 0x1e578, 0x1f2be, 0x194c0, 0x1ca70, 0x1e53c, 0x19460, - 0x1ca38, 0x1e51e, 0x12840, 0x19430, 0x12820, 0x196e0, - 0x1cb78, 0x1e5be, 0x12cc0, 0x19670, 0x1cb3c, 0x12c60, - 0x19638, 0x12c30, 0x12c18, 0x12ee0, 0x19778, 0x1cbbe, - 0x12e70, 0x1973c, 0x12e38, 0x12e1c, 0x12f78, 0x197be, - 0x12f3c, 0x12fbe, 0x1dac0, 0x1ed70, 0x1f6bc, 0x1da60, - 0x1ed38, 0x1f69e, 0x1b440, 0x1da30, 0x1ed1c, 0x1b420, - 0x1da18, 0x1ed0e, 0x1b410, 0x1da0c, 0x192c0, 0x1c970, - 0x1e4bc, 0x1b6c0, 0x19260, 0x1c938, 0x1e49e, 0x1b660, - 0x1db38, 0x1ed9e, 0x16c40, 0x12420, 0x19218, 0x1c90e, - 0x16c20, 0x1b618, 0x16c10, 0x126c0, 0x19370, 0x1c9bc, - 0x16ec0, 0x12660, 0x19338, 0x1c99e, 0x16e60, 0x1b738, - 0x1db9e, 0x16e30, 0x12618, 0x16e18, 0x12770, 0x193bc, - 0x16f70, 0x12738, 0x1939e, 0x16f38, 0x1b79e, 0x16f1c, - 0x127bc, 0x16fbc, 0x1279e, 0x16f9e, 0x1d960, 0x1ecb8, - 0x1f65e, 0x1b240, 0x1d930, 0x1ec9c, 0x1b220, 0x1d918, - 0x1ec8e, 0x1b210, 0x1d90c, 0x1b208, 0x1b204, 0x19160, - 0x1c8b8, 0x1e45e, 0x1b360, 0x19130, 0x1c89c, 0x16640, - 0x12220, 0x1d99c, 0x1c88e, 0x16620, 0x12210, 0x1910c, - 0x16610, 0x1b30c, 0x19106, 0x12204, 0x12360, 0x191b8, - 0x1c8de, 0x16760, 0x12330, 0x1919c, 0x16730, 0x1b39c, - 0x1918e, 0x16718, 0x1230c, 0x12306, 0x123b8, 0x191de, - 0x167b8, 0x1239c, 0x1679c, 0x1238e, 0x1678e, 0x167de, - 0x1b140, 0x1d8b0, 0x1ec5c, 0x1b120, 0x1d898, 0x1ec4e, - 0x1b110, 0x1d88c, 0x1b108, 0x1d886, 0x1b104, 0x1b102, - 0x12140, 0x190b0, 0x1c85c, 0x16340, 0x12120, 0x19098, - 0x1c84e, 0x16320, 0x1b198, 0x1d8ce, 0x16310, 0x12108, - 0x19086, 0x16308, 0x1b186, 0x16304, 0x121b0, 0x190dc, - 0x163b0, 0x12198, 0x190ce, 0x16398, 0x1b1ce, 0x1638c, - 0x12186, 0x16386, 0x163dc, 0x163ce, 0x1b0a0, 0x1d858, - 0x1ec2e, 0x1b090, 0x1d84c, 0x1b088, 0x1d846, 0x1b084, - 0x1b082, 0x120a0, 0x19058, 0x1c82e, 0x161a0, 0x12090, - 0x1904c, 0x16190, 0x1b0cc, 0x19046, 0x16188, 0x12084, - 0x16184, 0x12082, 0x120d8, 0x161d8, 0x161cc, 0x161c6, - 0x1d82c, 0x1d826, 0x1b042, 0x1902c, 0x12048, 0x160c8, - 0x160c4, 0x160c2, 0x18ac0, 0x1c570, 0x1e2bc, 0x18a60, - 0x1c538, 0x11440, 0x18a30, 0x1c51c, 0x11420, 0x18a18, - 0x11410, 0x11408, 0x116c0, 0x18b70, 0x1c5bc, 0x11660, - 0x18b38, 0x1c59e, 0x11630, 0x18b1c, 0x11618, 0x1160c, - 0x11770, 0x18bbc, 0x11738, 0x18b9e, 0x1171c, 0x117bc, - 0x1179e, 0x1cd60, 0x1e6b8, 0x1f35e, 0x19a40, 0x1cd30, - 0x1e69c, 0x19a20, 0x1cd18, 0x1e68e, 0x19a10, 0x1cd0c, - 0x19a08, 0x1cd06, 0x18960, 0x1c4b8, 0x1e25e, 0x19b60, - 0x18930, 0x1c49c, 0x13640, 0x11220, 0x1cd9c, 0x1c48e, - 0x13620, 0x19b18, 0x1890c, 0x13610, 0x11208, 0x13608, - 0x11360, 0x189b8, 0x1c4de, 0x13760, 0x11330, 0x1cdde, - 0x13730, 0x19b9c, 0x1898e, 0x13718, 0x1130c, 0x1370c, - 0x113b8, 0x189de, 0x137b8, 0x1139c, 0x1379c, 0x1138e, - 0x113de, 0x137de, 0x1dd40, 0x1eeb0, 0x1f75c, 0x1dd20, - 0x1ee98, 0x1f74e, 0x1dd10, 0x1ee8c, 0x1dd08, 0x1ee86, - 0x1dd04, 0x19940, 0x1ccb0, 0x1e65c, 0x1bb40, 0x19920, - 0x1eedc, 0x1e64e, 0x1bb20, 0x1dd98, 0x1eece, 0x1bb10, - 0x19908, 0x1cc86, 0x1bb08, 0x1dd86, 0x19902, 0x11140, - 0x188b0, 0x1c45c, 0x13340, 0x11120, 0x18898, 0x1c44e, - 0x17740, 0x13320, 0x19998, 0x1ccce, 0x17720, 0x1bb98, - 0x1ddce, 0x18886, 0x17710, 0x13308, 0x19986, 0x17708, - 0x11102, 0x111b0, 0x188dc, 0x133b0, 0x11198, 0x188ce, - 0x177b0, 0x13398, 0x199ce, 0x17798, 0x1bbce, 0x11186, - 0x13386, 0x111dc, 0x133dc, 0x111ce, 0x177dc, 0x133ce, - 0x1dca0, 0x1ee58, 0x1f72e, 0x1dc90, 0x1ee4c, 0x1dc88, - 0x1ee46, 0x1dc84, 0x1dc82, 0x198a0, 0x1cc58, 0x1e62e, - 0x1b9a0, 0x19890, 0x1ee6e, 0x1b990, 0x1dccc, 0x1cc46, - 0x1b988, 0x19884, 0x1b984, 0x19882, 0x1b982, 0x110a0, - 0x18858, 0x1c42e, 0x131a0, 0x11090, 0x1884c, 0x173a0, - 0x13190, 0x198cc, 0x18846, 0x17390, 0x1b9cc, 0x11084, - 0x17388, 0x13184, 0x11082, 0x13182, 0x110d8, 0x1886e, - 0x131d8, 0x110cc, 0x173d8, 0x131cc, 0x110c6, 0x173cc, - 0x131c6, 0x110ee, 0x173ee, 0x1dc50, 0x1ee2c, 0x1dc48, - 0x1ee26, 0x1dc44, 0x1dc42, 0x19850, 0x1cc2c, 0x1b8d0, - 0x19848, 0x1cc26, 0x1b8c8, 0x1dc66, 0x1b8c4, 0x19842, - 0x1b8c2, 0x11050, 0x1882c, 0x130d0, 0x11048, 0x18826, - 0x171d0, 0x130c8, 0x19866, 0x171c8, 0x1b8e6, 0x11042, - 0x171c4, 0x130c2, 0x171c2, 0x130ec, 0x171ec, 0x171e6, - 0x1ee16, 0x1dc22, 0x1cc16, 0x19824, 0x19822, 0x11028, - 0x13068, 0x170e8, 0x11022, 0x13062, 0x18560, 0x10a40, - 0x18530, 0x10a20, 0x18518, 0x1c28e, 0x10a10, 0x1850c, - 0x10a08, 0x18506, 0x10b60, 0x185b8, 0x1c2de, 0x10b30, - 0x1859c, 0x10b18, 0x1858e, 0x10b0c, 0x10b06, 0x10bb8, - 0x185de, 0x10b9c, 0x10b8e, 0x10bde, 0x18d40, 0x1c6b0, - 0x1e35c, 0x18d20, 0x1c698, 0x18d10, 0x1c68c, 0x18d08, - 0x1c686, 0x18d04, 0x10940, 0x184b0, 0x1c25c, 0x11b40, - 0x10920, 0x1c6dc, 0x1c24e, 0x11b20, 0x18d98, 0x1c6ce, - 0x11b10, 0x10908, 0x18486, 0x11b08, 0x18d86, 0x10902, - 0x109b0, 0x184dc, 0x11bb0, 0x10998, 0x184ce, 0x11b98, - 0x18dce, 0x11b8c, 0x10986, 0x109dc, 0x11bdc, 0x109ce, - 0x11bce, 0x1cea0, 0x1e758, 0x1f3ae, 0x1ce90, 0x1e74c, - 0x1ce88, 0x1e746, 0x1ce84, 0x1ce82, 0x18ca0, 0x1c658, - 0x19da0, 0x18c90, 0x1c64c, 0x19d90, 0x1cecc, 0x1c646, - 0x19d88, 0x18c84, 0x19d84, 0x18c82, 0x19d82, 0x108a0, - 0x18458, 0x119a0, 0x10890, 0x1c66e, 0x13ba0, 0x11990, - 0x18ccc, 0x18446, 0x13b90, 0x19dcc, 0x10884, 0x13b88, - 0x11984, 0x10882, 0x11982, 0x108d8, 0x1846e, 0x119d8, - 0x108cc, 0x13bd8, 0x119cc, 0x108c6, 0x13bcc, 0x119c6, - 0x108ee, 0x119ee, 0x13bee, 0x1ef50, 0x1f7ac, 0x1ef48, - 0x1f7a6, 0x1ef44, 0x1ef42, 0x1ce50, 0x1e72c, 0x1ded0, - 0x1ef6c, 0x1e726, 0x1dec8, 0x1ef66, 0x1dec4, 0x1ce42, - 0x1dec2, 0x18c50, 0x1c62c, 0x19cd0, 0x18c48, 0x1c626, - 0x1bdd0, 0x19cc8, 0x1ce66, 0x1bdc8, 0x1dee6, 0x18c42, - 0x1bdc4, 0x19cc2, 0x1bdc2, 0x10850, 0x1842c, 0x118d0, - 0x10848, 0x18426, 0x139d0, 0x118c8, 0x18c66, 0x17bd0, - 0x139c8, 0x19ce6, 0x10842, 0x17bc8, 0x1bde6, 0x118c2, - 0x17bc4, 0x1086c, 0x118ec, 0x10866, 0x139ec, 0x118e6, - 0x17bec, 0x139e6, 0x17be6, 0x1ef28, 0x1f796, 0x1ef24, - 0x1ef22, 0x1ce28, 0x1e716, 0x1de68, 0x1ef36, 0x1de64, - 0x1ce22, 0x1de62, 0x18c28, 0x1c616, 0x19c68, 0x18c24, - 0x1bce8, 0x19c64, 0x18c22, 0x1bce4, 0x19c62, 0x1bce2, - 0x10828, 0x18416, 0x11868, 0x18c36, 0x138e8, 0x11864, - 0x10822, 0x179e8, 0x138e4, 0x11862, 0x179e4, 0x138e2, - 0x179e2, 0x11876, 0x179f6, 0x1ef12, 0x1de34, 0x1de32, - 0x19c34, 0x1bc74, 0x1bc72, 0x11834, 0x13874, 0x178f4, - 0x178f2, 0x10540, 0x10520, 0x18298, 0x10510, 0x10508, - 0x10504, 0x105b0, 0x10598, 0x1058c, 0x10586, 0x105dc, - 0x105ce, 0x186a0, 0x18690, 0x1c34c, 0x18688, 0x1c346, - 0x18684, 0x18682, 0x104a0, 0x18258, 0x10da0, 0x186d8, - 0x1824c, 0x10d90, 0x186cc, 0x10d88, 0x186c6, 0x10d84, - 0x10482, 0x10d82, 0x104d8, 0x1826e, 0x10dd8, 0x186ee, - 0x10dcc, 0x104c6, 0x10dc6, 0x104ee, 0x10dee, 0x1c750, - 0x1c748, 0x1c744, 0x1c742, 0x18650, 0x18ed0, 0x1c76c, - 0x1c326, 0x18ec8, 0x1c766, 0x18ec4, 0x18642, 0x18ec2, - 0x10450, 0x10cd0, 0x10448, 0x18226, 0x11dd0, 0x10cc8, - 0x10444, 0x11dc8, 0x10cc4, 0x10442, 0x11dc4, 0x10cc2, - 0x1046c, 0x10cec, 0x10466, 0x11dec, 0x10ce6, 0x11de6, - 0x1e7a8, 0x1e7a4, 0x1e7a2, 0x1c728, 0x1cf68, 0x1e7b6, - 0x1cf64, 0x1c722, 0x1cf62, 0x18628, 0x1c316, 0x18e68, - 0x1c736, 0x19ee8, 0x18e64, 0x18622, 0x19ee4, 0x18e62, - 0x19ee2, 0x10428, 0x18216, 0x10c68, 0x18636, 0x11ce8, - 0x10c64, 0x10422, 0x13de8, 0x11ce4, 0x10c62, 0x13de4, - 0x11ce2, 0x10436, 0x10c76, 0x11cf6, 0x13df6, 0x1f7d4, - 0x1f7d2, 0x1e794, 0x1efb4, 0x1e792, 0x1efb2, 0x1c714, - 0x1cf34, 0x1c712, 0x1df74, 0x1cf32, 0x1df72, 0x18614, - 0x18e34, 0x18612, 0x19e74, 0x18e32, 0x1bef4}, - {0x1f560, 0x1fab8, 0x1ea40, 0x1f530, 0x1fa9c, 0x1ea20, - 0x1f518, 0x1fa8e, 0x1ea10, 0x1f50c, 0x1ea08, 0x1f506, - 0x1ea04, 0x1eb60, 0x1f5b8, 0x1fade, 0x1d640, 0x1eb30, - 0x1f59c, 0x1d620, 0x1eb18, 0x1f58e, 0x1d610, 0x1eb0c, - 0x1d608, 0x1eb06, 0x1d604, 0x1d760, 0x1ebb8, 0x1f5de, - 0x1ae40, 0x1d730, 0x1eb9c, 0x1ae20, 0x1d718, 0x1eb8e, - 0x1ae10, 0x1d70c, 0x1ae08, 0x1d706, 0x1ae04, 0x1af60, - 0x1d7b8, 0x1ebde, 0x15e40, 0x1af30, 0x1d79c, 0x15e20, - 0x1af18, 0x1d78e, 0x15e10, 0x1af0c, 0x15e08, 0x1af06, - 0x15f60, 0x1afb8, 0x1d7de, 0x15f30, 0x1af9c, 0x15f18, - 0x1af8e, 0x15f0c, 0x15fb8, 0x1afde, 0x15f9c, 0x15f8e, - 0x1e940, 0x1f4b0, 0x1fa5c, 0x1e920, 0x1f498, 0x1fa4e, - 0x1e910, 0x1f48c, 0x1e908, 0x1f486, 0x1e904, 0x1e902, - 0x1d340, 0x1e9b0, 0x1f4dc, 0x1d320, 0x1e998, 0x1f4ce, - 0x1d310, 0x1e98c, 0x1d308, 0x1e986, 0x1d304, 0x1d302, - 0x1a740, 0x1d3b0, 0x1e9dc, 0x1a720, 0x1d398, 0x1e9ce, - 0x1a710, 0x1d38c, 0x1a708, 0x1d386, 0x1a704, 0x1a702, - 0x14f40, 0x1a7b0, 0x1d3dc, 0x14f20, 0x1a798, 0x1d3ce, - 0x14f10, 0x1a78c, 0x14f08, 0x1a786, 0x14f04, 0x14fb0, - 0x1a7dc, 0x14f98, 0x1a7ce, 0x14f8c, 0x14f86, 0x14fdc, - 0x14fce, 0x1e8a0, 0x1f458, 0x1fa2e, 0x1e890, 0x1f44c, - 0x1e888, 0x1f446, 0x1e884, 0x1e882, 0x1d1a0, 0x1e8d8, - 0x1f46e, 0x1d190, 0x1e8cc, 0x1d188, 0x1e8c6, 0x1d184, - 0x1d182, 0x1a3a0, 0x1d1d8, 0x1e8ee, 0x1a390, 0x1d1cc, - 0x1a388, 0x1d1c6, 0x1a384, 0x1a382, 0x147a0, 0x1a3d8, - 0x1d1ee, 0x14790, 0x1a3cc, 0x14788, 0x1a3c6, 0x14784, - 0x14782, 0x147d8, 0x1a3ee, 0x147cc, 0x147c6, 0x147ee, - 0x1e850, 0x1f42c, 0x1e848, 0x1f426, 0x1e844, 0x1e842, - 0x1d0d0, 0x1e86c, 0x1d0c8, 0x1e866, 0x1d0c4, 0x1d0c2, - 0x1a1d0, 0x1d0ec, 0x1a1c8, 0x1d0e6, 0x1a1c4, 0x1a1c2, - 0x143d0, 0x1a1ec, 0x143c8, 0x1a1e6, 0x143c4, 0x143c2, - 0x143ec, 0x143e6, 0x1e828, 0x1f416, 0x1e824, 0x1e822, - 0x1d068, 0x1e836, 0x1d064, 0x1d062, 0x1a0e8, 0x1d076, - 0x1a0e4, 0x1a0e2, 0x141e8, 0x1a0f6, 0x141e4, 0x141e2, - 0x1e814, 0x1e812, 0x1d034, 0x1d032, 0x1a074, 0x1a072, - 0x1e540, 0x1f2b0, 0x1f95c, 0x1e520, 0x1f298, 0x1f94e, - 0x1e510, 0x1f28c, 0x1e508, 0x1f286, 0x1e504, 0x1e502, - 0x1cb40, 0x1e5b0, 0x1f2dc, 0x1cb20, 0x1e598, 0x1f2ce, - 0x1cb10, 0x1e58c, 0x1cb08, 0x1e586, 0x1cb04, 0x1cb02, - 0x19740, 0x1cbb0, 0x1e5dc, 0x19720, 0x1cb98, 0x1e5ce, - 0x19710, 0x1cb8c, 0x19708, 0x1cb86, 0x19704, 0x19702, - 0x12f40, 0x197b0, 0x1cbdc, 0x12f20, 0x19798, 0x1cbce, - 0x12f10, 0x1978c, 0x12f08, 0x19786, 0x12f04, 0x12fb0, - 0x197dc, 0x12f98, 0x197ce, 0x12f8c, 0x12f86, 0x12fdc, - 0x12fce, 0x1f6a0, 0x1fb58, 0x16bf0, 0x1f690, 0x1fb4c, - 0x169f8, 0x1f688, 0x1fb46, 0x168fc, 0x1f684, 0x1f682, - 0x1e4a0, 0x1f258, 0x1f92e, 0x1eda0, 0x1e490, 0x1fb6e, - 0x1ed90, 0x1f6cc, 0x1f246, 0x1ed88, 0x1e484, 0x1ed84, - 0x1e482, 0x1ed82, 0x1c9a0, 0x1e4d8, 0x1f26e, 0x1dba0, - 0x1c990, 0x1e4cc, 0x1db90, 0x1edcc, 0x1e4c6, 0x1db88, - 0x1c984, 0x1db84, 0x1c982, 0x1db82, 0x193a0, 0x1c9d8, - 0x1e4ee, 0x1b7a0, 0x19390, 0x1c9cc, 0x1b790, 0x1dbcc, - 0x1c9c6, 0x1b788, 0x19384, 0x1b784, 0x19382, 0x1b782, - 0x127a0, 0x193d8, 0x1c9ee, 0x16fa0, 0x12790, 0x193cc, - 0x16f90, 0x1b7cc, 0x193c6, 0x16f88, 0x12784, 0x16f84, - 0x12782, 0x127d8, 0x193ee, 0x16fd8, 0x127cc, 0x16fcc, - 0x127c6, 0x16fc6, 0x127ee, 0x1f650, 0x1fb2c, 0x165f8, - 0x1f648, 0x1fb26, 0x164fc, 0x1f644, 0x1647e, 0x1f642, - 0x1e450, 0x1f22c, 0x1ecd0, 0x1e448, 0x1f226, 0x1ecc8, - 0x1f666, 0x1ecc4, 0x1e442, 0x1ecc2, 0x1c8d0, 0x1e46c, - 0x1d9d0, 0x1c8c8, 0x1e466, 0x1d9c8, 0x1ece6, 0x1d9c4, - 0x1c8c2, 0x1d9c2, 0x191d0, 0x1c8ec, 0x1b3d0, 0x191c8, - 0x1c8e6, 0x1b3c8, 0x1d9e6, 0x1b3c4, 0x191c2, 0x1b3c2, - 0x123d0, 0x191ec, 0x167d0, 0x123c8, 0x191e6, 0x167c8, - 0x1b3e6, 0x167c4, 0x123c2, 0x167c2, 0x123ec, 0x167ec, - 0x123e6, 0x167e6, 0x1f628, 0x1fb16, 0x162fc, 0x1f624, - 0x1627e, 0x1f622, 0x1e428, 0x1f216, 0x1ec68, 0x1f636, - 0x1ec64, 0x1e422, 0x1ec62, 0x1c868, 0x1e436, 0x1d8e8, - 0x1c864, 0x1d8e4, 0x1c862, 0x1d8e2, 0x190e8, 0x1c876, - 0x1b1e8, 0x1d8f6, 0x1b1e4, 0x190e2, 0x1b1e2, 0x121e8, - 0x190f6, 0x163e8, 0x121e4, 0x163e4, 0x121e2, 0x163e2, - 0x121f6, 0x163f6, 0x1f614, 0x1617e, 0x1f612, 0x1e414, - 0x1ec34, 0x1e412, 0x1ec32, 0x1c834, 0x1d874, 0x1c832, - 0x1d872, 0x19074, 0x1b0f4, 0x19072, 0x1b0f2, 0x120f4, - 0x161f4, 0x120f2, 0x161f2, 0x1f60a, 0x1e40a, 0x1ec1a, - 0x1c81a, 0x1d83a, 0x1903a, 0x1b07a, 0x1e2a0, 0x1f158, - 0x1f8ae, 0x1e290, 0x1f14c, 0x1e288, 0x1f146, 0x1e284, - 0x1e282, 0x1c5a0, 0x1e2d8, 0x1f16e, 0x1c590, 0x1e2cc, - 0x1c588, 0x1e2c6, 0x1c584, 0x1c582, 0x18ba0, 0x1c5d8, - 0x1e2ee, 0x18b90, 0x1c5cc, 0x18b88, 0x1c5c6, 0x18b84, - 0x18b82, 0x117a0, 0x18bd8, 0x1c5ee, 0x11790, 0x18bcc, - 0x11788, 0x18bc6, 0x11784, 0x11782, 0x117d8, 0x18bee, - 0x117cc, 0x117c6, 0x117ee, 0x1f350, 0x1f9ac, 0x135f8, - 0x1f348, 0x1f9a6, 0x134fc, 0x1f344, 0x1347e, 0x1f342, - 0x1e250, 0x1f12c, 0x1e6d0, 0x1e248, 0x1f126, 0x1e6c8, - 0x1f366, 0x1e6c4, 0x1e242, 0x1e6c2, 0x1c4d0, 0x1e26c, - 0x1cdd0, 0x1c4c8, 0x1e266, 0x1cdc8, 0x1e6e6, 0x1cdc4, - 0x1c4c2, 0x1cdc2, 0x189d0, 0x1c4ec, 0x19bd0, 0x189c8, - 0x1c4e6, 0x19bc8, 0x1cde6, 0x19bc4, 0x189c2, 0x19bc2, - 0x113d0, 0x189ec, 0x137d0, 0x113c8, 0x189e6, 0x137c8, - 0x19be6, 0x137c4, 0x113c2, 0x137c2, 0x113ec, 0x137ec, - 0x113e6, 0x137e6, 0x1fba8, 0x175f0, 0x1bafc, 0x1fba4, - 0x174f8, 0x1ba7e, 0x1fba2, 0x1747c, 0x1743e, 0x1f328, - 0x1f996, 0x132fc, 0x1f768, 0x1fbb6, 0x176fc, 0x1327e, - 0x1f764, 0x1f322, 0x1767e, 0x1f762, 0x1e228, 0x1f116, - 0x1e668, 0x1e224, 0x1eee8, 0x1f776, 0x1e222, 0x1eee4, - 0x1e662, 0x1eee2, 0x1c468, 0x1e236, 0x1cce8, 0x1c464, - 0x1dde8, 0x1cce4, 0x1c462, 0x1dde4, 0x1cce2, 0x1dde2, - 0x188e8, 0x1c476, 0x199e8, 0x188e4, 0x1bbe8, 0x199e4, - 0x188e2, 0x1bbe4, 0x199e2, 0x1bbe2, 0x111e8, 0x188f6, - 0x133e8, 0x111e4, 0x177e8, 0x133e4, 0x111e2, 0x177e4, - 0x133e2, 0x177e2, 0x111f6, 0x133f6, 0x1fb94, 0x172f8, - 0x1b97e, 0x1fb92, 0x1727c, 0x1723e, 0x1f314, 0x1317e, - 0x1f734, 0x1f312, 0x1737e, 0x1f732, 0x1e214, 0x1e634, - 0x1e212, 0x1ee74, 0x1e632, 0x1ee72, 0x1c434, 0x1cc74, - 0x1c432, 0x1dcf4, 0x1cc72, 0x1dcf2, 0x18874, 0x198f4, - 0x18872, 0x1b9f4, 0x198f2, 0x1b9f2, 0x110f4, 0x131f4, - 0x110f2, 0x173f4, 0x131f2, 0x173f2, 0x1fb8a, 0x1717c, - 0x1713e, 0x1f30a, 0x1f71a, 0x1e20a, 0x1e61a, 0x1ee3a, - 0x1c41a, 0x1cc3a, 0x1dc7a, 0x1883a, 0x1987a, 0x1b8fa, - 0x1107a, 0x130fa, 0x171fa, 0x170be, 0x1e150, 0x1f0ac, - 0x1e148, 0x1f0a6, 0x1e144, 0x1e142, 0x1c2d0, 0x1e16c, - 0x1c2c8, 0x1e166, 0x1c2c4, 0x1c2c2, 0x185d0, 0x1c2ec, - 0x185c8, 0x1c2e6, 0x185c4, 0x185c2, 0x10bd0, 0x185ec, - 0x10bc8, 0x185e6, 0x10bc4, 0x10bc2, 0x10bec, 0x10be6, - 0x1f1a8, 0x1f8d6, 0x11afc, 0x1f1a4, 0x11a7e, 0x1f1a2, - 0x1e128, 0x1f096, 0x1e368, 0x1e124, 0x1e364, 0x1e122, - 0x1e362, 0x1c268, 0x1e136, 0x1c6e8, 0x1c264, 0x1c6e4, - 0x1c262, 0x1c6e2, 0x184e8, 0x1c276, 0x18de8, 0x184e4, - 0x18de4, 0x184e2, 0x18de2, 0x109e8, 0x184f6, 0x11be8, - 0x109e4, 0x11be4, 0x109e2, 0x11be2, 0x109f6, 0x11bf6, - 0x1f9d4, 0x13af8, 0x19d7e, 0x1f9d2, 0x13a7c, 0x13a3e, - 0x1f194, 0x1197e, 0x1f3b4, 0x1f192, 0x13b7e, 0x1f3b2, - 0x1e114, 0x1e334, 0x1e112, 0x1e774, 0x1e332, 0x1e772, - 0x1c234, 0x1c674, 0x1c232, 0x1cef4, 0x1c672, 0x1cef2, - 0x18474, 0x18cf4, 0x18472, 0x19df4, 0x18cf2, 0x19df2, - 0x108f4, 0x119f4, 0x108f2, 0x13bf4, 0x119f2, 0x13bf2, - 0x17af0, 0x1bd7c, 0x17a78, 0x1bd3e, 0x17a3c, 0x17a1e, - 0x1f9ca, 0x1397c, 0x1fbda, 0x17b7c, 0x1393e, 0x17b3e, - 0x1f18a, 0x1f39a, 0x1f7ba, 0x1e10a, 0x1e31a, 0x1e73a, - 0x1ef7a, 0x1c21a, 0x1c63a, 0x1ce7a, 0x1defa, 0x1843a, - 0x18c7a, 0x19cfa, 0x1bdfa, 0x1087a, 0x118fa, 0x139fa, - 0x17978, 0x1bcbe, 0x1793c, 0x1791e, 0x138be, 0x179be, - 0x178bc, 0x1789e, 0x1785e, 0x1e0a8, 0x1e0a4, 0x1e0a2, - 0x1c168, 0x1e0b6, 0x1c164, 0x1c162, 0x182e8, 0x1c176, - 0x182e4, 0x182e2, 0x105e8, 0x182f6, 0x105e4, 0x105e2, - 0x105f6, 0x1f0d4, 0x10d7e, 0x1f0d2, 0x1e094, 0x1e1b4, - 0x1e092, 0x1e1b2, 0x1c134, 0x1c374, 0x1c132, 0x1c372, - 0x18274, 0x186f4, 0x18272, 0x186f2, 0x104f4, 0x10df4, - 0x104f2, 0x10df2, 0x1f8ea, 0x11d7c, 0x11d3e, 0x1f0ca, - 0x1f1da, 0x1e08a, 0x1e19a, 0x1e3ba, 0x1c11a, 0x1c33a, - 0x1c77a, 0x1823a, 0x1867a, 0x18efa, 0x1047a, 0x10cfa, - 0x11dfa, 0x13d78, 0x19ebe, 0x13d3c, 0x13d1e, 0x11cbe, - 0x13dbe, 0x17d70, 0x1bebc, 0x17d38, 0x1be9e, 0x17d1c, - 0x17d0e, 0x13cbc, 0x17dbc, 0x13c9e, 0x17d9e, 0x17cb8, - 0x1be5e, 0x17c9c, 0x17c8e, 0x13c5e, 0x17cde, 0x17c5c, - 0x17c4e, 0x17c2e, 0x1c0b4, 0x1c0b2, 0x18174, 0x18172, - 0x102f4, 0x102f2, 0x1e0da, 0x1c09a, 0x1c1ba, 0x1813a, - 0x1837a, 0x1027a, 0x106fa, 0x10ebe, 0x11ebc, 0x11e9e, - 0x13eb8, 0x19f5e, 0x13e9c, 0x13e8e, 0x11e5e, 0x13ede, - 0x17eb0, 0x1bf5c, 0x17e98, 0x1bf4e, 0x17e8c, 0x17e86, - 0x13e5c, 0x17edc, 0x13e4e, 0x17ece, 0x17e58, 0x1bf2e, - 0x17e4c, 0x17e46, 0x13e2e, 0x17e6e, 0x17e2c, 0x17e26, - 0x10f5e, 0x11f5c, 0x11f4e, 0x13f58, 0x19fae, 0x13f4c, - 0x13f46, 0x11f2e, 0x13f6e, 0x13f2c, 0x13f26}, - {0x1abe0, 0x1d5f8, 0x153c0, 0x1a9f0, 0x1d4fc, 0x151e0, - 0x1a8f8, 0x1d47e, 0x150f0, 0x1a87c, 0x15078, 0x1fad0, - 0x15be0, 0x1adf8, 0x1fac8, 0x159f0, 0x1acfc, 0x1fac4, - 0x158f8, 0x1ac7e, 0x1fac2, 0x1587c, 0x1f5d0, 0x1faec, - 0x15df8, 0x1f5c8, 0x1fae6, 0x15cfc, 0x1f5c4, 0x15c7e, - 0x1f5c2, 0x1ebd0, 0x1f5ec, 0x1ebc8, 0x1f5e6, 0x1ebc4, - 0x1ebc2, 0x1d7d0, 0x1ebec, 0x1d7c8, 0x1ebe6, 0x1d7c4, - 0x1d7c2, 0x1afd0, 0x1d7ec, 0x1afc8, 0x1d7e6, 0x1afc4, - 0x14bc0, 0x1a5f0, 0x1d2fc, 0x149e0, 0x1a4f8, 0x1d27e, - 0x148f0, 0x1a47c, 0x14878, 0x1a43e, 0x1483c, 0x1fa68, - 0x14df0, 0x1a6fc, 0x1fa64, 0x14cf8, 0x1a67e, 0x1fa62, - 0x14c7c, 0x14c3e, 0x1f4e8, 0x1fa76, 0x14efc, 0x1f4e4, - 0x14e7e, 0x1f4e2, 0x1e9e8, 0x1f4f6, 0x1e9e4, 0x1e9e2, - 0x1d3e8, 0x1e9f6, 0x1d3e4, 0x1d3e2, 0x1a7e8, 0x1d3f6, - 0x1a7e4, 0x1a7e2, 0x145e0, 0x1a2f8, 0x1d17e, 0x144f0, - 0x1a27c, 0x14478, 0x1a23e, 0x1443c, 0x1441e, 0x1fa34, - 0x146f8, 0x1a37e, 0x1fa32, 0x1467c, 0x1463e, 0x1f474, - 0x1477e, 0x1f472, 0x1e8f4, 0x1e8f2, 0x1d1f4, 0x1d1f2, - 0x1a3f4, 0x1a3f2, 0x142f0, 0x1a17c, 0x14278, 0x1a13e, - 0x1423c, 0x1421e, 0x1fa1a, 0x1437c, 0x1433e, 0x1f43a, - 0x1e87a, 0x1d0fa, 0x14178, 0x1a0be, 0x1413c, 0x1411e, - 0x141be, 0x140bc, 0x1409e, 0x12bc0, 0x195f0, 0x1cafc, - 0x129e0, 0x194f8, 0x1ca7e, 0x128f0, 0x1947c, 0x12878, - 0x1943e, 0x1283c, 0x1f968, 0x12df0, 0x196fc, 0x1f964, - 0x12cf8, 0x1967e, 0x1f962, 0x12c7c, 0x12c3e, 0x1f2e8, - 0x1f976, 0x12efc, 0x1f2e4, 0x12e7e, 0x1f2e2, 0x1e5e8, - 0x1f2f6, 0x1e5e4, 0x1e5e2, 0x1cbe8, 0x1e5f6, 0x1cbe4, - 0x1cbe2, 0x197e8, 0x1cbf6, 0x197e4, 0x197e2, 0x1b5e0, - 0x1daf8, 0x1ed7e, 0x169c0, 0x1b4f0, 0x1da7c, 0x168e0, - 0x1b478, 0x1da3e, 0x16870, 0x1b43c, 0x16838, 0x1b41e, - 0x1681c, 0x125e0, 0x192f8, 0x1c97e, 0x16de0, 0x124f0, - 0x1927c, 0x16cf0, 0x1b67c, 0x1923e, 0x16c78, 0x1243c, - 0x16c3c, 0x1241e, 0x16c1e, 0x1f934, 0x126f8, 0x1937e, - 0x1fb74, 0x1f932, 0x16ef8, 0x1267c, 0x1fb72, 0x16e7c, - 0x1263e, 0x16e3e, 0x1f274, 0x1277e, 0x1f6f4, 0x1f272, - 0x16f7e, 0x1f6f2, 0x1e4f4, 0x1edf4, 0x1e4f2, 0x1edf2, - 0x1c9f4, 0x1dbf4, 0x1c9f2, 0x1dbf2, 0x193f4, 0x193f2, - 0x165c0, 0x1b2f0, 0x1d97c, 0x164e0, 0x1b278, 0x1d93e, - 0x16470, 0x1b23c, 0x16438, 0x1b21e, 0x1641c, 0x1640e, - 0x122f0, 0x1917c, 0x166f0, 0x12278, 0x1913e, 0x16678, - 0x1b33e, 0x1663c, 0x1221e, 0x1661e, 0x1f91a, 0x1237c, - 0x1fb3a, 0x1677c, 0x1233e, 0x1673e, 0x1f23a, 0x1f67a, - 0x1e47a, 0x1ecfa, 0x1c8fa, 0x1d9fa, 0x191fa, 0x162e0, - 0x1b178, 0x1d8be, 0x16270, 0x1b13c, 0x16238, 0x1b11e, - 0x1621c, 0x1620e, 0x12178, 0x190be, 0x16378, 0x1213c, - 0x1633c, 0x1211e, 0x1631e, 0x121be, 0x163be, 0x16170, - 0x1b0bc, 0x16138, 0x1b09e, 0x1611c, 0x1610e, 0x120bc, - 0x161bc, 0x1209e, 0x1619e, 0x160b8, 0x1b05e, 0x1609c, - 0x1608e, 0x1205e, 0x160de, 0x1605c, 0x1604e, 0x115e0, - 0x18af8, 0x1c57e, 0x114f0, 0x18a7c, 0x11478, 0x18a3e, - 0x1143c, 0x1141e, 0x1f8b4, 0x116f8, 0x18b7e, 0x1f8b2, - 0x1167c, 0x1163e, 0x1f174, 0x1177e, 0x1f172, 0x1e2f4, - 0x1e2f2, 0x1c5f4, 0x1c5f2, 0x18bf4, 0x18bf2, 0x135c0, - 0x19af0, 0x1cd7c, 0x134e0, 0x19a78, 0x1cd3e, 0x13470, - 0x19a3c, 0x13438, 0x19a1e, 0x1341c, 0x1340e, 0x112f0, - 0x1897c, 0x136f0, 0x11278, 0x1893e, 0x13678, 0x19b3e, - 0x1363c, 0x1121e, 0x1361e, 0x1f89a, 0x1137c, 0x1f9ba, - 0x1377c, 0x1133e, 0x1373e, 0x1f13a, 0x1f37a, 0x1e27a, - 0x1e6fa, 0x1c4fa, 0x1cdfa, 0x189fa, 0x1bae0, 0x1dd78, - 0x1eebe, 0x174c0, 0x1ba70, 0x1dd3c, 0x17460, 0x1ba38, - 0x1dd1e, 0x17430, 0x1ba1c, 0x17418, 0x1ba0e, 0x1740c, - 0x132e0, 0x19978, 0x1ccbe, 0x176e0, 0x13270, 0x1993c, - 0x17670, 0x1bb3c, 0x1991e, 0x17638, 0x1321c, 0x1761c, - 0x1320e, 0x1760e, 0x11178, 0x188be, 0x13378, 0x1113c, - 0x17778, 0x1333c, 0x1111e, 0x1773c, 0x1331e, 0x1771e, - 0x111be, 0x133be, 0x177be, 0x172c0, 0x1b970, 0x1dcbc, - 0x17260, 0x1b938, 0x1dc9e, 0x17230, 0x1b91c, 0x17218, - 0x1b90e, 0x1720c, 0x17206, 0x13170, 0x198bc, 0x17370, - 0x13138, 0x1989e, 0x17338, 0x1b99e, 0x1731c, 0x1310e, - 0x1730e, 0x110bc, 0x131bc, 0x1109e, 0x173bc, 0x1319e, - 0x1739e, 0x17160, 0x1b8b8, 0x1dc5e, 0x17130, 0x1b89c, - 0x17118, 0x1b88e, 0x1710c, 0x17106, 0x130b8, 0x1985e, - 0x171b8, 0x1309c, 0x1719c, 0x1308e, 0x1718e, 0x1105e, - 0x130de, 0x171de, 0x170b0, 0x1b85c, 0x17098, 0x1b84e, - 0x1708c, 0x17086, 0x1305c, 0x170dc, 0x1304e, 0x170ce, - 0x17058, 0x1b82e, 0x1704c, 0x17046, 0x1302e, 0x1706e, - 0x1702c, 0x17026, 0x10af0, 0x1857c, 0x10a78, 0x1853e, - 0x10a3c, 0x10a1e, 0x10b7c, 0x10b3e, 0x1f0ba, 0x1e17a, - 0x1c2fa, 0x185fa, 0x11ae0, 0x18d78, 0x1c6be, 0x11a70, - 0x18d3c, 0x11a38, 0x18d1e, 0x11a1c, 0x11a0e, 0x10978, - 0x184be, 0x11b78, 0x1093c, 0x11b3c, 0x1091e, 0x11b1e, - 0x109be, 0x11bbe, 0x13ac0, 0x19d70, 0x1cebc, 0x13a60, - 0x19d38, 0x1ce9e, 0x13a30, 0x19d1c, 0x13a18, 0x19d0e, - 0x13a0c, 0x13a06, 0x11970, 0x18cbc, 0x13b70, 0x11938, - 0x18c9e, 0x13b38, 0x1191c, 0x13b1c, 0x1190e, 0x13b0e, - 0x108bc, 0x119bc, 0x1089e, 0x13bbc, 0x1199e, 0x13b9e, - 0x1bd60, 0x1deb8, 0x1ef5e, 0x17a40, 0x1bd30, 0x1de9c, - 0x17a20, 0x1bd18, 0x1de8e, 0x17a10, 0x1bd0c, 0x17a08, - 0x1bd06, 0x17a04, 0x13960, 0x19cb8, 0x1ce5e, 0x17b60, - 0x13930, 0x19c9c, 0x17b30, 0x1bd9c, 0x19c8e, 0x17b18, - 0x1390c, 0x17b0c, 0x13906, 0x17b06, 0x118b8, 0x18c5e, - 0x139b8, 0x1189c, 0x17bb8, 0x1399c, 0x1188e, 0x17b9c, - 0x1398e, 0x17b8e, 0x1085e, 0x118de, 0x139de, 0x17bde, - 0x17940, 0x1bcb0, 0x1de5c, 0x17920, 0x1bc98, 0x1de4e, - 0x17910, 0x1bc8c, 0x17908, 0x1bc86, 0x17904, 0x17902, - 0x138b0, 0x19c5c, 0x179b0, 0x13898, 0x19c4e, 0x17998, - 0x1bcce, 0x1798c, 0x13886, 0x17986, 0x1185c, 0x138dc, - 0x1184e, 0x179dc, 0x138ce, 0x179ce, 0x178a0, 0x1bc58, - 0x1de2e, 0x17890, 0x1bc4c, 0x17888, 0x1bc46, 0x17884, - 0x17882, 0x13858, 0x19c2e, 0x178d8, 0x1384c, 0x178cc, - 0x13846, 0x178c6, 0x1182e, 0x1386e, 0x178ee, 0x17850, - 0x1bc2c, 0x17848, 0x1bc26, 0x17844, 0x17842, 0x1382c, - 0x1786c, 0x13826, 0x17866, 0x17828, 0x1bc16, 0x17824, - 0x17822, 0x13816, 0x17836, 0x10578, 0x182be, 0x1053c, - 0x1051e, 0x105be, 0x10d70, 0x186bc, 0x10d38, 0x1869e, - 0x10d1c, 0x10d0e, 0x104bc, 0x10dbc, 0x1049e, 0x10d9e, - 0x11d60, 0x18eb8, 0x1c75e, 0x11d30, 0x18e9c, 0x11d18, - 0x18e8e, 0x11d0c, 0x11d06, 0x10cb8, 0x1865e, 0x11db8, - 0x10c9c, 0x11d9c, 0x10c8e, 0x11d8e, 0x1045e, 0x10cde, - 0x11dde, 0x13d40, 0x19eb0, 0x1cf5c, 0x13d20, 0x19e98, - 0x1cf4e, 0x13d10, 0x19e8c, 0x13d08, 0x19e86, 0x13d04, - 0x13d02, 0x11cb0, 0x18e5c, 0x13db0, 0x11c98, 0x18e4e, - 0x13d98, 0x19ece, 0x13d8c, 0x11c86, 0x13d86, 0x10c5c, - 0x11cdc, 0x10c4e, 0x13ddc, 0x11cce, 0x13dce, 0x1bea0, - 0x1df58, 0x1efae, 0x1be90, 0x1df4c, 0x1be88, 0x1df46, - 0x1be84, 0x1be82, 0x13ca0, 0x19e58, 0x1cf2e, 0x17da0, - 0x13c90, 0x19e4c, 0x17d90, 0x1becc, 0x19e46, 0x17d88, - 0x13c84, 0x17d84, 0x13c82, 0x17d82, 0x11c58, 0x18e2e, - 0x13cd8, 0x11c4c, 0x17dd8, 0x13ccc, 0x11c46, 0x17dcc, - 0x13cc6, 0x17dc6, 0x10c2e, 0x11c6e, 0x13cee, 0x17dee, - 0x1be50, 0x1df2c, 0x1be48, 0x1df26, 0x1be44, 0x1be42, - 0x13c50, 0x19e2c, 0x17cd0, 0x13c48, 0x19e26, 0x17cc8, - 0x1be66, 0x17cc4, 0x13c42, 0x17cc2, 0x11c2c, 0x13c6c, - 0x11c26, 0x17cec, 0x13c66, 0x17ce6, 0x1be28, 0x1df16, - 0x1be24, 0x1be22, 0x13c28, 0x19e16, 0x17c68, 0x13c24, - 0x17c64, 0x13c22, 0x17c62, 0x11c16, 0x13c36, 0x17c76, - 0x1be14, 0x1be12, 0x13c14, 0x17c34, 0x13c12, 0x17c32, - 0x102bc, 0x1029e, 0x106b8, 0x1835e, 0x1069c, 0x1068e, - 0x1025e, 0x106de, 0x10eb0, 0x1875c, 0x10e98, 0x1874e, - 0x10e8c, 0x10e86, 0x1065c, 0x10edc, 0x1064e, 0x10ece, - 0x11ea0, 0x18f58, 0x1c7ae, 0x11e90, 0x18f4c, 0x11e88, - 0x18f46, 0x11e84, 0x11e82, 0x10e58, 0x1872e, 0x11ed8, - 0x18f6e, 0x11ecc, 0x10e46, 0x11ec6, 0x1062e, 0x10e6e, - 0x11eee, 0x19f50, 0x1cfac, 0x19f48, 0x1cfa6, 0x19f44, - 0x19f42, 0x11e50, 0x18f2c, 0x13ed0, 0x19f6c, 0x18f26, - 0x13ec8, 0x11e44, 0x13ec4, 0x11e42, 0x13ec2, 0x10e2c, - 0x11e6c, 0x10e26, 0x13eec, 0x11e66, 0x13ee6, 0x1dfa8, - 0x1efd6, 0x1dfa4, 0x1dfa2, 0x19f28, 0x1cf96, 0x1bf68, - 0x19f24, 0x1bf64, 0x19f22, 0x1bf62, 0x11e28, 0x18f16, - 0x13e68, 0x11e24, 0x17ee8, 0x13e64, 0x11e22, 0x17ee4, - 0x13e62, 0x17ee2, 0x10e16, 0x11e36, 0x13e76, 0x17ef6, - 0x1df94, 0x1df92, 0x19f14, 0x1bf34, 0x19f12, 0x1bf32, - 0x11e14, 0x13e34, 0x11e12, 0x17e74, 0x13e32, 0x17e72, - 0x1df8a, 0x19f0a, 0x1bf1a, 0x11e0a, 0x13e1a, 0x17e3a, - 0x1035c, 0x1034e, 0x10758, 0x183ae, 0x1074c, 0x10746, - 0x1032e, 0x1076e, 0x10f50, 0x187ac, 0x10f48, 0x187a6, - 0x10f44, 0x10f42, 0x1072c, 0x10f6c, 0x10726, 0x10f66, - 0x18fa8, 0x1c7d6, 0x18fa4, 0x18fa2, 0x10f28, 0x18796, - 0x11f68, 0x18fb6, 0x11f64, 0x10f22, 0x11f62, 0x10716, - 0x10f36, 0x11f76, 0x1cfd4, 0x1cfd2, 0x18f94, 0x19fb4, - 0x18f92, 0x19fb2, 0x10f14, 0x11f34, 0x10f12, 0x13f74, - 0x11f32, 0x13f72, 0x1cfca, 0x18f8a, 0x19f9a, 0x10f0a, - 0x11f1a, 0x13f3a, 0x103ac, 0x103a6, 0x107a8, 0x183d6, - 0x107a4, 0x107a2, 0x10396, 0x107b6, 0x187d4, 0x187d2, - 0x10794, 0x10fb4, 0x10792, 0x10fb2, 0x1c7ea}}; - - private static final float PREFERRED_RATIO = 3.0f; - private static final float DEFAULT_MODULE_WIDTH = 0.357f; //1px in mm - private static final float HEIGHT = 2.0f; //mm - - private BarcodeMatrix barcodeMatrix; - private boolean compact; - private Compaction compaction; - private Charset encoding; - private int minCols; - private int maxCols; - private int maxRows; - private int minRows; - - public PDF417() { - this(false); - } - - public PDF417(boolean compact) { - this.compact = compact; - compaction = Compaction.AUTO; - encoding = null; // Use default - minCols = 2; - maxCols = 30; - maxRows = 30; - minRows = 2; - } - - public BarcodeMatrix getBarcodeMatrix() { - return barcodeMatrix; - } - - /** - * Calculates the necessary number of rows as described in annex Q of ISO/IEC 15438:2001(E). - * - * @param m the number of source codewords prior to the additional of the Symbol Length - * Descriptor and any pad codewords - * @param k the number of error correction codewords - * @param c the number of columns in the symbol in the data region (excluding start, stop and - * row indicator codewords) - * @return the number of rows in the symbol (r) - */ - private static int calculateNumberOfRows(int m, int k, int c) { - int r = ((m + 1 + k) / c) + 1; - if (c * r >= (m + 1 + k + c)) { - r--; - } - return r; - } - - /** - * Calculates the number of pad codewords as described in 4.9.2 of ISO/IEC 15438:2001(E). - * - * @param m the number of source codewords prior to the additional of the Symbol Length - * Descriptor and any pad codewords - * @param k the number of error correction codewords - * @param c the number of columns in the symbol in the data region (excluding start, stop and - * row indicator codewords) - * @param r the number of rows in the symbol - * @return the number of pad codewords - */ - private static int getNumberOfPadCodewords(int m, int k, int c, int r) { - int n = c * r - k; - return n > m + 1 ? n - m - 1 : 0; - } - - private static void encodeChar(int pattern, int len, BarcodeRow logic) { - int map = 1 << len - 1; - boolean last = (pattern & map) != 0; //Initialize to inverse of first bit - int width = 0; - for (int i = 0; i < len; i++) { - boolean black = (pattern & map) != 0; - if (last == black) { - width++; - } else { - logic.addBar(last, width); - - last = black; - width = 1; - } - map >>= 1; - } - logic.addBar(last, width); - } - - private void encodeLowLevel(CharSequence fullCodewords, - int c, - int r, - int errorCorrectionLevel, - BarcodeMatrix logic) { - - int idx = 0; - for (int y = 0; y < r; y++) { - int cluster = y % 3; - logic.startRow(); - encodeChar(START_PATTERN, 17, logic.getCurrentRow()); - - int left; - int right; - if (cluster == 0) { - left = (30 * (y / 3)) + ((r - 1) / 3); - right = (30 * (y / 3)) + (c - 1); - } else if (cluster == 1) { - left = (30 * (y / 3)) + (errorCorrectionLevel * 3) + ((r - 1) % 3); - right = (30 * (y / 3)) + ((r - 1) / 3); - } else { - left = (30 * (y / 3)) + (c - 1); - right = (30 * (y / 3)) + (errorCorrectionLevel * 3) + ((r - 1) % 3); - } - - int pattern = CODEWORD_TABLE[cluster][left]; - encodeChar(pattern, 17, logic.getCurrentRow()); - - for (int x = 0; x < c; x++) { - pattern = CODEWORD_TABLE[cluster][fullCodewords.charAt(idx)]; - encodeChar(pattern, 17, logic.getCurrentRow()); - idx++; - } - - if (compact) { - encodeChar(STOP_PATTERN, 1, logic.getCurrentRow()); // encodes stop line for compact pdf417 - } else { - pattern = CODEWORD_TABLE[cluster][right]; - encodeChar(pattern, 17, logic.getCurrentRow()); - - encodeChar(STOP_PATTERN, 18, logic.getCurrentRow()); - } - } - } - - /** - * @param msg message to encode - * @param errorCorrectionLevel PDF417 error correction level to use - * @throws WriterException if the contents cannot be encoded in this format - */ - public void generateBarcodeLogic(String msg, int errorCorrectionLevel) throws WriterException { - - //1. step: High-level encoding - int errorCorrectionCodeWords = PDF417ErrorCorrection.getErrorCorrectionCodewordCount(errorCorrectionLevel); - String highLevel = PDF417HighLevelEncoder.encodeHighLevel(msg, compaction, encoding); - int sourceCodeWords = highLevel.length(); - - int[] dimension = determineDimensions(sourceCodeWords, errorCorrectionCodeWords); - - int cols = dimension[0]; - int rows = dimension[1]; - - int pad = getNumberOfPadCodewords(sourceCodeWords, errorCorrectionCodeWords, cols, rows); - - //2. step: construct data codewords - if (sourceCodeWords + errorCorrectionCodeWords + 1 > 929) { // +1 for symbol length CW - throw new WriterException( - "Encoded message contains to many code words, message to big (" + msg.length() + " bytes)"); - } - int n = sourceCodeWords + pad + 1; - StringBuilder sb = new StringBuilder(n); - sb.append((char) n); - sb.append(highLevel); - for (int i = 0; i < pad; i++) { - sb.append((char) 900); //PAD characters - } - String dataCodewords = sb.toString(); - - //3. step: Error correction - String ec = PDF417ErrorCorrection.generateErrorCorrection(dataCodewords, errorCorrectionLevel); - String fullCodewords = dataCodewords + ec; - - //4. step: low-level encoding - barcodeMatrix = new BarcodeMatrix(rows, cols); - encodeLowLevel(fullCodewords, cols, rows, errorCorrectionLevel, barcodeMatrix); - } - - /** - * Determine optimal nr of columns and rows for the specified number of - * codewords. - * - * @param sourceCodeWords number of code words - * @param errorCorrectionCodeWords number of error correction code words - * @return dimension object containing cols as width and rows as height - */ - private int[] determineDimensions(int sourceCodeWords, int errorCorrectionCodeWords) throws WriterException { - float ratio = 0.0f; - int[] dimension = null; - - for (int cols = minCols; cols <= maxCols; cols++) { - - int rows = calculateNumberOfRows(sourceCodeWords, errorCorrectionCodeWords, cols); - - if (rows < minRows) { - break; - } - - if (rows > maxRows) { - continue; - } - - float newRatio = ((17 * cols + 69) * DEFAULT_MODULE_WIDTH) / (rows * HEIGHT); - - // ignore if previous ratio is closer to preferred ratio - if (dimension != null && Math.abs(newRatio - PREFERRED_RATIO) > Math.abs(ratio - PREFERRED_RATIO)) { - continue; - } - - ratio = newRatio; - dimension = new int[] {cols, rows}; - } - - // Handle case when min values were larger than necessary - if (dimension == null) { - int rows = calculateNumberOfRows(sourceCodeWords, errorCorrectionCodeWords, minCols); - if (rows < minRows) { - dimension = new int[]{minCols, minRows}; - } - } - - if (dimension == null) { - throw new WriterException("Unable to fit message in columns"); - } - - return dimension; - } - - /** - * Sets max/min row/col values - * - * @param maxCols maximum allowed columns - * @param minCols minimum allowed columns - * @param maxRows maximum allowed rows - * @param minRows minimum allowed rows - */ - public void setDimensions(int maxCols, int minCols, int maxRows, int minRows) { - this.maxCols = maxCols; - this.minCols = minCols; - this.maxRows = maxRows; - this.minRows = minRows; - } - - /** - * @param compaction compaction mode to use - */ - public void setCompaction(Compaction compaction) { - this.compaction = compaction; - } - - /** - * @param compact if true, enables compaction - */ - public void setCompact(boolean compact) { - this.compact = compact; - } - - /** - * @param encoding sets character encoding to use - */ - public void setEncoding(Charset encoding) { - this.encoding = encoding; - } - -} - diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/PDF417ErrorCorrection.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/PDF417ErrorCorrection.java deleted file mode 100755 index 65281727..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/PDF417ErrorCorrection.java +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Copyright 2006 Jeremias Maerki in part, and ZXing Authors in part - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * This file has been modified from its original form in Barcode4J. - */ - -package com.google.zxing.pdf417.encoder; - -import com.google.zxing.WriterException; - -/** - * PDF417 error correction code following the algorithm described in ISO/IEC 15438:2001(E) in - * chapter 4.10. - */ -final class PDF417ErrorCorrection { - - /** - * Tables of coefficients for calculating error correction words - * (see annex F, ISO/IEC 15438:2001(E)) - */ - private static final int[][] EC_COEFFICIENTS = { - {27, 917}, - {522, 568, 723, 809}, - {237, 308, 436, 284, 646, 653, 428, 379}, - {274, 562, 232, 755, 599, 524, 801, 132, 295, 116, 442, 428, 295, - 42, 176, 65}, - {361, 575, 922, 525, 176, 586, 640, 321, 536, 742, 677, 742, 687, - 284, 193, 517, 273, 494, 263, 147, 593, 800, 571, 320, 803, - 133, 231, 390, 685, 330, 63, 410}, - {539, 422, 6, 93, 862, 771, 453, 106, 610, 287, 107, 505, 733, - 877, 381, 612, 723, 476, 462, 172, 430, 609, 858, 822, 543, - 376, 511, 400, 672, 762, 283, 184, 440, 35, 519, 31, 460, - 594, 225, 535, 517, 352, 605, 158, 651, 201, 488, 502, 648, - 733, 717, 83, 404, 97, 280, 771, 840, 629, 4, 381, 843, - 623, 264, 543}, - {521, 310, 864, 547, 858, 580, 296, 379, 53, 779, 897, 444, 400, - 925, 749, 415, 822, 93, 217, 208, 928, 244, 583, 620, 246, - 148, 447, 631, 292, 908, 490, 704, 516, 258, 457, 907, 594, - 723, 674, 292, 272, 96, 684, 432, 686, 606, 860, 569, 193, - 219, 129, 186, 236, 287, 192, 775, 278, 173, 40, 379, 712, - 463, 646, 776, 171, 491, 297, 763, 156, 732, 95, 270, 447, - 90, 507, 48, 228, 821, 808, 898, 784, 663, 627, 378, 382, - 262, 380, 602, 754, 336, 89, 614, 87, 432, 670, 616, 157, - 374, 242, 726, 600, 269, 375, 898, 845, 454, 354, 130, 814, - 587, 804, 34, 211, 330, 539, 297, 827, 865, 37, 517, 834, - 315, 550, 86, 801, 4, 108, 539}, - {524, 894, 75, 766, 882, 857, 74, 204, 82, 586, 708, 250, 905, - 786, 138, 720, 858, 194, 311, 913, 275, 190, 375, 850, 438, - 733, 194, 280, 201, 280, 828, 757, 710, 814, 919, 89, 68, - 569, 11, 204, 796, 605, 540, 913, 801, 700, 799, 137, 439, - 418, 592, 668, 353, 859, 370, 694, 325, 240, 216, 257, 284, - 549, 209, 884, 315, 70, 329, 793, 490, 274, 877, 162, 749, - 812, 684, 461, 334, 376, 849, 521, 307, 291, 803, 712, 19, - 358, 399, 908, 103, 511, 51, 8, 517, 225, 289, 470, 637, - 731, 66, 255, 917, 269, 463, 830, 730, 433, 848, 585, 136, - 538, 906, 90, 2, 290, 743, 199, 655, 903, 329, 49, 802, - 580, 355, 588, 188, 462, 10, 134, 628, 320, 479, 130, 739, - 71, 263, 318, 374, 601, 192, 605, 142, 673, 687, 234, 722, - 384, 177, 752, 607, 640, 455, 193, 689, 707, 805, 641, 48, - 60, 732, 621, 895, 544, 261, 852, 655, 309, 697, 755, 756, - 60, 231, 773, 434, 421, 726, 528, 503, 118, 49, 795, 32, - 144, 500, 238, 836, 394, 280, 566, 319, 9, 647, 550, 73, - 914, 342, 126, 32, 681, 331, 792, 620, 60, 609, 441, 180, - 791, 893, 754, 605, 383, 228, 749, 760, 213, 54, 297, 134, - 54, 834, 299, 922, 191, 910, 532, 609, 829, 189, 20, 167, - 29, 872, 449, 83, 402, 41, 656, 505, 579, 481, 173, 404, - 251, 688, 95, 497, 555, 642, 543, 307, 159, 924, 558, 648, - 55, 497, 10}, - {352, 77, 373, 504, 35, 599, 428, 207, 409, 574, 118, 498, 285, - 380, 350, 492, 197, 265, 920, 155, 914, 299, 229, 643, 294, - 871, 306, 88, 87, 193, 352, 781, 846, 75, 327, 520, 435, - 543, 203, 666, 249, 346, 781, 621, 640, 268, 794, 534, 539, - 781, 408, 390, 644, 102, 476, 499, 290, 632, 545, 37, 858, - 916, 552, 41, 542, 289, 122, 272, 383, 800, 485, 98, 752, - 472, 761, 107, 784, 860, 658, 741, 290, 204, 681, 407, 855, - 85, 99, 62, 482, 180, 20, 297, 451, 593, 913, 142, 808, - 684, 287, 536, 561, 76, 653, 899, 729, 567, 744, 390, 513, - 192, 516, 258, 240, 518, 794, 395, 768, 848, 51, 610, 384, - 168, 190, 826, 328, 596, 786, 303, 570, 381, 415, 641, 156, - 237, 151, 429, 531, 207, 676, 710, 89, 168, 304, 402, 40, - 708, 575, 162, 864, 229, 65, 861, 841, 512, 164, 477, 221, - 92, 358, 785, 288, 357, 850, 836, 827, 736, 707, 94, 8, - 494, 114, 521, 2, 499, 851, 543, 152, 729, 771, 95, 248, - 361, 578, 323, 856, 797, 289, 51, 684, 466, 533, 820, 669, - 45, 902, 452, 167, 342, 244, 173, 35, 463, 651, 51, 699, - 591, 452, 578, 37, 124, 298, 332, 552, 43, 427, 119, 662, - 777, 475, 850, 764, 364, 578, 911, 283, 711, 472, 420, 245, - 288, 594, 394, 511, 327, 589, 777, 699, 688, 43, 408, 842, - 383, 721, 521, 560, 644, 714, 559, 62, 145, 873, 663, 713, - 159, 672, 729, 624, 59, 193, 417, 158, 209, 563, 564, 343, - 693, 109, 608, 563, 365, 181, 772, 677, 310, 248, 353, 708, - 410, 579, 870, 617, 841, 632, 860, 289, 536, 35, 777, 618, - 586, 424, 833, 77, 597, 346, 269, 757, 632, 695, 751, 331, - 247, 184, 45, 787, 680, 18, 66, 407, 369, 54, 492, 228, - 613, 830, 922, 437, 519, 644, 905, 789, 420, 305, 441, 207, - 300, 892, 827, 141, 537, 381, 662, 513, 56, 252, 341, 242, - 797, 838, 837, 720, 224, 307, 631, 61, 87, 560, 310, 756, - 665, 397, 808, 851, 309, 473, 795, 378, 31, 647, 915, 459, - 806, 590, 731, 425, 216, 548, 249, 321, 881, 699, 535, 673, - 782, 210, 815, 905, 303, 843, 922, 281, 73, 469, 791, 660, - 162, 498, 308, 155, 422, 907, 817, 187, 62, 16, 425, 535, - 336, 286, 437, 375, 273, 610, 296, 183, 923, 116, 667, 751, - 353, 62, 366, 691, 379, 687, 842, 37, 357, 720, 742, 330, - 5, 39, 923, 311, 424, 242, 749, 321, 54, 669, 316, 342, - 299, 534, 105, 667, 488, 640, 672, 576, 540, 316, 486, 721, - 610, 46, 656, 447, 171, 616, 464, 190, 531, 297, 321, 762, - 752, 533, 175, 134, 14, 381, 433, 717, 45, 111, 20, 596, - 284, 736, 138, 646, 411, 877, 669, 141, 919, 45, 780, 407, - 164, 332, 899, 165, 726, 600, 325, 498, 655, 357, 752, 768, - 223, 849, 647, 63, 310, 863, 251, 366, 304, 282, 738, 675, - 410, 389, 244, 31, 121, 303, 263}}; - - private PDF417ErrorCorrection() { - } - - /** - * Determines the number of error correction codewords for a specified error correction - * level. - * - * @param errorCorrectionLevel the error correction level (0-8) - * @return the number of codewords generated for error correction - */ - static int getErrorCorrectionCodewordCount(int errorCorrectionLevel) { - if (errorCorrectionLevel < 0 || errorCorrectionLevel > 8) { - throw new IllegalArgumentException("Error correction level must be between 0 and 8!"); - } - return 1 << (errorCorrectionLevel + 1); - } - - /** - * Returns the recommended minimum error correction level as described in annex E of - * ISO/IEC 15438:2001(E). - * - * @param n the number of data codewords - * @return the recommended minimum error correction level - */ - static int getRecommendedMinimumErrorCorrectionLevel(int n) throws WriterException { - if (n <= 0) { - throw new IllegalArgumentException("n must be > 0"); - } - if (n <= 40) { - return 2; - } - if (n <= 160) { - return 3; - } - if (n <= 320) { - return 4; - } - if (n <= 863) { - return 5; - } - throw new WriterException("No recommendation possible"); - } - - /** - * Generates the error correction codewords according to 4.10 in ISO/IEC 15438:2001(E). - * - * @param dataCodewords the data codewords - * @param errorCorrectionLevel the error correction level (0-8) - * @return the String representing the error correction codewords - */ - static String generateErrorCorrection(CharSequence dataCodewords, int errorCorrectionLevel) { - int k = getErrorCorrectionCodewordCount(errorCorrectionLevel); - char[] e = new char[k]; - int sld = dataCodewords.length(); - for (int i = 0; i < sld; i++) { - int t1 = (dataCodewords.charAt(i) + e[e.length - 1]) % 929; - int t2; - int t3; - for (int j = k - 1; j >= 1; j--) { - t2 = (t1 * EC_COEFFICIENTS[errorCorrectionLevel][j]) % 929; - t3 = 929 - t2; - e[j] = (char) ((e[j - 1] + t3) % 929); - } - t2 = (t1 * EC_COEFFICIENTS[errorCorrectionLevel][0]) % 929; - t3 = 929 - t2; - e[0] = (char) (t3 % 929); - } - StringBuilder sb = new StringBuilder(k); - for (int j = k - 1; j >= 0; j--) { - if (e[j] != 0) { - e[j] = (char) (929 - e[j]); - } - sb.append(e[j]); - } - return sb.toString(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/PDF417HighLevelEncoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/PDF417HighLevelEncoder.java deleted file mode 100755 index 17892a18..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/pdf417/encoder/PDF417HighLevelEncoder.java +++ /dev/null @@ -1,582 +0,0 @@ -/* - * Copyright 2006 Jeremias Maerki in part, and ZXing Authors in part - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * This file has been modified from its original form in Barcode4J. - */ - -package com.google.zxing.pdf417.encoder; - -import java.math.BigInteger; -import java.nio.charset.Charset; -import java.nio.charset.CharsetEncoder; -import java.util.Arrays; - -import com.google.zxing.WriterException; -import com.google.zxing.common.CharacterSetECI; - -/** - * PDF417 high-level encoder following the algorithm described in ISO/IEC 15438:2001(E) in - * annex P. - */ -final class PDF417HighLevelEncoder { - - /** - * code for Text compaction - */ - private static final int TEXT_COMPACTION = 0; - - /** - * code for Byte compaction - */ - private static final int BYTE_COMPACTION = 1; - - /** - * code for Numeric compaction - */ - private static final int NUMERIC_COMPACTION = 2; - - /** - * Text compaction submode Alpha - */ - private static final int SUBMODE_ALPHA = 0; - - /** - * Text compaction submode Lower - */ - private static final int SUBMODE_LOWER = 1; - - /** - * Text compaction submode Mixed - */ - private static final int SUBMODE_MIXED = 2; - - /** - * Text compaction submode Punctuation - */ - private static final int SUBMODE_PUNCTUATION = 3; - - /** - * mode latch to Text Compaction mode - */ - private static final int LATCH_TO_TEXT = 900; - - /** - * mode latch to Byte Compaction mode (number of characters NOT a multiple of 6) - */ - private static final int LATCH_TO_BYTE_PADDED = 901; - - /** - * mode latch to Numeric Compaction mode - */ - private static final int LATCH_TO_NUMERIC = 902; - - /** - * mode shift to Byte Compaction mode - */ - private static final int SHIFT_TO_BYTE = 913; - - /** - * mode latch to Byte Compaction mode (number of characters a multiple of 6) - */ - private static final int LATCH_TO_BYTE = 924; - - /** - * identifier for a user defined Extended Channel Interpretation (ECI) - */ - private static final int ECI_USER_DEFINED = 925; - - /** - * identifier for a general purpose ECO format - */ - private static final int ECI_GENERAL_PURPOSE = 926; - - /** - * identifier for an ECI of a character set of code page - */ - private static final int ECI_CHARSET = 927; - - /** - * Raw code table for text compaction Mixed sub-mode - */ - private static final byte[] TEXT_MIXED_RAW = { - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 38, 13, 9, 44, 58, - 35, 45, 46, 36, 47, 43, 37, 42, 61, 94, 0, 32, 0, 0, 0}; - - /** - * Raw code table for text compaction: Punctuation sub-mode - */ - private static final byte[] TEXT_PUNCTUATION_RAW = { - 59, 60, 62, 64, 91, 92, 93, 95, 96, 126, 33, 13, 9, 44, 58, - 10, 45, 46, 36, 47, 34, 124, 42, 40, 41, 63, 123, 125, 39, 0}; - - private static final byte[] MIXED = new byte[128]; - private static final byte[] PUNCTUATION = new byte[128]; - - private static final Charset DEFAULT_ENCODING = Charset.forName("ISO-8859-1"); - - private PDF417HighLevelEncoder() { - } - - static { - //Construct inverse lookups - Arrays.fill(MIXED, (byte) -1); - for (byte i = 0; i < TEXT_MIXED_RAW.length; i++) { - byte b = TEXT_MIXED_RAW[i]; - if (b > 0) { - MIXED[b] = i; - } - } - Arrays.fill(PUNCTUATION, (byte) -1); - for (byte i = 0; i < TEXT_PUNCTUATION_RAW.length; i++) { - byte b = TEXT_PUNCTUATION_RAW[i]; - if (b > 0) { - PUNCTUATION[b] = i; - } - } - } - - /** - * Performs high-level encoding of a PDF417 message using the algorithm described in annex P - * of ISO/IEC 15438:2001(E). If byte compaction has been selected, then only byte compaction - * is used. - * - * @param msg the message - * @param compaction compaction mode to use - * @param encoding character encoding used to encode in default or byte compaction - * or {@code null} for default / not applicable - * @return the encoded message (the char values range from 0 to 928) - */ - static String encodeHighLevel(String msg, Compaction compaction, Charset encoding) throws WriterException { - - //the codewords 0..928 are encoded as Unicode characters - StringBuilder sb = new StringBuilder(msg.length()); - - if (encoding == null) { - encoding = DEFAULT_ENCODING; - } else if (!DEFAULT_ENCODING.equals(encoding)) { - CharacterSetECI eci = CharacterSetECI.getCharacterSetECIByName(encoding.name()); - if (eci != null) { - encodingECI(eci.getValue(), sb); - } - } - - int len = msg.length(); - int p = 0; - int textSubMode = SUBMODE_ALPHA; - - // User selected encoding mode - if (compaction == Compaction.TEXT) { - encodeText(msg, p, len, sb, textSubMode); - - } else if (compaction == Compaction.BYTE) { - byte[] bytes = msg.getBytes(encoding); - encodeBinary(bytes, p, bytes.length, BYTE_COMPACTION, sb); - - } else if (compaction == Compaction.NUMERIC) { - sb.append((char) LATCH_TO_NUMERIC); - encodeNumeric(msg, p, len, sb); - - } else { - int encodingMode = TEXT_COMPACTION; //Default mode, see 4.4.2.1 - while (p < len) { - int n = determineConsecutiveDigitCount(msg, p); - if (n >= 13) { - sb.append((char) LATCH_TO_NUMERIC); - encodingMode = NUMERIC_COMPACTION; - textSubMode = SUBMODE_ALPHA; //Reset after latch - encodeNumeric(msg, p, n, sb); - p += n; - } else { - int t = determineConsecutiveTextCount(msg, p); - if (t >= 5 || n == len) { - if (encodingMode != TEXT_COMPACTION) { - sb.append((char) LATCH_TO_TEXT); - encodingMode = TEXT_COMPACTION; - textSubMode = SUBMODE_ALPHA; //start with submode alpha after latch - } - textSubMode = encodeText(msg, p, t, sb, textSubMode); - p += t; - } else { - int b = determineConsecutiveBinaryCount(msg, p, encoding); - if (b == 0) { - b = 1; - } - byte[] bytes = msg.substring(p, p + b).getBytes(encoding); - if (bytes.length == 1 && encodingMode == TEXT_COMPACTION) { - //Switch for one byte (instead of latch) - encodeBinary(bytes, 0, 1, TEXT_COMPACTION, sb); - } else { - //Mode latch performed by encodeBinary() - encodeBinary(bytes, 0, bytes.length, encodingMode, sb); - encodingMode = BYTE_COMPACTION; - textSubMode = SUBMODE_ALPHA; //Reset after latch - } - p += b; - } - } - } - } - - return sb.toString(); - } - - /** - * Encode parts of the message using Text Compaction as described in ISO/IEC 15438:2001(E), - * chapter 4.4.2. - * - * @param msg the message - * @param startpos the start position within the message - * @param count the number of characters to encode - * @param sb receives the encoded codewords - * @param initialSubmode should normally be SUBMODE_ALPHA - * @return the text submode in which this method ends - */ - private static int encodeText(CharSequence msg, - int startpos, - int count, - StringBuilder sb, - int initialSubmode) { - StringBuilder tmp = new StringBuilder(count); - int submode = initialSubmode; - int idx = 0; - while (true) { - char ch = msg.charAt(startpos + idx); - switch (submode) { - case SUBMODE_ALPHA: - if (isAlphaUpper(ch)) { - if (ch == ' ') { - tmp.append((char) 26); //space - } else { - tmp.append((char) (ch - 65)); - } - } else { - if (isAlphaLower(ch)) { - submode = SUBMODE_LOWER; - tmp.append((char) 27); //ll - continue; - } else if (isMixed(ch)) { - submode = SUBMODE_MIXED; - tmp.append((char) 28); //ml - continue; - } else { - tmp.append((char) 29); //ps - tmp.append((char) PUNCTUATION[ch]); - break; - } - } - break; - case SUBMODE_LOWER: - if (isAlphaLower(ch)) { - if (ch == ' ') { - tmp.append((char) 26); //space - } else { - tmp.append((char) (ch - 97)); - } - } else { - if (isAlphaUpper(ch)) { - tmp.append((char) 27); //as - tmp.append((char) (ch - 65)); - //space cannot happen here, it is also in "Lower" - break; - } else if (isMixed(ch)) { - submode = SUBMODE_MIXED; - tmp.append((char) 28); //ml - continue; - } else { - tmp.append((char) 29); //ps - tmp.append((char) PUNCTUATION[ch]); - break; - } - } - break; - case SUBMODE_MIXED: - if (isMixed(ch)) { - tmp.append((char) MIXED[ch]); - } else { - if (isAlphaUpper(ch)) { - submode = SUBMODE_ALPHA; - tmp.append((char) 28); //al - continue; - } else if (isAlphaLower(ch)) { - submode = SUBMODE_LOWER; - tmp.append((char) 27); //ll - continue; - } else { - if (startpos + idx + 1 < count) { - char next = msg.charAt(startpos + idx + 1); - if (isPunctuation(next)) { - submode = SUBMODE_PUNCTUATION; - tmp.append((char) 25); //pl - continue; - } - } - tmp.append((char) 29); //ps - tmp.append((char) PUNCTUATION[ch]); - } - } - break; - default: //SUBMODE_PUNCTUATION - if (isPunctuation(ch)) { - tmp.append((char) PUNCTUATION[ch]); - } else { - submode = SUBMODE_ALPHA; - tmp.append((char) 29); //al - continue; - } - } - idx++; - if (idx >= count) { - break; - } - } - char h = 0; - int len = tmp.length(); - for (int i = 0; i < len; i++) { - boolean odd = (i % 2) != 0; - if (odd) { - h = (char) ((h * 30) + tmp.charAt(i)); - sb.append(h); - } else { - h = tmp.charAt(i); - } - } - if ((len % 2) != 0) { - sb.append((char) ((h * 30) + 29)); //ps - } - return submode; - } - - /** - * Encode parts of the message using Byte Compaction as described in ISO/IEC 15438:2001(E), - * chapter 4.4.3. The Unicode characters will be converted to binary using the cp437 - * codepage. - * - * @param bytes the message converted to a byte array - * @param startpos the start position within the message - * @param count the number of bytes to encode - * @param startmode the mode from which this method starts - * @param sb receives the encoded codewords - */ - private static void encodeBinary(byte[] bytes, - int startpos, - int count, - int startmode, - StringBuilder sb) { - if (count == 1 && startmode == TEXT_COMPACTION) { - sb.append((char) SHIFT_TO_BYTE); - } else { - boolean sixpack = ((count % 6) == 0); - if (sixpack) { - sb.append((char)LATCH_TO_BYTE); - } else { - sb.append((char)LATCH_TO_BYTE_PADDED); - } - } - - int idx = startpos; - // Encode sixpacks - if (count >= 6) { - char[] chars = new char[5]; - while ((startpos + count - idx) >= 6) { - long t = 0; - for (int i = 0; i < 6; i++) { - t <<= 8; - t += bytes[idx + i] & 0xff; - } - for (int i = 0; i < 5; i++) { - chars[i] = (char) (t % 900); - t /= 900; - } - for (int i = chars.length - 1; i >= 0; i--) { - sb.append(chars[i]); - } - idx += 6; - } - } - //Encode rest (remaining n<5 bytes if any) - for (int i = idx; i < startpos + count; i++) { - int ch = bytes[i] & 0xff; - sb.append((char) ch); - } - } - - private static void encodeNumeric(String msg, int startpos, int count, StringBuilder sb) { - int idx = 0; - StringBuilder tmp = new StringBuilder(count / 3 + 1); - BigInteger num900 = BigInteger.valueOf(900); - BigInteger num0 = BigInteger.valueOf(0); - while (idx < count) { - tmp.setLength(0); - int len = Math.min(44, count - idx); - String part = '1' + msg.substring(startpos + idx, startpos + idx + len); - BigInteger bigint = new BigInteger(part); - do { - tmp.append((char) bigint.mod(num900).intValue()); - bigint = bigint.divide(num900); - } while (!bigint.equals(num0)); - - //Reverse temporary string - for (int i = tmp.length() - 1; i >= 0; i--) { - sb.append(tmp.charAt(i)); - } - idx += len; - } - } - - - private static boolean isDigit(char ch) { - return ch >= '0' && ch <= '9'; - } - - private static boolean isAlphaUpper(char ch) { - return ch == ' ' || (ch >= 'A' && ch <= 'Z'); - } - - private static boolean isAlphaLower(char ch) { - return ch == ' ' || (ch >= 'a' && ch <= 'z'); - } - - private static boolean isMixed(char ch) { - return MIXED[ch] != -1; - } - - private static boolean isPunctuation(char ch) { - return PUNCTUATION[ch] != -1; - } - - private static boolean isText(char ch) { - return ch == '\t' || ch == '\n' || ch == '\r' || (ch >= 32 && ch <= 126); - } - - /** - * Determines the number of consecutive characters that are encodable using numeric compaction. - * - * @param msg the message - * @param startpos the start position within the message - * @return the requested character count - */ - private static int determineConsecutiveDigitCount(CharSequence msg, int startpos) { - int count = 0; - int len = msg.length(); - int idx = startpos; - if (idx < len) { - char ch = msg.charAt(idx); - while (isDigit(ch) && idx < len) { - count++; - idx++; - if (idx < len) { - ch = msg.charAt(idx); - } - } - } - return count; - } - - /** - * Determines the number of consecutive characters that are encodable using text compaction. - * - * @param msg the message - * @param startpos the start position within the message - * @return the requested character count - */ - private static int determineConsecutiveTextCount(CharSequence msg, int startpos) { - int len = msg.length(); - int idx = startpos; - while (idx < len) { - char ch = msg.charAt(idx); - int numericCount = 0; - while (numericCount < 13 && isDigit(ch) && idx < len) { - numericCount++; - idx++; - if (idx < len) { - ch = msg.charAt(idx); - } - } - if (numericCount >= 13) { - return idx - startpos - numericCount; - } - if (numericCount > 0) { - //Heuristic: All text-encodable chars or digits are binary encodable - continue; - } - ch = msg.charAt(idx); - - //Check if character is encodable - if (!isText(ch)) { - break; - } - idx++; - } - return idx - startpos; - } - - /** - * Determines the number of consecutive characters that are encodable using binary compaction. - * - * @param msg the message - * @param startpos the start position within the message - * @param encoding the charset used to convert the message to a byte array - * @return the requested character count - */ - private static int determineConsecutiveBinaryCount(String msg, int startpos, Charset encoding) - throws WriterException { - final CharsetEncoder encoder = encoding.newEncoder(); - int len = msg.length(); - int idx = startpos; - while (idx < len) { - char ch = msg.charAt(idx); - int numericCount = 0; - - while (numericCount < 13 && isDigit(ch)) { - numericCount++; - //textCount++; - int i = idx + numericCount; - if (i >= len) { - break; - } - ch = msg.charAt(i); - } - if (numericCount >= 13) { - return idx - startpos; - } - ch = msg.charAt(idx); - - if (!encoder.canEncode(ch)) { - throw new WriterException("Non-encodable character detected: " + ch + " (Unicode: " + (int) ch + ')'); - } - idx++; - } - return idx - startpos; - } - - private static void encodingECI(int eci, StringBuilder sb) throws WriterException { - if (eci >= 0 && eci < 900) { - sb.append((char) ECI_CHARSET); - sb.append((char) eci); - } else if (eci < 810900) { - sb.append((char) ECI_GENERAL_PURPOSE); - sb.append((char) (eci / 900 - 1)); - sb.append((char) (eci % 900)); - } else if (eci < 811800) { - sb.append((char) ECI_USER_DEFINED); - sb.append((char) (810900 - eci)); - } else { - throw new WriterException("ECI number not in valid range from 0..811799, but was " + eci); - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/QRCodeReader.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/QRCodeReader.java deleted file mode 100755 index d90ac76b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/QRCodeReader.java +++ /dev/null @@ -1,218 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode; - -import java.util.List; -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.BinaryBitmap; -import com.google.zxing.ChecksumException; -import com.google.zxing.DecodeHintType; -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.Reader; -import com.google.zxing.Result; -import com.google.zxing.ResultMetadataType; -import com.google.zxing.ResultPoint; -import com.google.zxing.common.BitMatrix; -import com.google.zxing.common.DecoderResult; -import com.google.zxing.common.DetectorResult; -import com.google.zxing.qrcode.decoder.Decoder; -import com.google.zxing.qrcode.decoder.QRCodeDecoderMetaData; -import com.google.zxing.qrcode.detector.Detector; - -/** - * This implementation can detect and decode QR Codes in an image. - * - * @author Sean Owen - */ -public class QRCodeReader implements Reader { - - private static final ResultPoint[] NO_POINTS = new ResultPoint[0]; - - private final Decoder decoder = new Decoder(); - - protected final Decoder getDecoder() { - return decoder; - } - - /** - * Locates and decodes a QR code in an image. - * - * @return a String representing the content encoded by the QR code - * @throws NotFoundException if a QR code cannot be found - * @throws FormatException if a QR code cannot be decoded - * @throws ChecksumException if error correction fails - */ - @Override - public Result decode(BinaryBitmap image) throws NotFoundException, ChecksumException, FormatException { - return decode(image, null); - } - - @Override - public final Result decode(BinaryBitmap image, Map<DecodeHintType,?> hints) - throws NotFoundException, ChecksumException, FormatException { - DecoderResult decoderResult; - ResultPoint[] points; - if (hints != null && hints.containsKey(DecodeHintType.PURE_BARCODE)) { - BitMatrix bits = extractPureBits(image.getBlackMatrix()); - decoderResult = decoder.decode(bits, hints); - points = NO_POINTS; - } else { - DetectorResult detectorResult = new Detector(image.getBlackMatrix()).detect(hints); - decoderResult = decoder.decode(detectorResult.getBits(), hints); - points = detectorResult.getPoints(); - } - - // If the code was mirrored: swap the bottom-left and the top-right points. - if (decoderResult.getOther() instanceof QRCodeDecoderMetaData) { - ((QRCodeDecoderMetaData) decoderResult.getOther()).applyMirroredCorrection(points); - } - - Result result = new Result(decoderResult.getText(), decoderResult.getRawBytes(), points, BarcodeFormat.QR_CODE); - List<byte[]> byteSegments = decoderResult.getByteSegments(); - if (byteSegments != null) { - result.putMetadata(ResultMetadataType.BYTE_SEGMENTS, byteSegments); - } - String ecLevel = decoderResult.getECLevel(); - if (ecLevel != null) { - result.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, ecLevel); - } - if (decoderResult.hasStructuredAppend()) { - result.putMetadata(ResultMetadataType.STRUCTURED_APPEND_SEQUENCE, - decoderResult.getStructuredAppendSequenceNumber()); - result.putMetadata(ResultMetadataType.STRUCTURED_APPEND_PARITY, - decoderResult.getStructuredAppendParity()); - } - return result; - } - - @Override - public void reset() { - // do nothing - } - - /** - * This method detects a code in a "pure" image -- that is, pure monochrome image - * which contains only an unrotated, unskewed, image of a code, with some white border - * around it. This is a specialized method that works exceptionally fast in this special - * case. - * - * @see com.google.zxing.datamatrix.DataMatrixReader#extractPureBits(BitMatrix) - */ - private static BitMatrix extractPureBits(BitMatrix image) throws NotFoundException { - - int[] leftTopBlack = image.getTopLeftOnBit(); - int[] rightBottomBlack = image.getBottomRightOnBit(); - if (leftTopBlack == null || rightBottomBlack == null) { - throw NotFoundException.getNotFoundInstance(); - } - - float moduleSize = moduleSize(leftTopBlack, image); - - int top = leftTopBlack[1]; - int bottom = rightBottomBlack[1]; - int left = leftTopBlack[0]; - int right = rightBottomBlack[0]; - - // Sanity check! - if (left >= right || top >= bottom) { - throw NotFoundException.getNotFoundInstance(); - } - - if (bottom - top != right - left) { - // Special case, where bottom-right module wasn't black so we found something else in the last row - // Assume it's a square, so use height as the width - right = left + (bottom - top); - } - - int matrixWidth = Math.round((right - left + 1) / moduleSize); - int matrixHeight = Math.round((bottom - top + 1) / moduleSize); - if (matrixWidth <= 0 || matrixHeight <= 0) { - throw NotFoundException.getNotFoundInstance(); - } - if (matrixHeight != matrixWidth) { - // Only possibly decode square regions - throw NotFoundException.getNotFoundInstance(); - } - - // Push in the "border" by half the module width so that we start - // sampling in the middle of the module. Just in case the image is a - // little off, this will help recover. - int nudge = (int) (moduleSize / 2.0f); - top += nudge; - left += nudge; - - // But careful that this does not sample off the edge - // "right" is the farthest-right valid pixel location -- right+1 is not necessarily - // This is positive by how much the inner x loop below would be too large - int nudgedTooFarRight = left + (int) ((matrixWidth - 1) * moduleSize) - right; - if (nudgedTooFarRight > 0) { - if (nudgedTooFarRight > nudge) { - // Neither way fits; abort - throw NotFoundException.getNotFoundInstance(); - } - left -= nudgedTooFarRight; - } - // See logic above - int nudgedTooFarDown = top + (int) ((matrixHeight - 1) * moduleSize) - bottom; - if (nudgedTooFarDown > 0) { - if (nudgedTooFarDown > nudge) { - // Neither way fits; abort - throw NotFoundException.getNotFoundInstance(); - } - top -= nudgedTooFarDown; - } - - // Now just read off the bits - BitMatrix bits = new BitMatrix(matrixWidth, matrixHeight); - for (int y = 0; y < matrixHeight; y++) { - int iOffset = top + (int) (y * moduleSize); - for (int x = 0; x < matrixWidth; x++) { - if (image.get(left + (int) (x * moduleSize), iOffset)) { - bits.set(x, y); - } - } - } - return bits; - } - - private static float moduleSize(int[] leftTopBlack, BitMatrix image) throws NotFoundException { - int height = image.getHeight(); - int width = image.getWidth(); - int x = leftTopBlack[0]; - int y = leftTopBlack[1]; - boolean inBlack = true; - int transitions = 0; - while (x < width && y < height) { - if (inBlack != image.get(x, y)) { - if (++transitions == 5) { - break; - } - inBlack = !inBlack; - } - x++; - y++; - } - if (x == width || y == height) { - throw NotFoundException.getNotFoundInstance(); - } - return (x - leftTopBlack[0]) / 7.0f; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/QRCodeWriter.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/QRCodeWriter.java deleted file mode 100755 index b0226c68..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/QRCodeWriter.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode; - -import java.util.Map; - -import com.google.zxing.BarcodeFormat; -import com.google.zxing.EncodeHintType; -import com.google.zxing.Writer; -import com.google.zxing.WriterException; -import com.google.zxing.common.BitMatrix; -import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; -import com.google.zxing.qrcode.encoder.ByteMatrix; -import com.google.zxing.qrcode.encoder.Encoder; -import com.google.zxing.qrcode.encoder.QRCode; - -/** - * This object renders a QR Code as a BitMatrix 2D array of greyscale values. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class QRCodeWriter implements Writer { - - private static final int QUIET_ZONE_SIZE = 4; - - @Override - public BitMatrix encode(String contents, BarcodeFormat format, int width, int height) - throws WriterException { - - return encode(contents, format, width, height, null); - } - - @Override - public BitMatrix encode(String contents, - BarcodeFormat format, - int width, - int height, - Map<EncodeHintType,?> hints) throws WriterException { - - if (contents.isEmpty()) { - throw new IllegalArgumentException("Found empty contents"); - } - - if (format != BarcodeFormat.QR_CODE) { - throw new IllegalArgumentException("Can only encode QR_CODE, but got " + format); - } - - if (width < 0 || height < 0) { - throw new IllegalArgumentException("Requested dimensions are too small: " + width + 'x' + - height); - } - - ErrorCorrectionLevel errorCorrectionLevel = ErrorCorrectionLevel.L; - int quietZone = QUIET_ZONE_SIZE; - if (hints != null) { - if (hints.containsKey(EncodeHintType.ERROR_CORRECTION)) { - errorCorrectionLevel = ErrorCorrectionLevel.valueOf(hints.get(EncodeHintType.ERROR_CORRECTION).toString()); - } - if (hints.containsKey(EncodeHintType.MARGIN)) { - quietZone = Integer.parseInt(hints.get(EncodeHintType.MARGIN).toString()); - } - } - - QRCode code = Encoder.encode(contents, errorCorrectionLevel, hints); - return renderResult(code, width, height, quietZone); - } - - // Note that the input matrix uses 0 == white, 1 == black, while the output matrix uses - // 0 == black, 255 == white (i.e. an 8 bit greyscale bitmap). - private static BitMatrix renderResult(QRCode code, int width, int height, int quietZone) { - ByteMatrix input = code.getMatrix(); - if (input == null) { - throw new IllegalStateException(); - } - int inputWidth = input.getWidth(); - int inputHeight = input.getHeight(); - int qrWidth = inputWidth + (quietZone * 2); - int qrHeight = inputHeight + (quietZone * 2); - int outputWidth = Math.max(width, qrWidth); - int outputHeight = Math.max(height, qrHeight); - - int multiple = Math.min(outputWidth / qrWidth, outputHeight / qrHeight); - // Padding includes both the quiet zone and the extra white pixels to accommodate the requested - // dimensions. For example, if input is 25x25 the QR will be 33x33 including the quiet zone. - // If the requested size is 200x160, the multiple will be 4, for a QR of 132x132. These will - // handle all the padding from 100x100 (the actual QR) up to 200x160. - int leftPadding = (outputWidth - (inputWidth * multiple)) / 2; - int topPadding = (outputHeight - (inputHeight * multiple)) / 2; - - BitMatrix output = new BitMatrix(outputWidth, outputHeight); - - for (int inputY = 0, outputY = topPadding; inputY < inputHeight; inputY++, outputY += multiple) { - // Write the contents of this row of the barcode - for (int inputX = 0, outputX = leftPadding; inputX < inputWidth; inputX++, outputX += multiple) { - if (input.get(inputX, inputY) == 1) { - output.setRegion(outputX, outputY, multiple, multiple); - } - } - } - - return output; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/BitMatrixParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/BitMatrixParser.java deleted file mode 100755 index 10cb475a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/BitMatrixParser.java +++ /dev/null @@ -1,245 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.decoder; - -import com.google.zxing.FormatException; -import com.google.zxing.common.BitMatrix; - -/** - * @author Sean Owen - */ -final class BitMatrixParser { - - private final BitMatrix bitMatrix; - private Version parsedVersion; - private FormatInformation parsedFormatInfo; - private boolean mirror; - - /** - * @param bitMatrix {@link BitMatrix} to parse - * @throws FormatException if dimension is not >= 21 and 1 mod 4 - */ - BitMatrixParser(BitMatrix bitMatrix) throws FormatException { - int dimension = bitMatrix.getHeight(); - if (dimension < 21 || (dimension & 0x03) != 1) { - throw FormatException.getFormatInstance(); - } - this.bitMatrix = bitMatrix; - } - - /** - * <p>Reads format information from one of its two locations within the QR Code.</p> - * - * @return {@link FormatInformation} encapsulating the QR Code's format info - * @throws FormatException if both format information locations cannot be parsed as - * the valid encoding of format information - */ - FormatInformation readFormatInformation() throws FormatException { - - if (parsedFormatInfo != null) { - return parsedFormatInfo; - } - - // Read top-left format info bits - int formatInfoBits1 = 0; - for (int i = 0; i < 6; i++) { - formatInfoBits1 = copyBit(i, 8, formatInfoBits1); - } - // .. and skip a bit in the timing pattern ... - formatInfoBits1 = copyBit(7, 8, formatInfoBits1); - formatInfoBits1 = copyBit(8, 8, formatInfoBits1); - formatInfoBits1 = copyBit(8, 7, formatInfoBits1); - // .. and skip a bit in the timing pattern ... - for (int j = 5; j >= 0; j--) { - formatInfoBits1 = copyBit(8, j, formatInfoBits1); - } - - // Read the top-right/bottom-left pattern too - int dimension = bitMatrix.getHeight(); - int formatInfoBits2 = 0; - int jMin = dimension - 7; - for (int j = dimension - 1; j >= jMin; j--) { - formatInfoBits2 = copyBit(8, j, formatInfoBits2); - } - for (int i = dimension - 8; i < dimension; i++) { - formatInfoBits2 = copyBit(i, 8, formatInfoBits2); - } - - parsedFormatInfo = FormatInformation.decodeFormatInformation(formatInfoBits1, formatInfoBits2); - if (parsedFormatInfo != null) { - return parsedFormatInfo; - } - throw FormatException.getFormatInstance(); - } - - /** - * <p>Reads version information from one of its two locations within the QR Code.</p> - * - * @return {@link Version} encapsulating the QR Code's version - * @throws FormatException if both version information locations cannot be parsed as - * the valid encoding of version information - */ - Version readVersion() throws FormatException { - - if (parsedVersion != null) { - return parsedVersion; - } - - int dimension = bitMatrix.getHeight(); - - int provisionalVersion = (dimension - 17) / 4; - if (provisionalVersion <= 6) { - return Version.getVersionForNumber(provisionalVersion); - } - - // Read top-right version info: 3 wide by 6 tall - int versionBits = 0; - int ijMin = dimension - 11; - for (int j = 5; j >= 0; j--) { - for (int i = dimension - 9; i >= ijMin; i--) { - versionBits = copyBit(i, j, versionBits); - } - } - - Version theParsedVersion = Version.decodeVersionInformation(versionBits); - if (theParsedVersion != null && theParsedVersion.getDimensionForVersion() == dimension) { - parsedVersion = theParsedVersion; - return theParsedVersion; - } - - // Hmm, failed. Try bottom left: 6 wide by 3 tall - versionBits = 0; - for (int i = 5; i >= 0; i--) { - for (int j = dimension - 9; j >= ijMin; j--) { - versionBits = copyBit(i, j, versionBits); - } - } - - theParsedVersion = Version.decodeVersionInformation(versionBits); - if (theParsedVersion != null && theParsedVersion.getDimensionForVersion() == dimension) { - parsedVersion = theParsedVersion; - return theParsedVersion; - } - throw FormatException.getFormatInstance(); - } - - private int copyBit(int i, int j, int versionBits) { - boolean bit = mirror ? bitMatrix.get(j, i) : bitMatrix.get(i, j); - return bit ? (versionBits << 1) | 0x1 : versionBits << 1; - } - - /** - * <p>Reads the bits in the {@link BitMatrix} representing the finder pattern in the - * correct order in order to reconstruct the codewords bytes contained within the - * QR Code.</p> - * - * @return bytes encoded within the QR Code - * @throws FormatException if the exact number of bytes expected is not read - */ - byte[] readCodewords() throws FormatException { - - FormatInformation formatInfo = readFormatInformation(); - Version version = readVersion(); - - // Get the data mask for the format used in this QR Code. This will exclude - // some bits from reading as we wind through the bit matrix. - DataMask dataMask = DataMask.forReference(formatInfo.getDataMask()); - int dimension = bitMatrix.getHeight(); - dataMask.unmaskBitMatrix(bitMatrix, dimension); - - BitMatrix functionPattern = version.buildFunctionPattern(); - - boolean readingUp = true; - byte[] result = new byte[version.getTotalCodewords()]; - int resultOffset = 0; - int currentByte = 0; - int bitsRead = 0; - // Read columns in pairs, from right to left - for (int j = dimension - 1; j > 0; j -= 2) { - if (j == 6) { - // Skip whole column with vertical alignment pattern; - // saves time and makes the other code proceed more cleanly - j--; - } - // Read alternatingly from bottom to top then top to bottom - for (int count = 0; count < dimension; count++) { - int i = readingUp ? dimension - 1 - count : count; - for (int col = 0; col < 2; col++) { - // Ignore bits covered by the function pattern - if (!functionPattern.get(j - col, i)) { - // Read a bit - bitsRead++; - currentByte <<= 1; - if (bitMatrix.get(j - col, i)) { - currentByte |= 1; - } - // If we've made a whole byte, save it off - if (bitsRead == 8) { - result[resultOffset++] = (byte) currentByte; - bitsRead = 0; - currentByte = 0; - } - } - } - } - readingUp ^= true; // readingUp = !readingUp; // switch directions - } - if (resultOffset != version.getTotalCodewords()) { - throw FormatException.getFormatInstance(); - } - return result; - } - - /** - * Revert the mask removal done while reading the code words. The bit matrix should revert to its original state. - */ - void remask() { - if (parsedFormatInfo == null) { - return; // We have no format information, and have no data mask - } - DataMask dataMask = DataMask.forReference(parsedFormatInfo.getDataMask()); - int dimension = bitMatrix.getHeight(); - dataMask.unmaskBitMatrix(bitMatrix, dimension); - } - - /** - * Prepare the parser for a mirrored operation. - * This flag has effect only on the {@link #readFormatInformation()} and the - * {@link #readVersion()}. Before proceeding with {@link #readCodewords()} the - * {@link #mirror()} method should be called. - * - * @param mirror Whether to read version and format information mirrored. - */ - void setMirror(boolean mirror) { - parsedVersion = null; - parsedFormatInfo = null; - this.mirror = mirror; - } - - /** Mirror the bit matrix in order to attempt a second reading. */ - void mirror() { - for (int x = 0; x < bitMatrix.getWidth(); x++) { - for (int y = x + 1; y < bitMatrix.getHeight(); y++) { - if (bitMatrix.get(x, y) != bitMatrix.get(y, x)) { - bitMatrix.flip(y, x); - bitMatrix.flip(x, y); - } - } - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/DataBlock.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/DataBlock.java deleted file mode 100755 index 8f5cdcba..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/DataBlock.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.decoder; - -/** - * <p>Encapsulates a block of data within a QR Code. QR Codes may split their data into - * multiple blocks, each of which is a unit of data and error-correction codewords. Each - * is represented by an instance of this class.</p> - * - * @author Sean Owen - */ -final class DataBlock { - - private final int numDataCodewords; - private final byte[] codewords; - - private DataBlock(int numDataCodewords, byte[] codewords) { - this.numDataCodewords = numDataCodewords; - this.codewords = codewords; - } - - /** - * <p>When QR Codes use multiple data blocks, they are actually interleaved. - * That is, the first byte of data block 1 to n is written, then the second bytes, and so on. This - * method will separate the data into original blocks.</p> - * - * @param rawCodewords bytes as read directly from the QR Code - * @param version version of the QR Code - * @param ecLevel error-correction level of the QR Code - * @return DataBlocks containing original bytes, "de-interleaved" from representation in the - * QR Code - */ - static DataBlock[] getDataBlocks(byte[] rawCodewords, - Version version, - ErrorCorrectionLevel ecLevel) { - - if (rawCodewords.length != version.getTotalCodewords()) { - throw new IllegalArgumentException(); - } - - // Figure out the number and size of data blocks used by this version and - // error correction level - Version.ECBlocks ecBlocks = version.getECBlocksForLevel(ecLevel); - - // First count the total number of data blocks - int totalBlocks = 0; - Version.ECB[] ecBlockArray = ecBlocks.getECBlocks(); - for (Version.ECB ecBlock : ecBlockArray) { - totalBlocks += ecBlock.getCount(); - } - - // Now establish DataBlocks of the appropriate size and number of data codewords - DataBlock[] result = new DataBlock[totalBlocks]; - int numResultBlocks = 0; - for (Version.ECB ecBlock : ecBlockArray) { - for (int i = 0; i < ecBlock.getCount(); i++) { - int numDataCodewords = ecBlock.getDataCodewords(); - int numBlockCodewords = ecBlocks.getECCodewordsPerBlock() + numDataCodewords; - result[numResultBlocks++] = new DataBlock(numDataCodewords, new byte[numBlockCodewords]); - } - } - - // All blocks have the same amount of data, except that the last n - // (where n may be 0) have 1 more byte. Figure out where these start. - int shorterBlocksTotalCodewords = result[0].codewords.length; - int longerBlocksStartAt = result.length - 1; - while (longerBlocksStartAt >= 0) { - int numCodewords = result[longerBlocksStartAt].codewords.length; - if (numCodewords == shorterBlocksTotalCodewords) { - break; - } - longerBlocksStartAt--; - } - longerBlocksStartAt++; - - int shorterBlocksNumDataCodewords = shorterBlocksTotalCodewords - ecBlocks.getECCodewordsPerBlock(); - // The last elements of result may be 1 element longer; - // first fill out as many elements as all of them have - int rawCodewordsOffset = 0; - for (int i = 0; i < shorterBlocksNumDataCodewords; i++) { - for (int j = 0; j < numResultBlocks; j++) { - result[j].codewords[i] = rawCodewords[rawCodewordsOffset++]; - } - } - // Fill out the last data block in the longer ones - for (int j = longerBlocksStartAt; j < numResultBlocks; j++) { - result[j].codewords[shorterBlocksNumDataCodewords] = rawCodewords[rawCodewordsOffset++]; - } - // Now add in error correction blocks - int max = result[0].codewords.length; - for (int i = shorterBlocksNumDataCodewords; i < max; i++) { - for (int j = 0; j < numResultBlocks; j++) { - int iOffset = j < longerBlocksStartAt ? i : i + 1; - result[j].codewords[iOffset] = rawCodewords[rawCodewordsOffset++]; - } - } - return result; - } - - int getNumDataCodewords() { - return numDataCodewords; - } - - byte[] getCodewords() { - return codewords; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/DataMask.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/DataMask.java deleted file mode 100755 index c1dbbb79..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/DataMask.java +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.decoder; - -import com.google.zxing.common.BitMatrix; - -/** - * <p>Encapsulates data masks for the data bits in a QR code, per ISO 18004:2006 6.8. Implementations - * of this class can un-mask a raw BitMatrix. For simplicity, they will unmask the entire BitMatrix, - * including areas used for finder patterns, timing patterns, etc. These areas should be unused - * after the point they are unmasked anyway.</p> - * - * <p>Note that the diagram in section 6.8.1 is misleading since it indicates that i is column position - * and j is row position. In fact, as the text says, i is row position and j is column position.</p> - * - * @author Sean Owen - */ -abstract class DataMask { - - /** - * See ISO 18004:2006 6.8.1 - */ - private static final DataMask[] DATA_MASKS = { - new DataMask000(), - new DataMask001(), - new DataMask010(), - new DataMask011(), - new DataMask100(), - new DataMask101(), - new DataMask110(), - new DataMask111(), - }; - - private DataMask() { - } - - /** - * <p>Implementations of this method reverse the data masking process applied to a QR Code and - * make its bits ready to read.</p> - * - * @param bits representation of QR Code bits - * @param dimension dimension of QR Code, represented by bits, being unmasked - */ - final void unmaskBitMatrix(BitMatrix bits, int dimension) { - for (int i = 0; i < dimension; i++) { - for (int j = 0; j < dimension; j++) { - if (isMasked(i, j)) { - bits.flip(j, i); - } - } - } - } - - abstract boolean isMasked(int i, int j); - - /** - * @param reference a value between 0 and 7 indicating one of the eight possible - * data mask patterns a QR Code may use - * @return DataMask encapsulating the data mask pattern - */ - static DataMask forReference(int reference) { - if (reference < 0 || reference > 7) { - throw new IllegalArgumentException(); - } - return DATA_MASKS[reference]; - } - - /** - * 000: mask bits for which (x + y) mod 2 == 0 - */ - private static final class DataMask000 extends DataMask { - @Override - boolean isMasked(int i, int j) { - return ((i + j) & 0x01) == 0; - } - } - - /** - * 001: mask bits for which x mod 2 == 0 - */ - private static final class DataMask001 extends DataMask { - @Override - boolean isMasked(int i, int j) { - return (i & 0x01) == 0; - } - } - - /** - * 010: mask bits for which y mod 3 == 0 - */ - private static final class DataMask010 extends DataMask { - @Override - boolean isMasked(int i, int j) { - return j % 3 == 0; - } - } - - /** - * 011: mask bits for which (x + y) mod 3 == 0 - */ - private static final class DataMask011 extends DataMask { - @Override - boolean isMasked(int i, int j) { - return (i + j) % 3 == 0; - } - } - - /** - * 100: mask bits for which (x/2 + y/3) mod 2 == 0 - */ - private static final class DataMask100 extends DataMask { - @Override - boolean isMasked(int i, int j) { - return (((i / 2) + (j /3)) & 0x01) == 0; - } - } - - /** - * 101: mask bits for which xy mod 2 + xy mod 3 == 0 - */ - private static final class DataMask101 extends DataMask { - @Override - boolean isMasked(int i, int j) { - int temp = i * j; - return (temp & 0x01) + (temp % 3) == 0; - } - } - - /** - * 110: mask bits for which (xy mod 2 + xy mod 3) mod 2 == 0 - */ - private static final class DataMask110 extends DataMask { - @Override - boolean isMasked(int i, int j) { - int temp = i * j; - return (((temp & 0x01) + (temp % 3)) & 0x01) == 0; - } - } - - /** - * 111: mask bits for which ((x+y)mod 2 + xy mod 3) mod 2 == 0 - */ - private static final class DataMask111 extends DataMask { - @Override - boolean isMasked(int i, int j) { - return ((((i + j) & 0x01) + ((i * j) % 3)) & 0x01) == 0; - } - } -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/DecodedBitStreamParser.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/DecodedBitStreamParser.java deleted file mode 100755 index cb18b7bb..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/DecodedBitStreamParser.java +++ /dev/null @@ -1,354 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.decoder; - -import java.io.UnsupportedEncodingException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; - -import com.google.zxing.DecodeHintType; -import com.google.zxing.FormatException; -import com.google.zxing.common.BitSource; -import com.google.zxing.common.CharacterSetECI; -import com.google.zxing.common.DecoderResult; -import com.google.zxing.common.StringUtils; - -/** - * <p>QR Codes can encode text as bits in one of several modes, and can use multiple modes - * in one QR Code. This class decodes the bits back into text.</p> - * - * <p>See ISO 18004:2006, 6.4.3 - 6.4.7</p> - * - * @author Sean Owen - */ -final class DecodedBitStreamParser { - - /** - * See ISO 18004:2006, 6.4.4 Table 5 - */ - private static final char[] ALPHANUMERIC_CHARS = { - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', - 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', - 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', - ' ', '$', '%', '*', '+', '-', '.', '/', ':' - }; - private static final int GB2312_SUBSET = 1; - - private DecodedBitStreamParser() { - } - - static DecoderResult decode(byte[] bytes, - Version version, - ErrorCorrectionLevel ecLevel, - Map<DecodeHintType,?> hints) throws FormatException { - BitSource bits = new BitSource(bytes); - StringBuilder result = new StringBuilder(50); - List<byte[]> byteSegments = new ArrayList<>(1); - int symbolSequence = -1; - int parityData = -1; - - try { - CharacterSetECI currentCharacterSetECI = null; - boolean fc1InEffect = false; - Mode mode; - do { - // While still another segment to read... - if (bits.available() < 4) { - // OK, assume we're done. Really, a TERMINATOR mode should have been recorded here - mode = Mode.TERMINATOR; - } else { - mode = Mode.forBits(bits.readBits(4)); // mode is encoded by 4 bits - } - if (mode != Mode.TERMINATOR) { - if (mode == Mode.FNC1_FIRST_POSITION || mode == Mode.FNC1_SECOND_POSITION) { - // We do little with FNC1 except alter the parsed result a bit according to the spec - fc1InEffect = true; - } else if (mode == Mode.STRUCTURED_APPEND) { - if (bits.available() < 16) { - throw FormatException.getFormatInstance(); - } - // sequence number and parity is added later to the result metadata - // Read next 8 bits (symbol sequence #) and 8 bits (parity data), then continue - symbolSequence = bits.readBits(8); - parityData = bits.readBits(8); - } else if (mode == Mode.ECI) { - // Count doesn't apply to ECI - int value = parseECIValue(bits); - currentCharacterSetECI = CharacterSetECI.getCharacterSetECIByValue(value); - if (currentCharacterSetECI == null) { - throw FormatException.getFormatInstance(); - } - } else { - // First handle Hanzi mode which does not start with character count - if (mode == Mode.HANZI) { - //chinese mode contains a sub set indicator right after mode indicator - int subset = bits.readBits(4); - int countHanzi = bits.readBits(mode.getCharacterCountBits(version)); - if (subset == GB2312_SUBSET) { - decodeHanziSegment(bits, result, countHanzi); - } - } else { - // "Normal" QR code modes: - // How many characters will follow, encoded in this mode? - int count = bits.readBits(mode.getCharacterCountBits(version)); - if (mode == Mode.NUMERIC) { - decodeNumericSegment(bits, result, count); - } else if (mode == Mode.ALPHANUMERIC) { - decodeAlphanumericSegment(bits, result, count, fc1InEffect); - } else if (mode == Mode.BYTE) { - decodeByteSegment(bits, result, count, currentCharacterSetECI, byteSegments, hints); - } else if (mode == Mode.KANJI) { - decodeKanjiSegment(bits, result, count); - } else { - throw FormatException.getFormatInstance(); - } - } - } - } - } while (mode != Mode.TERMINATOR); - } catch (IllegalArgumentException iae) { - // from readBits() calls - throw FormatException.getFormatInstance(); - } - - return new DecoderResult(bytes, - result.toString(), - byteSegments.isEmpty() ? null : byteSegments, - ecLevel == null ? null : ecLevel.toString(), - symbolSequence, - parityData); - } - - /** - * See specification GBT 18284-2000 - */ - private static void decodeHanziSegment(BitSource bits, - StringBuilder result, - int count) throws FormatException { - // Don't crash trying to read more bits than we have available. - if (count * 13 > bits.available()) { - throw FormatException.getFormatInstance(); - } - - // Each character will require 2 bytes. Read the characters as 2-byte pairs - // and decode as GB2312 afterwards - byte[] buffer = new byte[2 * count]; - int offset = 0; - while (count > 0) { - // Each 13 bits encodes a 2-byte character - int twoBytes = bits.readBits(13); - int assembledTwoBytes = ((twoBytes / 0x060) << 8) | (twoBytes % 0x060); - if (assembledTwoBytes < 0x003BF) { - // In the 0xA1A1 to 0xAAFE range - assembledTwoBytes += 0x0A1A1; - } else { - // In the 0xB0A1 to 0xFAFE range - assembledTwoBytes += 0x0A6A1; - } - buffer[offset] = (byte) ((assembledTwoBytes >> 8) & 0xFF); - buffer[offset + 1] = (byte) (assembledTwoBytes & 0xFF); - offset += 2; - count--; - } - - try { - result.append(new String(buffer, StringUtils.GB2312)); - } catch (UnsupportedEncodingException ignored) { - throw FormatException.getFormatInstance(); - } - } - - private static void decodeKanjiSegment(BitSource bits, - StringBuilder result, - int count) throws FormatException { - // Don't crash trying to read more bits than we have available. - if (count * 13 > bits.available()) { - throw FormatException.getFormatInstance(); - } - - // Each character will require 2 bytes. Read the characters as 2-byte pairs - // and decode as Shift_JIS afterwards - byte[] buffer = new byte[2 * count]; - int offset = 0; - while (count > 0) { - // Each 13 bits encodes a 2-byte character - int twoBytes = bits.readBits(13); - int assembledTwoBytes = ((twoBytes / 0x0C0) << 8) | (twoBytes % 0x0C0); - if (assembledTwoBytes < 0x01F00) { - // In the 0x8140 to 0x9FFC range - assembledTwoBytes += 0x08140; - } else { - // In the 0xE040 to 0xEBBF range - assembledTwoBytes += 0x0C140; - } - buffer[offset] = (byte) (assembledTwoBytes >> 8); - buffer[offset + 1] = (byte) assembledTwoBytes; - offset += 2; - count--; - } - // Shift_JIS may not be supported in some environments: - try { - result.append(new String(buffer, StringUtils.SHIFT_JIS)); - } catch (UnsupportedEncodingException ignored) { - throw FormatException.getFormatInstance(); - } - } - - private static void decodeByteSegment(BitSource bits, - StringBuilder result, - int count, - CharacterSetECI currentCharacterSetECI, - Collection<byte[]> byteSegments, - Map<DecodeHintType,?> hints) throws FormatException { - // Don't crash trying to read more bits than we have available. - if (8 * count > bits.available()) { - throw FormatException.getFormatInstance(); - } - - byte[] readBytes = new byte[count]; - for (int i = 0; i < count; i++) { - readBytes[i] = (byte) bits.readBits(8); - } - String encoding; - if (currentCharacterSetECI == null) { - // The spec isn't clear on this mode; see - // section 6.4.5: t does not say which encoding to assuming - // upon decoding. I have seen ISO-8859-1 used as well as - // Shift_JIS -- without anything like an ECI designator to - // give a hint. - encoding = StringUtils.guessEncoding(readBytes, hints); - } else { - encoding = currentCharacterSetECI.name(); - } - try { - result.append(new String(readBytes, encoding)); - } catch (UnsupportedEncodingException ignored) { - throw FormatException.getFormatInstance(); - } - byteSegments.add(readBytes); - } - - private static char toAlphaNumericChar(int value) throws FormatException { - if (value >= ALPHANUMERIC_CHARS.length) { - throw FormatException.getFormatInstance(); - } - return ALPHANUMERIC_CHARS[value]; - } - - private static void decodeAlphanumericSegment(BitSource bits, - StringBuilder result, - int count, - boolean fc1InEffect) throws FormatException { - // Read two characters at a time - int start = result.length(); - while (count > 1) { - if (bits.available() < 11) { - throw FormatException.getFormatInstance(); - } - int nextTwoCharsBits = bits.readBits(11); - result.append(toAlphaNumericChar(nextTwoCharsBits / 45)); - result.append(toAlphaNumericChar(nextTwoCharsBits % 45)); - count -= 2; - } - if (count == 1) { - // special case: one character left - if (bits.available() < 6) { - throw FormatException.getFormatInstance(); - } - result.append(toAlphaNumericChar(bits.readBits(6))); - } - // See section 6.4.8.1, 6.4.8.2 - if (fc1InEffect) { - // We need to massage the result a bit if in an FNC1 mode: - for (int i = start; i < result.length(); i++) { - if (result.charAt(i) == '%') { - if (i < result.length() - 1 && result.charAt(i + 1) == '%') { - // %% is rendered as % - result.deleteCharAt(i + 1); - } else { - // In alpha mode, % should be converted to FNC1 separator 0x1D - result.setCharAt(i, (char) 0x1D); - } - } - } - } - } - - private static void decodeNumericSegment(BitSource bits, - StringBuilder result, - int count) throws FormatException { - // Read three digits at a time - while (count >= 3) { - // Each 10 bits encodes three digits - if (bits.available() < 10) { - throw FormatException.getFormatInstance(); - } - int threeDigitsBits = bits.readBits(10); - if (threeDigitsBits >= 1000) { - throw FormatException.getFormatInstance(); - } - result.append(toAlphaNumericChar(threeDigitsBits / 100)); - result.append(toAlphaNumericChar((threeDigitsBits / 10) % 10)); - result.append(toAlphaNumericChar(threeDigitsBits % 10)); - count -= 3; - } - if (count == 2) { - // Two digits left over to read, encoded in 7 bits - if (bits.available() < 7) { - throw FormatException.getFormatInstance(); - } - int twoDigitsBits = bits.readBits(7); - if (twoDigitsBits >= 100) { - throw FormatException.getFormatInstance(); - } - result.append(toAlphaNumericChar(twoDigitsBits / 10)); - result.append(toAlphaNumericChar(twoDigitsBits % 10)); - } else if (count == 1) { - // One digit left over to read - if (bits.available() < 4) { - throw FormatException.getFormatInstance(); - } - int digitBits = bits.readBits(4); - if (digitBits >= 10) { - throw FormatException.getFormatInstance(); - } - result.append(toAlphaNumericChar(digitBits)); - } - } - - private static int parseECIValue(BitSource bits) throws FormatException { - int firstByte = bits.readBits(8); - if ((firstByte & 0x80) == 0) { - // just one byte - return firstByte & 0x7F; - } - if ((firstByte & 0xC0) == 0x80) { - // two bytes - int secondByte = bits.readBits(8); - return ((firstByte & 0x3F) << 8) | secondByte; - } - if ((firstByte & 0xE0) == 0xC0) { - // three bytes - int secondThirdBytes = bits.readBits(16); - return ((firstByte & 0x1F) << 16) | secondThirdBytes; - } - throw FormatException.getFormatInstance(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/Decoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/Decoder.java deleted file mode 100755 index 3a79a9fd..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/Decoder.java +++ /dev/null @@ -1,203 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.decoder; - -import java.util.Map; - -import com.google.zxing.ChecksumException; -import com.google.zxing.DecodeHintType; -import com.google.zxing.FormatException; -import com.google.zxing.common.BitMatrix; -import com.google.zxing.common.DecoderResult; -import com.google.zxing.common.reedsolomon.GenericGF; -import com.google.zxing.common.reedsolomon.ReedSolomonDecoder; -import com.google.zxing.common.reedsolomon.ReedSolomonException; - -/** - * <p>The main class which implements QR Code decoding -- as opposed to locating and extracting - * the QR Code from an image.</p> - * - * @author Sean Owen - */ -public final class Decoder { - - private final ReedSolomonDecoder rsDecoder; - - public Decoder() { - rsDecoder = new ReedSolomonDecoder(GenericGF.QR_CODE_FIELD_256); - } - - public DecoderResult decode(boolean[][] image) throws ChecksumException, FormatException { - return decode(image, null); - } - - /** - * <p>Convenience method that can decode a QR Code represented as a 2D array of booleans. - * "true" is taken to mean a black module.</p> - * - * @param image booleans representing white/black QR Code modules - * @param hints decoding hints that should be used to influence decoding - * @return text and bytes encoded within the QR Code - * @throws FormatException if the QR Code cannot be decoded - * @throws ChecksumException if error correction fails - */ - public DecoderResult decode(boolean[][] image, Map<DecodeHintType,?> hints) - throws ChecksumException, FormatException { - int dimension = image.length; - BitMatrix bits = new BitMatrix(dimension); - for (int i = 0; i < dimension; i++) { - for (int j = 0; j < dimension; j++) { - if (image[i][j]) { - bits.set(j, i); - } - } - } - return decode(bits, hints); - } - - public DecoderResult decode(BitMatrix bits) throws ChecksumException, FormatException { - return decode(bits, null); - } - - /** - * <p>Decodes a QR Code represented as a {@link BitMatrix}. A 1 or "true" is taken to mean a black module.</p> - * - * @param bits booleans representing white/black QR Code modules - * @param hints decoding hints that should be used to influence decoding - * @return text and bytes encoded within the QR Code - * @throws FormatException if the QR Code cannot be decoded - * @throws ChecksumException if error correction fails - */ - public DecoderResult decode(BitMatrix bits, Map<DecodeHintType,?> hints) - throws FormatException, ChecksumException { - - // Construct a parser and read version, error-correction level - BitMatrixParser parser = new BitMatrixParser(bits); - FormatException fe = null; - ChecksumException ce = null; - try { - return decode(parser, hints); - } catch (FormatException e) { - fe = e; - } catch (ChecksumException e) { - ce = e; - } - - try { - - // Revert the bit matrix - parser.remask(); - - // Will be attempting a mirrored reading of the version and format info. - parser.setMirror(true); - - // Preemptively read the version. - parser.readVersion(); - - // Preemptively read the format information. - parser.readFormatInformation(); - - /* - * Since we're here, this means we have successfully detected some kind - * of version and format information when mirrored. This is a good sign, - * that the QR code may be mirrored, and we should try once more with a - * mirrored content. - */ - // Prepare for a mirrored reading. - parser.mirror(); - - DecoderResult result = decode(parser, hints); - - // Success! Notify the caller that the code was mirrored. - result.setOther(new QRCodeDecoderMetaData(true)); - - return result; - - } catch (FormatException | ChecksumException e) { - // Throw the exception from the original reading - if (fe != null) { - throw fe; - } - if (ce != null) { - throw ce; - } - throw e; - - } - } - - private DecoderResult decode(BitMatrixParser parser, Map<DecodeHintType,?> hints) - throws FormatException, ChecksumException { - Version version = parser.readVersion(); - ErrorCorrectionLevel ecLevel = parser.readFormatInformation().getErrorCorrectionLevel(); - - // Read codewords - byte[] codewords = parser.readCodewords(); - // Separate into data blocks - DataBlock[] dataBlocks = DataBlock.getDataBlocks(codewords, version, ecLevel); - - // Count total number of data bytes - int totalBytes = 0; - for (DataBlock dataBlock : dataBlocks) { - totalBytes += dataBlock.getNumDataCodewords(); - } - byte[] resultBytes = new byte[totalBytes]; - int resultOffset = 0; - - // Error-correct and copy data blocks together into a stream of bytes - for (DataBlock dataBlock : dataBlocks) { - byte[] codewordBytes = dataBlock.getCodewords(); - int numDataCodewords = dataBlock.getNumDataCodewords(); - correctErrors(codewordBytes, numDataCodewords); - for (int i = 0; i < numDataCodewords; i++) { - resultBytes[resultOffset++] = codewordBytes[i]; - } - } - - // Decode the contents of that stream of bytes - return DecodedBitStreamParser.decode(resultBytes, version, ecLevel, hints); - } - - /** - * <p>Given data and error-correction codewords received, possibly corrupted by errors, attempts to - * correct the errors in-place using Reed-Solomon error correction.</p> - * - * @param codewordBytes data and error correction codewords - * @param numDataCodewords number of codewords that are data bytes - * @throws ChecksumException if error correction fails - */ - private void correctErrors(byte[] codewordBytes, int numDataCodewords) throws ChecksumException { - int numCodewords = codewordBytes.length; - // First read into an array of ints - int[] codewordsInts = new int[numCodewords]; - for (int i = 0; i < numCodewords; i++) { - codewordsInts[i] = codewordBytes[i] & 0xFF; - } - int numECCodewords = codewordBytes.length - numDataCodewords; - try { - rsDecoder.decode(codewordsInts, numECCodewords); - } catch (ReedSolomonException ignored) { - throw ChecksumException.getChecksumInstance(); - } - // Copy back into array of bytes -- only need to worry about the bytes that were data - // We don't care about errors in the error-correction codewords - for (int i = 0; i < numDataCodewords; i++) { - codewordBytes[i] = (byte) codewordsInts[i]; - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/ErrorCorrectionLevel.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/ErrorCorrectionLevel.java deleted file mode 100755 index 0f1e1138..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/ErrorCorrectionLevel.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.decoder; - -/** - * <p>See ISO 18004:2006, 6.5.1. This enum encapsulates the four error correction levels - * defined by the QR code standard.</p> - * - * @author Sean Owen - */ -public enum ErrorCorrectionLevel { - - /** L = ~7% correction */ - L(0x01), - /** M = ~15% correction */ - M(0x00), - /** Q = ~25% correction */ - Q(0x03), - /** H = ~30% correction */ - H(0x02); - - private static final ErrorCorrectionLevel[] FOR_BITS = {M, L, H, Q}; - - private final int bits; - - ErrorCorrectionLevel(int bits) { - this.bits = bits; - } - - public int getBits() { - return bits; - } - - /** - * @param bits int containing the two bits encoding a QR Code's error correction level - * @return ErrorCorrectionLevel representing the encoded error correction level - */ - public static ErrorCorrectionLevel forBits(int bits) { - if (bits < 0 || bits >= FOR_BITS.length) { - throw new IllegalArgumentException(); - } - return FOR_BITS[bits]; - } - - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/FormatInformation.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/FormatInformation.java deleted file mode 100755 index 894e3217..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/FormatInformation.java +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.decoder; - -/** - * <p>Encapsulates a QR Code's format information, including the data mask used and - * error correction level.</p> - * - * @author Sean Owen - * @see DataMask - * @see ErrorCorrectionLevel - */ -final class FormatInformation { - - private static final int FORMAT_INFO_MASK_QR = 0x5412; - - /** - * See ISO 18004:2006, Annex C, Table C.1 - */ - private static final int[][] FORMAT_INFO_DECODE_LOOKUP = { - {0x5412, 0x00}, - {0x5125, 0x01}, - {0x5E7C, 0x02}, - {0x5B4B, 0x03}, - {0x45F9, 0x04}, - {0x40CE, 0x05}, - {0x4F97, 0x06}, - {0x4AA0, 0x07}, - {0x77C4, 0x08}, - {0x72F3, 0x09}, - {0x7DAA, 0x0A}, - {0x789D, 0x0B}, - {0x662F, 0x0C}, - {0x6318, 0x0D}, - {0x6C41, 0x0E}, - {0x6976, 0x0F}, - {0x1689, 0x10}, - {0x13BE, 0x11}, - {0x1CE7, 0x12}, - {0x19D0, 0x13}, - {0x0762, 0x14}, - {0x0255, 0x15}, - {0x0D0C, 0x16}, - {0x083B, 0x17}, - {0x355F, 0x18}, - {0x3068, 0x19}, - {0x3F31, 0x1A}, - {0x3A06, 0x1B}, - {0x24B4, 0x1C}, - {0x2183, 0x1D}, - {0x2EDA, 0x1E}, - {0x2BED, 0x1F}, - }; - - /** - * Offset i holds the number of 1 bits in the binary representation of i - */ - private static final int[] BITS_SET_IN_HALF_BYTE = - {0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4}; - - private final ErrorCorrectionLevel errorCorrectionLevel; - private final byte dataMask; - - private FormatInformation(int formatInfo) { - // Bits 3,4 - errorCorrectionLevel = ErrorCorrectionLevel.forBits((formatInfo >> 3) & 0x03); - // Bottom 3 bits - dataMask = (byte) (formatInfo & 0x07); - } - - static int numBitsDiffering(int a, int b) { - a ^= b; // a now has a 1 bit exactly where its bit differs with b's - // Count bits set quickly with a series of lookups: - return BITS_SET_IN_HALF_BYTE[a & 0x0F] + - BITS_SET_IN_HALF_BYTE[(a >>> 4 & 0x0F)] + - BITS_SET_IN_HALF_BYTE[(a >>> 8 & 0x0F)] + - BITS_SET_IN_HALF_BYTE[(a >>> 12 & 0x0F)] + - BITS_SET_IN_HALF_BYTE[(a >>> 16 & 0x0F)] + - BITS_SET_IN_HALF_BYTE[(a >>> 20 & 0x0F)] + - BITS_SET_IN_HALF_BYTE[(a >>> 24 & 0x0F)] + - BITS_SET_IN_HALF_BYTE[(a >>> 28 & 0x0F)]; - } - - /** - * @param maskedFormatInfo1 format info indicator, with mask still applied - * @param maskedFormatInfo2 second copy of same info; both are checked at the same time - * to establish best match - * @return information about the format it specifies, or {@code null} - * if doesn't seem to match any known pattern - */ - static FormatInformation decodeFormatInformation(int maskedFormatInfo1, int maskedFormatInfo2) { - FormatInformation formatInfo = doDecodeFormatInformation(maskedFormatInfo1, maskedFormatInfo2); - if (formatInfo != null) { - return formatInfo; - } - // Should return null, but, some QR codes apparently - // do not mask this info. Try again by actually masking the pattern - // first - return doDecodeFormatInformation(maskedFormatInfo1 ^ FORMAT_INFO_MASK_QR, - maskedFormatInfo2 ^ FORMAT_INFO_MASK_QR); - } - - private static FormatInformation doDecodeFormatInformation(int maskedFormatInfo1, int maskedFormatInfo2) { - // Find the int in FORMAT_INFO_DECODE_LOOKUP with fewest bits differing - int bestDifference = Integer.MAX_VALUE; - int bestFormatInfo = 0; - for (int[] decodeInfo : FORMAT_INFO_DECODE_LOOKUP) { - int targetInfo = decodeInfo[0]; - if (targetInfo == maskedFormatInfo1 || targetInfo == maskedFormatInfo2) { - // Found an exact match - return new FormatInformation(decodeInfo[1]); - } - int bitsDifference = numBitsDiffering(maskedFormatInfo1, targetInfo); - if (bitsDifference < bestDifference) { - bestFormatInfo = decodeInfo[1]; - bestDifference = bitsDifference; - } - if (maskedFormatInfo1 != maskedFormatInfo2) { - // also try the other option - bitsDifference = numBitsDiffering(maskedFormatInfo2, targetInfo); - if (bitsDifference < bestDifference) { - bestFormatInfo = decodeInfo[1]; - bestDifference = bitsDifference; - } - } - } - // Hamming distance of the 32 masked codes is 7, by construction, so <= 3 bits - // differing means we found a match - if (bestDifference <= 3) { - return new FormatInformation(bestFormatInfo); - } - return null; - } - - ErrorCorrectionLevel getErrorCorrectionLevel() { - return errorCorrectionLevel; - } - - byte getDataMask() { - return dataMask; - } - - @Override - public int hashCode() { - return (errorCorrectionLevel.ordinal() << 3) | (int) dataMask; - } - - @Override - public boolean equals(Object o) { - if (!(o instanceof FormatInformation)) { - return false; - } - FormatInformation other = (FormatInformation) o; - return this.errorCorrectionLevel == other.errorCorrectionLevel && - this.dataMask == other.dataMask; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/Mode.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/Mode.java deleted file mode 100755 index b7e9ab3a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/Mode.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.decoder; - -/** - * <p>See ISO 18004:2006, 6.4.1, Tables 2 and 3. This enum encapsulates the various modes in which - * data can be encoded to bits in the QR code standard.</p> - * - * @author Sean Owen - */ -public enum Mode { - - TERMINATOR(new int[]{0, 0, 0}, 0x00), // Not really a mode... - NUMERIC(new int[]{10, 12, 14}, 0x01), - ALPHANUMERIC(new int[]{9, 11, 13}, 0x02), - STRUCTURED_APPEND(new int[]{0, 0, 0}, 0x03), // Not supported - BYTE(new int[]{8, 16, 16}, 0x04), - ECI(new int[]{0, 0, 0}, 0x07), // character counts don't apply - KANJI(new int[]{8, 10, 12}, 0x08), - FNC1_FIRST_POSITION(new int[]{0, 0, 0}, 0x05), - FNC1_SECOND_POSITION(new int[]{0, 0, 0}, 0x09), - /** See GBT 18284-2000; "Hanzi" is a transliteration of this mode name. */ - HANZI(new int[]{8, 10, 12}, 0x0D); - - private final int[] characterCountBitsForVersions; - private final int bits; - - Mode(int[] characterCountBitsForVersions, int bits) { - this.characterCountBitsForVersions = characterCountBitsForVersions; - this.bits = bits; - } - - /** - * @param bits four bits encoding a QR Code data mode - * @return Mode encoded by these bits - * @throws IllegalArgumentException if bits do not correspond to a known mode - */ - public static Mode forBits(int bits) { - switch (bits) { - case 0x0: - return TERMINATOR; - case 0x1: - return NUMERIC; - case 0x2: - return ALPHANUMERIC; - case 0x3: - return STRUCTURED_APPEND; - case 0x4: - return BYTE; - case 0x5: - return FNC1_FIRST_POSITION; - case 0x7: - return ECI; - case 0x8: - return KANJI; - case 0x9: - return FNC1_SECOND_POSITION; - case 0xD: - // 0xD is defined in GBT 18284-2000, may not be supported in foreign country - return HANZI; - default: - throw new IllegalArgumentException(); - } - } - - /** - * @param version version in question - * @return number of bits used, in this QR Code symbol {@link Version}, to encode the - * count of characters that will follow encoded in this Mode - */ - public int getCharacterCountBits(Version version) { - int number = version.getVersionNumber(); - int offset; - if (number <= 9) { - offset = 0; - } else if (number <= 26) { - offset = 1; - } else { - offset = 2; - } - return characterCountBitsForVersions[offset]; - } - - public int getBits() { - return bits; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/QRCodeDecoderMetaData.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/QRCodeDecoderMetaData.java deleted file mode 100755 index 75821e30..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/QRCodeDecoderMetaData.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2013 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.decoder; - -import com.google.zxing.ResultPoint; - -/** - * Meta-data container for QR Code decoding. Instances of this class may be used to convey information back to the - * decoding caller. Callers are expected to process this. - * - * @see com.google.zxing.common.DecoderResult#getOther() - */ -public final class QRCodeDecoderMetaData { - - private final boolean mirrored; - - QRCodeDecoderMetaData(boolean mirrored) { - this.mirrored = mirrored; - } - - /** - * @return true if the QR Code was mirrored. - */ - public boolean isMirrored() { - return mirrored; - } - - /** - * Apply the result points' order correction due to mirroring. - * - * @param points Array of points to apply mirror correction to. - */ - public void applyMirroredCorrection(ResultPoint[] points) { - if (!mirrored || points == null || points.length < 3) { - return; - } - ResultPoint bottomLeft = points[0]; - points[0] = points[2]; - points[2] = bottomLeft; - // No need to 'fix' top-left and alignment pattern. - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/Version.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/Version.java deleted file mode 100755 index cc405250..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/decoder/Version.java +++ /dev/null @@ -1,578 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.decoder; - -import com.google.zxing.FormatException; -import com.google.zxing.common.BitMatrix; - -/** - * See ISO 18004:2006 Annex D - * - * @author Sean Owen - */ -public final class Version { - - /** - * See ISO 18004:2006 Annex D. - * Element i represents the raw version bits that specify version i + 7 - */ - private static final int[] VERSION_DECODE_INFO = { - 0x07C94, 0x085BC, 0x09A99, 0x0A4D3, 0x0BBF6, - 0x0C762, 0x0D847, 0x0E60D, 0x0F928, 0x10B78, - 0x1145D, 0x12A17, 0x13532, 0x149A6, 0x15683, - 0x168C9, 0x177EC, 0x18EC4, 0x191E1, 0x1AFAB, - 0x1B08E, 0x1CC1A, 0x1D33F, 0x1ED75, 0x1F250, - 0x209D5, 0x216F0, 0x228BA, 0x2379F, 0x24B0B, - 0x2542E, 0x26A64, 0x27541, 0x28C69 - }; - - private static final Version[] VERSIONS = buildVersions(); - - private final int versionNumber; - private final int[] alignmentPatternCenters; - private final ECBlocks[] ecBlocks; - private final int totalCodewords; - - private Version(int versionNumber, - int[] alignmentPatternCenters, - ECBlocks... ecBlocks) { - this.versionNumber = versionNumber; - this.alignmentPatternCenters = alignmentPatternCenters; - this.ecBlocks = ecBlocks; - int total = 0; - int ecCodewords = ecBlocks[0].getECCodewordsPerBlock(); - ECB[] ecbArray = ecBlocks[0].getECBlocks(); - for (ECB ecBlock : ecbArray) { - total += ecBlock.getCount() * (ecBlock.getDataCodewords() + ecCodewords); - } - this.totalCodewords = total; - } - - public int getVersionNumber() { - return versionNumber; - } - - public int[] getAlignmentPatternCenters() { - return alignmentPatternCenters; - } - - public int getTotalCodewords() { - return totalCodewords; - } - - public int getDimensionForVersion() { - return 17 + 4 * versionNumber; - } - - public ECBlocks getECBlocksForLevel(ErrorCorrectionLevel ecLevel) { - return ecBlocks[ecLevel.ordinal()]; - } - - /** - * <p>Deduces version information purely from QR Code dimensions.</p> - * - * @param dimension dimension in modules - * @return Version for a QR Code of that dimension - * @throws FormatException if dimension is not 1 mod 4 - */ - public static Version getProvisionalVersionForDimension(int dimension) throws FormatException { - if (dimension % 4 != 1) { - throw FormatException.getFormatInstance(); - } - try { - return getVersionForNumber((dimension - 17) / 4); - } catch (IllegalArgumentException ignored) { - throw FormatException.getFormatInstance(); - } - } - - public static Version getVersionForNumber(int versionNumber) { - if (versionNumber < 1 || versionNumber > 40) { - throw new IllegalArgumentException(); - } - return VERSIONS[versionNumber - 1]; - } - - static Version decodeVersionInformation(int versionBits) { - int bestDifference = Integer.MAX_VALUE; - int bestVersion = 0; - for (int i = 0; i < VERSION_DECODE_INFO.length; i++) { - int targetVersion = VERSION_DECODE_INFO[i]; - // Do the version info bits match exactly? done. - if (targetVersion == versionBits) { - return getVersionForNumber(i + 7); - } - // Otherwise see if this is the closest to a real version info bit string - // we have seen so far - int bitsDifference = FormatInformation.numBitsDiffering(versionBits, targetVersion); - if (bitsDifference < bestDifference) { - bestVersion = i + 7; - bestDifference = bitsDifference; - } - } - // We can tolerate up to 3 bits of error since no two version info codewords will - // differ in less than 8 bits. - if (bestDifference <= 3) { - return getVersionForNumber(bestVersion); - } - // If we didn't find a close enough match, fail - return null; - } - - /** - * See ISO 18004:2006 Annex E - */ - BitMatrix buildFunctionPattern() { - int dimension = getDimensionForVersion(); - BitMatrix bitMatrix = new BitMatrix(dimension); - - // Top left finder pattern + separator + format - bitMatrix.setRegion(0, 0, 9, 9); - // Top right finder pattern + separator + format - bitMatrix.setRegion(dimension - 8, 0, 8, 9); - // Bottom left finder pattern + separator + format - bitMatrix.setRegion(0, dimension - 8, 9, 8); - - // Alignment patterns - int max = alignmentPatternCenters.length; - for (int x = 0; x < max; x++) { - int i = alignmentPatternCenters[x] - 2; - for (int y = 0; y < max; y++) { - if ((x == 0 && (y == 0 || y == max - 1)) || (x == max - 1 && y == 0)) { - // No alignment patterns near the three finder paterns - continue; - } - bitMatrix.setRegion(alignmentPatternCenters[y] - 2, i, 5, 5); - } - } - - // Vertical timing pattern - bitMatrix.setRegion(6, 9, 1, dimension - 17); - // Horizontal timing pattern - bitMatrix.setRegion(9, 6, dimension - 17, 1); - - if (versionNumber > 6) { - // Version info, top right - bitMatrix.setRegion(dimension - 11, 0, 3, 6); - // Version info, bottom left - bitMatrix.setRegion(0, dimension - 11, 6, 3); - } - - return bitMatrix; - } - - /** - * <p>Encapsulates a set of error-correction blocks in one symbol version. Most versions will - * use blocks of differing sizes within one version, so, this encapsulates the parameters for - * each set of blocks. It also holds the number of error-correction codewords per block since it - * will be the same across all blocks within one version.</p> - */ - public static final class ECBlocks { - private final int ecCodewordsPerBlock; - private final ECB[] ecBlocks; - - ECBlocks(int ecCodewordsPerBlock, ECB... ecBlocks) { - this.ecCodewordsPerBlock = ecCodewordsPerBlock; - this.ecBlocks = ecBlocks; - } - - public int getECCodewordsPerBlock() { - return ecCodewordsPerBlock; - } - - public int getNumBlocks() { - int total = 0; - for (ECB ecBlock : ecBlocks) { - total += ecBlock.getCount(); - } - return total; - } - - public int getTotalECCodewords() { - return ecCodewordsPerBlock * getNumBlocks(); - } - - public ECB[] getECBlocks() { - return ecBlocks; - } - } - - /** - * <p>Encapsualtes the parameters for one error-correction block in one symbol version. - * This includes the number of data codewords, and the number of times a block with these - * parameters is used consecutively in the QR code version's format.</p> - */ - public static final class ECB { - private final int count; - private final int dataCodewords; - - ECB(int count, int dataCodewords) { - this.count = count; - this.dataCodewords = dataCodewords; - } - - public int getCount() { - return count; - } - - public int getDataCodewords() { - return dataCodewords; - } - } - - @Override - public String toString() { - return String.valueOf(versionNumber); - } - - /** - * See ISO 18004:2006 6.5.1 Table 9 - */ - private static Version[] buildVersions() { - return new Version[]{ - new Version(1, new int[]{}, - new ECBlocks(7, new ECB(1, 19)), - new ECBlocks(10, new ECB(1, 16)), - new ECBlocks(13, new ECB(1, 13)), - new ECBlocks(17, new ECB(1, 9))), - new Version(2, new int[]{6, 18}, - new ECBlocks(10, new ECB(1, 34)), - new ECBlocks(16, new ECB(1, 28)), - new ECBlocks(22, new ECB(1, 22)), - new ECBlocks(28, new ECB(1, 16))), - new Version(3, new int[]{6, 22}, - new ECBlocks(15, new ECB(1, 55)), - new ECBlocks(26, new ECB(1, 44)), - new ECBlocks(18, new ECB(2, 17)), - new ECBlocks(22, new ECB(2, 13))), - new Version(4, new int[]{6, 26}, - new ECBlocks(20, new ECB(1, 80)), - new ECBlocks(18, new ECB(2, 32)), - new ECBlocks(26, new ECB(2, 24)), - new ECBlocks(16, new ECB(4, 9))), - new Version(5, new int[]{6, 30}, - new ECBlocks(26, new ECB(1, 108)), - new ECBlocks(24, new ECB(2, 43)), - new ECBlocks(18, new ECB(2, 15), - new ECB(2, 16)), - new ECBlocks(22, new ECB(2, 11), - new ECB(2, 12))), - new Version(6, new int[]{6, 34}, - new ECBlocks(18, new ECB(2, 68)), - new ECBlocks(16, new ECB(4, 27)), - new ECBlocks(24, new ECB(4, 19)), - new ECBlocks(28, new ECB(4, 15))), - new Version(7, new int[]{6, 22, 38}, - new ECBlocks(20, new ECB(2, 78)), - new ECBlocks(18, new ECB(4, 31)), - new ECBlocks(18, new ECB(2, 14), - new ECB(4, 15)), - new ECBlocks(26, new ECB(4, 13), - new ECB(1, 14))), - new Version(8, new int[]{6, 24, 42}, - new ECBlocks(24, new ECB(2, 97)), - new ECBlocks(22, new ECB(2, 38), - new ECB(2, 39)), - new ECBlocks(22, new ECB(4, 18), - new ECB(2, 19)), - new ECBlocks(26, new ECB(4, 14), - new ECB(2, 15))), - new Version(9, new int[]{6, 26, 46}, - new ECBlocks(30, new ECB(2, 116)), - new ECBlocks(22, new ECB(3, 36), - new ECB(2, 37)), - new ECBlocks(20, new ECB(4, 16), - new ECB(4, 17)), - new ECBlocks(24, new ECB(4, 12), - new ECB(4, 13))), - new Version(10, new int[]{6, 28, 50}, - new ECBlocks(18, new ECB(2, 68), - new ECB(2, 69)), - new ECBlocks(26, new ECB(4, 43), - new ECB(1, 44)), - new ECBlocks(24, new ECB(6, 19), - new ECB(2, 20)), - new ECBlocks(28, new ECB(6, 15), - new ECB(2, 16))), - new Version(11, new int[]{6, 30, 54}, - new ECBlocks(20, new ECB(4, 81)), - new ECBlocks(30, new ECB(1, 50), - new ECB(4, 51)), - new ECBlocks(28, new ECB(4, 22), - new ECB(4, 23)), - new ECBlocks(24, new ECB(3, 12), - new ECB(8, 13))), - new Version(12, new int[]{6, 32, 58}, - new ECBlocks(24, new ECB(2, 92), - new ECB(2, 93)), - new ECBlocks(22, new ECB(6, 36), - new ECB(2, 37)), - new ECBlocks(26, new ECB(4, 20), - new ECB(6, 21)), - new ECBlocks(28, new ECB(7, 14), - new ECB(4, 15))), - new Version(13, new int[]{6, 34, 62}, - new ECBlocks(26, new ECB(4, 107)), - new ECBlocks(22, new ECB(8, 37), - new ECB(1, 38)), - new ECBlocks(24, new ECB(8, 20), - new ECB(4, 21)), - new ECBlocks(22, new ECB(12, 11), - new ECB(4, 12))), - new Version(14, new int[]{6, 26, 46, 66}, - new ECBlocks(30, new ECB(3, 115), - new ECB(1, 116)), - new ECBlocks(24, new ECB(4, 40), - new ECB(5, 41)), - new ECBlocks(20, new ECB(11, 16), - new ECB(5, 17)), - new ECBlocks(24, new ECB(11, 12), - new ECB(5, 13))), - new Version(15, new int[]{6, 26, 48, 70}, - new ECBlocks(22, new ECB(5, 87), - new ECB(1, 88)), - new ECBlocks(24, new ECB(5, 41), - new ECB(5, 42)), - new ECBlocks(30, new ECB(5, 24), - new ECB(7, 25)), - new ECBlocks(24, new ECB(11, 12), - new ECB(7, 13))), - new Version(16, new int[]{6, 26, 50, 74}, - new ECBlocks(24, new ECB(5, 98), - new ECB(1, 99)), - new ECBlocks(28, new ECB(7, 45), - new ECB(3, 46)), - new ECBlocks(24, new ECB(15, 19), - new ECB(2, 20)), - new ECBlocks(30, new ECB(3, 15), - new ECB(13, 16))), - new Version(17, new int[]{6, 30, 54, 78}, - new ECBlocks(28, new ECB(1, 107), - new ECB(5, 108)), - new ECBlocks(28, new ECB(10, 46), - new ECB(1, 47)), - new ECBlocks(28, new ECB(1, 22), - new ECB(15, 23)), - new ECBlocks(28, new ECB(2, 14), - new ECB(17, 15))), - new Version(18, new int[]{6, 30, 56, 82}, - new ECBlocks(30, new ECB(5, 120), - new ECB(1, 121)), - new ECBlocks(26, new ECB(9, 43), - new ECB(4, 44)), - new ECBlocks(28, new ECB(17, 22), - new ECB(1, 23)), - new ECBlocks(28, new ECB(2, 14), - new ECB(19, 15))), - new Version(19, new int[]{6, 30, 58, 86}, - new ECBlocks(28, new ECB(3, 113), - new ECB(4, 114)), - new ECBlocks(26, new ECB(3, 44), - new ECB(11, 45)), - new ECBlocks(26, new ECB(17, 21), - new ECB(4, 22)), - new ECBlocks(26, new ECB(9, 13), - new ECB(16, 14))), - new Version(20, new int[]{6, 34, 62, 90}, - new ECBlocks(28, new ECB(3, 107), - new ECB(5, 108)), - new ECBlocks(26, new ECB(3, 41), - new ECB(13, 42)), - new ECBlocks(30, new ECB(15, 24), - new ECB(5, 25)), - new ECBlocks(28, new ECB(15, 15), - new ECB(10, 16))), - new Version(21, new int[]{6, 28, 50, 72, 94}, - new ECBlocks(28, new ECB(4, 116), - new ECB(4, 117)), - new ECBlocks(26, new ECB(17, 42)), - new ECBlocks(28, new ECB(17, 22), - new ECB(6, 23)), - new ECBlocks(30, new ECB(19, 16), - new ECB(6, 17))), - new Version(22, new int[]{6, 26, 50, 74, 98}, - new ECBlocks(28, new ECB(2, 111), - new ECB(7, 112)), - new ECBlocks(28, new ECB(17, 46)), - new ECBlocks(30, new ECB(7, 24), - new ECB(16, 25)), - new ECBlocks(24, new ECB(34, 13))), - new Version(23, new int[]{6, 30, 54, 78, 102}, - new ECBlocks(30, new ECB(4, 121), - new ECB(5, 122)), - new ECBlocks(28, new ECB(4, 47), - new ECB(14, 48)), - new ECBlocks(30, new ECB(11, 24), - new ECB(14, 25)), - new ECBlocks(30, new ECB(16, 15), - new ECB(14, 16))), - new Version(24, new int[]{6, 28, 54, 80, 106}, - new ECBlocks(30, new ECB(6, 117), - new ECB(4, 118)), - new ECBlocks(28, new ECB(6, 45), - new ECB(14, 46)), - new ECBlocks(30, new ECB(11, 24), - new ECB(16, 25)), - new ECBlocks(30, new ECB(30, 16), - new ECB(2, 17))), - new Version(25, new int[]{6, 32, 58, 84, 110}, - new ECBlocks(26, new ECB(8, 106), - new ECB(4, 107)), - new ECBlocks(28, new ECB(8, 47), - new ECB(13, 48)), - new ECBlocks(30, new ECB(7, 24), - new ECB(22, 25)), - new ECBlocks(30, new ECB(22, 15), - new ECB(13, 16))), - new Version(26, new int[]{6, 30, 58, 86, 114}, - new ECBlocks(28, new ECB(10, 114), - new ECB(2, 115)), - new ECBlocks(28, new ECB(19, 46), - new ECB(4, 47)), - new ECBlocks(28, new ECB(28, 22), - new ECB(6, 23)), - new ECBlocks(30, new ECB(33, 16), - new ECB(4, 17))), - new Version(27, new int[]{6, 34, 62, 90, 118}, - new ECBlocks(30, new ECB(8, 122), - new ECB(4, 123)), - new ECBlocks(28, new ECB(22, 45), - new ECB(3, 46)), - new ECBlocks(30, new ECB(8, 23), - new ECB(26, 24)), - new ECBlocks(30, new ECB(12, 15), - new ECB(28, 16))), - new Version(28, new int[]{6, 26, 50, 74, 98, 122}, - new ECBlocks(30, new ECB(3, 117), - new ECB(10, 118)), - new ECBlocks(28, new ECB(3, 45), - new ECB(23, 46)), - new ECBlocks(30, new ECB(4, 24), - new ECB(31, 25)), - new ECBlocks(30, new ECB(11, 15), - new ECB(31, 16))), - new Version(29, new int[]{6, 30, 54, 78, 102, 126}, - new ECBlocks(30, new ECB(7, 116), - new ECB(7, 117)), - new ECBlocks(28, new ECB(21, 45), - new ECB(7, 46)), - new ECBlocks(30, new ECB(1, 23), - new ECB(37, 24)), - new ECBlocks(30, new ECB(19, 15), - new ECB(26, 16))), - new Version(30, new int[]{6, 26, 52, 78, 104, 130}, - new ECBlocks(30, new ECB(5, 115), - new ECB(10, 116)), - new ECBlocks(28, new ECB(19, 47), - new ECB(10, 48)), - new ECBlocks(30, new ECB(15, 24), - new ECB(25, 25)), - new ECBlocks(30, new ECB(23, 15), - new ECB(25, 16))), - new Version(31, new int[]{6, 30, 56, 82, 108, 134}, - new ECBlocks(30, new ECB(13, 115), - new ECB(3, 116)), - new ECBlocks(28, new ECB(2, 46), - new ECB(29, 47)), - new ECBlocks(30, new ECB(42, 24), - new ECB(1, 25)), - new ECBlocks(30, new ECB(23, 15), - new ECB(28, 16))), - new Version(32, new int[]{6, 34, 60, 86, 112, 138}, - new ECBlocks(30, new ECB(17, 115)), - new ECBlocks(28, new ECB(10, 46), - new ECB(23, 47)), - new ECBlocks(30, new ECB(10, 24), - new ECB(35, 25)), - new ECBlocks(30, new ECB(19, 15), - new ECB(35, 16))), - new Version(33, new int[]{6, 30, 58, 86, 114, 142}, - new ECBlocks(30, new ECB(17, 115), - new ECB(1, 116)), - new ECBlocks(28, new ECB(14, 46), - new ECB(21, 47)), - new ECBlocks(30, new ECB(29, 24), - new ECB(19, 25)), - new ECBlocks(30, new ECB(11, 15), - new ECB(46, 16))), - new Version(34, new int[]{6, 34, 62, 90, 118, 146}, - new ECBlocks(30, new ECB(13, 115), - new ECB(6, 116)), - new ECBlocks(28, new ECB(14, 46), - new ECB(23, 47)), - new ECBlocks(30, new ECB(44, 24), - new ECB(7, 25)), - new ECBlocks(30, new ECB(59, 16), - new ECB(1, 17))), - new Version(35, new int[]{6, 30, 54, 78, 102, 126, 150}, - new ECBlocks(30, new ECB(12, 121), - new ECB(7, 122)), - new ECBlocks(28, new ECB(12, 47), - new ECB(26, 48)), - new ECBlocks(30, new ECB(39, 24), - new ECB(14, 25)), - new ECBlocks(30, new ECB(22, 15), - new ECB(41, 16))), - new Version(36, new int[]{6, 24, 50, 76, 102, 128, 154}, - new ECBlocks(30, new ECB(6, 121), - new ECB(14, 122)), - new ECBlocks(28, new ECB(6, 47), - new ECB(34, 48)), - new ECBlocks(30, new ECB(46, 24), - new ECB(10, 25)), - new ECBlocks(30, new ECB(2, 15), - new ECB(64, 16))), - new Version(37, new int[]{6, 28, 54, 80, 106, 132, 158}, - new ECBlocks(30, new ECB(17, 122), - new ECB(4, 123)), - new ECBlocks(28, new ECB(29, 46), - new ECB(14, 47)), - new ECBlocks(30, new ECB(49, 24), - new ECB(10, 25)), - new ECBlocks(30, new ECB(24, 15), - new ECB(46, 16))), - new Version(38, new int[]{6, 32, 58, 84, 110, 136, 162}, - new ECBlocks(30, new ECB(4, 122), - new ECB(18, 123)), - new ECBlocks(28, new ECB(13, 46), - new ECB(32, 47)), - new ECBlocks(30, new ECB(48, 24), - new ECB(14, 25)), - new ECBlocks(30, new ECB(42, 15), - new ECB(32, 16))), - new Version(39, new int[]{6, 26, 54, 82, 110, 138, 166}, - new ECBlocks(30, new ECB(20, 117), - new ECB(4, 118)), - new ECBlocks(28, new ECB(40, 47), - new ECB(7, 48)), - new ECBlocks(30, new ECB(43, 24), - new ECB(22, 25)), - new ECBlocks(30, new ECB(10, 15), - new ECB(67, 16))), - new Version(40, new int[]{6, 30, 58, 86, 114, 142, 170}, - new ECBlocks(30, new ECB(19, 118), - new ECB(6, 119)), - new ECBlocks(28, new ECB(18, 47), - new ECB(31, 48)), - new ECBlocks(30, new ECB(34, 24), - new ECB(34, 25)), - new ECBlocks(30, new ECB(20, 15), - new ECB(61, 16))) - }; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/AlignmentPattern.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/AlignmentPattern.java deleted file mode 100755 index 96d91942..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/AlignmentPattern.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.detector; - -import com.google.zxing.ResultPoint; - -/** - * <p>Encapsulates an alignment pattern, which are the smaller square patterns found in - * all but the simplest QR Codes.</p> - * - * @author Sean Owen - */ -public final class AlignmentPattern extends ResultPoint { - - private final float estimatedModuleSize; - - AlignmentPattern(float posX, float posY, float estimatedModuleSize) { - super(posX, posY); - this.estimatedModuleSize = estimatedModuleSize; - } - - /** - * <p>Determines if this alignment pattern "about equals" an alignment pattern at the stated - * position and size -- meaning, it is at nearly the same center with nearly the same size.</p> - */ - boolean aboutEquals(float moduleSize, float i, float j) { - if (Math.abs(i - getY()) <= moduleSize && Math.abs(j - getX()) <= moduleSize) { - float moduleSizeDiff = Math.abs(moduleSize - estimatedModuleSize); - return moduleSizeDiff <= 1.0f || moduleSizeDiff <= estimatedModuleSize; - } - return false; - } - - /** - * Combines this object's current estimate of a finder pattern position and module size - * with a new estimate. It returns a new {@code FinderPattern} containing an average of the two. - */ - AlignmentPattern combineEstimate(float i, float j, float newModuleSize) { - float combinedX = (getX() + j) / 2.0f; - float combinedY = (getY() + i) / 2.0f; - float combinedModuleSize = (estimatedModuleSize + newModuleSize) / 2.0f; - return new AlignmentPattern(combinedX, combinedY, combinedModuleSize); - } - -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/AlignmentPatternFinder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/AlignmentPatternFinder.java deleted file mode 100755 index 48e8e459..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/AlignmentPatternFinder.java +++ /dev/null @@ -1,277 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.detector; - -import java.util.ArrayList; -import java.util.List; - -import com.google.zxing.NotFoundException; -import com.google.zxing.ResultPointCallback; -import com.google.zxing.common.BitMatrix; - -/** - * <p>This class attempts to find alignment patterns in a QR Code. Alignment patterns look like finder - * patterns but are smaller and appear at regular intervals throughout the image.</p> - * - * <p>At the moment this only looks for the bottom-right alignment pattern.</p> - * - * <p>This is mostly a simplified copy of {@link FinderPatternFinder}. It is copied, - * pasted and stripped down here for maximum performance but does unfortunately duplicate - * some code.</p> - * - * <p>This class is thread-safe but not reentrant. Each thread must allocate its own object.</p> - * - * @author Sean Owen - */ -final class AlignmentPatternFinder { - - private final BitMatrix image; - private final List<AlignmentPattern> possibleCenters; - private final int startX; - private final int startY; - private final int width; - private final int height; - private final float moduleSize; - private final int[] crossCheckStateCount; - private final ResultPointCallback resultPointCallback; - - /** - * <p>Creates a finder that will look in a portion of the whole image.</p> - * - * @param image image to search - * @param startX left column from which to start searching - * @param startY top row from which to start searching - * @param width width of region to search - * @param height height of region to search - * @param moduleSize estimated module size so far - */ - AlignmentPatternFinder(BitMatrix image, - int startX, - int startY, - int width, - int height, - float moduleSize, - ResultPointCallback resultPointCallback) { - this.image = image; - this.possibleCenters = new ArrayList<>(5); - this.startX = startX; - this.startY = startY; - this.width = width; - this.height = height; - this.moduleSize = moduleSize; - this.crossCheckStateCount = new int[3]; - this.resultPointCallback = resultPointCallback; - } - - /** - * <p>This method attempts to find the bottom-right alignment pattern in the image. It is a bit messy since - * it's pretty performance-critical and so is written to be fast foremost.</p> - * - * @return {@link AlignmentPattern} if found - * @throws NotFoundException if not found - */ - AlignmentPattern find() throws NotFoundException { - int startX = this.startX; - int height = this.height; - int maxJ = startX + width; - int middleI = startY + (height / 2); - // We are looking for black/white/black modules in 1:1:1 ratio; - // this tracks the number of black/white/black modules seen so far - int[] stateCount = new int[3]; - for (int iGen = 0; iGen < height; iGen++) { - // Search from middle outwards - int i = middleI + ((iGen & 0x01) == 0 ? (iGen + 1) / 2 : -((iGen + 1) / 2)); - stateCount[0] = 0; - stateCount[1] = 0; - stateCount[2] = 0; - int j = startX; - // Burn off leading white pixels before anything else; if we start in the middle of - // a white run, it doesn't make sense to count its length, since we don't know if the - // white run continued to the left of the start point - while (j < maxJ && !image.get(j, i)) { - j++; - } - int currentState = 0; - while (j < maxJ) { - if (image.get(j, i)) { - // Black pixel - if (currentState == 1) { // Counting black pixels - stateCount[currentState]++; - } else { // Counting white pixels - if (currentState == 2) { // A winner? - if (foundPatternCross(stateCount)) { // Yes - AlignmentPattern confirmed = handlePossibleCenter(stateCount, i, j); - if (confirmed != null) { - return confirmed; - } - } - stateCount[0] = stateCount[2]; - stateCount[1] = 1; - stateCount[2] = 0; - currentState = 1; - } else { - stateCount[++currentState]++; - } - } - } else { // White pixel - if (currentState == 1) { // Counting black pixels - currentState++; - } - stateCount[currentState]++; - } - j++; - } - if (foundPatternCross(stateCount)) { - AlignmentPattern confirmed = handlePossibleCenter(stateCount, i, maxJ); - if (confirmed != null) { - return confirmed; - } - } - - } - - // Hmm, nothing we saw was observed and confirmed twice. If we had - // any guess at all, return it. - if (!possibleCenters.isEmpty()) { - return possibleCenters.get(0); - } - - throw NotFoundException.getNotFoundInstance(); - } - - /** - * Given a count of black/white/black pixels just seen and an end position, - * figures the location of the center of this black/white/black run. - */ - private static float centerFromEnd(int[] stateCount, int end) { - return (float) (end - stateCount[2]) - stateCount[1] / 2.0f; - } - - /** - * @param stateCount count of black/white/black pixels just read - * @return true iff the proportions of the counts is close enough to the 1/1/1 ratios - * used by alignment patterns to be considered a match - */ - private boolean foundPatternCross(int[] stateCount) { - float moduleSize = this.moduleSize; - float maxVariance = moduleSize / 2.0f; - for (int i = 0; i < 3; i++) { - if (Math.abs(moduleSize - stateCount[i]) >= maxVariance) { - return false; - } - } - return true; - } - - /** - * <p>After a horizontal scan finds a potential alignment pattern, this method - * "cross-checks" by scanning down vertically through the center of the possible - * alignment pattern to see if the same proportion is detected.</p> - * - * @param startI row where an alignment pattern was detected - * @param centerJ center of the section that appears to cross an alignment pattern - * @param maxCount maximum reasonable number of modules that should be - * observed in any reading state, based on the results of the horizontal scan - * @return vertical center of alignment pattern, or {@link Float#NaN} if not found - */ - private float crossCheckVertical(int startI, int centerJ, int maxCount, - int originalStateCountTotal) { - BitMatrix image = this.image; - - int maxI = image.getHeight(); - int[] stateCount = crossCheckStateCount; - stateCount[0] = 0; - stateCount[1] = 0; - stateCount[2] = 0; - - // Start counting up from center - int i = startI; - while (i >= 0 && image.get(centerJ, i) && stateCount[1] <= maxCount) { - stateCount[1]++; - i--; - } - // If already too many modules in this state or ran off the edge: - if (i < 0 || stateCount[1] > maxCount) { - return Float.NaN; - } - while (i >= 0 && !image.get(centerJ, i) && stateCount[0] <= maxCount) { - stateCount[0]++; - i--; - } - if (stateCount[0] > maxCount) { - return Float.NaN; - } - - // Now also count down from center - i = startI + 1; - while (i < maxI && image.get(centerJ, i) && stateCount[1] <= maxCount) { - stateCount[1]++; - i++; - } - if (i == maxI || stateCount[1] > maxCount) { - return Float.NaN; - } - while (i < maxI && !image.get(centerJ, i) && stateCount[2] <= maxCount) { - stateCount[2]++; - i++; - } - if (stateCount[2] > maxCount) { - return Float.NaN; - } - - int stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2]; - if (5 * Math.abs(stateCountTotal - originalStateCountTotal) >= 2 * originalStateCountTotal) { - return Float.NaN; - } - - return foundPatternCross(stateCount) ? centerFromEnd(stateCount, i) : Float.NaN; - } - - /** - * <p>This is called when a horizontal scan finds a possible alignment pattern. It will - * cross check with a vertical scan, and if successful, will see if this pattern had been - * found on a previous horizontal scan. If so, we consider it confirmed and conclude we have - * found the alignment pattern.</p> - * - * @param stateCount reading state module counts from horizontal scan - * @param i row where alignment pattern may be found - * @param j end of possible alignment pattern in row - * @return {@link AlignmentPattern} if we have found the same pattern twice, or null if not - */ - private AlignmentPattern handlePossibleCenter(int[] stateCount, int i, int j) { - int stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2]; - float centerJ = centerFromEnd(stateCount, j); - float centerI = crossCheckVertical(i, (int) centerJ, 2 * stateCount[1], stateCountTotal); - if (!Float.isNaN(centerI)) { - float estimatedModuleSize = (float) (stateCount[0] + stateCount[1] + stateCount[2]) / 3.0f; - for (AlignmentPattern center : possibleCenters) { - // Look for about the same center and module size: - if (center.aboutEquals(estimatedModuleSize, centerI, centerJ)) { - return center.combineEstimate(centerI, centerJ, estimatedModuleSize); - } - } - // Hadn't found this before; save it - AlignmentPattern point = new AlignmentPattern(centerJ, centerI, estimatedModuleSize); - possibleCenters.add(point); - if (resultPointCallback != null) { - resultPointCallback.foundPossibleResultPoint(point); - } - } - return null; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/Detector.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/Detector.java deleted file mode 100755 index 017a5c84..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/Detector.java +++ /dev/null @@ -1,405 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.detector; - -import java.util.Map; - -import com.google.zxing.DecodeHintType; -import com.google.zxing.FormatException; -import com.google.zxing.NotFoundException; -import com.google.zxing.ResultPoint; -import com.google.zxing.ResultPointCallback; -import com.google.zxing.common.BitMatrix; -import com.google.zxing.common.DetectorResult; -import com.google.zxing.common.GridSampler; -import com.google.zxing.common.PerspectiveTransform; -import com.google.zxing.common.detector.MathUtils; -import com.google.zxing.qrcode.decoder.Version; - -/** - * <p>Encapsulates logic that can detect a QR Code in an image, even if the QR Code - * is rotated or skewed, or partially obscured.</p> - * - * @author Sean Owen - */ -public class Detector { - - private final BitMatrix image; - private ResultPointCallback resultPointCallback; - - public Detector(BitMatrix image) { - this.image = image; - } - - protected final BitMatrix getImage() { - return image; - } - - protected final ResultPointCallback getResultPointCallback() { - return resultPointCallback; - } - - /** - * <p>Detects a QR Code in an image.</p> - * - * @return {@link DetectorResult} encapsulating results of detecting a QR Code - * @throws NotFoundException if QR Code cannot be found - * @throws FormatException if a QR Code cannot be decoded - */ - public DetectorResult detect() throws NotFoundException, FormatException { - return detect(null); - } - - /** - * <p>Detects a QR Code in an image.</p> - * - * @param hints optional hints to detector - * @return {@link DetectorResult} encapsulating results of detecting a QR Code - * @throws NotFoundException if QR Code cannot be found - * @throws FormatException if a QR Code cannot be decoded - */ - public final DetectorResult detect(Map<DecodeHintType,?> hints) throws NotFoundException, FormatException { - - resultPointCallback = hints == null ? null : - (ResultPointCallback) hints.get(DecodeHintType.NEED_RESULT_POINT_CALLBACK); - - FinderPatternFinder finder = new FinderPatternFinder(image, resultPointCallback); - FinderPatternInfo info = finder.find(hints); - - return processFinderPatternInfo(info); - } - - protected final DetectorResult processFinderPatternInfo(FinderPatternInfo info) - throws NotFoundException, FormatException { - - FinderPattern topLeft = info.getTopLeft(); - FinderPattern topRight = info.getTopRight(); - FinderPattern bottomLeft = info.getBottomLeft(); - - float moduleSize = calculateModuleSize(topLeft, topRight, bottomLeft); - if (moduleSize < 1.0f) { - throw NotFoundException.getNotFoundInstance(); - } - int dimension = computeDimension(topLeft, topRight, bottomLeft, moduleSize); - Version provisionalVersion = Version.getProvisionalVersionForDimension(dimension); - int modulesBetweenFPCenters = provisionalVersion.getDimensionForVersion() - 7; - - AlignmentPattern alignmentPattern = null; - // Anything above version 1 has an alignment pattern - if (provisionalVersion.getAlignmentPatternCenters().length > 0) { - - // Guess where a "bottom right" finder pattern would have been - float bottomRightX = topRight.getX() - topLeft.getX() + bottomLeft.getX(); - float bottomRightY = topRight.getY() - topLeft.getY() + bottomLeft.getY(); - - // Estimate that alignment pattern is closer by 3 modules - // from "bottom right" to known top left location - float correctionToTopLeft = 1.0f - 3.0f / (float) modulesBetweenFPCenters; - int estAlignmentX = (int) (topLeft.getX() + correctionToTopLeft * (bottomRightX - topLeft.getX())); - int estAlignmentY = (int) (topLeft.getY() + correctionToTopLeft * (bottomRightY - topLeft.getY())); - - // Kind of arbitrary -- expand search radius before giving up - for (int i = 4; i <= 16; i <<= 1) { - try { - alignmentPattern = findAlignmentInRegion(moduleSize, - estAlignmentX, - estAlignmentY, - (float) i); - break; - } catch (NotFoundException re) { - // try next round - } - } - // If we didn't find alignment pattern... well try anyway without it - } - - PerspectiveTransform transform = - createTransform(topLeft, topRight, bottomLeft, alignmentPattern, dimension); - - BitMatrix bits = sampleGrid(image, transform, dimension); - - ResultPoint[] points; - if (alignmentPattern == null) { - points = new ResultPoint[]{bottomLeft, topLeft, topRight}; - } else { - points = new ResultPoint[]{bottomLeft, topLeft, topRight, alignmentPattern}; - } - return new DetectorResult(bits, points); - } - - private static PerspectiveTransform createTransform(ResultPoint topLeft, - ResultPoint topRight, - ResultPoint bottomLeft, - ResultPoint alignmentPattern, - int dimension) { - float dimMinusThree = (float) dimension - 3.5f; - float bottomRightX; - float bottomRightY; - float sourceBottomRightX; - float sourceBottomRightY; - if (alignmentPattern != null) { - bottomRightX = alignmentPattern.getX(); - bottomRightY = alignmentPattern.getY(); - sourceBottomRightX = dimMinusThree - 3.0f; - sourceBottomRightY = sourceBottomRightX; - } else { - // Don't have an alignment pattern, just make up the bottom-right point - bottomRightX = (topRight.getX() - topLeft.getX()) + bottomLeft.getX(); - bottomRightY = (topRight.getY() - topLeft.getY()) + bottomLeft.getY(); - sourceBottomRightX = dimMinusThree; - sourceBottomRightY = dimMinusThree; - } - - return PerspectiveTransform.quadrilateralToQuadrilateral( - 3.5f, - 3.5f, - dimMinusThree, - 3.5f, - sourceBottomRightX, - sourceBottomRightY, - 3.5f, - dimMinusThree, - topLeft.getX(), - topLeft.getY(), - topRight.getX(), - topRight.getY(), - bottomRightX, - bottomRightY, - bottomLeft.getX(), - bottomLeft.getY()); - } - - private static BitMatrix sampleGrid(BitMatrix image, - PerspectiveTransform transform, - int dimension) throws NotFoundException { - - GridSampler sampler = GridSampler.getInstance(); - return sampler.sampleGrid(image, dimension, dimension, transform); - } - - /** - * <p>Computes the dimension (number of modules on a size) of the QR Code based on the position - * of the finder patterns and estimated module size.</p> - */ - private static int computeDimension(ResultPoint topLeft, - ResultPoint topRight, - ResultPoint bottomLeft, - float moduleSize) throws NotFoundException { - int tltrCentersDimension = MathUtils.round(ResultPoint.distance(topLeft, topRight) / moduleSize); - int tlblCentersDimension = MathUtils.round(ResultPoint.distance(topLeft, bottomLeft) / moduleSize); - int dimension = ((tltrCentersDimension + tlblCentersDimension) / 2) + 7; - switch (dimension & 0x03) { // mod 4 - case 0: - dimension++; - break; - // 1? do nothing - case 2: - dimension--; - break; - case 3: - throw NotFoundException.getNotFoundInstance(); - } - return dimension; - } - - /** - * <p>Computes an average estimated module size based on estimated derived from the positions - * of the three finder patterns.</p> - * - * @param topLeft detected top-left finder pattern center - * @param topRight detected top-right finder pattern center - * @param bottomLeft detected bottom-left finder pattern center - * @return estimated module size - */ - protected final float calculateModuleSize(ResultPoint topLeft, - ResultPoint topRight, - ResultPoint bottomLeft) { - // Take the average - return (calculateModuleSizeOneWay(topLeft, topRight) + - calculateModuleSizeOneWay(topLeft, bottomLeft)) / 2.0f; - } - - /** - * <p>Estimates module size based on two finder patterns -- it uses - * {@link #sizeOfBlackWhiteBlackRunBothWays(int, int, int, int)} to figure the - * width of each, measuring along the axis between their centers.</p> - */ - private float calculateModuleSizeOneWay(ResultPoint pattern, ResultPoint otherPattern) { - float moduleSizeEst1 = sizeOfBlackWhiteBlackRunBothWays((int) pattern.getX(), - (int) pattern.getY(), - (int) otherPattern.getX(), - (int) otherPattern.getY()); - float moduleSizeEst2 = sizeOfBlackWhiteBlackRunBothWays((int) otherPattern.getX(), - (int) otherPattern.getY(), - (int) pattern.getX(), - (int) pattern.getY()); - if (Float.isNaN(moduleSizeEst1)) { - return moduleSizeEst2 / 7.0f; - } - if (Float.isNaN(moduleSizeEst2)) { - return moduleSizeEst1 / 7.0f; - } - // Average them, and divide by 7 since we've counted the width of 3 black modules, - // and 1 white and 1 black module on either side. Ergo, divide sum by 14. - return (moduleSizeEst1 + moduleSizeEst2) / 14.0f; - } - - /** - * See {@link #sizeOfBlackWhiteBlackRun(int, int, int, int)}; computes the total width of - * a finder pattern by looking for a black-white-black run from the center in the direction - * of another point (another finder pattern center), and in the opposite direction too. - */ - private float sizeOfBlackWhiteBlackRunBothWays(int fromX, int fromY, int toX, int toY) { - - float result = sizeOfBlackWhiteBlackRun(fromX, fromY, toX, toY); - - // Now count other way -- don't run off image though of course - float scale = 1.0f; - int otherToX = fromX - (toX - fromX); - if (otherToX < 0) { - scale = (float) fromX / (float) (fromX - otherToX); - otherToX = 0; - } else if (otherToX >= image.getWidth()) { - scale = (float) (image.getWidth() - 1 - fromX) / (float) (otherToX - fromX); - otherToX = image.getWidth() - 1; - } - int otherToY = (int) (fromY - (toY - fromY) * scale); - - scale = 1.0f; - if (otherToY < 0) { - scale = (float) fromY / (float) (fromY - otherToY); - otherToY = 0; - } else if (otherToY >= image.getHeight()) { - scale = (float) (image.getHeight() - 1 - fromY) / (float) (otherToY - fromY); - otherToY = image.getHeight() - 1; - } - otherToX = (int) (fromX + (otherToX - fromX) * scale); - - result += sizeOfBlackWhiteBlackRun(fromX, fromY, otherToX, otherToY); - - // Middle pixel is double-counted this way; subtract 1 - return result - 1.0f; - } - - /** - * <p>This method traces a line from a point in the image, in the direction towards another point. - * It begins in a black region, and keeps going until it finds white, then black, then white again. - * It reports the distance from the start to this point.</p> - * - * <p>This is used when figuring out how wide a finder pattern is, when the finder pattern - * may be skewed or rotated.</p> - */ - private float sizeOfBlackWhiteBlackRun(int fromX, int fromY, int toX, int toY) { - // Mild variant of Bresenham's algorithm; - // see http://en.wikipedia.org/wiki/Bresenham's_line_algorithm - boolean steep = Math.abs(toY - fromY) > Math.abs(toX - fromX); - if (steep) { - int temp = fromX; - fromX = fromY; - fromY = temp; - temp = toX; - toX = toY; - toY = temp; - } - - int dx = Math.abs(toX - fromX); - int dy = Math.abs(toY - fromY); - int error = -dx / 2; - int xstep = fromX < toX ? 1 : -1; - int ystep = fromY < toY ? 1 : -1; - - // In black pixels, looking for white, first or second time. - int state = 0; - // Loop up until x == toX, but not beyond - int xLimit = toX + xstep; - for (int x = fromX, y = fromY; x != xLimit; x += xstep) { - int realX = steep ? y : x; - int realY = steep ? x : y; - - // Does current pixel mean we have moved white to black or vice versa? - // Scanning black in state 0,2 and white in state 1, so if we find the wrong - // color, advance to next state or end if we are in state 2 already - if ((state == 1) == image.get(realX, realY)) { - if (state == 2) { - return MathUtils.distance(x, y, fromX, fromY); - } - state++; - } - - error += dy; - if (error > 0) { - if (y == toY) { - break; - } - y += ystep; - error -= dx; - } - } - // Found black-white-black; give the benefit of the doubt that the next pixel outside the image - // is "white" so this last point at (toX+xStep,toY) is the right ending. This is really a - // small approximation; (toX+xStep,toY+yStep) might be really correct. Ignore this. - if (state == 2) { - return MathUtils.distance(toX + xstep, toY, fromX, fromY); - } - // else we didn't find even black-white-black; no estimate is really possible - return Float.NaN; - } - - /** - * <p>Attempts to locate an alignment pattern in a limited region of the image, which is - * guessed to contain it. This method uses {@link AlignmentPattern}.</p> - * - * @param overallEstModuleSize estimated module size so far - * @param estAlignmentX x coordinate of center of area probably containing alignment pattern - * @param estAlignmentY y coordinate of above - * @param allowanceFactor number of pixels in all directions to search from the center - * @return {@link AlignmentPattern} if found, or null otherwise - * @throws NotFoundException if an unexpected error occurs during detection - */ - protected final AlignmentPattern findAlignmentInRegion(float overallEstModuleSize, - int estAlignmentX, - int estAlignmentY, - float allowanceFactor) - throws NotFoundException { - // Look for an alignment pattern (3 modules in size) around where it - // should be - int allowance = (int) (allowanceFactor * overallEstModuleSize); - int alignmentAreaLeftX = Math.max(0, estAlignmentX - allowance); - int alignmentAreaRightX = Math.min(image.getWidth() - 1, estAlignmentX + allowance); - if (alignmentAreaRightX - alignmentAreaLeftX < overallEstModuleSize * 3) { - throw NotFoundException.getNotFoundInstance(); - } - - int alignmentAreaTopY = Math.max(0, estAlignmentY - allowance); - int alignmentAreaBottomY = Math.min(image.getHeight() - 1, estAlignmentY + allowance); - if (alignmentAreaBottomY - alignmentAreaTopY < overallEstModuleSize * 3) { - throw NotFoundException.getNotFoundInstance(); - } - - AlignmentPatternFinder alignmentFinder = - new AlignmentPatternFinder( - image, - alignmentAreaLeftX, - alignmentAreaTopY, - alignmentAreaRightX - alignmentAreaLeftX, - alignmentAreaBottomY - alignmentAreaTopY, - overallEstModuleSize, - resultPointCallback); - return alignmentFinder.find(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/FinderPattern.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/FinderPattern.java deleted file mode 100755 index a64e7c2b..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/FinderPattern.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.detector; - -import com.google.zxing.ResultPoint; - -/** - * <p>Encapsulates a finder pattern, which are the three square patterns found in - * the corners of QR Codes. It also encapsulates a count of similar finder patterns, - * as a convenience to the finder's bookkeeping.</p> - * - * @author Sean Owen - */ -public final class FinderPattern extends ResultPoint { - - private final float estimatedModuleSize; - private final int count; - - FinderPattern(float posX, float posY, float estimatedModuleSize) { - this(posX, posY, estimatedModuleSize, 1); - } - - private FinderPattern(float posX, float posY, float estimatedModuleSize, int count) { - super(posX, posY); - this.estimatedModuleSize = estimatedModuleSize; - this.count = count; - } - - public float getEstimatedModuleSize() { - return estimatedModuleSize; - } - - int getCount() { - return count; - } - - /* - void incrementCount() { - this.count++; - } - */ - - /** - * <p>Determines if this finder pattern "about equals" a finder pattern at the stated - * position and size -- meaning, it is at nearly the same center with nearly the same size.</p> - */ - boolean aboutEquals(float moduleSize, float i, float j) { - if (Math.abs(i - getY()) <= moduleSize && Math.abs(j - getX()) <= moduleSize) { - float moduleSizeDiff = Math.abs(moduleSize - estimatedModuleSize); - return moduleSizeDiff <= 1.0f || moduleSizeDiff <= estimatedModuleSize; - } - return false; - } - - /** - * Combines this object's current estimate of a finder pattern position and module size - * with a new estimate. It returns a new {@code FinderPattern} containing a weighted average - * based on count. - */ - FinderPattern combineEstimate(float i, float j, float newModuleSize) { - int combinedCount = count + 1; - float combinedX = (count * getX() + j) / combinedCount; - float combinedY = (count * getY() + i) / combinedCount; - float combinedModuleSize = (count * estimatedModuleSize + newModuleSize) / combinedCount; - return new FinderPattern(combinedX, combinedY, combinedModuleSize, combinedCount); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/FinderPatternFinder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/FinderPatternFinder.java deleted file mode 100755 index dca81921..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/FinderPatternFinder.java +++ /dev/null @@ -1,680 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.detector; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.Map; - -import com.google.zxing.DecodeHintType; -import com.google.zxing.NotFoundException; -import com.google.zxing.ResultPoint; -import com.google.zxing.ResultPointCallback; -import com.google.zxing.common.BitMatrix; - -/** - * <p>This class attempts to find finder patterns in a QR Code. Finder patterns are the square - * markers at three corners of a QR Code.</p> - * - * <p>This class is thread-safe but not reentrant. Each thread must allocate its own object. - * - * @author Sean Owen - */ -public class FinderPatternFinder { - - private static final int CENTER_QUORUM = 2; - protected static final int MIN_SKIP = 3; // 1 pixel/module times 3 modules/center - protected static final int MAX_MODULES = 57; // support up to version 10 for mobile clients - - private final BitMatrix image; - private final List<FinderPattern> possibleCenters; - private boolean hasSkipped; - private final int[] crossCheckStateCount; - private final ResultPointCallback resultPointCallback; - - /** - * <p>Creates a finder that will search the image for three finder patterns.</p> - * - * @param image image to search - */ - public FinderPatternFinder(BitMatrix image) { - this(image, null); - } - - public FinderPatternFinder(BitMatrix image, ResultPointCallback resultPointCallback) { - this.image = image; - this.possibleCenters = new ArrayList<>(); - this.crossCheckStateCount = new int[5]; - this.resultPointCallback = resultPointCallback; - } - - protected final BitMatrix getImage() { - return image; - } - - protected final List<FinderPattern> getPossibleCenters() { - return possibleCenters; - } - - final FinderPatternInfo find(Map<DecodeHintType,?> hints) throws NotFoundException { - boolean tryHarder = hints != null && hints.containsKey(DecodeHintType.TRY_HARDER); - boolean pureBarcode = hints != null && hints.containsKey(DecodeHintType.PURE_BARCODE); - int maxI = image.getHeight(); - int maxJ = image.getWidth(); - // We are looking for black/white/black/white/black modules in - // 1:1:3:1:1 ratio; this tracks the number of such modules seen so far - - // Let's assume that the maximum version QR Code we support takes up 1/4 the height of the - // image, and then account for the center being 3 modules in size. This gives the smallest - // number of pixels the center could be, so skip this often. When trying harder, look for all - // QR versions regardless of how dense they are. - int iSkip = (3 * maxI) / (4 * MAX_MODULES); - if (iSkip < MIN_SKIP || tryHarder) { - iSkip = MIN_SKIP; - } - - boolean done = false; - int[] stateCount = new int[5]; - for (int i = iSkip - 1; i < maxI && !done; i += iSkip) { - // Get a row of black/white values - stateCount[0] = 0; - stateCount[1] = 0; - stateCount[2] = 0; - stateCount[3] = 0; - stateCount[4] = 0; - int currentState = 0; - for (int j = 0; j < maxJ; j++) { - if (image.get(j, i)) { - // Black pixel - if ((currentState & 1) == 1) { // Counting white pixels - currentState++; - } - stateCount[currentState]++; - } else { // White pixel - if ((currentState & 1) == 0) { // Counting black pixels - if (currentState == 4) { // A winner? - if (foundPatternCross(stateCount)) { // Yes - boolean confirmed = handlePossibleCenter(stateCount, i, j, pureBarcode); - if (confirmed) { - // Start examining every other line. Checking each line turned out to be too - // expensive and didn't improve performance. - iSkip = 2; - if (hasSkipped) { - done = haveMultiplyConfirmedCenters(); - } else { - int rowSkip = findRowSkip(); - if (rowSkip > stateCount[2]) { - // Skip rows between row of lower confirmed center - // and top of presumed third confirmed center - // but back up a bit to get a full chance of detecting - // it, entire width of center of finder pattern - - // Skip by rowSkip, but back off by stateCount[2] (size of last center - // of pattern we saw) to be conservative, and also back off by iSkip which - // is about to be re-added - i += rowSkip - stateCount[2] - iSkip; - j = maxJ - 1; - } - } - } else { - stateCount[0] = stateCount[2]; - stateCount[1] = stateCount[3]; - stateCount[2] = stateCount[4]; - stateCount[3] = 1; - stateCount[4] = 0; - currentState = 3; - continue; - } - // Clear state to start looking again - currentState = 0; - stateCount[0] = 0; - stateCount[1] = 0; - stateCount[2] = 0; - stateCount[3] = 0; - stateCount[4] = 0; - } else { // No, shift counts back by two - stateCount[0] = stateCount[2]; - stateCount[1] = stateCount[3]; - stateCount[2] = stateCount[4]; - stateCount[3] = 1; - stateCount[4] = 0; - currentState = 3; - } - } else { - stateCount[++currentState]++; - } - } else { // Counting white pixels - stateCount[currentState]++; - } - } - } - if (foundPatternCross(stateCount)) { - boolean confirmed = handlePossibleCenter(stateCount, i, maxJ, pureBarcode); - if (confirmed) { - iSkip = stateCount[0]; - if (hasSkipped) { - // Found a third one - done = haveMultiplyConfirmedCenters(); - } - } - } - } - - FinderPattern[] patternInfo = selectBestPatterns(); - ResultPoint.orderBestPatterns(patternInfo); - - return new FinderPatternInfo(patternInfo); - } - - /** - * Given a count of black/white/black/white/black pixels just seen and an end position, - * figures the location of the center of this run. - */ - private static float centerFromEnd(int[] stateCount, int end) { - return (float) (end - stateCount[4] - stateCount[3]) - stateCount[2] / 2.0f; - } - - /** - * @param stateCount count of black/white/black/white/black pixels just read - * @return true iff the proportions of the counts is close enough to the 1/1/3/1/1 ratios - * used by finder patterns to be considered a match - */ - protected static boolean foundPatternCross(int[] stateCount) { - int totalModuleSize = 0; - for (int i = 0; i < 5; i++) { - int count = stateCount[i]; - if (count == 0) { - return false; - } - totalModuleSize += count; - } - if (totalModuleSize < 7) { - return false; - } - float moduleSize = totalModuleSize / 7.0f; - float maxVariance = moduleSize / 2.0f; - // Allow less than 50% variance from 1-1-3-1-1 proportions - return - Math.abs(moduleSize - stateCount[0]) < maxVariance && - Math.abs(moduleSize - stateCount[1]) < maxVariance && - Math.abs(3.0f * moduleSize - stateCount[2]) < 3 * maxVariance && - Math.abs(moduleSize - stateCount[3]) < maxVariance && - Math.abs(moduleSize - stateCount[4]) < maxVariance; - } - - private int[] getCrossCheckStateCount() { - crossCheckStateCount[0] = 0; - crossCheckStateCount[1] = 0; - crossCheckStateCount[2] = 0; - crossCheckStateCount[3] = 0; - crossCheckStateCount[4] = 0; - return crossCheckStateCount; - } - - /** - * After a vertical and horizontal scan finds a potential finder pattern, this method - * "cross-cross-cross-checks" by scanning down diagonally through the center of the possible - * finder pattern to see if the same proportion is detected. - * - * @param startI row where a finder pattern was detected - * @param centerJ center of the section that appears to cross a finder pattern - * @param maxCount maximum reasonable number of modules that should be - * observed in any reading state, based on the results of the horizontal scan - * @param originalStateCountTotal The original state count total. - * @return true if proportions are withing expected limits - */ - private boolean crossCheckDiagonal(int startI, int centerJ, int maxCount, int originalStateCountTotal) { - int[] stateCount = getCrossCheckStateCount(); - - // Start counting up, left from center finding black center mass - int i = 0; - while (startI >= i && centerJ >= i && image.get(centerJ - i, startI - i)) { - stateCount[2]++; - i++; - } - - if (startI < i || centerJ < i) { - return false; - } - - // Continue up, left finding white space - while (startI >= i && centerJ >= i && !image.get(centerJ - i, startI - i) && - stateCount[1] <= maxCount) { - stateCount[1]++; - i++; - } - - // If already too many modules in this state or ran off the edge: - if (startI < i || centerJ < i || stateCount[1] > maxCount) { - return false; - } - - // Continue up, left finding black border - while (startI >= i && centerJ >= i && image.get(centerJ - i, startI - i) && - stateCount[0] <= maxCount) { - stateCount[0]++; - i++; - } - if (stateCount[0] > maxCount) { - return false; - } - - int maxI = image.getHeight(); - int maxJ = image.getWidth(); - - // Now also count down, right from center - i = 1; - while (startI + i < maxI && centerJ + i < maxJ && image.get(centerJ + i, startI + i)) { - stateCount[2]++; - i++; - } - - // Ran off the edge? - if (startI + i >= maxI || centerJ + i >= maxJ) { - return false; - } - - while (startI + i < maxI && centerJ + i < maxJ && !image.get(centerJ + i, startI + i) && - stateCount[3] < maxCount) { - stateCount[3]++; - i++; - } - - if (startI + i >= maxI || centerJ + i >= maxJ || stateCount[3] >= maxCount) { - return false; - } - - while (startI + i < maxI && centerJ + i < maxJ && image.get(centerJ + i, startI + i) && - stateCount[4] < maxCount) { - stateCount[4]++; - i++; - } - - if (stateCount[4] >= maxCount) { - return false; - } - - // If we found a finder-pattern-like section, but its size is more than 100% different than - // the original, assume it's a false positive - int stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] + stateCount[4]; - return - Math.abs(stateCountTotal - originalStateCountTotal) < 2 * originalStateCountTotal && - foundPatternCross(stateCount); - } - - /** - * <p>After a horizontal scan finds a potential finder pattern, this method - * "cross-checks" by scanning down vertically through the center of the possible - * finder pattern to see if the same proportion is detected.</p> - * - * @param startI row where a finder pattern was detected - * @param centerJ center of the section that appears to cross a finder pattern - * @param maxCount maximum reasonable number of modules that should be - * observed in any reading state, based on the results of the horizontal scan - * @return vertical center of finder pattern, or {@link Float#NaN} if not found - */ - private float crossCheckVertical(int startI, int centerJ, int maxCount, - int originalStateCountTotal) { - BitMatrix image = this.image; - - int maxI = image.getHeight(); - int[] stateCount = getCrossCheckStateCount(); - - // Start counting up from center - int i = startI; - while (i >= 0 && image.get(centerJ, i)) { - stateCount[2]++; - i--; - } - if (i < 0) { - return Float.NaN; - } - while (i >= 0 && !image.get(centerJ, i) && stateCount[1] <= maxCount) { - stateCount[1]++; - i--; - } - // If already too many modules in this state or ran off the edge: - if (i < 0 || stateCount[1] > maxCount) { - return Float.NaN; - } - while (i >= 0 && image.get(centerJ, i) && stateCount[0] <= maxCount) { - stateCount[0]++; - i--; - } - if (stateCount[0] > maxCount) { - return Float.NaN; - } - - // Now also count down from center - i = startI + 1; - while (i < maxI && image.get(centerJ, i)) { - stateCount[2]++; - i++; - } - if (i == maxI) { - return Float.NaN; - } - while (i < maxI && !image.get(centerJ, i) && stateCount[3] < maxCount) { - stateCount[3]++; - i++; - } - if (i == maxI || stateCount[3] >= maxCount) { - return Float.NaN; - } - while (i < maxI && image.get(centerJ, i) && stateCount[4] < maxCount) { - stateCount[4]++; - i++; - } - if (stateCount[4] >= maxCount) { - return Float.NaN; - } - - // If we found a finder-pattern-like section, but its size is more than 40% different than - // the original, assume it's a false positive - int stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] + - stateCount[4]; - if (5 * Math.abs(stateCountTotal - originalStateCountTotal) >= 2 * originalStateCountTotal) { - return Float.NaN; - } - - return foundPatternCross(stateCount) ? centerFromEnd(stateCount, i) : Float.NaN; - } - - /** - * <p>Like {@link #crossCheckVertical(int, int, int, int)}, and in fact is basically identical, - * except it reads horizontally instead of vertically. This is used to cross-cross - * check a vertical cross check and locate the real center of the alignment pattern.</p> - */ - private float crossCheckHorizontal(int startJ, int centerI, int maxCount, - int originalStateCountTotal) { - BitMatrix image = this.image; - - int maxJ = image.getWidth(); - int[] stateCount = getCrossCheckStateCount(); - - int j = startJ; - while (j >= 0 && image.get(j, centerI)) { - stateCount[2]++; - j--; - } - if (j < 0) { - return Float.NaN; - } - while (j >= 0 && !image.get(j, centerI) && stateCount[1] <= maxCount) { - stateCount[1]++; - j--; - } - if (j < 0 || stateCount[1] > maxCount) { - return Float.NaN; - } - while (j >= 0 && image.get(j, centerI) && stateCount[0] <= maxCount) { - stateCount[0]++; - j--; - } - if (stateCount[0] > maxCount) { - return Float.NaN; - } - - j = startJ + 1; - while (j < maxJ && image.get(j, centerI)) { - stateCount[2]++; - j++; - } - if (j == maxJ) { - return Float.NaN; - } - while (j < maxJ && !image.get(j, centerI) && stateCount[3] < maxCount) { - stateCount[3]++; - j++; - } - if (j == maxJ || stateCount[3] >= maxCount) { - return Float.NaN; - } - while (j < maxJ && image.get(j, centerI) && stateCount[4] < maxCount) { - stateCount[4]++; - j++; - } - if (stateCount[4] >= maxCount) { - return Float.NaN; - } - - // If we found a finder-pattern-like section, but its size is significantly different than - // the original, assume it's a false positive - int stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] + - stateCount[4]; - if (5 * Math.abs(stateCountTotal - originalStateCountTotal) >= originalStateCountTotal) { - return Float.NaN; - } - - return foundPatternCross(stateCount) ? centerFromEnd(stateCount, j) : Float.NaN; - } - - /** - * <p>This is called when a horizontal scan finds a possible alignment pattern. It will - * cross check with a vertical scan, and if successful, will, ah, cross-cross-check - * with another horizontal scan. This is needed primarily to locate the real horizontal - * center of the pattern in cases of extreme skew. - * And then we cross-cross-cross check with another diagonal scan.</p> - * - * <p>If that succeeds the finder pattern location is added to a list that tracks - * the number of times each location has been nearly-matched as a finder pattern. - * Each additional find is more evidence that the location is in fact a finder - * pattern center - * - * @param stateCount reading state module counts from horizontal scan - * @param i row where finder pattern may be found - * @param j end of possible finder pattern in row - * @param pureBarcode true if in "pure barcode" mode - * @return true if a finder pattern candidate was found this time - */ - protected final boolean handlePossibleCenter(int[] stateCount, int i, int j, boolean pureBarcode) { - int stateCountTotal = stateCount[0] + stateCount[1] + stateCount[2] + stateCount[3] + - stateCount[4]; - float centerJ = centerFromEnd(stateCount, j); - float centerI = crossCheckVertical(i, (int) centerJ, stateCount[2], stateCountTotal); - if (!Float.isNaN(centerI)) { - // Re-cross check - centerJ = crossCheckHorizontal((int) centerJ, (int) centerI, stateCount[2], stateCountTotal); - if (!Float.isNaN(centerJ) && - (!pureBarcode || crossCheckDiagonal((int) centerI, (int) centerJ, stateCount[2], stateCountTotal))) { - float estimatedModuleSize = (float) stateCountTotal / 7.0f; - boolean found = false; - for (int index = 0; index < possibleCenters.size(); index++) { - FinderPattern center = possibleCenters.get(index); - // Look for about the same center and module size: - if (center.aboutEquals(estimatedModuleSize, centerI, centerJ)) { - possibleCenters.set(index, center.combineEstimate(centerI, centerJ, estimatedModuleSize)); - found = true; - break; - } - } - if (!found) { - FinderPattern point = new FinderPattern(centerJ, centerI, estimatedModuleSize); - possibleCenters.add(point); - if (resultPointCallback != null) { - resultPointCallback.foundPossibleResultPoint(point); - } - } - return true; - } - } - return false; - } - - /** - * @return number of rows we could safely skip during scanning, based on the first - * two finder patterns that have been located. In some cases their position will - * allow us to infer that the third pattern must lie below a certain point farther - * down in the image. - */ - private int findRowSkip() { - int max = possibleCenters.size(); - if (max <= 1) { - return 0; - } - ResultPoint firstConfirmedCenter = null; - for (FinderPattern center : possibleCenters) { - if (center.getCount() >= CENTER_QUORUM) { - if (firstConfirmedCenter == null) { - firstConfirmedCenter = center; - } else { - // We have two confirmed centers - // How far down can we skip before resuming looking for the next - // pattern? In the worst case, only the difference between the - // difference in the x / y coordinates of the two centers. - // This is the case where you find top left last. - hasSkipped = true; - return (int) (Math.abs(firstConfirmedCenter.getX() - center.getX()) - - Math.abs(firstConfirmedCenter.getY() - center.getY())) / 2; - } - } - } - return 0; - } - - /** - * @return true iff we have found at least 3 finder patterns that have been detected - * at least {@link #CENTER_QUORUM} times each, and, the estimated module size of the - * candidates is "pretty similar" - */ - private boolean haveMultiplyConfirmedCenters() { - int confirmedCount = 0; - float totalModuleSize = 0.0f; - int max = possibleCenters.size(); - for (FinderPattern pattern : possibleCenters) { - if (pattern.getCount() >= CENTER_QUORUM) { - confirmedCount++; - totalModuleSize += pattern.getEstimatedModuleSize(); - } - } - if (confirmedCount < 3) { - return false; - } - // OK, we have at least 3 confirmed centers, but, it's possible that one is a "false positive" - // and that we need to keep looking. We detect this by asking if the estimated module sizes - // vary too much. We arbitrarily say that when the total deviation from average exceeds - // 5% of the total module size estimates, it's too much. - float average = totalModuleSize / (float) max; - float totalDeviation = 0.0f; - for (FinderPattern pattern : possibleCenters) { - totalDeviation += Math.abs(pattern.getEstimatedModuleSize() - average); - } - return totalDeviation <= 0.05f * totalModuleSize; - } - - /** - * @return the 3 best {@link FinderPattern}s from our list of candidates. The "best" are - * those that have been detected at least {@link #CENTER_QUORUM} times, and whose module - * size differs from the average among those patterns the least - * @throws NotFoundException if 3 such finder patterns do not exist - */ - private FinderPattern[] selectBestPatterns() throws NotFoundException { - - int startSize = possibleCenters.size(); - if (startSize < 3) { - // Couldn't find enough finder patterns - throw NotFoundException.getNotFoundInstance(); - } - - // Filter outlier possibilities whose module size is too different - if (startSize > 3) { - // But we can only afford to do so if we have at least 4 possibilities to choose from - float totalModuleSize = 0.0f; - float square = 0.0f; - for (FinderPattern center : possibleCenters) { - float size = center.getEstimatedModuleSize(); - totalModuleSize += size; - square += size * size; - } - float average = totalModuleSize / (float) startSize; - float stdDev = (float) Math.sqrt(square / startSize - average * average); - - Collections.sort(possibleCenters, new FurthestFromAverageComparator(average)); - - float limit = Math.max(0.2f * average, stdDev); - - for (int i = 0; i < possibleCenters.size() && possibleCenters.size() > 3; i++) { - FinderPattern pattern = possibleCenters.get(i); - if (Math.abs(pattern.getEstimatedModuleSize() - average) > limit) { - possibleCenters.remove(i); - i--; - } - } - } - - if (possibleCenters.size() > 3) { - // Throw away all but those first size candidate points we found. - - float totalModuleSize = 0.0f; - for (FinderPattern possibleCenter : possibleCenters) { - totalModuleSize += possibleCenter.getEstimatedModuleSize(); - } - - float average = totalModuleSize / (float) possibleCenters.size(); - - Collections.sort(possibleCenters, new CenterComparator(average)); - - possibleCenters.subList(3, possibleCenters.size()).clear(); - } - - return new FinderPattern[]{ - possibleCenters.get(0), - possibleCenters.get(1), - possibleCenters.get(2) - }; - } - - /** - * <p>Orders by furthest from average</p> - */ - private static final class FurthestFromAverageComparator implements Comparator<FinderPattern>, Serializable { - private final float average; - private FurthestFromAverageComparator(float f) { - average = f; - } - @Override - public int compare(FinderPattern center1, FinderPattern center2) { - float dA = Math.abs(center2.getEstimatedModuleSize() - average); - float dB = Math.abs(center1.getEstimatedModuleSize() - average); - return dA < dB ? -1 : dA == dB ? 0 : 1; - } - } - - /** - * <p>Orders by {@link FinderPattern#getCount()}, descending.</p> - */ - private static final class CenterComparator implements Comparator<FinderPattern>, Serializable { - private final float average; - private CenterComparator(float f) { - average = f; - } - @Override - public int compare(FinderPattern center1, FinderPattern center2) { - if (center2.getCount() == center1.getCount()) { - float dA = Math.abs(center2.getEstimatedModuleSize() - average); - float dB = Math.abs(center1.getEstimatedModuleSize() - average); - return dA < dB ? 1 : dA == dB ? 0 : -1; - } else { - return center2.getCount() - center1.getCount(); - } - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/FinderPatternInfo.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/FinderPatternInfo.java deleted file mode 100755 index 3c340108..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/detector/FinderPatternInfo.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2007 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.detector; - -/** - * <p>Encapsulates information about finder patterns in an image, including the location of - * the three finder patterns, and their estimated module size.</p> - * - * @author Sean Owen - */ -public final class FinderPatternInfo { - - private final FinderPattern bottomLeft; - private final FinderPattern topLeft; - private final FinderPattern topRight; - - public FinderPatternInfo(FinderPattern[] patternCenters) { - this.bottomLeft = patternCenters[0]; - this.topLeft = patternCenters[1]; - this.topRight = patternCenters[2]; - } - - public FinderPattern getBottomLeft() { - return bottomLeft; - } - - public FinderPattern getTopLeft() { - return topLeft; - } - - public FinderPattern getTopRight() { - return topRight; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/BlockPair.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/BlockPair.java deleted file mode 100755 index 5714d9c3..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/BlockPair.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.encoder; - -final class BlockPair { - - private final byte[] dataBytes; - private final byte[] errorCorrectionBytes; - - BlockPair(byte[] data, byte[] errorCorrection) { - dataBytes = data; - errorCorrectionBytes = errorCorrection; - } - - public byte[] getDataBytes() { - return dataBytes; - } - - public byte[] getErrorCorrectionBytes() { - return errorCorrectionBytes; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/ByteMatrix.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/ByteMatrix.java deleted file mode 100755 index d7fef060..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/ByteMatrix.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.encoder; - -/** - * JAVAPORT: The original code was a 2D array of ints, but since it only ever gets assigned - * -1, 0, and 1, I'm going to use less memory and go with bytes. - * - * @author dswitkin@google.com (Daniel Switkin) - */ -public final class ByteMatrix { - - private final byte[][] bytes; - private final int width; - private final int height; - - public ByteMatrix(int width, int height) { - bytes = new byte[height][width]; - this.width = width; - this.height = height; - } - - public int getHeight() { - return height; - } - - public int getWidth() { - return width; - } - - public byte get(int x, int y) { - return bytes[y][x]; - } - - /** - * @return an internal representation as bytes, in row-major order. array[y][x] represents point (x,y) - */ - public byte[][] getArray() { - return bytes; - } - - public void set(int x, int y, byte value) { - bytes[y][x] = value; - } - - public void set(int x, int y, int value) { - bytes[y][x] = (byte) value; - } - - public void set(int x, int y, boolean value) { - bytes[y][x] = (byte) (value ? 1 : 0); - } - - public void clear(byte value) { - for (int y = 0; y < height; ++y) { - for (int x = 0; x < width; ++x) { - bytes[y][x] = value; - } - } - } - - @Override - public String toString() { - StringBuilder result = new StringBuilder(2 * width * height + 2); - for (int y = 0; y < height; ++y) { - for (int x = 0; x < width; ++x) { - switch (bytes[y][x]) { - case 0: - result.append(" 0"); - break; - case 1: - result.append(" 1"); - break; - default: - result.append(" "); - break; - } - } - result.append('\n'); - } - return result.toString(); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/Encoder.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/Encoder.java deleted file mode 100755 index b7951581..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/Encoder.java +++ /dev/null @@ -1,578 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.encoder; - -import java.io.UnsupportedEncodingException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Map; - -import com.google.zxing.EncodeHintType; -import com.google.zxing.WriterException; -import com.google.zxing.common.BitArray; -import com.google.zxing.common.CharacterSetECI; -import com.google.zxing.common.reedsolomon.GenericGF; -import com.google.zxing.common.reedsolomon.ReedSolomonEncoder; -import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; -import com.google.zxing.qrcode.decoder.Mode; -import com.google.zxing.qrcode.decoder.Version; - -/** - * @author satorux@google.com (Satoru Takabayashi) - creator - * @author dswitkin@google.com (Daniel Switkin) - ported from C++ - */ -public final class Encoder { - - // The original table is defined in the table 5 of JISX0510:2004 (p.19). - private static final int[] ALPHANUMERIC_TABLE = { - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 0x00-0x0f - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, // 0x10-0x1f - 36, -1, -1, -1, 37, 38, -1, -1, -1, -1, 39, 40, -1, 41, 42, 43, // 0x20-0x2f - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 44, -1, -1, -1, -1, -1, // 0x30-0x3f - -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, // 0x40-0x4f - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, // 0x50-0x5f - }; - - static final String DEFAULT_BYTE_MODE_ENCODING = "ISO-8859-1"; - - private Encoder() { - } - - // The mask penalty calculation is complicated. See Table 21 of JISX0510:2004 (p.45) for details. - // Basically it applies four rules and summate all penalties. - private static int calculateMaskPenalty(ByteMatrix matrix) { - return MaskUtil.applyMaskPenaltyRule1(matrix) - + MaskUtil.applyMaskPenaltyRule2(matrix) - + MaskUtil.applyMaskPenaltyRule3(matrix) - + MaskUtil.applyMaskPenaltyRule4(matrix); - } - - /** - * @param content text to encode - * @param ecLevel error correction level to use - * @return {@link QRCode} representing the encoded QR code - * @throws WriterException if encoding can't succeed, because of for example invalid content - * or configuration - */ - public static QRCode encode(String content, ErrorCorrectionLevel ecLevel) throws WriterException { - return encode(content, ecLevel, null); - } - - public static QRCode encode(String content, - ErrorCorrectionLevel ecLevel, - Map<EncodeHintType,?> hints) throws WriterException { - - // Determine what character encoding has been specified by the caller, if any - String encoding = DEFAULT_BYTE_MODE_ENCODING; - if (hints != null && hints.containsKey(EncodeHintType.CHARACTER_SET)) { - encoding = hints.get(EncodeHintType.CHARACTER_SET).toString(); - } - - // Pick an encoding mode appropriate for the content. Note that this will not attempt to use - // multiple modes / segments even if that were more efficient. Twould be nice. - Mode mode = chooseMode(content, encoding); - - // This will store the header information, like mode and - // length, as well as "header" segments like an ECI segment. - BitArray headerBits = new BitArray(); - - // Append ECI segment if applicable - if (mode == Mode.BYTE && !DEFAULT_BYTE_MODE_ENCODING.equals(encoding)) { - CharacterSetECI eci = CharacterSetECI.getCharacterSetECIByName(encoding); - if (eci != null) { - appendECI(eci, headerBits); - } - } - - // (With ECI in place,) Write the mode marker - appendModeInfo(mode, headerBits); - - // Collect data within the main segment, separately, to count its size if needed. Don't add it to - // main payload yet. - BitArray dataBits = new BitArray(); - appendBytes(content, mode, dataBits, encoding); - - // Hard part: need to know version to know how many bits length takes. But need to know how many - // bits it takes to know version. First we take a guess at version by assuming version will be - // the minimum, 1: - - int provisionalBitsNeeded = headerBits.getSize() - + mode.getCharacterCountBits(Version.getVersionForNumber(1)) - + dataBits.getSize(); - Version provisionalVersion = chooseVersion(provisionalBitsNeeded, ecLevel); - - // Use that guess to calculate the right version. I am still not sure this works in 100% of cases. - - int bitsNeeded = headerBits.getSize() - + mode.getCharacterCountBits(provisionalVersion) - + dataBits.getSize(); - Version version = chooseVersion(bitsNeeded, ecLevel); - - BitArray headerAndDataBits = new BitArray(); - headerAndDataBits.appendBitArray(headerBits); - // Find "length" of main segment and write it - int numLetters = mode == Mode.BYTE ? dataBits.getSizeInBytes() : content.length(); - appendLengthInfo(numLetters, version, mode, headerAndDataBits); - // Put data together into the overall payload - headerAndDataBits.appendBitArray(dataBits); - - Version.ECBlocks ecBlocks = version.getECBlocksForLevel(ecLevel); - int numDataBytes = version.getTotalCodewords() - ecBlocks.getTotalECCodewords(); - - // Terminate the bits properly. - terminateBits(numDataBytes, headerAndDataBits); - - // Interleave data bits with error correction code. - BitArray finalBits = interleaveWithECBytes(headerAndDataBits, - version.getTotalCodewords(), - numDataBytes, - ecBlocks.getNumBlocks()); - - QRCode qrCode = new QRCode(); - - qrCode.setECLevel(ecLevel); - qrCode.setMode(mode); - qrCode.setVersion(version); - - // Choose the mask pattern and set to "qrCode". - int dimension = version.getDimensionForVersion(); - ByteMatrix matrix = new ByteMatrix(dimension, dimension); - int maskPattern = chooseMaskPattern(finalBits, ecLevel, version, matrix); - qrCode.setMaskPattern(maskPattern); - - // Build the matrix and set it to "qrCode". - MatrixUtil.buildMatrix(finalBits, ecLevel, version, maskPattern, matrix); - qrCode.setMatrix(matrix); - - return qrCode; - } - - /** - * @return the code point of the table used in alphanumeric mode or - * -1 if there is no corresponding code in the table. - */ - static int getAlphanumericCode(int code) { - if (code < ALPHANUMERIC_TABLE.length) { - return ALPHANUMERIC_TABLE[code]; - } - return -1; - } - - public static Mode chooseMode(String content) { - return chooseMode(content, null); - } - - /** - * Choose the best mode by examining the content. Note that 'encoding' is used as a hint; - * if it is Shift_JIS, and the input is only double-byte Kanji, then we return {@link Mode#KANJI}. - */ - private static Mode chooseMode(String content, String encoding) { - if ("Shift_JIS".equals(encoding) && isOnlyDoubleByteKanji(content)) { - // Choose Kanji mode if all input are double-byte characters - return Mode.KANJI; - } - boolean hasNumeric = false; - boolean hasAlphanumeric = false; - for (int i = 0; i < content.length(); ++i) { - char c = content.charAt(i); - if (c >= '0' && c <= '9') { - hasNumeric = true; - } else if (getAlphanumericCode(c) != -1) { - hasAlphanumeric = true; - } else { - return Mode.BYTE; - } - } - if (hasAlphanumeric) { - return Mode.ALPHANUMERIC; - } - if (hasNumeric) { - return Mode.NUMERIC; - } - return Mode.BYTE; - } - - private static boolean isOnlyDoubleByteKanji(String content) { - byte[] bytes; - try { - bytes = content.getBytes("Shift_JIS"); - } catch (UnsupportedEncodingException ignored) { - return false; - } - int length = bytes.length; - if (length % 2 != 0) { - return false; - } - for (int i = 0; i < length; i += 2) { - int byte1 = bytes[i] & 0xFF; - if ((byte1 < 0x81 || byte1 > 0x9F) && (byte1 < 0xE0 || byte1 > 0xEB)) { - return false; - } - } - return true; - } - - private static int chooseMaskPattern(BitArray bits, - ErrorCorrectionLevel ecLevel, - Version version, - ByteMatrix matrix) throws WriterException { - - int minPenalty = Integer.MAX_VALUE; // Lower penalty is better. - int bestMaskPattern = -1; - // We try all mask patterns to choose the best one. - for (int maskPattern = 0; maskPattern < QRCode.NUM_MASK_PATTERNS; maskPattern++) { - MatrixUtil.buildMatrix(bits, ecLevel, version, maskPattern, matrix); - int penalty = calculateMaskPenalty(matrix); - if (penalty < minPenalty) { - minPenalty = penalty; - bestMaskPattern = maskPattern; - } - } - return bestMaskPattern; - } - - private static Version chooseVersion(int numInputBits, ErrorCorrectionLevel ecLevel) throws WriterException { - // In the following comments, we use numbers of Version 7-H. - for (int versionNum = 1; versionNum <= 40; versionNum++) { - Version version = Version.getVersionForNumber(versionNum); - // numBytes = 196 - int numBytes = version.getTotalCodewords(); - // getNumECBytes = 130 - Version.ECBlocks ecBlocks = version.getECBlocksForLevel(ecLevel); - int numEcBytes = ecBlocks.getTotalECCodewords(); - // getNumDataBytes = 196 - 130 = 66 - int numDataBytes = numBytes - numEcBytes; - int totalInputBytes = (numInputBits + 7) / 8; - if (numDataBytes >= totalInputBytes) { - return version; - } - } - throw new WriterException("Data too big"); - } - - /** - * Terminate bits as described in 8.4.8 and 8.4.9 of JISX0510:2004 (p.24). - */ - static void terminateBits(int numDataBytes, BitArray bits) throws WriterException { - int capacity = numDataBytes * 8; - if (bits.getSize() > capacity) { - throw new WriterException("data bits cannot fit in the QR Code" + bits.getSize() + " > " + - capacity); - } - for (int i = 0; i < 4 && bits.getSize() < capacity; ++i) { - bits.appendBit(false); - } - // Append termination bits. See 8.4.8 of JISX0510:2004 (p.24) for details. - // If the last byte isn't 8-bit aligned, we'll add padding bits. - int numBitsInLastByte = bits.getSize() & 0x07; - if (numBitsInLastByte > 0) { - for (int i = numBitsInLastByte; i < 8; i++) { - bits.appendBit(false); - } - } - // If we have more space, we'll fill the space with padding patterns defined in 8.4.9 (p.24). - int numPaddingBytes = numDataBytes - bits.getSizeInBytes(); - for (int i = 0; i < numPaddingBytes; ++i) { - bits.appendBits((i & 0x01) == 0 ? 0xEC : 0x11, 8); - } - if (bits.getSize() != capacity) { - throw new WriterException("Bits size does not equal capacity"); - } - } - - /** - * Get number of data bytes and number of error correction bytes for block id "blockID". Store - * the result in "numDataBytesInBlock", and "numECBytesInBlock". See table 12 in 8.5.1 of - * JISX0510:2004 (p.30) - */ - static void getNumDataBytesAndNumECBytesForBlockID(int numTotalBytes, - int numDataBytes, - int numRSBlocks, - int blockID, - int[] numDataBytesInBlock, - int[] numECBytesInBlock) throws WriterException { - if (blockID >= numRSBlocks) { - throw new WriterException("Block ID too large"); - } - // numRsBlocksInGroup2 = 196 % 5 = 1 - int numRsBlocksInGroup2 = numTotalBytes % numRSBlocks; - // numRsBlocksInGroup1 = 5 - 1 = 4 - int numRsBlocksInGroup1 = numRSBlocks - numRsBlocksInGroup2; - // numTotalBytesInGroup1 = 196 / 5 = 39 - int numTotalBytesInGroup1 = numTotalBytes / numRSBlocks; - // numTotalBytesInGroup2 = 39 + 1 = 40 - int numTotalBytesInGroup2 = numTotalBytesInGroup1 + 1; - // numDataBytesInGroup1 = 66 / 5 = 13 - int numDataBytesInGroup1 = numDataBytes / numRSBlocks; - // numDataBytesInGroup2 = 13 + 1 = 14 - int numDataBytesInGroup2 = numDataBytesInGroup1 + 1; - // numEcBytesInGroup1 = 39 - 13 = 26 - int numEcBytesInGroup1 = numTotalBytesInGroup1 - numDataBytesInGroup1; - // numEcBytesInGroup2 = 40 - 14 = 26 - int numEcBytesInGroup2 = numTotalBytesInGroup2 - numDataBytesInGroup2; - // Sanity checks. - // 26 = 26 - if (numEcBytesInGroup1 != numEcBytesInGroup2) { - throw new WriterException("EC bytes mismatch"); - } - // 5 = 4 + 1. - if (numRSBlocks != numRsBlocksInGroup1 + numRsBlocksInGroup2) { - throw new WriterException("RS blocks mismatch"); - } - // 196 = (13 + 26) * 4 + (14 + 26) * 1 - if (numTotalBytes != - ((numDataBytesInGroup1 + numEcBytesInGroup1) * - numRsBlocksInGroup1) + - ((numDataBytesInGroup2 + numEcBytesInGroup2) * - numRsBlocksInGroup2)) { - throw new WriterException("Total bytes mismatch"); - } - - if (blockID < numRsBlocksInGroup1) { - numDataBytesInBlock[0] = numDataBytesInGroup1; - numECBytesInBlock[0] = numEcBytesInGroup1; - } else { - numDataBytesInBlock[0] = numDataBytesInGroup2; - numECBytesInBlock[0] = numEcBytesInGroup2; - } - } - - /** - * Interleave "bits" with corresponding error correction bytes. On success, store the result in - * "result". The interleave rule is complicated. See 8.6 of JISX0510:2004 (p.37) for details. - */ - static BitArray interleaveWithECBytes(BitArray bits, - int numTotalBytes, - int numDataBytes, - int numRSBlocks) throws WriterException { - - // "bits" must have "getNumDataBytes" bytes of data. - if (bits.getSizeInBytes() != numDataBytes) { - throw new WriterException("Number of bits and data bytes does not match"); - } - - // Step 1. Divide data bytes into blocks and generate error correction bytes for them. We'll - // store the divided data bytes blocks and error correction bytes blocks into "blocks". - int dataBytesOffset = 0; - int maxNumDataBytes = 0; - int maxNumEcBytes = 0; - - // Since, we know the number of reedsolmon blocks, we can initialize the vector with the number. - Collection<BlockPair> blocks = new ArrayList<>(numRSBlocks); - - for (int i = 0; i < numRSBlocks; ++i) { - int[] numDataBytesInBlock = new int[1]; - int[] numEcBytesInBlock = new int[1]; - getNumDataBytesAndNumECBytesForBlockID( - numTotalBytes, numDataBytes, numRSBlocks, i, - numDataBytesInBlock, numEcBytesInBlock); - - int size = numDataBytesInBlock[0]; - byte[] dataBytes = new byte[size]; - bits.toBytes(8*dataBytesOffset, dataBytes, 0, size); - byte[] ecBytes = generateECBytes(dataBytes, numEcBytesInBlock[0]); - blocks.add(new BlockPair(dataBytes, ecBytes)); - - maxNumDataBytes = Math.max(maxNumDataBytes, size); - maxNumEcBytes = Math.max(maxNumEcBytes, ecBytes.length); - dataBytesOffset += numDataBytesInBlock[0]; - } - if (numDataBytes != dataBytesOffset) { - throw new WriterException("Data bytes does not match offset"); - } - - BitArray result = new BitArray(); - - // First, place data blocks. - for (int i = 0; i < maxNumDataBytes; ++i) { - for (BlockPair block : blocks) { - byte[] dataBytes = block.getDataBytes(); - if (i < dataBytes.length) { - result.appendBits(dataBytes[i], 8); - } - } - } - // Then, place error correction blocks. - for (int i = 0; i < maxNumEcBytes; ++i) { - for (BlockPair block : blocks) { - byte[] ecBytes = block.getErrorCorrectionBytes(); - if (i < ecBytes.length) { - result.appendBits(ecBytes[i], 8); - } - } - } - if (numTotalBytes != result.getSizeInBytes()) { // Should be same. - throw new WriterException("Interleaving error: " + numTotalBytes + " and " + - result.getSizeInBytes() + " differ."); - } - - return result; - } - - static byte[] generateECBytes(byte[] dataBytes, int numEcBytesInBlock) { - int numDataBytes = dataBytes.length; - int[] toEncode = new int[numDataBytes + numEcBytesInBlock]; - for (int i = 0; i < numDataBytes; i++) { - toEncode[i] = dataBytes[i] & 0xFF; - } - new ReedSolomonEncoder(GenericGF.QR_CODE_FIELD_256).encode(toEncode, numEcBytesInBlock); - - byte[] ecBytes = new byte[numEcBytesInBlock]; - for (int i = 0; i < numEcBytesInBlock; i++) { - ecBytes[i] = (byte) toEncode[numDataBytes + i]; - } - return ecBytes; - } - - /** - * Append mode info. On success, store the result in "bits". - */ - static void appendModeInfo(Mode mode, BitArray bits) { - bits.appendBits(mode.getBits(), 4); - } - - - /** - * Append length info. On success, store the result in "bits". - */ - static void appendLengthInfo(int numLetters, Version version, Mode mode, BitArray bits) throws WriterException { - int numBits = mode.getCharacterCountBits(version); - if (numLetters >= (1 << numBits)) { - throw new WriterException(numLetters + " is bigger than " + ((1 << numBits) - 1)); - } - bits.appendBits(numLetters, numBits); - } - - /** - * Append "bytes" in "mode" mode (encoding) into "bits". On success, store the result in "bits". - */ - static void appendBytes(String content, - Mode mode, - BitArray bits, - String encoding) throws WriterException { - switch (mode) { - case NUMERIC: - appendNumericBytes(content, bits); - break; - case ALPHANUMERIC: - appendAlphanumericBytes(content, bits); - break; - case BYTE: - append8BitBytes(content, bits, encoding); - break; - case KANJI: - appendKanjiBytes(content, bits); - break; - default: - throw new WriterException("Invalid mode: " + mode); - } - } - - static void appendNumericBytes(CharSequence content, BitArray bits) { - int length = content.length(); - int i = 0; - while (i < length) { - int num1 = content.charAt(i) - '0'; - if (i + 2 < length) { - // Encode three numeric letters in ten bits. - int num2 = content.charAt(i + 1) - '0'; - int num3 = content.charAt(i + 2) - '0'; - bits.appendBits(num1 * 100 + num2 * 10 + num3, 10); - i += 3; - } else if (i + 1 < length) { - // Encode two numeric letters in seven bits. - int num2 = content.charAt(i + 1) - '0'; - bits.appendBits(num1 * 10 + num2, 7); - i += 2; - } else { - // Encode one numeric letter in four bits. - bits.appendBits(num1, 4); - i++; - } - } - } - - static void appendAlphanumericBytes(CharSequence content, BitArray bits) throws WriterException { - int length = content.length(); - int i = 0; - while (i < length) { - int code1 = getAlphanumericCode(content.charAt(i)); - if (code1 == -1) { - throw new WriterException(); - } - if (i + 1 < length) { - int code2 = getAlphanumericCode(content.charAt(i + 1)); - if (code2 == -1) { - throw new WriterException(); - } - // Encode two alphanumeric letters in 11 bits. - bits.appendBits(code1 * 45 + code2, 11); - i += 2; - } else { - // Encode one alphanumeric letter in six bits. - bits.appendBits(code1, 6); - i++; - } - } - } - - static void append8BitBytes(String content, BitArray bits, String encoding) - throws WriterException { - byte[] bytes; - try { - bytes = content.getBytes(encoding); - } catch (UnsupportedEncodingException uee) { - throw new WriterException(uee); - } - for (byte b : bytes) { - bits.appendBits(b, 8); - } - } - - static void appendKanjiBytes(String content, BitArray bits) throws WriterException { - byte[] bytes; - try { - bytes = content.getBytes("Shift_JIS"); - } catch (UnsupportedEncodingException uee) { - throw new WriterException(uee); - } - int length = bytes.length; - for (int i = 0; i < length; i += 2) { - int byte1 = bytes[i] & 0xFF; - int byte2 = bytes[i + 1] & 0xFF; - int code = (byte1 << 8) | byte2; - int subtracted = -1; - if (code >= 0x8140 && code <= 0x9ffc) { - subtracted = code - 0x8140; - } else if (code >= 0xe040 && code <= 0xebbf) { - subtracted = code - 0xc140; - } - if (subtracted == -1) { - throw new WriterException("Invalid byte sequence"); - } - int encoded = ((subtracted >> 8) * 0xc0) + (subtracted & 0xff); - bits.appendBits(encoded, 13); - } - } - - private static void appendECI(CharacterSetECI eci, BitArray bits) { - bits.appendBits(Mode.ECI.getBits(), 4); - // This is correct for values up to 127, which is all we need now. - bits.appendBits(eci.getValue(), 8); - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/MaskUtil.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/MaskUtil.java deleted file mode 100755 index b2204d4a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/MaskUtil.java +++ /dev/null @@ -1,217 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.encoder; - -/** - * @author Satoru Takabayashi - * @author Daniel Switkin - * @author Sean Owen - */ -final class MaskUtil { - - // Penalty weights from section 6.8.2.1 - private static final int N1 = 3; - private static final int N2 = 3; - private static final int N3 = 40; - private static final int N4 = 10; - - private MaskUtil() { - // do nothing - } - - /** - * Apply mask penalty rule 1 and return the penalty. Find repetitive cells with the same color and - * give penalty to them. Example: 00000 or 11111. - */ - static int applyMaskPenaltyRule1(ByteMatrix matrix) { - return applyMaskPenaltyRule1Internal(matrix, true) + applyMaskPenaltyRule1Internal(matrix, false); - } - - /** - * Apply mask penalty rule 2 and return the penalty. Find 2x2 blocks with the same color and give - * penalty to them. This is actually equivalent to the spec's rule, which is to find MxN blocks and give a - * penalty proportional to (M-1)x(N-1), because this is the number of 2x2 blocks inside such a block. - */ - static int applyMaskPenaltyRule2(ByteMatrix matrix) { - int penalty = 0; - byte[][] array = matrix.getArray(); - int width = matrix.getWidth(); - int height = matrix.getHeight(); - for (int y = 0; y < height - 1; y++) { - for (int x = 0; x < width - 1; x++) { - int value = array[y][x]; - if (value == array[y][x + 1] && value == array[y + 1][x] && value == array[y + 1][x + 1]) { - penalty++; - } - } - } - return N2 * penalty; - } - - /** - * Apply mask penalty rule 3 and return the penalty. Find consecutive runs of 1:1:3:1:1:4 - * starting with black, or 4:1:1:3:1:1 starting with white, and give penalty to them. If we - * find patterns like 000010111010000, we give penalty once. - */ - static int applyMaskPenaltyRule3(ByteMatrix matrix) { - int numPenalties = 0; - byte[][] array = matrix.getArray(); - int width = matrix.getWidth(); - int height = matrix.getHeight(); - for (int y = 0; y < height; y++) { - for (int x = 0; x < width; x++) { - byte[] arrayY = array[y]; // We can at least optimize this access - if (x + 6 < width && - arrayY[x] == 1 && - arrayY[x + 1] == 0 && - arrayY[x + 2] == 1 && - arrayY[x + 3] == 1 && - arrayY[x + 4] == 1 && - arrayY[x + 5] == 0 && - arrayY[x + 6] == 1 && - (isWhiteHorizontal(arrayY, x - 4, x) || isWhiteHorizontal(arrayY, x + 7, x + 11))) { - numPenalties++; - } - if (y + 6 < height && - array[y][x] == 1 && - array[y + 1][x] == 0 && - array[y + 2][x] == 1 && - array[y + 3][x] == 1 && - array[y + 4][x] == 1 && - array[y + 5][x] == 0 && - array[y + 6][x] == 1 && - (isWhiteVertical(array, x, y - 4, y) || isWhiteVertical(array, x, y + 7, y + 11))) { - numPenalties++; - } - } - } - return numPenalties * N3; - } - - private static boolean isWhiteHorizontal(byte[] rowArray, int from, int to) { - for (int i = from; i < to; i++) { - if (i >= 0 && i < rowArray.length && rowArray[i] == 1) { - return false; - } - } - return true; - } - - private static boolean isWhiteVertical(byte[][] array, int col, int from, int to) { - for (int i = from; i < to; i++) { - if (i >= 0 && i < array.length && array[i][col] == 1) { - return false; - } - } - return true; - } - - /** - * Apply mask penalty rule 4 and return the penalty. Calculate the ratio of dark cells and give - * penalty if the ratio is far from 50%. It gives 10 penalty for 5% distance. - */ - static int applyMaskPenaltyRule4(ByteMatrix matrix) { - int numDarkCells = 0; - byte[][] array = matrix.getArray(); - int width = matrix.getWidth(); - int height = matrix.getHeight(); - for (int y = 0; y < height; y++) { - byte[] arrayY = array[y]; - for (int x = 0; x < width; x++) { - if (arrayY[x] == 1) { - numDarkCells++; - } - } - } - int numTotalCells = matrix.getHeight() * matrix.getWidth(); - int fivePercentVariances = Math.abs(numDarkCells * 2 - numTotalCells) * 10 / numTotalCells; - return fivePercentVariances * N4; - } - - /** - * Return the mask bit for "getMaskPattern" at "x" and "y". See 8.8 of JISX0510:2004 for mask - * pattern conditions. - */ - static boolean getDataMaskBit(int maskPattern, int x, int y) { - int intermediate; - int temp; - switch (maskPattern) { - case 0: - intermediate = (y + x) & 0x1; - break; - case 1: - intermediate = y & 0x1; - break; - case 2: - intermediate = x % 3; - break; - case 3: - intermediate = (y + x) % 3; - break; - case 4: - intermediate = ((y / 2) + (x / 3)) & 0x1; - break; - case 5: - temp = y * x; - intermediate = (temp & 0x1) + (temp % 3); - break; - case 6: - temp = y * x; - intermediate = ((temp & 0x1) + (temp % 3)) & 0x1; - break; - case 7: - temp = y * x; - intermediate = ((temp % 3) + ((y + x) & 0x1)) & 0x1; - break; - default: - throw new IllegalArgumentException("Invalid mask pattern: " + maskPattern); - } - return intermediate == 0; - } - - /** - * Helper function for applyMaskPenaltyRule1. We need this for doing this calculation in both - * vertical and horizontal orders respectively. - */ - private static int applyMaskPenaltyRule1Internal(ByteMatrix matrix, boolean isHorizontal) { - int penalty = 0; - int iLimit = isHorizontal ? matrix.getHeight() : matrix.getWidth(); - int jLimit = isHorizontal ? matrix.getWidth() : matrix.getHeight(); - byte[][] array = matrix.getArray(); - for (int i = 0; i < iLimit; i++) { - int numSameBitCells = 0; - int prevBit = -1; - for (int j = 0; j < jLimit; j++) { - int bit = isHorizontal ? array[i][j] : array[j][i]; - if (bit == prevBit) { - numSameBitCells++; - } else { - if (numSameBitCells >= 5) { - penalty += N1 + (numSameBitCells - 5); - } - numSameBitCells = 1; // Include the cell itself. - prevBit = bit; - } - } - if (numSameBitCells >= 5) { - penalty += N1 + (numSameBitCells - 5); - } - } - return penalty; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/MatrixUtil.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/MatrixUtil.java deleted file mode 100755 index dac25f8d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/MatrixUtil.java +++ /dev/null @@ -1,485 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.encoder; - -import com.google.zxing.WriterException; -import com.google.zxing.common.BitArray; -import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; -import com.google.zxing.qrcode.decoder.Version; - -/** - * @author satorux@google.com (Satoru Takabayashi) - creator - * @author dswitkin@google.com (Daniel Switkin) - ported from C++ - */ -final class MatrixUtil { - - private MatrixUtil() { - // do nothing - } - - private static final int[][] POSITION_DETECTION_PATTERN = { - {1, 1, 1, 1, 1, 1, 1}, - {1, 0, 0, 0, 0, 0, 1}, - {1, 0, 1, 1, 1, 0, 1}, - {1, 0, 1, 1, 1, 0, 1}, - {1, 0, 1, 1, 1, 0, 1}, - {1, 0, 0, 0, 0, 0, 1}, - {1, 1, 1, 1, 1, 1, 1}, - }; - - private static final int[][] POSITION_ADJUSTMENT_PATTERN = { - {1, 1, 1, 1, 1}, - {1, 0, 0, 0, 1}, - {1, 0, 1, 0, 1}, - {1, 0, 0, 0, 1}, - {1, 1, 1, 1, 1}, - }; - - // From Appendix E. Table 1, JIS0510X:2004 (p 71). The table was double-checked by komatsu. - private static final int[][] POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE = { - {-1, -1, -1, -1, -1, -1, -1}, // Version 1 - { 6, 18, -1, -1, -1, -1, -1}, // Version 2 - { 6, 22, -1, -1, -1, -1, -1}, // Version 3 - { 6, 26, -1, -1, -1, -1, -1}, // Version 4 - { 6, 30, -1, -1, -1, -1, -1}, // Version 5 - { 6, 34, -1, -1, -1, -1, -1}, // Version 6 - { 6, 22, 38, -1, -1, -1, -1}, // Version 7 - { 6, 24, 42, -1, -1, -1, -1}, // Version 8 - { 6, 26, 46, -1, -1, -1, -1}, // Version 9 - { 6, 28, 50, -1, -1, -1, -1}, // Version 10 - { 6, 30, 54, -1, -1, -1, -1}, // Version 11 - { 6, 32, 58, -1, -1, -1, -1}, // Version 12 - { 6, 34, 62, -1, -1, -1, -1}, // Version 13 - { 6, 26, 46, 66, -1, -1, -1}, // Version 14 - { 6, 26, 48, 70, -1, -1, -1}, // Version 15 - { 6, 26, 50, 74, -1, -1, -1}, // Version 16 - { 6, 30, 54, 78, -1, -1, -1}, // Version 17 - { 6, 30, 56, 82, -1, -1, -1}, // Version 18 - { 6, 30, 58, 86, -1, -1, -1}, // Version 19 - { 6, 34, 62, 90, -1, -1, -1}, // Version 20 - { 6, 28, 50, 72, 94, -1, -1}, // Version 21 - { 6, 26, 50, 74, 98, -1, -1}, // Version 22 - { 6, 30, 54, 78, 102, -1, -1}, // Version 23 - { 6, 28, 54, 80, 106, -1, -1}, // Version 24 - { 6, 32, 58, 84, 110, -1, -1}, // Version 25 - { 6, 30, 58, 86, 114, -1, -1}, // Version 26 - { 6, 34, 62, 90, 118, -1, -1}, // Version 27 - { 6, 26, 50, 74, 98, 122, -1}, // Version 28 - { 6, 30, 54, 78, 102, 126, -1}, // Version 29 - { 6, 26, 52, 78, 104, 130, -1}, // Version 30 - { 6, 30, 56, 82, 108, 134, -1}, // Version 31 - { 6, 34, 60, 86, 112, 138, -1}, // Version 32 - { 6, 30, 58, 86, 114, 142, -1}, // Version 33 - { 6, 34, 62, 90, 118, 146, -1}, // Version 34 - { 6, 30, 54, 78, 102, 126, 150}, // Version 35 - { 6, 24, 50, 76, 102, 128, 154}, // Version 36 - { 6, 28, 54, 80, 106, 132, 158}, // Version 37 - { 6, 32, 58, 84, 110, 136, 162}, // Version 38 - { 6, 26, 54, 82, 110, 138, 166}, // Version 39 - { 6, 30, 58, 86, 114, 142, 170}, // Version 40 - }; - - // Type info cells at the left top corner. - private static final int[][] TYPE_INFO_COORDINATES = { - {8, 0}, - {8, 1}, - {8, 2}, - {8, 3}, - {8, 4}, - {8, 5}, - {8, 7}, - {8, 8}, - {7, 8}, - {5, 8}, - {4, 8}, - {3, 8}, - {2, 8}, - {1, 8}, - {0, 8}, - }; - - // From Appendix D in JISX0510:2004 (p. 67) - private static final int VERSION_INFO_POLY = 0x1f25; // 1 1111 0010 0101 - - // From Appendix C in JISX0510:2004 (p.65). - private static final int TYPE_INFO_POLY = 0x537; - private static final int TYPE_INFO_MASK_PATTERN = 0x5412; - - // Set all cells to -1. -1 means that the cell is empty (not set yet). - // - // JAVAPORT: We shouldn't need to do this at all. The code should be rewritten to begin encoding - // with the ByteMatrix initialized all to zero. - static void clearMatrix(ByteMatrix matrix) { - matrix.clear((byte) -1); - } - - // Build 2D matrix of QR Code from "dataBits" with "ecLevel", "version" and "getMaskPattern". On - // success, store the result in "matrix" and return true. - static void buildMatrix(BitArray dataBits, - ErrorCorrectionLevel ecLevel, - Version version, - int maskPattern, - ByteMatrix matrix) throws WriterException { - clearMatrix(matrix); - embedBasicPatterns(version, matrix); - // Type information appear with any version. - embedTypeInfo(ecLevel, maskPattern, matrix); - // Version info appear if version >= 7. - maybeEmbedVersionInfo(version, matrix); - // Data should be embedded at end. - embedDataBits(dataBits, maskPattern, matrix); - } - - // Embed basic patterns. On success, modify the matrix and return true. - // The basic patterns are: - // - Position detection patterns - // - Timing patterns - // - Dark dot at the left bottom corner - // - Position adjustment patterns, if need be - static void embedBasicPatterns(Version version, ByteMatrix matrix) throws WriterException { - // Let's get started with embedding big squares at corners. - embedPositionDetectionPatternsAndSeparators(matrix); - // Then, embed the dark dot at the left bottom corner. - embedDarkDotAtLeftBottomCorner(matrix); - - // Position adjustment patterns appear if version >= 2. - maybeEmbedPositionAdjustmentPatterns(version, matrix); - // Timing patterns should be embedded after position adj. patterns. - embedTimingPatterns(matrix); - } - - // Embed type information. On success, modify the matrix. - static void embedTypeInfo(ErrorCorrectionLevel ecLevel, int maskPattern, ByteMatrix matrix) - throws WriterException { - BitArray typeInfoBits = new BitArray(); - makeTypeInfoBits(ecLevel, maskPattern, typeInfoBits); - - for (int i = 0; i < typeInfoBits.getSize(); ++i) { - // Place bits in LSB to MSB order. LSB (least significant bit) is the last value in - // "typeInfoBits". - boolean bit = typeInfoBits.get(typeInfoBits.getSize() - 1 - i); - - // Type info bits at the left top corner. See 8.9 of JISX0510:2004 (p.46). - int x1 = TYPE_INFO_COORDINATES[i][0]; - int y1 = TYPE_INFO_COORDINATES[i][1]; - matrix.set(x1, y1, bit); - - if (i < 8) { - // Right top corner. - int x2 = matrix.getWidth() - i - 1; - int y2 = 8; - matrix.set(x2, y2, bit); - } else { - // Left bottom corner. - int x2 = 8; - int y2 = matrix.getHeight() - 7 + (i - 8); - matrix.set(x2, y2, bit); - } - } - } - - // Embed version information if need be. On success, modify the matrix and return true. - // See 8.10 of JISX0510:2004 (p.47) for how to embed version information. - static void maybeEmbedVersionInfo(Version version, ByteMatrix matrix) throws WriterException { - if (version.getVersionNumber() < 7) { // Version info is necessary if version >= 7. - return; // Don't need version info. - } - BitArray versionInfoBits = new BitArray(); - makeVersionInfoBits(version, versionInfoBits); - - int bitIndex = 6 * 3 - 1; // It will decrease from 17 to 0. - for (int i = 0; i < 6; ++i) { - for (int j = 0; j < 3; ++j) { - // Place bits in LSB (least significant bit) to MSB order. - boolean bit = versionInfoBits.get(bitIndex); - bitIndex--; - // Left bottom corner. - matrix.set(i, matrix.getHeight() - 11 + j, bit); - // Right bottom corner. - matrix.set(matrix.getHeight() - 11 + j, i, bit); - } - } - } - - // Embed "dataBits" using "getMaskPattern". On success, modify the matrix and return true. - // For debugging purposes, it skips masking process if "getMaskPattern" is -1. - // See 8.7 of JISX0510:2004 (p.38) for how to embed data bits. - static void embedDataBits(BitArray dataBits, int maskPattern, ByteMatrix matrix) - throws WriterException { - int bitIndex = 0; - int direction = -1; - // Start from the right bottom cell. - int x = matrix.getWidth() - 1; - int y = matrix.getHeight() - 1; - while (x > 0) { - // Skip the vertical timing pattern. - if (x == 6) { - x -= 1; - } - while (y >= 0 && y < matrix.getHeight()) { - for (int i = 0; i < 2; ++i) { - int xx = x - i; - // Skip the cell if it's not empty. - if (!isEmpty(matrix.get(xx, y))) { - continue; - } - boolean bit; - if (bitIndex < dataBits.getSize()) { - bit = dataBits.get(bitIndex); - ++bitIndex; - } else { - // Padding bit. If there is no bit left, we'll fill the left cells with 0, as described - // in 8.4.9 of JISX0510:2004 (p. 24). - bit = false; - } - - // Skip masking if mask_pattern is -1. - if (maskPattern != -1 && MaskUtil.getDataMaskBit(maskPattern, xx, y)) { - bit = !bit; - } - matrix.set(xx, y, bit); - } - y += direction; - } - direction = -direction; // Reverse the direction. - y += direction; - x -= 2; // Move to the left. - } - // All bits should be consumed. - if (bitIndex != dataBits.getSize()) { - throw new WriterException("Not all bits consumed: " + bitIndex + '/' + dataBits.getSize()); - } - } - - // Return the position of the most significant bit set (to one) in the "value". The most - // significant bit is position 32. If there is no bit set, return 0. Examples: - // - findMSBSet(0) => 0 - // - findMSBSet(1) => 1 - // - findMSBSet(255) => 8 - static int findMSBSet(int value) { - int numDigits = 0; - while (value != 0) { - value >>>= 1; - ++numDigits; - } - return numDigits; - } - - // Calculate BCH (Bose-Chaudhuri-Hocquenghem) code for "value" using polynomial "poly". The BCH - // code is used for encoding type information and version information. - // Example: Calculation of version information of 7. - // f(x) is created from 7. - // - 7 = 000111 in 6 bits - // - f(x) = x^2 + x^1 + x^0 - // g(x) is given by the standard (p. 67) - // - g(x) = x^12 + x^11 + x^10 + x^9 + x^8 + x^5 + x^2 + 1 - // Multiply f(x) by x^(18 - 6) - // - f'(x) = f(x) * x^(18 - 6) - // - f'(x) = x^14 + x^13 + x^12 - // Calculate the remainder of f'(x) / g(x) - // x^2 - // __________________________________________________ - // g(x) )x^14 + x^13 + x^12 - // x^14 + x^13 + x^12 + x^11 + x^10 + x^7 + x^4 + x^2 - // -------------------------------------------------- - // x^11 + x^10 + x^7 + x^4 + x^2 - // - // The remainder is x^11 + x^10 + x^7 + x^4 + x^2 - // Encode it in binary: 110010010100 - // The return value is 0xc94 (1100 1001 0100) - // - // Since all coefficients in the polynomials are 1 or 0, we can do the calculation by bit - // operations. We don't care if cofficients are positive or negative. - static int calculateBCHCode(int value, int poly) { - if (poly == 0) { - throw new IllegalArgumentException("0 polynomial"); - } - // If poly is "1 1111 0010 0101" (version info poly), msbSetInPoly is 13. We'll subtract 1 - // from 13 to make it 12. - int msbSetInPoly = findMSBSet(poly); - value <<= msbSetInPoly - 1; - // Do the division business using exclusive-or operations. - while (findMSBSet(value) >= msbSetInPoly) { - value ^= poly << (findMSBSet(value) - msbSetInPoly); - } - // Now the "value" is the remainder (i.e. the BCH code) - return value; - } - - // Make bit vector of type information. On success, store the result in "bits" and return true. - // Encode error correction level and mask pattern. See 8.9 of - // JISX0510:2004 (p.45) for details. - static void makeTypeInfoBits(ErrorCorrectionLevel ecLevel, int maskPattern, BitArray bits) - throws WriterException { - if (!QRCode.isValidMaskPattern(maskPattern)) { - throw new WriterException("Invalid mask pattern"); - } - int typeInfo = (ecLevel.getBits() << 3) | maskPattern; - bits.appendBits(typeInfo, 5); - - int bchCode = calculateBCHCode(typeInfo, TYPE_INFO_POLY); - bits.appendBits(bchCode, 10); - - BitArray maskBits = new BitArray(); - maskBits.appendBits(TYPE_INFO_MASK_PATTERN, 15); - bits.xor(maskBits); - - if (bits.getSize() != 15) { // Just in case. - throw new WriterException("should not happen but we got: " + bits.getSize()); - } - } - - // Make bit vector of version information. On success, store the result in "bits" and return true. - // See 8.10 of JISX0510:2004 (p.45) for details. - static void makeVersionInfoBits(Version version, BitArray bits) throws WriterException { - bits.appendBits(version.getVersionNumber(), 6); - int bchCode = calculateBCHCode(version.getVersionNumber(), VERSION_INFO_POLY); - bits.appendBits(bchCode, 12); - - if (bits.getSize() != 18) { // Just in case. - throw new WriterException("should not happen but we got: " + bits.getSize()); - } - } - - // Check if "value" is empty. - private static boolean isEmpty(int value) { - return value == -1; - } - - private static void embedTimingPatterns(ByteMatrix matrix) { - // -8 is for skipping position detection patterns (size 7), and two horizontal/vertical - // separation patterns (size 1). Thus, 8 = 7 + 1. - for (int i = 8; i < matrix.getWidth() - 8; ++i) { - int bit = (i + 1) % 2; - // Horizontal line. - if (isEmpty(matrix.get(i, 6))) { - matrix.set(i, 6, bit); - } - // Vertical line. - if (isEmpty(matrix.get(6, i))) { - matrix.set(6, i, bit); - } - } - } - - // Embed the lonely dark dot at left bottom corner. JISX0510:2004 (p.46) - private static void embedDarkDotAtLeftBottomCorner(ByteMatrix matrix) throws WriterException { - if (matrix.get(8, matrix.getHeight() - 8) == 0) { - throw new WriterException(); - } - matrix.set(8, matrix.getHeight() - 8, 1); - } - - private static void embedHorizontalSeparationPattern(int xStart, - int yStart, - ByteMatrix matrix) throws WriterException { - for (int x = 0; x < 8; ++x) { - if (!isEmpty(matrix.get(xStart + x, yStart))) { - throw new WriterException(); - } - matrix.set(xStart + x, yStart, 0); - } - } - - private static void embedVerticalSeparationPattern(int xStart, - int yStart, - ByteMatrix matrix) throws WriterException { - for (int y = 0; y < 7; ++y) { - if (!isEmpty(matrix.get(xStart, yStart + y))) { - throw new WriterException(); - } - matrix.set(xStart, yStart + y, 0); - } - } - - // Note that we cannot unify the function with embedPositionDetectionPattern() despite they are - // almost identical, since we cannot write a function that takes 2D arrays in different sizes in - // C/C++. We should live with the fact. - private static void embedPositionAdjustmentPattern(int xStart, int yStart, ByteMatrix matrix) { - for (int y = 0; y < 5; ++y) { - for (int x = 0; x < 5; ++x) { - matrix.set(xStart + x, yStart + y, POSITION_ADJUSTMENT_PATTERN[y][x]); - } - } - } - - private static void embedPositionDetectionPattern(int xStart, int yStart, ByteMatrix matrix) { - for (int y = 0; y < 7; ++y) { - for (int x = 0; x < 7; ++x) { - matrix.set(xStart + x, yStart + y, POSITION_DETECTION_PATTERN[y][x]); - } - } - } - - // Embed position detection patterns and surrounding vertical/horizontal separators. - private static void embedPositionDetectionPatternsAndSeparators(ByteMatrix matrix) throws WriterException { - // Embed three big squares at corners. - int pdpWidth = POSITION_DETECTION_PATTERN[0].length; - // Left top corner. - embedPositionDetectionPattern(0, 0, matrix); - // Right top corner. - embedPositionDetectionPattern(matrix.getWidth() - pdpWidth, 0, matrix); - // Left bottom corner. - embedPositionDetectionPattern(0, matrix.getWidth() - pdpWidth, matrix); - - // Embed horizontal separation patterns around the squares. - int hspWidth = 8; - // Left top corner. - embedHorizontalSeparationPattern(0, hspWidth - 1, matrix); - // Right top corner. - embedHorizontalSeparationPattern(matrix.getWidth() - hspWidth, - hspWidth - 1, matrix); - // Left bottom corner. - embedHorizontalSeparationPattern(0, matrix.getWidth() - hspWidth, matrix); - - // Embed vertical separation patterns around the squares. - int vspSize = 7; - // Left top corner. - embedVerticalSeparationPattern(vspSize, 0, matrix); - // Right top corner. - embedVerticalSeparationPattern(matrix.getHeight() - vspSize - 1, 0, matrix); - // Left bottom corner. - embedVerticalSeparationPattern(vspSize, matrix.getHeight() - vspSize, - matrix); - } - - // Embed position adjustment patterns if need be. - private static void maybeEmbedPositionAdjustmentPatterns(Version version, ByteMatrix matrix) { - if (version.getVersionNumber() < 2) { // The patterns appear if version >= 2 - return; - } - int index = version.getVersionNumber() - 1; - int[] coordinates = POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE[index]; - int numCoordinates = POSITION_ADJUSTMENT_PATTERN_COORDINATE_TABLE[index].length; - for (int i = 0; i < numCoordinates; ++i) { - for (int j = 0; j < numCoordinates; ++j) { - int y = coordinates[i]; - int x = coordinates[j]; - if (x == -1 || y == -1) { - continue; - } - // If the cell is unset, we embed the position adjustment pattern here. - if (isEmpty(matrix.get(x, y))) { - // -2 is necessary since the x/y coordinates point to the center of the pattern, not the - // left top corner. - embedPositionAdjustmentPattern(x - 2, y - 2, matrix); - } - } - } - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/QRCode.java b/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/QRCode.java deleted file mode 100755 index b560de92..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/java_zxing/com/google/zxing/qrcode/encoder/QRCode.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright 2008 ZXing authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.zxing.qrcode.encoder; - -import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; -import com.google.zxing.qrcode.decoder.Mode; -import com.google.zxing.qrcode.decoder.Version; - -/** - * @author satorux@google.com (Satoru Takabayashi) - creator - * @author dswitkin@google.com (Daniel Switkin) - ported from C++ - */ -public final class QRCode { - - public static final int NUM_MASK_PATTERNS = 8; - - private Mode mode; - private ErrorCorrectionLevel ecLevel; - private Version version; - private int maskPattern; - private ByteMatrix matrix; - - public QRCode() { - maskPattern = -1; - } - - public Mode getMode() { - return mode; - } - - public ErrorCorrectionLevel getECLevel() { - return ecLevel; - } - - public Version getVersion() { - return version; - } - - public int getMaskPattern() { - return maskPattern; - } - - public ByteMatrix getMatrix() { - return matrix; - } - - @Override - public String toString() { - StringBuilder result = new StringBuilder(200); - result.append("<<\n"); - result.append(" mode: "); - result.append(mode); - result.append("\n ecLevel: "); - result.append(ecLevel); - result.append("\n version: "); - result.append(version); - result.append("\n maskPattern: "); - result.append(maskPattern); - if (matrix == null) { - result.append("\n matrix: null\n"); - } else { - result.append("\n matrix:\n"); - result.append(matrix); - } - result.append(">>\n"); - return result.toString(); - } - - public void setMode(Mode value) { - mode = value; - } - - public void setECLevel(ErrorCorrectionLevel value) { - ecLevel = value; - } - - public void setVersion(Version version) { - this.version = version; - } - - public void setMaskPattern(int value) { - maskPattern = value; - } - - public void setMatrix(ByteMatrix value) { - matrix = value; - } - - // Check if "mask_pattern" is valid. - public static boolean isValidMaskPattern(int maskPattern) { - return maskPattern >= 0 && maskPattern < NUM_MASK_PATTERNS; - } - -} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-hdpi/ic_action_refresh.png b/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-hdpi/ic_action_refresh.png deleted file mode 100755 index dae27903e9ba3415808d48e6ac20afd6de64907b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 663 zcmV;I0%-k-P)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU!IY~r8RCwC#SUpa|FcglftT_N2pgn-u zTXxD`4p4T&PP;?*^Z@M+-D!7nfgFGyAnfHCJ&<KN$+P2_M)D^;S#libdwD<hdr=e+ z5D?%Br_*WJYw{rPrth&1h$Ju!Q4;A<2~se|@`^v7;rd%x^XXLqBz*%iMdD4^gB*b9 zn?hdTUZ-Ry3Lx<rN@B5vu*w(6g*4|!0U*y|SSTNNffrC<OI;jWk{7P>RI}s=BK%nX zlUx%QIv80pc1(T;vVlKX)Vx1|;n|hBVn^gfP_BsCW76<^*ogv|EgstVEbOtsZ1pcL zlxj9#id5*3d^awHe#@2VtpWK|BL5rURme>gU_=6$qQDWzPtV~B!U*IqVR%)hjSibG zF(9lNt2zE$$Ws;Inv@y!NrBNhD?o{X4`u2aT&VO^Bm7vu&Si}ifX%KvRAn3LHwRJA zK{?2bDkKL`Py3=(5PK%CyUdksvyg9$oLazhXCl!YoOz!tFw=B0`k{c-AdqorI&+xC zhq8*yp{t}GfxzBiUv8QKZHjtMT(>kJzo@7;8Z)4c1vZ4bl~k#r+oYOGO%y$Mlq-vk z1)4V963KHUugm)>^}ZE5j>X2Tf#vC}#uZm}Z5bCXG>2hMSei>CC&W*QLGQjMwp73b zImV6gwZ%mY6qrVBdZZ#)*VOKYD+>rW$RzTjz%Q|DH%2!}2ywEbrrE9(_#<CYlq8DJ x3(}=YfOb|fiL(H6ct3%?qJV&afcE$nU;rVV?-8aSl8yiX002ovPDHLkV1hWgAn^bI diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-hdpi/ic_action_scan.png b/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-hdpi/ic_action_scan.png deleted file mode 100755 index cb0ede8e6176ab22e3e8e6cc9a614c11739e08b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpUt@18D>Ar-gYMr`CgWFX)(C8t4I zQEG;2@&*^F<qHd^GHw#9Q2*R7*U4lclrP+F{nG3H)12pjf30Ey>TRfZ;8>{m&BeRK z-$KY-u-EqEm!!SIx!*E^YW}$F5%?=Dr)*`m>0bBoB~nght*z&eSU%)D^XOpQ-n53_ z=QcXd{V?kqkQWwwqjSaS59?o6D>5)C99ZkJ>BS7ihJE7K%j=dTmByVs-7($q|K@3G z>s0ePcb`c)AEtaj;cw@8pKme(3w~&`=qwRRt&TadSa?0(T9#dbEDjA{Sv2a_e0rI1 z+NFeVzf{gt+o&22LFspO)l8XfyMfMT*boxKm~-s4^G}{*PeFW7S3j3^P6<r_*Peex diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-mdpi/ic_action_refresh.png b/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-mdpi/ic_action_refresh.png deleted file mode 100755 index 94ab6f4c5dd8f3a082b2a84d6e08f2564a589d94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 zcmV<Y0R#StP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F80000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBUzo=HSORCwC#SJ82UFboY%ei?uazyd75 z0Ca#Z&<@Z60{>-z^uNgfEYJ?X0v;e4!2PF!d%e@SmQ!PVe6+gr*@umuEKASwcC)f< z|GWWrF_jO)uwTspfWO^ZxARn*Qddzc&{8(7&^q)l<2?OSBuUZ-8$gO4se3R$x#Vc0 zf!eXo&j9TD2<2QfcDex=pHGFcp8*2+=+0Nutyp`amRUUWKGy>W20re%Az(?_vju$q z5zvlG>PiOwMBqwTTjT6);!MTFVL-=r)DrmFaZI@g;K%^c1Ee%(;8zJ802*<zC=-@! zd|HEw&8UwiQV^!h#VU}J?^%Ghras94wcsW*(6*J7c0ypa3mULr?K*}OF3-lU2MU(X z3MuP-85NF9`6Q*C<M*14&vUQiqwsyAXNTdnL1tZWL1Kd2QWVsDFvzS9DM*xs>px6z zlwg&mXlX(#B5nCr5nu)5G*ZoW6*o6x#QO-Y29R_M_BPg=Ye0`&o~~q2>vvI_8SAE^ yG?c!76r+gfb>ugXi>NOna_8m$aT-&;1Q-A|?2p+^qB;uz0000<MNUMnLSTZ&JK)~{ diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-mdpi/ic_action_scan.png b/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-mdpi/ic_action_scan.png deleted file mode 100755 index c577af037ca2dec4eb18ee38e4af3e4649e1fde4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJHcuDFkcwN$2@<S}6GR>`{Qv(y zo#|18!aSxU#uE!<`MwHfyh?NW+H@vC={Tc8@A8HUMOMBD4pZf6GVBd8`zLTIauyvC zDKcrQb!26qkbZ6jvqL9uc#||ov0I#C3eS<t8=qts8J^I2yzp^Dpn=AwhZ&w05;6u4 ou6}GV_h8%RX~yMtu!E5y{qtXqX%<o?Ko>E1y85}Sb4q9e0GLNX!vFvP diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_camera.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_camera.xml deleted file mode 100755 index 344860ae..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_camera.xml +++ /dev/null @@ -1,30 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportHeight="24.0" - android:viewportWidth="24.0"> - <path - android:fillColor="#FF000000" - android:pathData="M12,12m-3.2,0a3.2,3.2 0,1 1,6.4 0a3.2,3.2 0,1 1,-6.4 0"/> - <path - android:fillColor="#FF000000" - android:pathData="M9,2L7.17,4H4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2V6c0,-1.1 -0.9,-2 -2,-2h-3.17L15,2H9zm3,15c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5z"/> -</vector> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_gallery.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_gallery.xml deleted file mode 100755 index 788b59b3..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_gallery.xml +++ /dev/null @@ -1,27 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportHeight="24.0" - android:viewportWidth="24.0"> - <path - android:fillColor="#FF000000" - android:pathData="M22,16V4c0,-1.1 -0.9,-2 -2,-2H8c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2zm-11,-4l2.03,2.71L16,11l4,5H8l3,-4zM2,6v14c0,1.1 0.9,2 2,2h14v-2H4V6H2z"/> -</vector> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_manage.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_manage.xml deleted file mode 100755 index 1bb24786..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_manage.xml +++ /dev/null @@ -1,27 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportHeight="24.0" - android:viewportWidth="24.0"> - <path - android:fillColor="#FF000000" - android:pathData="M22.7,19l-9.1,-9.1c0.9,-2.3 0.4,-5 -1.5,-6.9 -2,-2 -5,-2.4 -7.4,-1.3L9,6 6,9 1.6,4.7C0.4,7.1 0.9,10.1 2.9,12.1c1.9,1.9 4.6,2.4 6.9,1.5l9.1,9.1c0.4,0.4 1,0.4 1.4,0l2.3,-2.3c0.5,-0.4 0.5,-1.1 0.1,-1.4z"/> -</vector> \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_send.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_send.xml deleted file mode 100755 index 9094dfa9..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_send.xml +++ /dev/null @@ -1,27 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportHeight="24.0" - android:viewportWidth="24.0"> - <path - android:fillColor="#FF000000" - android:pathData="M2.01,21L23,12 2.01,3 2,10l15,2 -15,2z"/> -</vector> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_share.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_share.xml deleted file mode 100755 index c198eb0a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_share.xml +++ /dev/null @@ -1,27 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportHeight="24.0" - android:viewportWidth="24.0"> - <path - android:fillColor="#FF000000" - android:pathData="M18,16.08c-0.76,0 -1.44,0.3 -1.96,0.77L8.91,12.7c0.05,-0.23 0.09,-0.46 0.09,-0.7s-0.04,-0.47 -0.09,-0.7l7.05,-4.11c0.54,0.5 1.25,0.81 2.04,0.81 1.66,0 3,-1.34 3,-3s-1.34,-3 -3,-3 -3,1.34 -3,3c0,0.24 0.04,0.47 0.09,0.7L8.04,9.81C7.5,9.31 6.79,9 6,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3c0.79,0 1.5,-0.31 2.04,-0.81l7.12,4.16c-0.05,0.21 -0.08,0.43 -0.08,0.65 0,1.61 1.31,2.92 2.92,2.92 1.61,0 2.92,-1.31 2.92,-2.92s-1.31,-2.92 -2.92,-2.92z"/> -</vector> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_slideshow.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_slideshow.xml deleted file mode 100755 index bc8c64c8..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-v21/ic_menu_slideshow.xml +++ /dev/null @@ -1,27 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportHeight="24.0" - android:viewportWidth="24.0"> - <path - android:fillColor="#FF000000" - android:pathData="M4,6H2v14c0,1.1 0.9,2 2,2h14v-2H4V6zm16,-4H8c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2V4c0,-1.1 -0.9,-2 -2,-2zm-8,12.5v-9l6,4.5 -6,4.5z"/> -</vector> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-xhdpi/ic_action_refresh.png b/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-xhdpi/ic_action_refresh.png deleted file mode 100755 index ab4ab9da697b8c68c0c7ba498dc3bb3dc3da9c2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 895 zcmV-_1AzRAP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#AxT6*RCwC#TkmnJFbsEkd}V+zK;8fh z&<>CckPh%V0R3M2y&0fcAOnyAGC(sxGXNQY0rI3fagVyT<9`H*tvelU4-CJbC0VlE z2Nt+IL;@lKk$^}*Bp?znO}ShyPr=R{fM0=r1!(~QJcrAhkFk;)esl(xN6<f@bI=87 z+PS3xJ%OG<zd?_)+3X}32cP@s{w}(26a>J>A;2~0ia@Ib@6GAwB|VR1RG@nRSrhnA zj=0q28)rQNFIpg;WKR~v1AYN=j-#;v0FN{N*L7wDA|n&6W_SW<);~ICJPAoWfk)rm zX!tp!Acr$nQ_yS3T5ybvt_y?Lr-Kq82~4~o$Xy%EB=;P+6=O-RbWIk65kO|I0^b7P z0q{mUGXIbGqjv!ncr@=<#f+<nE#ab@=4OLrg7A@r!u-(GpB=!PET8k66F}y<R)8-p z$2A2%ST$J40+|E&wJms;c#&AVESIeHxV*hP1XI+lB$mhmXyZ}`*aktF>2FLTJs0&G z3HWij0IkoW=!})yA%q>FN6FuJQ{7lGB|zx=Q=NTZ1WXpZ5dob@{mcJ@AV87z)l(+G zxf*m`hdq|#Dd(a`ot>hD-G>x{__Wn=&)_>lCKhleR?j2!`>b~YsI=XVbRy@H31fHf z0*Xqo4uSwC--SMfLcmG{UbixxdV4&RBxu^%>C`PiwryVBJpr^cwUkt++SzI1=|e<y zgKWDz?U?P>rm@*+zKX<XsrHcye_B4bcj)TMw&Zd4E0ckIxWL&Gd}(QMC6n(S8;|LO zfO;h0tt{%+)u2`1fR?+rD@o60ko^F9d9HciyCLxQh|QX*8?dGAmb?!F8Ut5Bq7It* z{ff-}THF0)w1=cPc|rwnZKfvb_~ciXP(Jt;Lv)6$(@qX(?)c7ETeBZB2>Nh0OrE?o zV)}{!ZLjZ{Iri^6;~Aec(Gf4_1i3T2KLQgSXkIe?6CeD_(H@j+`Y@?J2#_9J?6lTZ zfvydZ$G$-KQJGap0-oTWT2<*Q2-XywDi)&L>PTCZ9wh$HP$VD{5DAC`ge?CA7yzOq VDq)Usy-@%F002ovPDHLkV1gKjk--1} diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-xhdpi/ic_action_scan.png b/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-xhdpi/ic_action_scan.png deleted file mode 100755 index 6c333a9303845cc1eb98e97fb2972d79975ede25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 344 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEV3hZCaSW-r^>&scUz34=tE!85 z3{ym*==M7cwBH?Udi=oDWTN#$lbLEqT7xD}o3(HHpSNE=XR3!hFJS_j!NBk#A@+LE zmCmY*9~|96s;}5~uZz#J`ub{N&)*MIGem4%PV=3W+xqsfefhQ6E6rbnj@Eo$+<x!^ zqeX9ESyP_n_h;`Hy*!|7u#$bd@Gc3)FSD<#ZG3dVE@TD!^X2^;Uu=jh@K_*u{Hrqq zivtMFWKS^Tp2fn{@%nh()tmm&p>rJ=&K~nWY%0p&WbUx}^Qx*Ap9^j)=9YQJ7&8{I zFfbVHtm$YED+%5j)Be-3g@L01j1-<U-TZI+?{tI9<G}xuel@t<Q#Q&ny05r$``iuX kK6+OKEz*4Wz`px8Ph4onQ6W#!5BEWQPgg&ebxsLQ06UA2*#H0l diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-xxhdpi/ic_action_refresh.png b/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-xxhdpi/ic_action_refresh.png deleted file mode 100755 index 44ee117ee91541ed71f27685dde0b03b51b89f7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1239 zcmV;|1StE7P)<h;3K|Lk000e1NJLTq003YB003YJ1^@s6;+S_h0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU$c}YY;RCwC#T|su*Fc1}a-g1EC09=6V zOZTCBa{xF1*#rA<fN+3hU)YE2;|urzZ~zXFYFhc#O~H~ajbxes-_wHzQd|GejAmp> z5dr`J0000000000003wMK0iOlU?Cj&OWC$yA{_Z2)WC*+^3#HR9|H6uA>~fK3{<1{ zx9TJMcVE5FWjmGLALzB$>t!`#{^HAzC-VQuuTB6-#z?*lWgC?UZweA&FWb8$^H76) z!mN&nQ463fJ(caDWZAAk*8D0--5QX89Reugr;2!Apm6o7yyK}t@QoB;(@6m&@zm+L zXX5LERe&ULj9)N@8dqSwza)^=FVx@~0|uQDK$1_LS#ozOCiFa$|7_vXxk@E}=lGX$ zb9tSisuhN+*`}~Zd988O0$7lrt4w7tNjO<#STx9wn~EW?eIKm=4av_`_K`WdhrYUp zLE8jKT1Gxu{F<TgncIvz<VBY%=+=6GvbvWVZqJf$)6AxWI)kkm=JbGtA^8;BA2~Yc zh<sMuFj;?UnCBn4tjjU^Y-w}C&~XYqQ$zA6O|u)#J&YY&em^D;m>b+Mkv?Z6e-TR| zcH_A714GMu<ao%zNd7RE5M&a1HcT<UD7dmS-j-`p-%Fl&;(QwBG!0b*{M6<7vO^OA zu!JBJ>tBO%J^{XIKHqUZ+Pi82)Wa2B=Cc9ad>)`Hx-zc06bN9JrtLsAQx;^H{e0&r zy5Iq3)}MiVUIBD7p2&PcdjM$mQwLna5j0<hi@Bh?%2B?f>8F}_ENY*|b4D(*pbw1z z_Z=a7T`}HKqA_b@2<l4sISTvrMZv~^E`aTcSi)p2U5op-Z5Cj{{m>$k5EUi_T?zSj zn$Hix1h^9DLeL2U@IqJZH;w{5aBE-d2#eWXcz~Y#k!}FCneBxDdguhOnrwss)z(i1 zm~Nrj9s=+oHTVuZfYJJO0_<#`_CbKlpoM0-IUwuvgph`ww|<&_elf^?tanc)9y;^2 zh#6E^R$o+ahWO`r8jf|QD)cN3zUpM5nU7tPZ^Hd_E>)g0ru_v=gUrX--eDhOfa}S+ z6C?SlFx%g-bal<x24PO}$)e{5U){T0WbEUth@)fjb0*858{Wgp<+XhXaA+&}4bCfC zx%R$9#DPZ!^6Q@5LdTr#U3bif0Jg-fT*lneHrlktuTk7*+1=wq02`NGmk-x-G_{b{ zOp9~Zao=|xK!w<|g?R7E0{0ECKN5eYlph*;?~HSGx3BYpJ{)-x5t510*3u$8l`8Jy zVAtZnrl!~_4`f|hACmw+@yZqRLkYk!9l<qTtvIrs(3NluYln#RA3n*CsSe<-)R&?5 zFee^6S($05Ol2w<*I}Nyr;V#Lx9wxVRGdG`;J-9arHv1Q?_gKTZnkaNwI5P|${br2 zP9tG|{^wErJ-)tmJ2rg@Ktw)$$u??DuBrXVx24>ESWzp8qF%rjSyd#J{w&Cwng{~| z2mtZ}3D5`m;YApM1poj50000000000fS~v#zyO={=$CR|bEp6S002ovPDHLkV1lVS BMRNcE diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-xxhdpi/ic_action_scan.png b/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable-xxhdpi/ic_action_scan.png deleted file mode 100755 index f50662975f8f9b7f80a742fac10f144a13af96cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 588 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>U=sFpaSW-r^>&V77L%h$o2qY6 zhiB&QGBM4t)q9&Y;u87=n!-J~wEYEhn<pH5F!zjfMPuqF#!~k0XWx83$Zz)O|Fijb zBh!vwf6WLq6AliD&hcArebHe`XVJwkKE5u>-~Temy>orcUAKEx%wB${ik)8{e0N=% zp?s^0Z_(qKzplMM!^HEi`^D#``|DmUurrJDwx4!TzU!LRgyU?#GF~L#N%-(ut#x&# z#NjjX>{_>i81_fa-YfKFUOd~3pJ929|0}h9*KzKO$hA3KebFn#We11&tJ?QhpJd5I z@F-lK8Ev||>mBE#_n~_~WfhsGiJg6B>Tm7J)PLFa?B&3`i!Zi3n`h~(&|vXOiJ?b` zfiYnU0|&!m76%3iRR*RVdoOlw7k*{uFT|nHx2uG`_;qenuMo$9t6NuJ*=ig){hiFY zJKZ8zb)L-)Sii1v>AFg;Qcy^!G}uhD?V7jVrdD8a%v%32w)?W~mBO{Gb}Xrp>#miX zf7D^wz*8Wh?Y48)bf8Ulnj%_u@8Mtu>MW_V*Ekto9(8?D(Dg&F;-@^SsGOS>E90Gc zUxR(KffoZyLm-m^k~{BmHKfVvN-vG|J)Nd&mQ(d2=<u=$x~K0<dv9~#!Tz#ksWZiV zFWWIIUf6c&#MBE*3RkyA2h8b>-fOz>?X{!6Vh<~##X;7>!HkFOEA8wr_*(0o0Ev0J L`njxgN@xNA(Ps1f diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable/side_nav_bar.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable/side_nav_bar.xml deleted file mode 100755 index 41946f93..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/drawable/side_nav_bar.xml +++ /dev/null @@ -1,27 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<shape xmlns:android="http://schemas.android.com/apk/res/android" - android:shape="rectangle"> - <gradient - android:angle="135" - android:centerColor="#4CAF50" - android:endColor="#2E7D32" - android:startColor="#81C784" - android:type="linear"/> -</shape> \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_dynamic.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_dynamic.xml deleted file mode 100644 index bd7c8e35..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_dynamic.xml +++ /dev/null @@ -1,45 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<android.support.design.widget.CoordinatorLayout - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:fitsSystemWindows="true" - tools:context="com.alibaba.weex.WXDebugActivity"> - - <android.support.design.widget.AppBarLayout - android:layout_height="wrap_content" - android:layout_width="match_parent" - android:theme="@style/AppTheme.AppBarOverlay"> - - <android.support.v7.widget.Toolbar - android:id="@+id/toolbar" - android:layout_width="match_parent" - android:layout_height="?attr/actionBarSize" - android:background="?attr/colorPrimary" - app:popupTheme="@style/AppTheme.PopupOverlay"/> - - </android.support.design.widget.AppBarLayout> - - <include layout="@layout/content_dynamic"/> - -</android.support.design.widget.CoordinatorLayout> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_game_detail.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_game_detail.xml deleted file mode 100644 index ecee85e9..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_game_detail.xml +++ /dev/null @@ -1,13 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - android:id="@+id/browser_fragment_layout" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="#ffffff"> - - <android.taobao.windvane.extra.uc.WVUCWebView - android:id="@+id/webview" - android:layout_width="match_parent" - android:layout_height="match_parent" /> -</RelativeLayout> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_gview.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_gview.xml deleted file mode 100644 index 6fed6177..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_gview.xml +++ /dev/null @@ -1,34 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent"> - - <WebView - android:id="@+id/webview" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:visibility="gone"/> - - <com.taobao.gcanvas.runtime.view.GRenderView - android:id="@+id/grender_view" - android:layout_width="match_parent" - android:layout_height="match_parent" /> - - <VideoView - android:id="@+id/videoView1" - android:layout_width="match_parent" - android:layout_height="200dp" - android:visibility="gone" - android:layout_gravity="bottom|right" /> - - <EditText - android:inputType="textAutoComplete" - android:id="@+id/gtext" - android:layout_width="wrap_content" - android:layout_height="200dp" - android:layout_gravity="center" - android:visibility="gone" - android:hint="This is a normal text!!!!!" - android:textColor="@android:color/holo_red_dark" - android:textSize="28sp" /> -</FrameLayout> \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_index.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_index.xml deleted file mode 100755 index 6d2ee7f7..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_index.xml +++ /dev/null @@ -1,46 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<android.support.design.widget.CoordinatorLayout - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:fitsSystemWindows="true" - tools:context=".IndexActivity"> - - <android.support.design.widget.AppBarLayout - android:layout_height="wrap_content" - android:layout_width="match_parent" - android:theme="@style/AppTheme.AppBarOverlay"> - - <android.support.v7.widget.Toolbar - android:id="@+id/toolbar" - android:title="@string/app_name" - android:layout_width="match_parent" - android:layout_height="?attr/actionBarSize" - android:background="?attr/colorPrimary" - app:popupTheme="@style/AppTheme.PopupOverlay"/> - - </android.support.design.widget.AppBarLayout> - - <include layout="@layout/content_wx_main"/> - -</android.support.design.widget.CoordinatorLayout> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_multiview.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_multiview.xml deleted file mode 100644 index 6bb51a94..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_multiview.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="vertical" - android:layout_width="match_parent" - android:layout_height="match_parent"> - - - <com.taobao.gcanvas.runtime.view.GRenderView - android:id="@+id/grender_view1" - android:layout_weight="1" - android:layout_width="match_parent" - android:layout_height="match_parent" /> - - <com.taobao.gcanvas.runtime.view.GRenderView - android:id="@+id/grender_view2" - android:layout_weight="1" - android:layout_width="match_parent" - android:layout_height="match_parent" /> - -</LinearLayout> \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_splash.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_splash.xml deleted file mode 100755 index d67473af..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_splash.xml +++ /dev/null @@ -1,36 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:id="@+id/container" - android:background="#0099cc" - tools:context="com.alibaba.weex.SplashActivity"> - - <TextView android:id="@+id/fullscreen_content" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:keepScreenOn="true" - android:textColor="#33b5e5" - android:textStyle="bold" - android:textSize="50sp" - android:gravity="center" - android:text="@string/dummy_content"/> -</FrameLayout> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_wxpage.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_wxpage.xml deleted file mode 100755 index 892f405d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/activity_wxpage.xml +++ /dev/null @@ -1,79 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<android.support.design.widget.CoordinatorLayout - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:fitsSystemWindows="true" - tools:context="com.alibaba.weex.WXPageActivity"> - - <android.support.design.widget.AppBarLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:theme="@style/AppTheme.AppBarOverlay"> - - <android.support.v7.widget.Toolbar - android:id="@+id/toolbar" - android:layout_width="match_parent" - android:layout_height="?attr/actionBarSize" - android:background="?attr/colorPrimary" - app:popupTheme="@style/AppTheme.PopupOverlay"/> - - </android.support.design.widget.AppBarLayout> - - <FrameLayout - android:layout_width="match_parent" - android:layout_height="match_parent" - app:layout_behavior="@string/appbar_scrolling_view_behavior"> - <FrameLayout - android:id="@+id/container" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:background="#ffffff"> -<!-- - <WebView - android:id="@+id/webviewLayout" - android:layout_width="match_parent" - android:layout_height="match_parent"> - - </WebView> --> - - - </FrameLayout> - - <!--<Button--> - <!--android:id="@+id/weex_refresh"--> - <!--android:layout_width="match_parent"--> - <!--android:layout_height="100dp" />--> - - <ProgressBar - android:id="@+id/progress" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center" - android:visibility="gone"/> - - </FrameLayout> - -</android.support.design.widget.CoordinatorLayout> - - - diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/app_bar_main.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/app_bar_main.xml deleted file mode 100755 index fcefedf7..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/app_bar_main.xml +++ /dev/null @@ -1,53 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<android.support.design.widget.CoordinatorLayout - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:fitsSystemWindows="true" - tools:context=".WXHomeActivity"> - - <android.support.design.widget.AppBarLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:theme="@style/AppTheme.AppBarOverlay"> - - <android.support.v7.widget.Toolbar - android:id="@+id/toolbar" - android:layout_width="match_parent" - android:layout_height="?attr/actionBarSize" - android:background="?attr/colorPrimary" - app:popupTheme="@style/AppTheme.PopupOverlay"/> - - </android.support.design.widget.AppBarLayout> - - <include layout="@layout/content_main"/> - - <!--<android.support.design.widget.FloatingActionButton--> - <!--android:id="@+id/fab"--> - <!--android:layout_width="wrap_content"--> - <!--android:layout_height="wrap_content"--> - <!--android:layout_gravity="bottom|end"--> - <!--android:layout_margin="@dimen/fab_margin"--> - <!--android:src="@android:drawable/ic_dialog_email"/>--> - -</android.support.design.widget.CoordinatorLayout> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/app_picker_list_item.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/app_picker_list_item.xml deleted file mode 100755 index 37e7abcb..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/app_picker_list_item.xml +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (C) 2008 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - android:orientation="horizontal" - android:layout_width="fill_parent" - android:layout_height="wrap_content"> - - <ImageView android:id="@+id/app_picker_list_item_icon" - android:layout_width="64dip" - android:layout_height="64dip" - android:scaleType="centerInside" - android:padding="@dimen/half_padding" - tools:ignore="ContentDescription"/> - - <TextView android:id="@+id/app_picker_list_item_label" - android:layout_width="wrap_content" - android:layout_height="fill_parent" - android:gravity="center_vertical" - android:textAppearance="?android:attr/textAppearanceLarge" - android:singleLine="true" - android:padding="@dimen/half_padding"/> - -</LinearLayout> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/bookmark_picker_list_item.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/bookmark_picker_list_item.xml deleted file mode 100755 index b8cb1acf..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/bookmark_picker_list_item.xml +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (C) 2008 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<LinearLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="vertical" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:padding="@dimen/half_padding"> - - <TextView android:id="@+id/bookmark_title" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:textAppearance="?android:attr/textAppearanceLarge" - android:singleLine="true" - android:textIsSelectable="false"/> - - <TextView android:id="@+id/bookmark_url" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:textAppearance="?android:attr/textAppearanceSmall" - android:singleLine="false" - android:textIsSelectable="false"/> - -</LinearLayout> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/camera.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/camera.xml deleted file mode 100755 index a016c531..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/camera.xml +++ /dev/null @@ -1,36 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent" > - - <SurfaceView - android:id="@+id/surface_view" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:layout_gravity="center" /> - - <com.taobao.ma.ui.ViewfinderTaobaoView - android:id="@+id/viewfinder_view" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_centerInParent="true" /> - -</RelativeLayout> \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/capture.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/capture.xml deleted file mode 100755 index fa3c603e..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/capture.xml +++ /dev/null @@ -1,204 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (C) 2008 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<merge xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools"> - - <SurfaceView android:id="@+id/preview_view" - android:layout_width="fill_parent" - android:layout_height="fill_parent"/> - - <com.google.zxing.client.android.ViewfinderView - android:id="@+id/viewfinder_view" - android:layout_width="fill_parent" - android:layout_height="fill_parent"/> - - <LinearLayout android:id="@+id/result_view" - android:orientation="vertical" - android:layout_width="fill_parent" - android:layout_height="fill_parent" - android:background="@color/result_view" - android:visibility="gone" - android:baselineAligned="false"> - - <LinearLayout - android:orientation="horizontal" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:layout_weight="1" - android:gravity="center" - android:padding="@dimen/standard_padding"> - - <LinearLayout - android:orientation="vertical" - android:layout_width="wrap_content" - android:layout_height="fill_parent" - android:gravity="right|center_vertical"> - - <ImageView android:id="@+id/barcode_image_view" - android:layout_width="160dip" - android:layout_height="wrap_content" - android:maxWidth="160dip" - android:maxHeight="160dip" - android:layout_marginBottom="@dimen/half_padding" - android:adjustViewBounds="true" - android:scaleType="centerInside" - tools:ignore="ContentDescription"/> - - <LinearLayout - android:orientation="horizontal" - android:layout_width="wrap_content" - android:layout_height="wrap_content"> - - <TextView android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/msg_default_format" - android:textColor="@color/result_minor_text" - android:textStyle="bold" - android:paddingRight="@dimen/half_padding"/> - - <TextView android:id="@+id/format_text_view" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textColor="@color/result_minor_text"/> - - </LinearLayout> - - <LinearLayout - android:orientation="horizontal" - android:layout_width="wrap_content" - android:layout_height="wrap_content"> - - <TextView android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/msg_default_type" - android:textColor="@color/result_minor_text" - android:textStyle="bold" - android:paddingRight="@dimen/half_padding"/> - - <TextView android:id="@+id/type_text_view" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textColor="@color/result_minor_text"/> - - </LinearLayout> - - <LinearLayout - android:orientation="horizontal" - android:layout_width="wrap_content" - android:layout_height="wrap_content"> - - <TextView android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/msg_default_time" - android:textColor="@color/result_minor_text" - android:textStyle="bold" - android:paddingRight="@dimen/half_padding"/> - - <TextView android:id="@+id/time_text_view" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textColor="@color/result_minor_text"/> - - </LinearLayout> - - <LinearLayout - android:orientation="horizontal" - android:layout_width="wrap_content" - android:layout_height="wrap_content"> - - <TextView android:id="@+id/meta_text_view_label" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/msg_default_meta" - android:textColor="@color/result_minor_text" - android:textStyle="bold" - android:paddingRight="@dimen/half_padding"/> - - <TextView android:id="@+id/meta_text_view" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textColor="@color/result_minor_text"/> - - </LinearLayout> - - </LinearLayout> - - <ScrollView - android:layout_width="wrap_content" - android:layout_height="wrap_content"> - - <LinearLayout - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:orientation="vertical"> - - <TextView android:id="@+id/contents_text_view" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textColor="@color/result_text" - android:textColorLink="@color/result_text" - android:textSize="22sp" - android:paddingLeft="12dip" - android:autoLink="web" - android:textIsSelectable="true"/> - - <TextView android:id="@+id/contents_supplement_text_view" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textColor="@color/result_text" - android:textColorLink="@color/result_text" - android:paddingLeft="12dip" - android:autoLink="web" - android:textIsSelectable="true"/> - - </LinearLayout> - - </ScrollView> - - </LinearLayout> - - <LinearLayout android:id="@+id/result_button_view" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:orientation="horizontal" - android:gravity="center"> - - <Button style="@style/ResultButton" - android:visibility="gone"/> - - <Button style="@style/ResultButton" - android:visibility="gone"/> - - <Button style="@style/ResultButton" - android:visibility="gone"/> - - <Button style="@style/ResultButton" - android:visibility="gone"/> - - </LinearLayout> - - </LinearLayout> - - <TextView android:id="@+id/status_view" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="bottom|center_horizontal" - android:background="@color/transparent" - android:text="@string/msg_default_status" - android:textColor="@color/status_text"/> - -</merge> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/catalog_item.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/catalog_item.xml deleted file mode 100755 index 56278ec0..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/catalog_item.xml +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="vertical" > - - <TextView - android:id="@+id/text" - android:layout_width="match_parent" - android:layout_height="60dp" - android:gravity="center_vertical" - android:textSize="24sp"/> - -</LinearLayout> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/content_dynamic.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/content_dynamic.xml deleted file mode 100644 index b93d2db8..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/content_dynamic.xml +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/wx_brief_wv_container" - android:orientation="vertical" - android:layout_width="match_parent" - android:layout_height="match_parent"> - - <TextView - android:text="Dynamically replaces the framework!" - android:layout_marginTop="100dp" - android:layout_marginBottom="60dp" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:id="@+id/dynamic_tip" - android:layout_centerHorizontal="true"/> - <TextView - android:text="The replacement will return to the home page!" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:id="@+id/dynamic_result" - android:layout_below="@+id/dynamic_tip" - android:layout_centerInParent="true" - /> -</RelativeLayout> \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/content_main.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/content_main.xml deleted file mode 100755 index b92e9717..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/content_main.xml +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<FrameLayout - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent" - app:layout_behavior="@string/appbar_scrolling_view_behavior" - tools:context="com.alibaba.weex.fr" - android:id="@+id/main_container" - tools:showIn="@layout/app_bar_main"> - - -</FrameLayout> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/content_wx_main.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/content_wx_main.xml deleted file mode 100755 index e5fffdbc..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/content_wx_main.xml +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - app:layout_behavior="@string/appbar_scrolling_view_behavior" - - android:layout_width="match_parent" android:layout_height="match_parent"> - <FrameLayout - android:id="@+id/index_container" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:orientation="vertical"> - - </FrameLayout> - <ProgressBar android:id="@+id/index_progressBar" android:layout_width="wrap_content" - android:layout_height="wrap_content" android:layout_centerInParent="true" - android:visibility="gone"/> - <TextView android:id="@+id/index_tip" android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_below="@+id/index_progressBar" - android:layout_centerHorizontal="true" - android:layout_alignWithParentIfMissing="true" - android:layout_margin="10dp" - android:text="loading...." android:visibility="gone"/> -</RelativeLayout> \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/encode.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/encode.xml deleted file mode 100755 index 2a9a0c8a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/encode.xml +++ /dev/null @@ -1,53 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (C) 2008 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="fill_parent" - android:layout_height="fill_parent" - android:fillViewport="true" - android:background="@color/encode_view" - android:orientation="vertical" - android:gravity="center" - tools:ignore="Overdraw"> - - <ImageView android:id="@+id/image_view" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" - android:scaleType="center" - tools:ignore="ContentDescription"/> - - <ScrollView android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" - android:gravity="center"> - - <TextView android:id="@+id/contents_text_view" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" - android:gravity="center" - android:textColor="@color/contents_text" - android:paddingBottom="@dimen/standard_padding" - android:paddingLeft="@dimen/standard_padding" - android:paddingRight="@dimen/standard_padding" - android:textIsSelectable="true"/> - - </ScrollView> - -</LinearLayout> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/hello_weex.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/hello_weex.xml deleted file mode 100644 index 2a606641..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/hello_weex.xml +++ /dev/null @@ -1,37 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> - -<FrameLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="vertical" - android:layout_width="match_parent" - android:layout_height="match_parent" -> - <FrameLayout - android:layout_width="wrap_content" - android:layout_height="wrap_content"> - <TextView - android:text="Hello World" - android:textSize="140px" - android:textColor="@android:color/black" - android:layout_width="wrap_content" - android:layout_height="wrap_content"/> - </FrameLayout> -</FrameLayout> \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/help.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/help.xml deleted file mode 100755 index e02480a9..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/help.xml +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (C) 2008 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<WebView xmlns:android="http://schemas.android.com/apk/res/android" - android:id="@+id/help_contents" - android:layout_width="fill_parent" - android:layout_height="fill_parent" - android:layout_weight="1"/> \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/history_list_item.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/history_list_item.xml deleted file mode 100755 index cb2180ad..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/history_list_item.xml +++ /dev/null @@ -1,38 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (C) 2008 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<LinearLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="vertical" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:padding="@dimen/standard_padding"> - - <TextView android:id="@+id/history_title" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:textAppearance="?android:attr/textAppearanceLarge" - android:singleLine="true" - android:textIsSelectable="false"/> - - <TextView android:id="@+id/history_detail" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:textAppearance="?android:attr/textAppearanceSmall" - android:singleLine="false" - android:textIsSelectable="false"/> - -</LinearLayout> \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/id_stub.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/id_stub.xml deleted file mode 100644 index fe829cfd..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/id_stub.xml +++ /dev/null @@ -1,75 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="vertical" - android:layout_width="match_parent" - android:layout_height="match_parent"> - <!-- Do not manual edit this file, it's gen by script--> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4999"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4998"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4997"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4996"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4995"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4994"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4993"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4992"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4991"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4990"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4989"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4988"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4987"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4986"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4985"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4984"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4983"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4982"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4981"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4980"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4979"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4978"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4977"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4976"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4975"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4974"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4973"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4972"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4971"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4970"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4969"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4968"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4967"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4966"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4965"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4964"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4963"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4962"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4961"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4960"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4959"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4958"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4957"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4956"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4955"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4954"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4953"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4952"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4951"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4950"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4949"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4948"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4947"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4946"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4945"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4944"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4943"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4942"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4941"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4940"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4939"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4938"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4937"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4936"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4935"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4934"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4933"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4932"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4931"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4930"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4929"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4928"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4927"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4926"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4925"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4924"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4923"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4922"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4921"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4920"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4919"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4918"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4917"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4916"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4915"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4914"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4913"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4912"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4911"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4910"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4909"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4908"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4907"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4906"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4905"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4904"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4903"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4902"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4901"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4900"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4899"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4898"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4897"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4896"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4895"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4894"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4893"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4892"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4891"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4890"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4889"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4888"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4887"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4886"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4885"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4884"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4883"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4882"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4881"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4880"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4879"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4878"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4877"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4876"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4875"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4874"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4873"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4872"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4871"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4870"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4869"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4868"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4867"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4866"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4865"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4864"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4863"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4862"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4861"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4860"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4859"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4858"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4857"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4856"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4855"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4854"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4853"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4852"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4851"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4850"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4849"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4848"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4847"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4846"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4845"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4844"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4843"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4842"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4841"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4840"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4839"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4838"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4837"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4836"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4835"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4834"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4833"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4832"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4831"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4830"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4829"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4828"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4827"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4826"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4825"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4824"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4823"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4822"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4821"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4820"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4819"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4818"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4817"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4816"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4815"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4814"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4813"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4812"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4811"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4810"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4809"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4808"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4807"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4806"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4805"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4804"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4803"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4802"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4801"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4800"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4799"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4798"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4797"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4796"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4795"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4794"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4793"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4792"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4791"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4790"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4789"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4788"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4787"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4786"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4785"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4784"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4783"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4782"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4781"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4780"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4779"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4778"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4777"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4776"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4775"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4774"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4773"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4772"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4771"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4770"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4769"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4768"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4767"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4766"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4765"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4764"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4763"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4762"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4761"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4760"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4759"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4758"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4757"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4756"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4755"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4754"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4753"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4752"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4751"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4750"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4749"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4748"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4747"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4746"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4745"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4744"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4743"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4742"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4741"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4740"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4739"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4738"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4737"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4736"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4735"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4734"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4733"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4732"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4731"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4730"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4729"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4728"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4727"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4726"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4725"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4724"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4723"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4722"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4721"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4720"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4719"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4718"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4717"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4716"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4715"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4714"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4713"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4712"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4711"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4710"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4709"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4708"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4707"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4706"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4705"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4704"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4703"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4702"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4701"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4700"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4699"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4698"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4697"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4696"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4695"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4694"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4693"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4692"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4691"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4690"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4689"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4688"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4687"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4686"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4685"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4684"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4683"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4682"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4681"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4680"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4679"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4678"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4677"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4676"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4675"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4674"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4673"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4672"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4671"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4670"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4669"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4668"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4667"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4666"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4665"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4664"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4663"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4662"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4661"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4660"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4659"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4658"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4657"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4656"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4655"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4654"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4653"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4652"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4651"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4650"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4649"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4648"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4647"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4646"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4645"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4644"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4643"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4642"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4641"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4640"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4639"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4638"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4637"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4636"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4635"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4634"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4633"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4632"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4631"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4630"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4629"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4628"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4627"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4626"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4625"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4624"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4623"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4622"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4621"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4620"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4619"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4618"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4617"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4616"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4615"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4614"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4613"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4612"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4611"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4610"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4609"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4608"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4607"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4606"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4605"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4604"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4603"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4602"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4601"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4600"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4599"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4598"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4597"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4596"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4595"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4594"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4593"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4592"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4591"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4590"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4589"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4588"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4587"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4586"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4585"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4584"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4583"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4582"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4581"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4580"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4579"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4578"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4577"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4576"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4575"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4574"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4573"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4572"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4571"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4570"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4569"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4568"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4567"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4566"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4565"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4564"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4563"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4562"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4561"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4560"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4559"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4558"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4557"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4556"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4555"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4554"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4553"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4552"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4551"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4550"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4549"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4548"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4547"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4546"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4545"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4544"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4543"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4542"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4541"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4540"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4539"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4538"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4537"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4536"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4535"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4534"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4533"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4532"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4531"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4530"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4529"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4528"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4527"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4526"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4525"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4524"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4523"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4522"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4521"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4520"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4519"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4518"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4517"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4516"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4515"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4514"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4513"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4512"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4511"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4510"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4509"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4508"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4507"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4506"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4505"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4504"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4503"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4502"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4501"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4500"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4499"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4498"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4497"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4496"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4495"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4494"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4493"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4492"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4491"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4490"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4489"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4488"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4487"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4486"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4485"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4484"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4483"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4482"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4481"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4480"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4479"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4478"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4477"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4476"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4475"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4474"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4473"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4472"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4471"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4470"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4469"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4468"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4467"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4466"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4465"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4464"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4463"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4462"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4461"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4460"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4459"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4458"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4457"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4456"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4455"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4454"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4453"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4452"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4451"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4450"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4449"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4448"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4447"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4446"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4445"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4444"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4443"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4442"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4441"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4440"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4439"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4438"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4437"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4436"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4435"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4434"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4433"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4432"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4431"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4430"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4429"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4428"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4427"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4426"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4425"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4424"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4423"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4422"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4421"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4420"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4419"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4418"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4417"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4416"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4415"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4414"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4413"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4412"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4411"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4410"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4409"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4408"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4407"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4406"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4405"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4404"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4403"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4402"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4401"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4400"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4399"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4398"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4397"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4396"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4395"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4394"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4393"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4392"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4391"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4390"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4389"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4388"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4387"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4386"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4385"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4384"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4383"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4382"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4381"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4380"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4379"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4378"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4377"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4376"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4375"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4374"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4373"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4372"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4371"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4370"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4369"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4368"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4367"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4366"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4365"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4364"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4363"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4362"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4361"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4360"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4359"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4358"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4357"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4356"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4355"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4354"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4353"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4352"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4351"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4350"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4349"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4348"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4347"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4346"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4345"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4344"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4343"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4342"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4341"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4340"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4339"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4338"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4337"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4336"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4335"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4334"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4333"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4332"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4331"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4330"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4329"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4328"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4327"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4326"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4325"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4324"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4323"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4322"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4321"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4320"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4319"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4318"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4317"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4316"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4315"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4314"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4313"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4312"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4311"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4310"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4309"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4308"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4307"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4306"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4305"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4304"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4303"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4302"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4301"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4300"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4299"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4298"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4297"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4296"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4295"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4294"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4293"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4292"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4291"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4290"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4289"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4288"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4287"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4286"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4285"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4284"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4283"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4282"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4281"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4280"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4279"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4278"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4277"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4276"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4275"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4274"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4273"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4272"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4271"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4270"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4269"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4268"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4267"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4266"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4265"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4264"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4263"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4262"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4261"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4260"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4259"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4258"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4257"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4256"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4255"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4254"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4253"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4252"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4251"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4250"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4249"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4248"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4247"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4246"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4245"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4244"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4243"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4242"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4241"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4240"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4239"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4238"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4237"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4236"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4235"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4234"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4233"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4232"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4231"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4230"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4229"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4228"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4227"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4226"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4225"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4224"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4223"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4222"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4221"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4220"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4219"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4218"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4217"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4216"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4215"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4214"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4213"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4212"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4211"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4210"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4209"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4208"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4207"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4206"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4205"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4204"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4203"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4202"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4201"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4200"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4199"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4198"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4197"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4196"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4195"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4194"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4193"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4192"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4191"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4190"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4189"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4188"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4187"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4186"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4185"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4184"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4183"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4182"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4181"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4180"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4179"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4178"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4177"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4176"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4175"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4174"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4173"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4172"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4171"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4170"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4169"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4168"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4167"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4166"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4165"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4164"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4163"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4162"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4161"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4160"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4159"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4158"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4157"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4156"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4155"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4154"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4153"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4152"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4151"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4150"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4149"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4148"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4147"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4146"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4145"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4144"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4143"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4142"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4141"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4140"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4139"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4138"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4137"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4136"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4135"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4134"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4133"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4132"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4131"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4130"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4129"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4128"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4127"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4126"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4125"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4124"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4123"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4122"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4121"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4120"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4119"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4118"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4117"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4116"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4115"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4114"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4113"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4112"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4111"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4110"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4109"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4108"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4107"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4106"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4105"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4104"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4103"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4102"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4101"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4100"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4099"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4098"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4097"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4096"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4095"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4094"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4093"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4092"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4091"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4090"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4089"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4088"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4087"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4086"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4085"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4084"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4083"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4082"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4081"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4080"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4079"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4078"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4077"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4076"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4075"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4074"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4073"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4072"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4071"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4070"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4069"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4068"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4067"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4066"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4065"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4064"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4063"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4062"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4061"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4060"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4059"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4058"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4057"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4056"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4055"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4054"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4053"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4052"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4051"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4050"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4049"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4048"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4047"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4046"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4045"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4044"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4043"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4042"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4041"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4040"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4039"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4038"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4037"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4036"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4035"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4034"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4033"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4032"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4031"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4030"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4029"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4028"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4027"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4026"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4025"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4024"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4023"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4022"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4021"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4020"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4019"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4018"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4017"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4016"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4015"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4014"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4013"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4012"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4011"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4010"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4009"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4008"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4007"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4006"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4005"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4004"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4003"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4002"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4001"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4000"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3999"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3998"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3997"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3996"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3995"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3994"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3993"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3992"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3991"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3990"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3989"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3988"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3987"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3986"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3985"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3984"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3983"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3982"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3981"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3980"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3979"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3978"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3977"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3976"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3975"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3974"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3973"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3972"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3971"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3970"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3969"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3968"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3967"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3966"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3965"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3964"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3963"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3962"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3961"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3960"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3959"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3958"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3957"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3956"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3955"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3954"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3953"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3952"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3951"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3950"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3949"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3948"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3947"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3946"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3945"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3944"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3943"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3942"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3941"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3940"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3939"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3938"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3937"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3936"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3935"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3934"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3933"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3932"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3931"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3930"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3929"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3928"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3927"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3926"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3925"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3924"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3923"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3922"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3921"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3920"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3919"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3918"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3917"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3916"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3915"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3914"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3913"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3912"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3911"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3910"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3909"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3908"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3907"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3906"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3905"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3904"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3903"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3902"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3901"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3900"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3899"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3898"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3897"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3896"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3895"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3894"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3893"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3892"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3891"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3890"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3889"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3888"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3887"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3886"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3885"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3884"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3883"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3882"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3881"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3880"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3879"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3878"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3877"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3876"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3875"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3874"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3873"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3872"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3871"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3870"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3869"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3868"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3867"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3866"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3865"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3864"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3863"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3862"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3861"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3860"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3859"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3858"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3857"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3856"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3855"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3854"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3853"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3852"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3851"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3850"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3849"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3848"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3847"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3846"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3845"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3844"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3843"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3842"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3841"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3840"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3839"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3838"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3837"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3836"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3835"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3834"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3833"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3832"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3831"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3830"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3829"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3828"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3827"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3826"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3825"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3824"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3823"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3822"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3821"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3820"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3819"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3818"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3817"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3816"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3815"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3814"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3813"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3812"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3811"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3810"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3809"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3808"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3807"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3806"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3805"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3804"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3803"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3802"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3801"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3800"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3799"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3798"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3797"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3796"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3795"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3794"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3793"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3792"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3791"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3790"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3789"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3788"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3787"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3786"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3785"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3784"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3783"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3782"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3781"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3780"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3779"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3778"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3777"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3776"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3775"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3774"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3773"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3772"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3771"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3770"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3769"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3768"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3767"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3766"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3765"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3764"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3763"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3762"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3761"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3760"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3759"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3758"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3757"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3756"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3755"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3754"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3753"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3752"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3751"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3750"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3749"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3748"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3747"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3746"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3745"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3744"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3743"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3742"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3741"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3740"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3739"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3738"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3737"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3736"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3735"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3734"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3733"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3732"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3731"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3730"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3729"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3728"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3727"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3726"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3725"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3724"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3723"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3722"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3721"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3720"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3719"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3718"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3717"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3716"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3715"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3714"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3713"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3712"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3711"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3710"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3709"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3708"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3707"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3706"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3705"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3704"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3703"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3702"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3701"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3700"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3699"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3698"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3697"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3696"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3695"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3694"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3693"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3692"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3691"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3690"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3689"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3688"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3687"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3686"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3685"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3684"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3683"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3682"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3681"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3680"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3679"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3678"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3677"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3676"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3675"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3674"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3673"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3672"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3671"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3670"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3669"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3668"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3667"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3666"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3665"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3664"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3663"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3662"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3661"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3660"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3659"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3658"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3657"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3656"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3655"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3654"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3653"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3652"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3651"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3650"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3649"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3648"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3647"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3646"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3645"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3644"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3643"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3642"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3641"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3640"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3639"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3638"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3637"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3636"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3635"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3634"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3633"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3632"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3631"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3630"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3629"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3628"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3627"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3626"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3625"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3624"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3623"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3622"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3621"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3620"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3619"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3618"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3617"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3616"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3615"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3614"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3613"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3612"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3611"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3610"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3609"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3608"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3607"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3606"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3605"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3604"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3603"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3602"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3601"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3600"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3599"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3598"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3597"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3596"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3595"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3594"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3593"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3592"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3591"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3590"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3589"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3588"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3587"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3586"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3585"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3584"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3583"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3582"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3581"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3580"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3579"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3578"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3577"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3576"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3575"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3574"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3573"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3572"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3571"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3570"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3569"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3568"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3567"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3566"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3565"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3564"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3563"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3562"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3561"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3560"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3559"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3558"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3557"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3556"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3555"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3554"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3553"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3552"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3551"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3550"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3549"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3548"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3547"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3546"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3545"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3544"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3543"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3542"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3541"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3540"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3539"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3538"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3537"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3536"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3535"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3534"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3533"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3532"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3531"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3530"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3529"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3528"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3527"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3526"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3525"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3524"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3523"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3522"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3521"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3520"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3519"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3518"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3517"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3516"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3515"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3514"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3513"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3512"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3511"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3510"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3509"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3508"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3507"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3506"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3505"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3504"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3503"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3502"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3501"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3500"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3499"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3498"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3497"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3496"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3495"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3494"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3493"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3492"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3491"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3490"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3489"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3488"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3487"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3486"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3485"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3484"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3483"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3482"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3481"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3480"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3479"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3478"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3477"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3476"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3475"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3474"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3473"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3472"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3471"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3470"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3469"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3468"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3467"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3466"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3465"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3464"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3463"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3462"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3461"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3460"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3459"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3458"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3457"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3456"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3455"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3454"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3453"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3452"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3451"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3450"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3449"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3448"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3447"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3446"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3445"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3444"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3443"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3442"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3441"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3440"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3439"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3438"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3437"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3436"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3435"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3434"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3433"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3432"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3431"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3430"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3429"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3428"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3427"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3426"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3425"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3424"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3423"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3422"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3421"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3420"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3419"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3418"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3417"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3416"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3415"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3414"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3413"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3412"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3411"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3410"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3409"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3408"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3407"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3406"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3405"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3404"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3403"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3402"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3401"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3400"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3399"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3398"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3397"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3396"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3395"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3394"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3393"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3392"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3391"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3390"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3389"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3388"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3387"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3386"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3385"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3384"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3383"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3382"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3381"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3380"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3379"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3378"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3377"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3376"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3375"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3374"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3373"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3372"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3371"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3370"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3369"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3368"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3367"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3366"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3365"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3364"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3363"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3362"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3361"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3360"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3359"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3358"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3357"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3356"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3355"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3354"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3353"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3352"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3351"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3350"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3349"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3348"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3347"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3346"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3345"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3344"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3343"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3342"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3341"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3340"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3339"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3338"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3337"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3336"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3335"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3334"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3333"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3332"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3331"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3330"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3329"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3328"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3327"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3326"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3325"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3324"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3323"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3322"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3321"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3320"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3319"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3318"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3317"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3316"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3315"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3314"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3313"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3312"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3311"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3310"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3309"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3308"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3307"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3306"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3305"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3304"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3303"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3302"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3301"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3300"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3299"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3298"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3297"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3296"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3295"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3294"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3293"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3292"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3291"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3290"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3289"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3288"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3287"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3286"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3285"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3284"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3283"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3282"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3281"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3280"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3279"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3278"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3277"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3276"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3275"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3274"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3273"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3272"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3271"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3270"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3269"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3268"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3267"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3266"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3265"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3264"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3263"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3262"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3261"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3260"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3259"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3258"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3257"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3256"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3255"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3254"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3253"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3252"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3251"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3250"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3249"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3248"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3247"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3246"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3245"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3244"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3243"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3242"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3241"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3240"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3239"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3238"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3237"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3236"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3235"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3234"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3233"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3232"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3231"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3230"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3229"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3228"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3227"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3226"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3225"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3224"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3223"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3222"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3221"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3220"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3219"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3218"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3217"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3216"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3215"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3214"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3213"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3212"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3211"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3210"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3209"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3208"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3207"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3206"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3205"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3204"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3203"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3202"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3201"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3200"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3199"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3198"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3197"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3196"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3195"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3194"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3193"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3192"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3191"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3190"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3189"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3188"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3187"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3186"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3185"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3184"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3183"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3182"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3181"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3180"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3179"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3178"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3177"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3176"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3175"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3174"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3173"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3172"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3171"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3170"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3169"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3168"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3167"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3166"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3165"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3164"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3163"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3162"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3161"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3160"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3159"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3158"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3157"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3156"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3155"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3154"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3153"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3152"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3151"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3150"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3149"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3148"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3147"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3146"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3145"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3144"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3143"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3142"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3141"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3140"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3139"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3138"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3137"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3136"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3135"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3134"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3133"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3132"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3131"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3130"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3129"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3128"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3127"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3126"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3125"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3124"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3123"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3122"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3121"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3120"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3119"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3118"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3117"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3116"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3115"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3114"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3113"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3112"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3111"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3110"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3109"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3108"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3107"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3106"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3105"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3104"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3103"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3102"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3101"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3100"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3099"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3098"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3097"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3096"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3095"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3094"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3093"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3092"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3091"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3090"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3089"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3088"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3087"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3086"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3085"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3084"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3083"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3082"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3081"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3080"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3079"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3078"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3077"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3076"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3075"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3074"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3073"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3072"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3071"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3070"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3069"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3068"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3067"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3066"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3065"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3064"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3063"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3062"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3061"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3060"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3059"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3058"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3057"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3056"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3055"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3054"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3053"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3052"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3051"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3050"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3049"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3048"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3047"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3046"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3045"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3044"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3043"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3042"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3041"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3040"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3039"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3038"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3037"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3036"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3035"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3034"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3033"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3032"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3031"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3030"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3029"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3028"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3027"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3026"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3025"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3024"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3023"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3022"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3021"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3020"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3019"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3018"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3017"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3016"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3015"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3014"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3013"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3012"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3011"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3010"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3009"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3008"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3007"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3006"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3005"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3004"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3003"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3002"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3001"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3000"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2999"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2998"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2997"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2996"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2995"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2994"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2993"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2992"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2991"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2990"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2989"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2988"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2987"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2986"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2985"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2984"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2983"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2982"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2981"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2980"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2979"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2978"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2977"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2976"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2975"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2974"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2973"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2972"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2971"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2970"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2969"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2968"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2967"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2966"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2965"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2964"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2963"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2962"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2961"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2960"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2959"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2958"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2957"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2956"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2955"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2954"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2953"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2952"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2951"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2950"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2949"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2948"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2947"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2946"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2945"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2944"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2943"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2942"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2941"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2940"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2939"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2938"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2937"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2936"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2935"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2934"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2933"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2932"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2931"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2930"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2929"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2928"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2927"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2926"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2925"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2924"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2923"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2922"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2921"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2920"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2919"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2918"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2917"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2916"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2915"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2914"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2913"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2912"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2911"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2910"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2909"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2908"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2907"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2906"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2905"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2904"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2903"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2902"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2901"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2900"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2899"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2898"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2897"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2896"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2895"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2894"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2893"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2892"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2891"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2890"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2889"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2888"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2887"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2886"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2885"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2884"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2883"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2882"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2881"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2880"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2879"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2878"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2877"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2876"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2875"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2874"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2873"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2872"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2871"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2870"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2869"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2868"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2867"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2866"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2865"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2864"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2863"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2862"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2861"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2860"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2859"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2858"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2857"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2856"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2855"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2854"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2853"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2852"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2851"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2850"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2849"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2848"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2847"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2846"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2845"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2844"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2843"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2842"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2841"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2840"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2839"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2838"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2837"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2836"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2835"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2834"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2833"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2832"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2831"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2830"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2829"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2828"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2827"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2826"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2825"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2824"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2823"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2822"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2821"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2820"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2819"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2818"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2817"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2816"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2815"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2814"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2813"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2812"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2811"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2810"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2809"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2808"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2807"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2806"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2805"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2804"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2803"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2802"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2801"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2800"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2799"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2798"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2797"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2796"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2795"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2794"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2793"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2792"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2791"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2790"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2789"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2788"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2787"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2786"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2785"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2784"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2783"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2782"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2781"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2780"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2779"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2778"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2777"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2776"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2775"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2774"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2773"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2772"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2771"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2770"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2769"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2768"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2767"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2766"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2765"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2764"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2763"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2762"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2761"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2760"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2759"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2758"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2757"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2756"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2755"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2754"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2753"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2752"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2751"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2750"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2749"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2748"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2747"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2746"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2745"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2744"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2743"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2742"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2741"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2740"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2739"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2738"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2737"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2736"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2735"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2734"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2733"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2732"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2731"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2730"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2729"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2728"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2727"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2726"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2725"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2724"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2723"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2722"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2721"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2720"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2719"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2718"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2717"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2716"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2715"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2714"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2713"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2712"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2711"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2710"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2709"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2708"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2707"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2706"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2705"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2704"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2703"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2702"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2701"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2700"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2699"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2698"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2697"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2696"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2695"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2694"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2693"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2692"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2691"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2690"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2689"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2688"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2687"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2686"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2685"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2684"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2683"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2682"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2681"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2680"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2679"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2678"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2677"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2676"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2675"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2674"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2673"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2672"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2671"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2670"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2669"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2668"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2667"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2666"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2665"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2664"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2663"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2662"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2661"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2660"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2659"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2658"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2657"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2656"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2655"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2654"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2653"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2652"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2651"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2650"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2649"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2648"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2647"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2646"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2645"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2644"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2643"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2642"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2641"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2640"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2639"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2638"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2637"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2636"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2635"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2634"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2633"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2632"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2631"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2630"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2629"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2628"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2627"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2626"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2625"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2624"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2623"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2622"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2621"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2620"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2619"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2618"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2617"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2616"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2615"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2614"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2613"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2612"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2611"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2610"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2609"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2608"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2607"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2606"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2605"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2604"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2603"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2602"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2601"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2600"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2599"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2598"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2597"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2596"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2595"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2594"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2593"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2592"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2591"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2590"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2589"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2588"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2587"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2586"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2585"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2584"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2583"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2582"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2581"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2580"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2579"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2578"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2577"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2576"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2575"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2574"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2573"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2572"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2571"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2570"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2569"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2568"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2567"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2566"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2565"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2564"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2563"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2562"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2561"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2560"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2559"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2558"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2557"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2556"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2555"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2554"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2553"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2552"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2551"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2550"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2549"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2548"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2547"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2546"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2545"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2544"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2543"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2542"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2541"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2540"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2539"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2538"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2537"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2536"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2535"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2534"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2533"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2532"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2531"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2530"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2529"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2528"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2527"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2526"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2525"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2524"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2523"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2522"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2521"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2520"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2519"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2518"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2517"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2516"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2515"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2514"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2513"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2512"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2511"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2510"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2509"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2508"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2507"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2506"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2505"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2504"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2503"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2502"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2501"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2500"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2499"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2498"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2497"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2496"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2495"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2494"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2493"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2492"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2491"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2490"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2489"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2488"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2487"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2486"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2485"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2484"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2483"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2482"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2481"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2480"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2479"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2478"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2477"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2476"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2475"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2474"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2473"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2472"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2471"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2470"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2469"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2468"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2467"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2466"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2465"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2464"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2463"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2462"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2461"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2460"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2459"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2458"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2457"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2456"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2455"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2454"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2453"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2452"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2451"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2450"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2449"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2448"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2447"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2446"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2445"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2444"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2443"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2442"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2441"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2440"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2439"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2438"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2437"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2436"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2435"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2434"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2433"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2432"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2431"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2430"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2429"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2428"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2427"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2426"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2425"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2424"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2423"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2422"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2421"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2420"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2419"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2418"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2417"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2416"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2415"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2414"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2413"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2412"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2411"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2410"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2409"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2408"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2407"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2406"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2405"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2404"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2403"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2402"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2401"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2400"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2399"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2398"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2397"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2396"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2395"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2394"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2393"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2392"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2391"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2390"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2389"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2388"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2387"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2386"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2385"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2384"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2383"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2382"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2381"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2380"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2379"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2378"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2377"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2376"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2375"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2374"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2373"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2372"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2371"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2370"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2369"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2368"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2367"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2366"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2365"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2364"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2363"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2362"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2361"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2360"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2359"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2358"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2357"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2356"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2355"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2354"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2353"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2352"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2351"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2350"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2349"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2348"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2347"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2346"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2345"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2344"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2343"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2342"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2341"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2340"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2339"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2338"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2337"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2336"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2335"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2334"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2333"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2332"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2331"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2330"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2329"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2328"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2327"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2326"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2325"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2324"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2323"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2322"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2321"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2320"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2319"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2318"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2317"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2316"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2315"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2314"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2313"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2312"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2311"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2310"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2309"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2308"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2307"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2306"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2305"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2304"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2303"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2302"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2301"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2300"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2299"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2298"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2297"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2296"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2295"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2294"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2293"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2292"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2291"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2290"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2289"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2288"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2287"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2286"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2285"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2284"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2283"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2282"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2281"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2280"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2279"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2278"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2277"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2276"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2275"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2274"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2273"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2272"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2271"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2270"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2269"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2268"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2267"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2266"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2265"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2264"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2263"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2262"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2261"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2260"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2259"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2258"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2257"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2256"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2255"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2254"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2253"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2252"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2251"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2250"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2249"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2248"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2247"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2246"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2245"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2244"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2243"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2242"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2241"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2240"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2239"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2238"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2237"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2236"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2235"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2234"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2233"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2232"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2231"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2230"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2229"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2228"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2227"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2226"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2225"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2224"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2223"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2222"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2221"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2220"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2219"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2218"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2217"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2216"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2215"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2214"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2213"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2212"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2211"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2210"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2209"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2208"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2207"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2206"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2205"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2204"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2203"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2202"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2201"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2200"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2199"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2198"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2197"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2196"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2195"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2194"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2193"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2192"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2191"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2190"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2189"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2188"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2187"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2186"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2185"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2184"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2183"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2182"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2181"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2180"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2179"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2178"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2177"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2176"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2175"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2174"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2173"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2172"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2171"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2170"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2169"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2168"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2167"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2166"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2165"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2164"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2163"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2162"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2161"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2160"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2159"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2158"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2157"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2156"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2155"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2154"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2153"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2152"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2151"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2150"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2149"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2148"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2147"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2146"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2145"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2144"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2143"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2142"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2141"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2140"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2139"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2138"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2137"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2136"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2135"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2134"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2133"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2132"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2131"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2130"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2129"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2128"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2127"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2126"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2125"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2124"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2123"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2122"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2121"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2120"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2119"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2118"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2117"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2116"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2115"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2114"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2113"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2112"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2111"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2110"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2109"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2108"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2107"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2106"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2105"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2104"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2103"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2102"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2101"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2100"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2099"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2098"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2097"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2096"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2095"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2094"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2093"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2092"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2091"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2090"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2089"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2088"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2087"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2086"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2085"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2084"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2083"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2082"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2081"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2080"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2079"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2078"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2077"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2076"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2075"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2074"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2073"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2072"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2071"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2070"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2069"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2068"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2067"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2066"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2065"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2064"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2063"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2062"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2061"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2060"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2059"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2058"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2057"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2056"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2055"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2054"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2053"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2052"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2051"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2050"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2049"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2048"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2047"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2046"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2045"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2044"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2043"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2042"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2041"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2040"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2039"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2038"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2037"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2036"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2035"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2034"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2033"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2032"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2031"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2030"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2029"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2028"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2027"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2026"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2025"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2024"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2023"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2022"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2021"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2020"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2019"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2018"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2017"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2016"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2015"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2014"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2013"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2012"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2011"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2010"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2009"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2008"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2007"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2006"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2005"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2004"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2003"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2002"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2001"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2000"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1999"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1998"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1997"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1996"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1995"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1994"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1993"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1992"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1991"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1990"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1989"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1988"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1987"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1986"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1985"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1984"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1983"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1982"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1981"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1980"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1979"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1978"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1977"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1976"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1975"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1974"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1973"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1972"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1971"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1970"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1969"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1968"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1967"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1966"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1965"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1964"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1963"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1962"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1961"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1960"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1959"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1958"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1957"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1956"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1955"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1954"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1953"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1952"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1951"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1950"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1949"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1948"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1947"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1946"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1945"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1944"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1943"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1942"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1941"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1940"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1939"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1938"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1937"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1936"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1935"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1934"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1933"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1932"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1931"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1930"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1929"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1928"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1927"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1926"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1925"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1924"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1923"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1922"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1921"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1920"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1919"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1918"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1917"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1916"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1915"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1914"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1913"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1912"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1911"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1910"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1909"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1908"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1907"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1906"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1905"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1904"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1903"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1902"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1901"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1900"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1899"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1898"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1897"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1896"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1895"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1894"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1893"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1892"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1891"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1890"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1889"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1888"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1887"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1886"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1885"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1884"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1883"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1882"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1881"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1880"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1879"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1878"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1877"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1876"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1875"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1874"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1873"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1872"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1871"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1870"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1869"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1868"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1867"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1866"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1865"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1864"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1863"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1862"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1861"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1860"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1859"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1858"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1857"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1856"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1855"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1854"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1853"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1852"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1851"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1850"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1849"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1848"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1847"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1846"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1845"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1844"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1843"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1842"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1841"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1840"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1839"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1838"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1837"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1836"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1835"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1834"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1833"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1832"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1831"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1830"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1829"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1828"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1827"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1826"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1825"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1824"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1823"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1822"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1821"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1820"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1819"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1818"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1817"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1816"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1815"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1814"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1813"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1812"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1811"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1810"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1809"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1808"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1807"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1806"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1805"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1804"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1803"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1802"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1801"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1800"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1799"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1798"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1797"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1796"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1795"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1794"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1793"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1792"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1791"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1790"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1789"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1788"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1787"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1786"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1785"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1784"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1783"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1782"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1781"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1780"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1779"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1778"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1777"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1776"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1775"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1774"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1773"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1772"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1771"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1770"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1769"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1768"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1767"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1766"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1765"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1764"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1763"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1762"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1761"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1760"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1759"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1758"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1757"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1756"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1755"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1754"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1753"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1752"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1751"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1750"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1749"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1748"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1747"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1746"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1745"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1744"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1743"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1742"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1741"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1740"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1739"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1738"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1737"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1736"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1735"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1734"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1733"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1732"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1731"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1730"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1729"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1728"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1727"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1726"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1725"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1724"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1723"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1722"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1721"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1720"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1719"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1718"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1717"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1716"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1715"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1714"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1713"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1712"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1711"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1710"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1709"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1708"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1707"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1706"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1705"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1704"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1703"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1702"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1701"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1700"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1699"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1698"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1697"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1696"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1695"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1694"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1693"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1692"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1691"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1690"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1689"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1688"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1687"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1686"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1685"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1684"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1683"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1682"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1681"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1680"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1679"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1678"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1677"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1676"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1675"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1674"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1673"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1672"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1671"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1670"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1669"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1668"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1667"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1666"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1665"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1664"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1663"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1662"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1661"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1660"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1659"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1658"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1657"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1656"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1655"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1654"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1653"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1652"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1651"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1650"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1649"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1648"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1647"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1646"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1645"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1644"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1643"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1642"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1641"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1640"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1639"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1638"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1637"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1636"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1635"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1634"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1633"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1632"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1631"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1630"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1629"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1628"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1627"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1626"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1625"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1624"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1623"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1622"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1621"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1620"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1619"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1618"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1617"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1616"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1615"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1614"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1613"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1612"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1611"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1610"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1609"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1608"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1607"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1606"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1605"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1604"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1603"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1602"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1601"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1600"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1599"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1598"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1597"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1596"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1595"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1594"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1593"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1592"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1591"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1590"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1589"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1588"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1587"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1586"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1585"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1584"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1583"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1582"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1581"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1580"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1579"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1578"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1577"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1576"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1575"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1574"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1573"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1572"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1571"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1570"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1569"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1568"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1567"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1566"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1565"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1564"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1563"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1562"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1561"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1560"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1559"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1558"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1557"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1556"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1555"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1554"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1553"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1552"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1551"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1550"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1549"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1548"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1547"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1546"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1545"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1544"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1543"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1542"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1541"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1540"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1539"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1538"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1537"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1536"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1535"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1534"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1533"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1532"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1531"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1530"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1529"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1528"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1527"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1526"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1525"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1524"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1523"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1522"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1521"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1520"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1519"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1518"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1517"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1516"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1515"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1514"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1513"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1512"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1511"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1510"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1509"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1508"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1507"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1506"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1505"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1504"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1503"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1502"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1501"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1500"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1499"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1498"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1497"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1496"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1495"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1494"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1493"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1492"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1491"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1490"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1489"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1488"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1487"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1486"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1485"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1484"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1483"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1482"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1481"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1480"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1479"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1478"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1477"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1476"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1475"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1474"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1473"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1472"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1471"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1470"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1469"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1468"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1467"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1466"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1465"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1464"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1463"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1462"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1461"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1460"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1459"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1458"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1457"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1456"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1455"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1454"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1453"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1452"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1451"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1450"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1449"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1448"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1447"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1446"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1445"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1444"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1443"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1442"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1441"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1440"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1439"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1438"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1437"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1436"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1435"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1434"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1433"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1432"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1431"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1430"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1429"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1428"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1427"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1426"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1425"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1424"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1423"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1422"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1421"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1420"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1419"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1418"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1417"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1416"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1415"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1414"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1413"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1412"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1411"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1410"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1409"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1408"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1407"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1406"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1405"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1404"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1403"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1402"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1401"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1400"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1399"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1398"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1397"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1396"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1395"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1394"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1393"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1392"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1391"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1390"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1389"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1388"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1387"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1386"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1385"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1384"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1383"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1382"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1381"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1380"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1379"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1378"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1377"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1376"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1375"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1374"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1373"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1372"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1371"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1370"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1369"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1368"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1367"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1366"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1365"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1364"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1363"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1362"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1361"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1360"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1359"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1358"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1357"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1356"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1355"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1354"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1353"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1352"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1351"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1350"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1349"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1348"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1347"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1346"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1345"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1344"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1343"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1342"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1341"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1340"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1339"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1338"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1337"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1336"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1335"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1334"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1333"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1332"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1331"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1330"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1329"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1328"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1327"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1326"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1325"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1324"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1323"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1322"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1321"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1320"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1319"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1318"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1317"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1316"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1315"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1314"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1313"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1312"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1311"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1310"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1309"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1308"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1307"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1306"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1305"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1304"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1303"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1302"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1301"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1300"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1299"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1298"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1297"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1296"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1295"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1294"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1293"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1292"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1291"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1290"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1289"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1288"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1287"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1286"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1285"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1284"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1283"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1282"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1281"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1280"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1279"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1278"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1277"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1276"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1275"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1274"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1273"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1272"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1271"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1270"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1269"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1268"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1267"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1266"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1265"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1264"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1263"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1262"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1261"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1260"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1259"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1258"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1257"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1256"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1255"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1254"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1253"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1252"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1251"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1250"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1249"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1248"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1247"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1246"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1245"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1244"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1243"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1242"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1241"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1240"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1239"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1238"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1237"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1236"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1235"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1234"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1233"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1232"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1231"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1230"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1229"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1228"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1227"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1226"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1225"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1224"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1223"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1222"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1221"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1220"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1219"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1218"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1217"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1216"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1215"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1214"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1213"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1212"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1211"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1210"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1209"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1208"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1207"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1206"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1205"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1204"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1203"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1202"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1201"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1200"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1199"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1198"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1197"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1196"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1195"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1194"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1193"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1192"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1191"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1190"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1189"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1188"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1187"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1186"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1185"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1184"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1183"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1182"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1181"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1180"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1179"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1178"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1177"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1176"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1175"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1174"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1173"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1172"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1171"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1170"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1169"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1168"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1167"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1166"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1165"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1164"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1163"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1162"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1161"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1160"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1159"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1158"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1157"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1156"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1155"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1154"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1153"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1152"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1151"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1150"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1149"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1148"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1147"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1146"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1145"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1144"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1143"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1142"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1141"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1140"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1139"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1138"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1137"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1136"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1135"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1134"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1133"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1132"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1131"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1130"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1129"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1128"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1127"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1126"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1125"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1124"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1123"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1122"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1121"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1120"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1119"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1118"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1117"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1116"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1115"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1114"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1113"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1112"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1111"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1110"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1109"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1108"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1107"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1106"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1105"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1104"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1103"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1102"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1101"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1100"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1099"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1098"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1097"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1096"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1095"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1094"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1093"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1092"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1091"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1090"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1089"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1088"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1087"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1086"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1085"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1084"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1083"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1082"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1081"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1080"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1079"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1078"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1077"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1076"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1075"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1074"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1073"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1072"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1071"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1070"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1069"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1068"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1067"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1066"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1065"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1064"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1063"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1062"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1061"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1060"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1059"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1058"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1057"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1056"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1055"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1054"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1053"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1052"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1051"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1050"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1049"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1048"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1047"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1046"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1045"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1044"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1043"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1042"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1041"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1040"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1039"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1038"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1037"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1036"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1035"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1034"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1033"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1032"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1031"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1030"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1029"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1028"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1027"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1026"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1025"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1024"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1023"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1022"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1021"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1020"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1019"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1018"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1017"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1016"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1015"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1014"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1013"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1012"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1011"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1010"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1009"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1008"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1007"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1006"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1005"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1004"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1003"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1002"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1001"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1000"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_999"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_998"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_997"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_996"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_995"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_994"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_993"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_992"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_991"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_990"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_989"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_988"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_987"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_986"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_985"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_984"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_983"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_982"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_981"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_980"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_979"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_978"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_977"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_976"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_975"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_974"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_973"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_972"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_971"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_970"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_969"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_968"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_967"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_966"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_965"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_964"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_963"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_962"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_961"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_960"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_959"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_958"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_957"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_956"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_955"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_954"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_953"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_952"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_951"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_950"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_949"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_948"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_947"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_946"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_945"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_944"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_943"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_942"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_941"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_940"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_939"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_938"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_937"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_936"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_935"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_934"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_933"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_932"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_931"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_930"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_929"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_928"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_927"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_926"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_925"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_924"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_923"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_922"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_921"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_920"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_919"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_918"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_917"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_916"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_915"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_914"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_913"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_912"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_911"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_910"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_909"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_908"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_907"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_906"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_905"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_904"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_903"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_902"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_901"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_900"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_899"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_898"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_897"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_896"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_895"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_894"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_893"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_892"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_891"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_890"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_889"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_888"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_887"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_886"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_885"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_884"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_883"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_882"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_881"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_880"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_879"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_878"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_877"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_876"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_875"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_874"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_873"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_872"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_871"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_870"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_869"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_868"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_867"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_866"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_865"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_864"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_863"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_862"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_861"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_860"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_859"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_858"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_857"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_856"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_855"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_854"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_853"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_852"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_851"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_850"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_849"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_848"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_847"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_846"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_845"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_844"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_843"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_842"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_841"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_840"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_839"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_838"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_837"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_836"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_835"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_834"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_833"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_832"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_831"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_830"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_829"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_828"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_827"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_826"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_825"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_824"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_823"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_822"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_821"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_820"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_819"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_818"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_817"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_816"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_815"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_814"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_813"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_812"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_811"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_810"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_809"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_808"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_807"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_806"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_805"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_804"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_803"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_802"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_801"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_800"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_799"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_798"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_797"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_796"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_795"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_794"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_793"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_792"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_791"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_790"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_789"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_788"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_787"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_786"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_785"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_784"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_783"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_782"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_781"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_780"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_779"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_778"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_777"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_776"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_775"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_774"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_773"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_772"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_771"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_770"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_769"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_768"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_767"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_766"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_765"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_764"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_763"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_762"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_761"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_760"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_759"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_758"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_757"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_756"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_755"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_754"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_753"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_752"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_751"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_750"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_749"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_748"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_747"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_746"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_745"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_744"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_743"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_742"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_741"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_740"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_739"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_738"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_737"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_736"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_735"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_734"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_733"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_732"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_731"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_730"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_729"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_728"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_727"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_726"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_725"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_724"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_723"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_722"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_721"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_720"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_719"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_718"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_717"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_716"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_715"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_714"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_713"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_712"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_711"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_710"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_709"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_708"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_707"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_706"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_705"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_704"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_703"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_702"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_701"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_700"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_699"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_698"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_697"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_696"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_695"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_694"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_693"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_692"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_691"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_690"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_689"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_688"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_687"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_686"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_685"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_684"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_683"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_682"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_681"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_680"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_679"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_678"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_677"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_676"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_675"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_674"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_673"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_672"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_671"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_670"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_669"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_668"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_667"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_666"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_665"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_664"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_663"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_662"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_661"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_660"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_659"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_658"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_657"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_656"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_655"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_654"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_653"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_652"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_651"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_650"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_649"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_648"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_647"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_646"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_645"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_644"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_643"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_642"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_641"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_640"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_639"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_638"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_637"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_636"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_635"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_634"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_633"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_632"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_631"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_630"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_629"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_628"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_627"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_626"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_625"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_624"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_623"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_622"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_621"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_620"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_619"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_618"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_617"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_616"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_615"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_614"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_613"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_612"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_611"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_610"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_609"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_608"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_607"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_606"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_605"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_604"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_603"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_602"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_601"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_600"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_599"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_598"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_597"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_596"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_595"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_594"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_593"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_592"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_591"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_590"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_589"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_588"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_587"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_586"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_585"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_584"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_583"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_582"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_581"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_580"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_579"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_578"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_577"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_576"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_575"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_574"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_573"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_572"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_571"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_570"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_569"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_568"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_567"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_566"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_565"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_564"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_563"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_562"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_561"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_560"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_559"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_558"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_557"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_556"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_555"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_554"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_553"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_552"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_551"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_550"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_549"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_548"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_547"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_546"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_545"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_544"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_543"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_542"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_541"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_540"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_539"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_538"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_537"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_536"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_535"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_534"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_533"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_532"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_531"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_530"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_529"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_528"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_527"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_526"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_525"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_524"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_523"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_522"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_521"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_520"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_519"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_518"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_517"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_516"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_515"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_514"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_513"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_512"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_511"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_510"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_509"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_508"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_507"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_506"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_505"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_504"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_503"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_502"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_501"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_500"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_499"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_498"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_497"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_496"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_495"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_494"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_493"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_492"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_491"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_490"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_489"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_488"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_487"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_486"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_485"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_484"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_483"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_482"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_481"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_480"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_479"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_478"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_477"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_476"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_475"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_474"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_473"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_472"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_471"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_470"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_469"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_468"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_467"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_466"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_465"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_464"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_463"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_462"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_461"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_460"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_459"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_458"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_457"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_456"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_455"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_454"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_453"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_452"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_451"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_450"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_449"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_448"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_447"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_446"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_445"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_444"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_443"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_442"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_441"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_440"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_439"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_438"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_437"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_436"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_435"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_434"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_433"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_432"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_431"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_430"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_429"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_428"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_427"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_426"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_425"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_424"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_423"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_422"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_421"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_420"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_419"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_418"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_417"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_416"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_415"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_414"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_413"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_412"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_411"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_410"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_409"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_408"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_407"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_406"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_405"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_404"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_403"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_402"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_401"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_400"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_399"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_398"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_397"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_396"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_395"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_394"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_393"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_392"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_391"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_390"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_389"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_388"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_387"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_386"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_385"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_384"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_383"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_382"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_381"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_380"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_379"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_378"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_377"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_376"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_375"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_374"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_373"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_372"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_371"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_370"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_369"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_368"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_367"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_366"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_365"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_364"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_363"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_362"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_361"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_360"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_359"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_358"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_357"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_356"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_355"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_354"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_353"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_352"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_351"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_350"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_349"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_348"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_347"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_346"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_345"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_344"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_343"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_342"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_341"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_340"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_339"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_338"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_337"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_336"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_335"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_334"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_333"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_332"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_331"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_330"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_329"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_328"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_327"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_326"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_325"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_324"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_323"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_322"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_321"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_320"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_319"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_318"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_317"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_316"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_315"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_314"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_313"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_312"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_311"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_310"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_309"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_308"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_307"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_306"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_305"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_304"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_303"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_302"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_301"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_300"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_299"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_298"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_297"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_296"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_295"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_294"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_293"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_292"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_291"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_290"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_289"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_288"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_287"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_286"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_285"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_284"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_283"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_282"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_281"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_280"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_279"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_278"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_277"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_276"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_275"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_274"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_273"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_272"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_271"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_270"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_269"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_268"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_267"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_266"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_265"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_264"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_263"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_262"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_261"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_260"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_259"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_258"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_257"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_256"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_255"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_254"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_253"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_252"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_251"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_250"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_249"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_248"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_247"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_246"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_245"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_244"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_243"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_242"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_241"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_240"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_239"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_238"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_237"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_236"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_235"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_234"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_233"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_232"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_231"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_230"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_229"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_228"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_227"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_226"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_225"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_224"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_223"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_222"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_221"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_220"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_219"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_218"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_217"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_216"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_215"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_214"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_213"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_212"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_211"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_210"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_209"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_208"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_207"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_206"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_205"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_204"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_203"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_202"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_201"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_200"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_199"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_198"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_197"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_196"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_195"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_194"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_193"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_192"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_191"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_190"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_189"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_188"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_187"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_186"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_185"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_184"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_183"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_182"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_181"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_180"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_179"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_178"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_177"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_176"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_175"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_174"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_173"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_172"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_171"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_170"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_169"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_168"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_167"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_166"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_165"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_164"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_163"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_162"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_161"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_160"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_159"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_158"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_157"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_156"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_155"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_154"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_153"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_152"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_151"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_150"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_149"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_148"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_147"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_146"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_145"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_144"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_143"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_142"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_141"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_140"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_139"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_138"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_137"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_136"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_135"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_134"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_133"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_132"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_131"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_130"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_129"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_128"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_127"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_126"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_125"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_124"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_123"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_122"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_121"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_120"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_119"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_118"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_117"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_116"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_115"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_114"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_113"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_112"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_111"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_110"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_109"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_108"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_107"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_106"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_105"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_104"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_103"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_102"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_101"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_100"/> - <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_99"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_98"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_97"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_96"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_95"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_94"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_93"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_92"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_91"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_90"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_89"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_88"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_87"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_86"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_85"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_84"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_83"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_82"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_81"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_80"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_79"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_78"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_77"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_76"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_75"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_74"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_73"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_72"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_71"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_70"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_69"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_68"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_67"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_66"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_65"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_64"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_63"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_62"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_61"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_60"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_59"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_58"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_57"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_56"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_55"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_54"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_53"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_52"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_51"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_50"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_49"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_48"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_47"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_46"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_45"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_44"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_43"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_42"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_41"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_40"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_39"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_38"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_37"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_36"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_35"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_34"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_33"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_32"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_31"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_30"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_29"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_28"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_27"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_26"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_25"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_24"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_23"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_22"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_21"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_20"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_19"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_18"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_17"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_16"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_15"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_14"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_13"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_12"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_11"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_10"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_9"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_8"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_7"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_6"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_5"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_4"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_3"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_2"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_1"/> <View android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/weex_id_0"/> -</LinearLayout> \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/main.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/main.xml deleted file mode 100644 index ff062671..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/main.xml +++ /dev/null @@ -1,78 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="fill_parent" - android:layout_height="fill_parent" - android:orientation="vertical"> - - <Button - android:id="@+id/btn_web2d" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:gravity="center" - android:visibility="gone" - android:text="Webview_2D" /> - - <Button - android:id="@+id/btn_gcanvas2d" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:gravity="center" - android:text="GCanvas_2D" /> - - <Button - android:id="@+id/btn_webgl_web" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:gravity="center" - android:visibility="gone" - android:text="Webview_WebGL" /> - - <Button - android:id="@+id/btn_webgl_gcanvas" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:gravity="center" - android:text="GCanvas_WebGL JellyFish" /> - - <Button - android:id="@+id/btn_aqua_gcanvas" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:gravity="center" - android:text="GCanvas_WebGL Aqua" /> - - <Button - android:id="@+id/btn_view_container" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:gravity="center" - android:text="View Container" /> - - <Button - android:id="@+id/btn_touch_test" - android:gravity="center" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="Touch Performance Test - Activity"/> - - <Button - android:id="@+id/btn_view_scan_code" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:gravity="center" - android:text="Scan QRCode - View" /> - - <Button - android:id="@+id/btn_multiview_scan_code" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:gravity="center" - android:text="Scan QRCode - MultiView" /> - - <Button - android:id="@+id/btn_scan_code" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:gravity="center" - android:text="Scan QRCode - Activity" /> -</LinearLayout> \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/search_book_contents.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/search_book_contents.xml deleted file mode 100755 index 3ecedcc6..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/search_book_contents.xml +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (C) 2008 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - android:orientation="vertical" - android:layout_width="fill_parent" - android:layout_height="fill_parent"> - - <LinearLayout - android:orientation="horizontal" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:layout_weight="0"> - - <EditText android:id="@+id/query_text_view" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="left|center_vertical" - android:layout_weight="1" - android:singleLine="true" - android:selectAllOnFocus="true" - android:inputType="text" - tools:ignore="NestedWeights"/> - - <Button android:id="@+id/query_button" - style="@android:style/Widget.Holo.Button.Borderless.Small" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_weight="0" - android:text="@string/button_search_book_contents"/> - - </LinearLayout> - - - <ListView android:id="@+id/result_list_view" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:layout_weight="1"/> - -</LinearLayout> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/search_book_contents_header.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/search_book_contents_header.xml deleted file mode 100755 index 14266a86..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/search_book_contents_header.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (C) 2008 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<TextView xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:paddingLeft="@dimen/standard_padding" - android:paddingBottom="@dimen/half_padding" - android:enabled="false" - android:singleLine="true" - android:textIsSelectable="false"/> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/search_book_contents_list_item.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/search_book_contents_list_item.xml deleted file mode 100755 index 889298b2..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/search_book_contents_list_item.xml +++ /dev/null @@ -1,40 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (C) 2008 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<com.google.zxing.client.android.book.SearchBookContentsListItem - xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="horizontal" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:padding="@dimen/standard_padding"> - - <TextView android:id="@+id/page_number_view" - android:layout_width="75dip" - android:layout_height="wrap_content" - android:layout_gravity="left|top" - android:layout_marginRight="@dimen/standard_padding" - android:singleLine="false" - android:textStyle="bold" - android:textIsSelectable="false"/> - - <TextView android:id="@+id/snippet_view" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="left|top" - android:singleLine="false" - android:textIsSelectable="false"/> - -</com.google.zxing.client.android.book.SearchBookContentsListItem> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/share.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/share.xml deleted file mode 100755 index 1aa156ad..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/layout/share.xml +++ /dev/null @@ -1,95 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (C) 2008 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> - -<!-- ScrollView wrapper is to accommodate small screens. --> -<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center" - android:gravity="center"> - - <!-- Must wrap the rest in one layout --> - <LinearLayout - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:gravity="center" - android:orientation="vertical" - android:padding="@dimen/standard_padding"> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:gravity="center" - android:text="@string/msg_share_explanation" - android:paddingBottom="@dimen/standard_padding" - android:textIsSelectable="false"/> - -<!-- <ImageView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:scaleType="center" - android:src="@drawable/share_via_barcode" - android:paddingBottom="@dimen/standard_padding" - tools:ignore="ContentDescription"/> --> - - <LinearLayout - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:orientation="horizontal" - android:paddingBottom="@dimen/standard_padding"> - - <Button android:id="@+id/share_app_button" - style="@style/ShareButton" - android:layout_weight="1" - android:text="@string/button_share_app"/> - - <Button android:id="@+id/share_bookmark_button" - style="@style/ShareButton" - android:layout_weight="1" - android:text="@string/button_share_bookmark"/> - - </LinearLayout> - - <LinearLayout - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:orientation="horizontal" - android:paddingBottom="@dimen/standard_padding"> - - <Button android:id="@+id/share_contact_button" - style="@style/ShareButton" - android:layout_weight="1" - android:text="@string/button_share_contact"/> - - <Button android:id="@+id/share_clipboard_button" - style="@style/ShareButton" - android:layout_weight="1" - android:text="@string/button_share_clipboard"/> - - </LinearLayout> - - <EditText android:id="@+id/share_text_view" - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:hint="@string/msg_share_text" - android:singleLine="true" - android:selectAllOnFocus="true"/> - - </LinearLayout> - -</ScrollView> \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/capture.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/capture.xml deleted file mode 100755 index c70b6b25..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/capture.xml +++ /dev/null @@ -1,44 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (C) 2012 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<menu xmlns:android="http://schemas.android.com/apk/res/android"> -<!-- <item android:id="@+id/menu_share" - android:title="@string/menu_share" - android:icon="@android:drawable/ic_menu_share" - android:orderInCategory="1" - android:showAsAction="withText|ifRoom"/> --> - <item android:id="@+id/menu_history" - android:title="@string/menu_history" - android:icon="@android:drawable/ic_menu_recent_history" - android:orderInCategory="2" - android:showAsAction="withText|ifRoom"/> - - <item android:id="@+id/menu_native_test" - android:title="test" - android:icon="@android:drawable/ic_menu_today" - android:orderInCategory="3" - android:showAsAction="withText|ifRoom"/> -<!-- <item android:id="@+id/menu_settings" - android:title="@string/menu_settings" - android:icon="@android:drawable/ic_menu_preferences" - android:orderInCategory="3" - android:showAsAction="withText"/> - <item android:id="@+id/menu_help" - android:title="@string/menu_help" - android:icon="@android:drawable/ic_menu_help" - android:orderInCategory="4" - android:showAsAction="withText"/> --> -</menu> \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/encode.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/encode.xml deleted file mode 100755 index eb0175b0..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/encode.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (C) 2012 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<menu xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:id="@+id/menu_share" - android:title="@string/menu_share" - android:icon="@android:drawable/ic_menu_share" - android:orderInCategory="1" - android:showAsAction="withText|ifRoom"/> - <item android:id="@+id/menu_encode" - android:title="@string/menu_encode_vcard" - android:icon="@android:drawable/ic_menu_sort_alphabetically" - android:orderInCategory="2" - android:showAsAction="withText|ifRoom"/> -</menu> \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/history.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/history.xml deleted file mode 100755 index 273802b7..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/history.xml +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (C) 2012 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<menu xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:id="@+id/menu_history_send" - android:title="@string/history_send" - android:icon="@android:drawable/ic_menu_share" - android:orderInCategory="1" - android:showAsAction="withText|ifRoom"/> - <item android:id="@+id/menu_history_clear_text" - android:title="@string/history_clear_text" - android:icon="@android:drawable/ic_menu_delete" - android:orderInCategory="2" - android:showAsAction="withText|ifRoom"/> -</menu> \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/main.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/main.xml deleted file mode 100755 index 4e0533b5..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/main.xml +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<menu xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> - <item - android:id="@+id/action_scan" - android:title="扫码" - android:icon="@drawable/ic_action_scan" - app:showAsAction="ifRoom"/> - <item - android:title="refresh" - android:icon="@drawable/ic_action_refresh" - app:showAsAction="ifRoom" - android:id="@+id/action_refresh"/> -</menu> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/main_scan.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/main_scan.xml deleted file mode 100755 index b4be73e6..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/main_scan.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<menu xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> - <item - android:id="@+id/action_scan" - android:title="扫码" - android:icon="@drawable/ic_action_scan" - app:showAsAction="ifRoom"/> -</menu> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/refresh.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/refresh.xml deleted file mode 100755 index 8e3805c2..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/menu/refresh.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<menu xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto"> - <item - android:title="refresh" - android:icon="@drawable/ic_action_refresh" - app:showAsAction="ifRoom" - android:id="@+id/action_refresh"/> -</menu> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/mipmap-hdpi/gcanvas_icon.png b/bridges/weex-gcanvas/android/weex_playground/src/main/res/mipmap-hdpi/gcanvas_icon.png deleted file mode 100644 index 59b5ddd70dd4a562e51357371bdb185e843674fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8296 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 diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/mipmap-mdpi/gcanvas_icon.png b/bridges/weex-gcanvas/android/weex_playground/src/main/res/mipmap-mdpi/gcanvas_icon.png deleted file mode 100644 index 59b5ddd70dd4a562e51357371bdb185e843674fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8296 zcmX|ncQ71Y)HYV{HG0YFeYI7h_ugv|ZC5X=MGcEZi0GXlx)21>%UWHCUZV@qEh0#S zFTeMD=e;wxoO{kZ&pc=5+_`_81Veod5<&(-3=9ksElpM9f4l#`8HA7fZw1XpqA@Tq zb=*uX11$A)Wt@Dxgd89~j!>asFW5gn28OIcFwDWp0~)~Q2z7DumII!5^#R%3AaXzp z2|bV=Oa<!drWxu7H3`)>bqe)xl7;{k<OyYiW&QzpK?5Avg1tPw{bhpXfd7Ll^Y8rM zwJ?zFe?kI0<bX>55wcn88M3MP_(9nugusGMB4Sc(lF~vV64Fwl;sR`<AQ7-INLpA# zTo5E81Co{jiLm|e0Ll}x$@)Q@WsFtT|Cj8aB?oj32!P253kL-S2?dD>`S`gAi%3gL z3xh<3MMVYwMF{$bcn3HH3wryr{|E8^F;t=cPJV8%05>0Rw*N349DM=<<bXio|44-Y zm*t;4;s4Y3&-lL#LB0Q_#qXbfHm!OY3=EcKEmbAc;KIFkA%(VTc{hDi(l;9~n$x_o zFqM@x;YLcW6q$NR90yah8HGhOR)n+qh?NaF6JE5GlxV~5>w$WFpisAPa$-}=Krad5 zQwTdHn^q9_yN?-XU4<?W)&6I4H*3xFJv|(g_wtC|st@`L{zn$q^CkuhHSA}zq9520 z<TkD_W<t>8LNvz0^haZ&4A={b>ct-vleJH{pDLB!=p4i?|4Fg16o3&=<6Wvvv&MbV zzbARE{{5!G<1oo{+r{i7?ovfU17eyTT%O??of!)1dv|NhCAW_yiFxx!HM;590T~=G zs_k5SY?z`!STqY9^+wH-G+dmT#d~ce5he^11NrR4GAVQyjmk1wCcr3CYu_X+S-N0; zQESI`E#`STLX}ahyRC|N#H!a==Etv3-gTfHaELRdZ6~)R5Xi^({TGloaaX;8wFc-G zWT1DkF(dFwDj>1pMw7#KmJ_9YbCV!19R=p0_%6<s$&@*sbkS&Y-QC*+<U?7yAGdu| z+MQdH_B|hEnk{=Dl`|j@bn}XC&hm*9!&EsE^7IO_MUm;D`0KUaj4oM{4lB0yf$|++ zBjK&C80t*m<Om{!{kMiM2vZ|3F}aayiHM4c=F_12fn92e{JOxF`<Brb^J4lr_Q?mx zOUxWhVJucpkaKBrI>)7E0+Dq`n(T+}#jc@^Xc#wIEDB&;v8lDZH%h%7jxa;!n3zGt zzwXPFhB7w!z&PUuYHJ?J8mVu&rr)t`>-X2I?mvqfi8?1bA%$2KnYpTmdlugIF1d51 zh3znrT>IK#+2VwQE6NFm>J|5ukizgyOpRgAQBhq^odrrNAF;3M5{hN4-L&n-TLg$8 zs3z!aIRrvzV)Q_78SSU;nU5yaOTU;6y_0AXe;<T*xDyfI5X%nV#A?Hg1QXV%$G%hB zw@bVzix3e^i*q5=lB>#>DjO7UDv!u&s8Ki8<Hx9agYHJ|A?LaL=&5wY^QuZ@aqgc@ zn~>-krUmwY{54VTD@@|cC!GKx;Qp|~I!Namxu9B8HmsU<r@r-aOA<f6qH@AGXvUXc zP@c0(mBS6=Y5#V?>pWzTQZcT+n|YEss24&w2loL)ng%!Q$&I}ZO6T5WZ7X={IPJO` zOwX_Q(v)LLC2G^2;fm2q#~o)^qY^EhX@=a)|3b}CJsr1IC(^XyeUOq>gQ$9{q%-)^ zajyr-8pRJkoFs6MzhJvE-Ri^XjcF_}8yY;tNiW~#@iUlh&2#PT&&>e`=`q-qd6a2} zzVN+SLiNHgZX)E>qm3LUMyaJN5s%mrI82nut|AI-ElPa+4zq#tUO8MAx>G5_3S+U< ziQYE&WKOu~NQxpgDT${!l_F0dXIwi(xK$EK3L;BZPNr+#eZ#7g1Xe+Iaf#;Dl!oU; zZ|}2n(XOipr18I-$cDuq?4o+5RW5atvL}S?7inwx*nOi}m9vd_e2@5_Q_P4{0Lq`* z&IalR1EX4B|3Z_0Vz5)F!kWU^#C+-TUbRF`RE+`eYMC&}M8rx?P>}UPa0u3!n?L1g z*os}@MsGdI#+&mtB%Bn=**mi=kk5H#$gwfuy#lOrCck5(rR`1f;$Y}#RSXCxx<Qx6 zxr(VZx$0_9q_XSc^^*K%LiZ*aAKB|vDqs#rV0rG|>nm%kX`04L_(!Ij3B1=Pp~!~Z zh(jqf7_|pkH0k{|FzzF_NJn8Ux1(Gpw_&ChQQ*$Xouq^oJkQq4X6T!s&srQ`>Ui-) zvKTtO*<`r%#Oq|J2kG?|r}#^{8GrIlhtj$d&yLD6I}o4+IfmVs7)DC>s>T+#yqk@z zltN}o8j0PUOq6}R4a*4jprIFz3;_dWTzYSe6F!=dMJD7GKd2ZVNr?`8k;dc9rn-S^ zMOP$AEYi@-k*jj_YU=D(y?5<P!e!^@f8;p+Yz6V?;N{5y=#==bfOMUOQ8yGta765) zz;)_1ITlT<HV$9W-6?b}U4CY1cpc04uymEJtUKwGz=qSFf)38(3Lo!Ows>HZ+3s`e z>7424-gccYJ-L6YX~|FA==F{XiI~PzXjYl#qT|MMtIUu@^9i|qq$Ecs*oCe)N!b*g z-bWOolpgIfZr_W4d?~wb3fj{{H!dZyWjD>H{xIWt1fI=a#vnf>NOIMfd_%KMoTm}V zY;8*m9rKN^iq;7a@I&dUc^We9U*Y^7Z|p7gybOZ@4uRK@c+DWqLo<pyl+8R9HRA5K zxw5J>Xd(86#WFiykI>1xn05a~7yaDR_)`n=htQr8K>&-lb-AH6<5PEvs!hqv0Z+6o zcAD9vt8>kfki6A^PB*fW@aOjuZtm_+f=njGeqDHse2uMj#HL%HMdQMYe_}oc+2OQe z|JLijijH=|Cu4{mF86&eh9}0XqMbt2?2lrRb};`+zPP)%Q`w;v_<W#ov8eX9v8TDp zn^k<@8*%V!JB-aIL2lCcmiPj=^0|VQ%pWfA%FU^nqRg&re@&+7(HHQ8$bo-p`q~-< z`5UtIVuEYRGiiQ}5&hGX7SrRme<L3<SNk%^A*B$sjv16Rzf;`sE7-AMXI0)KcUnN_ z+n@rj4fYz&^|^=;Kpqi7vqia8?TnqmTfIL|K(HS&ZD;f!&0D>zu(5mPrt8K5G3K_g zXvwjk7RI_CrBED~lKI_>CQDA5-CTuSXBTI<$-~u~fna5BLdFM1WK6%G_{DAMKwdDg z&2%EwanGq42BiCANZn4ooPwVQp$-%T*=6Z8zsVR@lBvuh;HtXLyGk2Ni6ZnQwQh3r zpCjhn+YIG*=IJJ1X2}t%UH7EjR<_4PXUy*ibo2JRt3P7jOuUQ2G?)S9&A2_Eefw5u zHr`0zcu&_}?Rj47xC<wmVvA$q+t5mN0bKz%L6M8fs^z6jzda~LUvd6u36_))P9lXD zT!8EWL&49|*WO4c?lEOrn3ybn9t^!)d=x&&JN{c^>?xu8V7_GcHp`@cf^WafW>Yus zV?NFj|HO!8&-J`zK<9(@n+kp4&yln|h{61Ri6nr?PzWooK+s<tyz!dPZXl^j(n4j9 zYbfG=>k&(|fI%Cv3E++nCl0Pz5FJ6;+mVFpW>LX6xho0v;+FIrMZHKa0(*PMEp_c; zE_t`4Qvay)GDx4go(>;Ge+-p{5BTyF8@AIq*zrbXx}QxV`#Q!<;^bW0T(vDo`Gkpi z;{%9@h)~h8C(`O0Wdfcx$i(!f5BO8W1L_7HjzRIHL>-c*u9nz_c&-4Nm-sgIESuy! z;DDNHZXQsoXeFp)je+uyOH78clI>0o%-un<bnP{obtB;GRj1NRdmB*1YCoapPy1H2 z3R$sIn?E1$n6ZSYZE`atS&CyWL4A5sjTl6isExZt8(+rp#yafU#PK(3!49fcX3<%k zQ2&*jSE}!=ZzJw6=t$`BTT<*2UeIb%tjV)vP--kJm5Gz5z%xbG5chu#B^?*mGx%j$ z5$f4Fuerr~17BZA<n8amBc7zR1+N?C6J_=E`y(%^Ix7;bIP>0pslQWM9VE8`Evd!Q z3^Y1+U3S^mMgh|Q6+&YP8&hihUm}!}7f3;vY3td~r7U|ZEh~AfFFK9ouA%Ek>G_-; zgc2$3eag`>(j!FM?WBLQXDz^sDNCf^*_QC`%(grsq>XgjVaV0shG@HDk}odLb3|o& z#@yD&)#RS%k`&=|(&fg}U9J|#UOwkJ#mjn;bovYu3gCs}9b8y&NB{m<5B!diwW|CY z#m|l&C*A9{ubB|(33-e*B)2p&O{5`q+wNXlRgiS}TUR<=@aC;M@)x0}A5JCTSM$+6 z?2aW2vX&S*ir&P_AiAYB=+lHc@{u=K9iObE7M$R35}5whc<mQI!#Km`Ima0a*$PzY zgLX9EYm*l5GJsE+mHBuAjBIO7Ek#Z|NcwWLzM?MQ%qWWqX7^x#+d-DbmL$v`igEqN z;?Vd`vuDokZTP$5ebVxhVM&Ym>x}J~PD8zNylF4#jjx1NMx2mD(-tlK_L7o=bmE;u z4C{6akb3wryZ|6cR_}2%=VrWzJ$BQ`lqyNgn>B*8I%)_sc>h3u<X?;zN(E!pD!>+) z;mZrzVioB{89*z4g~dt^^*sPQn+o+NC+^hsT7b$M88VY}bOc(63PEy>xdmFal!|<2 zCT!gPchL$=mg_IE_U(6BG5#!PnWmVJ-b=*|HaJNf#g;g-)axB?I@}=S^i_K}e@=H2 znluIdt$4cn?eC^swtH(IKK}RT$9%=uwo!)ydU~jQ-ZQB!%q?|$eWw<^)4R_*uRrH| z1=)A<e_jbS7TIQ55lAz-1ol{9GDY6EDn5d?B!t!Radcg*FvC&5xEMumhRAO*;-<01 zMaVlq%ZMK{ts08EHUbpcJE04Y{Q=eh*Fm9oIQtk1gY$n0tP<u%J*jTFb&qdvb6-Dc zF{Axm5WHn2R1?wC9;9p%rnW5lE7Ai0^iWV4I(R<^G>qcKY1SCUebsv{%SD9~vkU*D z7=b;Zr=2NY9!cl~K4->mDeYmPuoMJYBGU0fh}J=6F>y1}_XMxex0Xf|HsF?<MUv}9 z`%dHaPfRQ^wz+BXf1ky6g#0T|yeEji_kFE${`R>d=+KepuUG+JsoQlYnLgL+sE&m{ zbM6h+HC}X@UA0*jFZE=IdO@^_F8YfFNR%Xl47LxY_a=xgME&iGRmiee(RxozBaBWl zdgt+Vd;lfn@Q5YAgH#G}c+oFK*Qu^GI9xfVE3(9x1`tYLz5f{p!$wB*{@7=?QUeQ{ z>hjToX(pE)RrXm_kY%Zxm{}dpiMuByt?5TZ`yr`8+X=6j;}&i$EpoOl9G1<Ep4>*P z{k=jJVu^bmFtYzlF$~0HKy*bCMSKoE!LdnMd5f0V+F){qe{Rj)p<sbGZDZ|;deVJ5 zJ{EJvkRBC|xtG~J7d!{7p8W|^k)I%;IjGI;`4k_7A0LFot3>4{+w=06>#9h|&9%0@ zP26h3yup{v8W4!{Ms^#11Ljk4{kVlZf8NqX3kUNADMw(hKHy7lZdw=N?A-B-VVT<N zX?=W~#bGLIDTZC!%9qj*D?PVecefJa%@oy7@vfwK>VuqZ)DQpMyNMyB1-t=EB+<Z7 ze74ovf<D>q@KrYCt0(QK%1n$6W(&qwwiY>pj+I`jNZes2I#Ic~C!F?^_;n{1*`9G( z1r96b&^zZ~FHL$D+!rSDq3KQ<&J^IB2}98bL-?_x5SA@tQXb2&Oec%VNmZGog#0j1 zVBhN0$V-p-a29Ro{U`huDm3yH&6+&VWYmt$wD&SyhKAO*0cW#cQ#tk*o4uh^^sF}Y zRGY{9ee26@zVCVfz5wM<7E(<kv%=3jlZ4vrZ#>J8a&&-$G&VN($@-xaNT2>TrAPx` zk~FsB`^b3P-+4G!KDG-U9N5B*u9Ak)C_mUz|F0hVR}<U(=P!1B&z(OWz6&I*#lejN zyB1(cOxm#PN0kD^1QkFMAkXh(oH8;RUf6;oo`?rGaiCVS0^hz4CM%Yee11CP(*=dU z>@UeADlo(dDW6{xt-CzAL{~<eU>6}sY8kF<ai=R90joL4%pZuerw94Cwx<rjW1|aN zf>6P+6IM*wNS*|>FRG*t8}Ds3iPKW$bRQ@B?y&5wYmMgz+U#we1eP7u84tT^<^`H( zNEzF}>ITAqDFRvi0b%5#=yaa>AucBw4{`!*EuoVUZnYOC0b>2$)S}u7UV?Io)i>!D zW0nE&^3hYjS~GeizMiWYara_b7hz}9)&9&JK%{glk=t_&SYA^5Nry>%JI`?Q(Ww%R z<VHV9y@Fp`Nn6!VV@~50rii2q^@pF91hx-jT#9!E!8gTZ-*BCS8O%Sxjz6J(X2gcf zA;3#XO9~w|(ceWE^Z14_zD>@S9J1;=Hr0Ic<8`*Vk3A)sUiCcioxps;it)mA`@wyz z;Eg-i@{<EMi>^+XJxIBd9X4Ntit3^VVzL~XwBX0qWt&E=uOi&CA>MVNk)@45KYldS z-7eFWuq<!&w;f@s@SU<a-qOTaDNQkA{o7j~iDqpky2ereWq|gUrh0Ob!VBx8$%pLw zrV?01{`-^Sf{tfNpU@^Y$su=FVUug$2{Uy-AkV5$=T?9|IPXrDn3#9-m5}tFA%VAb zh2};yJ6Wi}jfp8WcsMk2R(obMnkh=UrDn6fJXmVmE3WKT68^<*+fPcUk5eQ1L(S74 z7|^gct&(hFF_XUvSCH2oVREGRH6uZfmR$~qT(>)AEJWTPVaI+I1N%-iEI%z76bjVs z{nK(?$Oum1b_zPM5Cx&Ct;_jpX&4rOXKa%>@Rv&v(BH7suTUoZMW@s|N|dJ4Lox=` zPSC2PjbyZ-CfeG<>N+mAN_oSq@DRNNzwGFe^|syxRWU}i*vtqjat8#){_?7#=VtlY z^6hZ>ExYr<>sRY+@xGQxXll-S#amw#yEw4WZkB}y&rg<t$|@*k5rr}VByfQhUbUUa zlrrg%RW)Py15e3^Dfph=%@<A3dpS>dhIf4Mg(|<&Tav>GNQ6DQOOVD39h}v8P0bI= z-sAlonWNAC_5oKN$*&}&d2W!Ei$yI0KJw_UqlvJ&Ugu-;J)0$u?s*@m0f|?$h-_HH zWw;3#{>0iQP8*x>2OH&>`RZV#`>_inH{LDpTeV%2yYl3|EzdQ-idbwtR$e|Z_*eaz zt7WJKdDM2I@dnljyr=5~vPO6P<)y>XOOpNFv{#DBb3;&Uv7kp>Z4v*i#ZfzMF5=M{ z{ma%Nfd%W7U9%2Vj+V4G=Bx1olLvs{;0gXUNJF5y&u$oHTDXCm@(??aHN`90U>t`F z*FQM<S^SZ=K_}diV%dCfc|Sxdq8|3Zh!ERftyy`XAkOOt=R^=Ecz{wY8Ow-}3Z)O; znA`Ds3CvY$^o$-ag<w=L1(>Ib+-D~iNA`mO<iNh9Nfha_{h=qGRGmiqFYI_IYe2^V zU3^cM!ynw`R-EzG)fX#UW&`gXmcb=bgsdSMu+2ZrXORs9c~`N~ryIqTph-`!ZMTV{ z&KwcDkI8>#D;vpBWT1lL&5iD#*RI0=YPDy>E@7DcTnXjlrX_O%z$?-HfcJmlat<m) zI%<D(qu!)Y3rWrI#ec~>eqmY^tVVAHtITzpOAq^C^a<!}<q6>jVKs*$3|LNJXG*Ah zx5+Qqy<wL)vGP%ZbP~^K7<Vr$CqgJBow7f_aIXkIl<8Va%(q3rL>evDTZh`iN}rp8 z;-*ujJI+gX9mZTV`qKX#EAU$Ml-&PtZx%&S9}w=xJ9H`8htYR`RL_>2dh%6XQ7Y^` z2%71U`lkM-eH)L()_+j^`k?(u8-KlTW{v&uoK8ZKM{21vAZCSSJOMuk!{=k1)^{H^ zJ2nVYhtM#J8Lnr5T4V-Q3`w>F3OgHMN4+R9z_^6YcI6(6H6ENak^$K0MYsH6`e|X4 zqSU$K_N%L5Z=Y!-hWfi!qfM$^;<0j%p`pT_7W`(TW0`N4ULzBCNJ0D?a;_#W#h!4h zVa;jfXAaW<7vh^QOsniRAxVuV143_7f^sF9<8bZ2g&z2AuMIG>C=BdLR!KQ&b0D)R z^BTM@o_VzPgBks`S5=S+;60a`6@B;J(m@$ol!HT7L8cJ3g@B41zV~C(Kv)W0@w$Hz zs=^@5lb)g%_8RofFMmehH@M%yuBP!NAV613liI>!W^?=aw|JYQxv@D%&5F3F!fx%n zl@fpY(W7xHc<yyl!;YdGb|R<LU;ORv3`7u%jC^@A?L#9&eaFbIMxRA%lA;Ukqz{*7 zO*8uID@C&oU4)PQ8YmA^lqCK1NDv(RnGb^DJJF)J1PGD(ZMZGQP00G}#i+q3Y1<-f z#AMv;hNn%T9#lQe9`GmIqmEEdEV}e?mV|>XK-CQ^Z!8|K>drgER82}?Qiim2(34H* z7p59?GZrPyjbAK3<}j7rmn_jrCxm)S#<R3>d@<Ne2vu^<lT*!aAp&|G(95w56z&IF zDDGowez!bNijK*6mzCQAJ$S)?$F54$8{<m8Tpn;L7=BN;J;zNDZ+&9TOxC?dwzP5T zI}kI@&riLIP;QVO=K58Oh&EG6uAa`t7P%RcOt!1`iwzLudo0SOjr}0Wg+D7`oS>IT zO}C2slV6ugU(Q(S5whLF&K)<e@xrveSEFO^DHQS%Mf~1BR6TIH#hy`bDZE!@_A}3( z37yrVhx+?GL1EraP5K?=FADS`fRrf$ztF#QfIEd&rXY-BlTaa2wd1$<UVRmHEALN2 zTi>|1dbZ>lT;4WGIyq*#f;)U$cI6&M(ytH9+AR@RA44JL$L{L(3SPPQ?Qw?87I<*x z@sm5$$_UYq-T?=FpTxQ+%i`Eeo3%EP#Uoc!faIMsp@8pV`v|vdjJJWQTO2-`1=$89 zL5`LD1{jDj;$b8^e2C|K+!$xUz_y%TX&dbv8me7OD{?h*S^!t7Xsm)QTF3euJV}-> zk*2xdsfAsykG~}gC9X3+c(Uq}|BgI?V^vmz2-kor{{)9Pp)D4$J4!4nZ;Kd07FXzy zf6t_34ZN-xw9a6(c?J^4{z(tq2x*6HjG^c?s+Pvrr}ArtrdUmyO(o_|ylDlx#abb8 zF<zSE-Wb**-)#D5X!F#a(SOcG{PS1cZ8DKFblQ`2#70CSrj=5SW%yawTn~D91JdVy zQhzucJ``8(^iPuIU!dPVnqMt03mlxi))j0TZ8{CiKCBBZzm!8X003HAo}<`TXZuT0 z!#=LbxLQu?#=<Qislliwyn$Cp&_t+M_~`)YSLfTsQ<mCnK59g`a7%?y*3c+}3hXnp zq*zXpdo54i^+gbm4bS*o9x0uUD4>SSY};7tcc+)wu4+q#iqrX<W9EoXbX5(?&*J>* zijHAWfbR}Z_~lnki>tsK?dveF1-7@m{Kt2m^^6y?FwAjbFS9`ZV;Yng&$-dwt6Z|z z7RQoT1sO9^3HRBW!Km)$59XW!%#-}4=1ar}xtPq&6X$U>@5*s^M>zEfN^ihUdBdah ziQlmAnfD7e`jYtN2|fzR|D}|oyR{aHwdhOBPCNh%DpCnIHS3K}_^O;Ymzy<J28rWK z0IhkhSAmJCPmK3AL1CbJ*HQ$ZdRO{wL&WxGf{DcfUIH-IRO_f`JIQNA+8U9d&m&eB zYI3EiLp3IrdA5Wsh?;VG@#sb1^hrP#|DFVfkLG_pp)mK{H+zWg?U!*A_P$*P3)~&z z(#{g+unJ)xm0qr5m#8^%{j10nLZ=X}VODsbqLd!O#l);e?>O1~dGlORU5GtTySI<8 zZvOmRcQ>exQ)-IRme2gpVLR^cv*N?MaH=v<#1vH_4MoU7(v-@4nN?O+s=SRebI7FS z){JPG|Ax4g2h>IhB>q-p_^Ks867b7pkI<voY4tXrnpMvUGr<NzU-Svn7uPJ2>BBu` zFx9Z}I^?PI9Nl?YJlI66*~g$TzdRN?6dzi#`kkWOO_?21<iL3P?m9#P(2W<&iZ1;3 zL^vsbO+)FzH&f6onN^IAyQW#Q!4IK@oQ!mIZYE`QEUdJGX`5Q#H4?Hve3F1)E+HL| z%!d_kNw^XxFoM{al6{F5!;=VxwFe4?hSEPipVC59C3$`7!nyBT;7Jg#Z+8IVQ}*Ia zXx!ceyN%#c={dvC9g^T*7#(*6^sO6=VUgK{DT6w}N92cY+aW%-yM&Ud&+{MSt)Rbw z`#7-#LtlYZ6MkQFKxC2D#?aE`b94N4CokylYD)JS0$|TCt*vz=ebWAPvXP@px?4$i z2^v#`J6G0dL<yH5FpHH7<ei)k-p3i+xlGhz^*g-=6yqdgN8|{d-a7rruo`&B6Dfqc z%Uv?w4TDsd9`7e>k=~#K*OqhVuP9L}Mddz@afy$bqYkJ~{Au)CeD(^|{w<dC)mnzH zuvU)5J+vuLS1!!aQ)*He+x$r@6ah{#wrRTXr?Et)R`~Y<*+^ou+|YNK2AxC~B3sOk z-~?fvG2bc&3r;bl-<AsUnQ5(t+x+lH4*nMU9}(5>5mhYjH;>`|M#)%b-lrm5xLq=N z7}b7~F!6nXwLn8gVW+-Q!>%a<>I^pL?m9+49JO}pE16vhK_Z2yTxy7NR*Q#7#>Kyn zgD<_9q^@|$?0zZNz4=6!B&}oeY%X=KI3%u-*<_3;%9_$-MQV?6PL{Y3yD;HycD5V^ z;SfV=ZwZ*`tA<nyaSe<aRz<uWe?@ZjDz(jlG%+_bcLIXjPPR=qL66aZHFl*DSw~#6 zNw^=obC>HMz%B8D?4KJ`Wt?-qSIsmA?7F~OCV*tZni<TS?-F`p0Eu2Hdyqij<i=FG zSARrd7n?rt2o|+9*X~@aJHr<~gfmHD?)BX_Uh@>A!h6vV?>Lu(9mTl=^l)Y2Ff8Z4 jKlNYkBo3=?MPhWnKkq+#;}i8?gMgNrzG}U)ef0kWI(lpe diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/mipmap-xhdpi/gcanvas_icon.png b/bridges/weex-gcanvas/android/weex_playground/src/main/res/mipmap-xhdpi/gcanvas_icon.png deleted file mode 100644 index 59b5ddd70dd4a562e51357371bdb185e843674fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8296 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 diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/mipmap-xxhdpi/gcanvas_icon.png b/bridges/weex-gcanvas/android/weex_playground/src/main/res/mipmap-xxhdpi/gcanvas_icon.png deleted file mode 100644 index 59b5ddd70dd4a562e51357371bdb185e843674fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8296 zcmX|ncQ71Y)HYV{HG0YFeYI7h_ugv|ZC5X=MGcEZi0GXlx)21>%UWHCUZV@qEh0#S zFTeMD=e;wxoO{kZ&pc=5+_`_81Veod5<&(-3=9ksElpM9f4l#`8HA7fZw1XpqA@Tq zb=*uX11$A)Wt@Dxgd89~j!>asFW5gn28OIcFwDWp0~)~Q2z7DumII!5^#R%3AaXzp z2|bV=Oa<!drWxu7H3`)>bqe)xl7;{k<OyYiW&QzpK?5Avg1tPw{bhpXfd7Ll^Y8rM zwJ?zFe?kI0<bX>55wcn88M3MP_(9nugusGMB4Sc(lF~vV64Fwl;sR`<AQ7-INLpA# zTo5E81Co{jiLm|e0Ll}x$@)Q@WsFtT|Cj8aB?oj32!P253kL-S2?dD>`S`gAi%3gL z3xh<3MMVYwMF{$bcn3HH3wryr{|E8^F;t=cPJV8%05>0Rw*N349DM=<<bXio|44-Y zm*t;4;s4Y3&-lL#LB0Q_#qXbfHm!OY3=EcKEmbAc;KIFkA%(VTc{hDi(l;9~n$x_o zFqM@x;YLcW6q$NR90yah8HGhOR)n+qh?NaF6JE5GlxV~5>w$WFpisAPa$-}=Krad5 zQwTdHn^q9_yN?-XU4<?W)&6I4H*3xFJv|(g_wtC|st@`L{zn$q^CkuhHSA}zq9520 z<TkD_W<t>8LNvz0^haZ&4A={b>ct-vleJH{pDLB!=p4i?|4Fg16o3&=<6Wvvv&MbV zzbARE{{5!G<1oo{+r{i7?ovfU17eyTT%O??of!)1dv|NhCAW_yiFxx!HM;590T~=G zs_k5SY?z`!STqY9^+wH-G+dmT#d~ce5he^11NrR4GAVQyjmk1wCcr3CYu_X+S-N0; zQESI`E#`STLX}ahyRC|N#H!a==Etv3-gTfHaELRdZ6~)R5Xi^({TGloaaX;8wFc-G zWT1DkF(dFwDj>1pMw7#KmJ_9YbCV!19R=p0_%6<s$&@*sbkS&Y-QC*+<U?7yAGdu| z+MQdH_B|hEnk{=Dl`|j@bn}XC&hm*9!&EsE^7IO_MUm;D`0KUaj4oM{4lB0yf$|++ zBjK&C80t*m<Om{!{kMiM2vZ|3F}aayiHM4c=F_12fn92e{JOxF`<Brb^J4lr_Q?mx zOUxWhVJucpkaKBrI>)7E0+Dq`n(T+}#jc@^Xc#wIEDB&;v8lDZH%h%7jxa;!n3zGt zzwXPFhB7w!z&PUuYHJ?J8mVu&rr)t`>-X2I?mvqfi8?1bA%$2KnYpTmdlugIF1d51 zh3znrT>IK#+2VwQE6NFm>J|5ukizgyOpRgAQBhq^odrrNAF;3M5{hN4-L&n-TLg$8 zs3z!aIRrvzV)Q_78SSU;nU5yaOTU;6y_0AXe;<T*xDyfI5X%nV#A?Hg1QXV%$G%hB zw@bVzix3e^i*q5=lB>#>DjO7UDv!u&s8Ki8<Hx9agYHJ|A?LaL=&5wY^QuZ@aqgc@ zn~>-krUmwY{54VTD@@|cC!GKx;Qp|~I!Namxu9B8HmsU<r@r-aOA<f6qH@AGXvUXc zP@c0(mBS6=Y5#V?>pWzTQZcT+n|YEss24&w2loL)ng%!Q$&I}ZO6T5WZ7X={IPJO` zOwX_Q(v)LLC2G^2;fm2q#~o)^qY^EhX@=a)|3b}CJsr1IC(^XyeUOq>gQ$9{q%-)^ zajyr-8pRJkoFs6MzhJvE-Ri^XjcF_}8yY;tNiW~#@iUlh&2#PT&&>e`=`q-qd6a2} zzVN+SLiNHgZX)E>qm3LUMyaJN5s%mrI82nut|AI-ElPa+4zq#tUO8MAx>G5_3S+U< ziQYE&WKOu~NQxpgDT${!l_F0dXIwi(xK$EK3L;BZPNr+#eZ#7g1Xe+Iaf#;Dl!oU; zZ|}2n(XOipr18I-$cDuq?4o+5RW5atvL}S?7inwx*nOi}m9vd_e2@5_Q_P4{0Lq`* z&IalR1EX4B|3Z_0Vz5)F!kWU^#C+-TUbRF`RE+`eYMC&}M8rx?P>}UPa0u3!n?L1g z*os}@MsGdI#+&mtB%Bn=**mi=kk5H#$gwfuy#lOrCck5(rR`1f;$Y}#RSXCxx<Qx6 zxr(VZx$0_9q_XSc^^*K%LiZ*aAKB|vDqs#rV0rG|>nm%kX`04L_(!Ij3B1=Pp~!~Z zh(jqf7_|pkH0k{|FzzF_NJn8Ux1(Gpw_&ChQQ*$Xouq^oJkQq4X6T!s&srQ`>Ui-) zvKTtO*<`r%#Oq|J2kG?|r}#^{8GrIlhtj$d&yLD6I}o4+IfmVs7)DC>s>T+#yqk@z zltN}o8j0PUOq6}R4a*4jprIFz3;_dWTzYSe6F!=dMJD7GKd2ZVNr?`8k;dc9rn-S^ zMOP$AEYi@-k*jj_YU=D(y?5<P!e!^@f8;p+Yz6V?;N{5y=#==bfOMUOQ8yGta765) zz;)_1ITlT<HV$9W-6?b}U4CY1cpc04uymEJtUKwGz=qSFf)38(3Lo!Ows>HZ+3s`e z>7424-gccYJ-L6YX~|FA==F{XiI~PzXjYl#qT|MMtIUu@^9i|qq$Ecs*oCe)N!b*g z-bWOolpgIfZr_W4d?~wb3fj{{H!dZyWjD>H{xIWt1fI=a#vnf>NOIMfd_%KMoTm}V zY;8*m9rKN^iq;7a@I&dUc^We9U*Y^7Z|p7gybOZ@4uRK@c+DWqLo<pyl+8R9HRA5K zxw5J>Xd(86#WFiykI>1xn05a~7yaDR_)`n=htQr8K>&-lb-AH6<5PEvs!hqv0Z+6o zcAD9vt8>kfki6A^PB*fW@aOjuZtm_+f=njGeqDHse2uMj#HL%HMdQMYe_}oc+2OQe z|JLijijH=|Cu4{mF86&eh9}0XqMbt2?2lrRb};`+zPP)%Q`w;v_<W#ov8eX9v8TDp zn^k<@8*%V!JB-aIL2lCcmiPj=^0|VQ%pWfA%FU^nqRg&re@&+7(HHQ8$bo-p`q~-< z`5UtIVuEYRGiiQ}5&hGX7SrRme<L3<SNk%^A*B$sjv16Rzf;`sE7-AMXI0)KcUnN_ z+n@rj4fYz&^|^=;Kpqi7vqia8?TnqmTfIL|K(HS&ZD;f!&0D>zu(5mPrt8K5G3K_g zXvwjk7RI_CrBED~lKI_>CQDA5-CTuSXBTI<$-~u~fna5BLdFM1WK6%G_{DAMKwdDg z&2%EwanGq42BiCANZn4ooPwVQp$-%T*=6Z8zsVR@lBvuh;HtXLyGk2Ni6ZnQwQh3r zpCjhn+YIG*=IJJ1X2}t%UH7EjR<_4PXUy*ibo2JRt3P7jOuUQ2G?)S9&A2_Eefw5u zHr`0zcu&_}?Rj47xC<wmVvA$q+t5mN0bKz%L6M8fs^z6jzda~LUvd6u36_))P9lXD zT!8EWL&49|*WO4c?lEOrn3ybn9t^!)d=x&&JN{c^>?xu8V7_GcHp`@cf^WafW>Yus zV?NFj|HO!8&-J`zK<9(@n+kp4&yln|h{61Ri6nr?PzWooK+s<tyz!dPZXl^j(n4j9 zYbfG=>k&(|fI%Cv3E++nCl0Pz5FJ6;+mVFpW>LX6xho0v;+FIrMZHKa0(*PMEp_c; zE_t`4Qvay)GDx4go(>;Ge+-p{5BTyF8@AIq*zrbXx}QxV`#Q!<;^bW0T(vDo`Gkpi z;{%9@h)~h8C(`O0Wdfcx$i(!f5BO8W1L_7HjzRIHL>-c*u9nz_c&-4Nm-sgIESuy! z;DDNHZXQsoXeFp)je+uyOH78clI>0o%-un<bnP{obtB;GRj1NRdmB*1YCoapPy1H2 z3R$sIn?E1$n6ZSYZE`atS&CyWL4A5sjTl6isExZt8(+rp#yafU#PK(3!49fcX3<%k zQ2&*jSE}!=ZzJw6=t$`BTT<*2UeIb%tjV)vP--kJm5Gz5z%xbG5chu#B^?*mGx%j$ z5$f4Fuerr~17BZA<n8amBc7zR1+N?C6J_=E`y(%^Ix7;bIP>0pslQWM9VE8`Evd!Q z3^Y1+U3S^mMgh|Q6+&YP8&hihUm}!}7f3;vY3td~r7U|ZEh~AfFFK9ouA%Ek>G_-; zgc2$3eag`>(j!FM?WBLQXDz^sDNCf^*_QC`%(grsq>XgjVaV0shG@HDk}odLb3|o& z#@yD&)#RS%k`&=|(&fg}U9J|#UOwkJ#mjn;bovYu3gCs}9b8y&NB{m<5B!diwW|CY z#m|l&C*A9{ubB|(33-e*B)2p&O{5`q+wNXlRgiS}TUR<=@aC;M@)x0}A5JCTSM$+6 z?2aW2vX&S*ir&P_AiAYB=+lHc@{u=K9iObE7M$R35}5whc<mQI!#Km`Ima0a*$PzY zgLX9EYm*l5GJsE+mHBuAjBIO7Ek#Z|NcwWLzM?MQ%qWWqX7^x#+d-DbmL$v`igEqN z;?Vd`vuDokZTP$5ebVxhVM&Ym>x}J~PD8zNylF4#jjx1NMx2mD(-tlK_L7o=bmE;u z4C{6akb3wryZ|6cR_}2%=VrWzJ$BQ`lqyNgn>B*8I%)_sc>h3u<X?;zN(E!pD!>+) z;mZrzVioB{89*z4g~dt^^*sPQn+o+NC+^hsT7b$M88VY}bOc(63PEy>xdmFal!|<2 zCT!gPchL$=mg_IE_U(6BG5#!PnWmVJ-b=*|HaJNf#g;g-)axB?I@}=S^i_K}e@=H2 znluIdt$4cn?eC^swtH(IKK}RT$9%=uwo!)ydU~jQ-ZQB!%q?|$eWw<^)4R_*uRrH| z1=)A<e_jbS7TIQ55lAz-1ol{9GDY6EDn5d?B!t!Radcg*FvC&5xEMumhRAO*;-<01 zMaVlq%ZMK{ts08EHUbpcJE04Y{Q=eh*Fm9oIQtk1gY$n0tP<u%J*jTFb&qdvb6-Dc zF{Axm5WHn2R1?wC9;9p%rnW5lE7Ai0^iWV4I(R<^G>qcKY1SCUebsv{%SD9~vkU*D z7=b;Zr=2NY9!cl~K4->mDeYmPuoMJYBGU0fh}J=6F>y1}_XMxex0Xf|HsF?<MUv}9 z`%dHaPfRQ^wz+BXf1ky6g#0T|yeEji_kFE${`R>d=+KepuUG+JsoQlYnLgL+sE&m{ zbM6h+HC}X@UA0*jFZE=IdO@^_F8YfFNR%Xl47LxY_a=xgME&iGRmiee(RxozBaBWl zdgt+Vd;lfn@Q5YAgH#G}c+oFK*Qu^GI9xfVE3(9x1`tYLz5f{p!$wB*{@7=?QUeQ{ z>hjToX(pE)RrXm_kY%Zxm{}dpiMuByt?5TZ`yr`8+X=6j;}&i$EpoOl9G1<Ep4>*P z{k=jJVu^bmFtYzlF$~0HKy*bCMSKoE!LdnMd5f0V+F){qe{Rj)p<sbGZDZ|;deVJ5 zJ{EJvkRBC|xtG~J7d!{7p8W|^k)I%;IjGI;`4k_7A0LFot3>4{+w=06>#9h|&9%0@ zP26h3yup{v8W4!{Ms^#11Ljk4{kVlZf8NqX3kUNADMw(hKHy7lZdw=N?A-B-VVT<N zX?=W~#bGLIDTZC!%9qj*D?PVecefJa%@oy7@vfwK>VuqZ)DQpMyNMyB1-t=EB+<Z7 ze74ovf<D>q@KrYCt0(QK%1n$6W(&qwwiY>pj+I`jNZes2I#Ic~C!F?^_;n{1*`9G( z1r96b&^zZ~FHL$D+!rSDq3KQ<&J^IB2}98bL-?_x5SA@tQXb2&Oec%VNmZGog#0j1 zVBhN0$V-p-a29Ro{U`huDm3yH&6+&VWYmt$wD&SyhKAO*0cW#cQ#tk*o4uh^^sF}Y zRGY{9ee26@zVCVfz5wM<7E(<kv%=3jlZ4vrZ#>J8a&&-$G&VN($@-xaNT2>TrAPx` zk~FsB`^b3P-+4G!KDG-U9N5B*u9Ak)C_mUz|F0hVR}<U(=P!1B&z(OWz6&I*#lejN zyB1(cOxm#PN0kD^1QkFMAkXh(oH8;RUf6;oo`?rGaiCVS0^hz4CM%Yee11CP(*=dU z>@UeADlo(dDW6{xt-CzAL{~<eU>6}sY8kF<ai=R90joL4%pZuerw94Cwx<rjW1|aN zf>6P+6IM*wNS*|>FRG*t8}Ds3iPKW$bRQ@B?y&5wYmMgz+U#we1eP7u84tT^<^`H( zNEzF}>ITAqDFRvi0b%5#=yaa>AucBw4{`!*EuoVUZnYOC0b>2$)S}u7UV?Io)i>!D zW0nE&^3hYjS~GeizMiWYara_b7hz}9)&9&JK%{glk=t_&SYA^5Nry>%JI`?Q(Ww%R z<VHV9y@Fp`Nn6!VV@~50rii2q^@pF91hx-jT#9!E!8gTZ-*BCS8O%Sxjz6J(X2gcf zA;3#XO9~w|(ceWE^Z14_zD>@S9J1;=Hr0Ic<8`*Vk3A)sUiCcioxps;it)mA`@wyz z;Eg-i@{<EMi>^+XJxIBd9X4Ntit3^VVzL~XwBX0qWt&E=uOi&CA>MVNk)@45KYldS z-7eFWuq<!&w;f@s@SU<a-qOTaDNQkA{o7j~iDqpky2ereWq|gUrh0Ob!VBx8$%pLw zrV?01{`-^Sf{tfNpU@^Y$su=FVUug$2{Uy-AkV5$=T?9|IPXrDn3#9-m5}tFA%VAb zh2};yJ6Wi}jfp8WcsMk2R(obMnkh=UrDn6fJXmVmE3WKT68^<*+fPcUk5eQ1L(S74 z7|^gct&(hFF_XUvSCH2oVREGRH6uZfmR$~qT(>)AEJWTPVaI+I1N%-iEI%z76bjVs z{nK(?$Oum1b_zPM5Cx&Ct;_jpX&4rOXKa%>@Rv&v(BH7suTUoZMW@s|N|dJ4Lox=` zPSC2PjbyZ-CfeG<>N+mAN_oSq@DRNNzwGFe^|syxRWU}i*vtqjat8#){_?7#=VtlY z^6hZ>ExYr<>sRY+@xGQxXll-S#amw#yEw4WZkB}y&rg<t$|@*k5rr}VByfQhUbUUa zlrrg%RW)Py15e3^Dfph=%@<A3dpS>dhIf4Mg(|<&Tav>GNQ6DQOOVD39h}v8P0bI= z-sAlonWNAC_5oKN$*&}&d2W!Ei$yI0KJw_UqlvJ&Ugu-;J)0$u?s*@m0f|?$h-_HH zWw;3#{>0iQP8*x>2OH&>`RZV#`>_inH{LDpTeV%2yYl3|EzdQ-idbwtR$e|Z_*eaz zt7WJKdDM2I@dnljyr=5~vPO6P<)y>XOOpNFv{#DBb3;&Uv7kp>Z4v*i#ZfzMF5=M{ z{ma%Nfd%W7U9%2Vj+V4G=Bx1olLvs{;0gXUNJF5y&u$oHTDXCm@(??aHN`90U>t`F z*FQM<S^SZ=K_}diV%dCfc|Sxdq8|3Zh!ERftyy`XAkOOt=R^=Ecz{wY8Ow-}3Z)O; znA`Ds3CvY$^o$-ag<w=L1(>Ib+-D~iNA`mO<iNh9Nfha_{h=qGRGmiqFYI_IYe2^V zU3^cM!ynw`R-EzG)fX#UW&`gXmcb=bgsdSMu+2ZrXORs9c~`N~ryIqTph-`!ZMTV{ z&KwcDkI8>#D;vpBWT1lL&5iD#*RI0=YPDy>E@7DcTnXjlrX_O%z$?-HfcJmlat<m) zI%<D(qu!)Y3rWrI#ec~>eqmY^tVVAHtITzpOAq^C^a<!}<q6>jVKs*$3|LNJXG*Ah zx5+Qqy<wL)vGP%ZbP~^K7<Vr$CqgJBow7f_aIXkIl<8Va%(q3rL>evDTZh`iN}rp8 z;-*ujJI+gX9mZTV`qKX#EAU$Ml-&PtZx%&S9}w=xJ9H`8htYR`RL_>2dh%6XQ7Y^` z2%71U`lkM-eH)L()_+j^`k?(u8-KlTW{v&uoK8ZKM{21vAZCSSJOMuk!{=k1)^{H^ zJ2nVYhtM#J8Lnr5T4V-Q3`w>F3OgHMN4+R9z_^6YcI6(6H6ENak^$K0MYsH6`e|X4 zqSU$K_N%L5Z=Y!-hWfi!qfM$^;<0j%p`pT_7W`(TW0`N4ULzBCNJ0D?a;_#W#h!4h zVa;jfXAaW<7vh^QOsniRAxVuV143_7f^sF9<8bZ2g&z2AuMIG>C=BdLR!KQ&b0D)R z^BTM@o_VzPgBks`S5=S+;60a`6@B;J(m@$ol!HT7L8cJ3g@B41zV~C(Kv)W0@w$Hz zs=^@5lb)g%_8RofFMmehH@M%yuBP!NAV613liI>!W^?=aw|JYQxv@D%&5F3F!fx%n zl@fpY(W7xHc<yyl!;YdGb|R<LU;ORv3`7u%jC^@A?L#9&eaFbIMxRA%lA;Ukqz{*7 zO*8uID@C&oU4)PQ8YmA^lqCK1NDv(RnGb^DJJF)J1PGD(ZMZGQP00G}#i+q3Y1<-f z#AMv;hNn%T9#lQe9`GmIqmEEdEV}e?mV|>XK-CQ^Z!8|K>drgER82}?Qiim2(34H* z7p59?GZrPyjbAK3<}j7rmn_jrCxm)S#<R3>d@<Ne2vu^<lT*!aAp&|G(95w56z&IF zDDGowez!bNijK*6mzCQAJ$S)?$F54$8{<m8Tpn;L7=BN;J;zNDZ+&9TOxC?dwzP5T zI}kI@&riLIP;QVO=K58Oh&EG6uAa`t7P%RcOt!1`iwzLudo0SOjr}0Wg+D7`oS>IT zO}C2slV6ugU(Q(S5whLF&K)<e@xrveSEFO^DHQS%Mf~1BR6TIH#hy`bDZE!@_A}3( z37yrVhx+?GL1EraP5K?=FADS`fRrf$ztF#QfIEd&rXY-BlTaa2wd1$<UVRmHEALN2 zTi>|1dbZ>lT;4WGIyq*#f;)U$cI6&M(ytH9+AR@RA44JL$L{L(3SPPQ?Qw?87I<*x z@sm5$$_UYq-T?=FpTxQ+%i`Eeo3%EP#Uoc!faIMsp@8pV`v|vdjJJWQTO2-`1=$89 zL5`LD1{jDj;$b8^e2C|K+!$xUz_y%TX&dbv8me7OD{?h*S^!t7Xsm)QTF3euJV}-> zk*2xdsfAsykG~}gC9X3+c(Uq}|BgI?V^vmz2-kor{{)9Pp)D4$J4!4nZ;Kd07FXzy zf6t_34ZN-xw9a6(c?J^4{z(tq2x*6HjG^c?s+Pvrr}ArtrdUmyO(o_|ylDlx#abb8 zF<zSE-Wb**-)#D5X!F#a(SOcG{PS1cZ8DKFblQ`2#70CSrj=5SW%yawTn~D91JdVy zQhzucJ``8(^iPuIU!dPVnqMt03mlxi))j0TZ8{CiKCBBZzm!8X003HAo}<`TXZuT0 z!#=LbxLQu?#=<Qislliwyn$Cp&_t+M_~`)YSLfTsQ<mCnK59g`a7%?y*3c+}3hXnp zq*zXpdo54i^+gbm4bS*o9x0uUD4>SSY};7tcc+)wu4+q#iqrX<W9EoXbX5(?&*J>* zijHAWfbR}Z_~lnki>tsK?dveF1-7@m{Kt2m^^6y?FwAjbFS9`ZV;Yng&$-dwt6Z|z z7RQoT1sO9^3HRBW!Km)$59XW!%#-}4=1ar}xtPq&6X$U>@5*s^M>zEfN^ihUdBdah ziQlmAnfD7e`jYtN2|fzR|D}|oyR{aHwdhOBPCNh%DpCnIHS3K}_^O;Ymzy<J28rWK z0IhkhSAmJCPmK3AL1CbJ*HQ$ZdRO{wL&WxGf{DcfUIH-IRO_f`JIQNA+8U9d&m&eB zYI3EiLp3IrdA5Wsh?;VG@#sb1^hrP#|DFVfkLG_pp)mK{H+zWg?U!*A_P$*P3)~&z z(#{g+unJ)xm0qr5m#8^%{j10nLZ=X}VODsbqLd!O#l);e?>O1~dGlORU5GtTySI<8 zZvOmRcQ>exQ)-IRme2gpVLR^cv*N?MaH=v<#1vH_4MoU7(v-@4nN?O+s=SRebI7FS z){JPG|Ax4g2h>IhB>q-p_^Ks867b7pkI<voY4tXrnpMvUGr<NzU-Svn7uPJ2>BBu` zFx9Z}I^?PI9Nl?YJlI66*~g$TzdRN?6dzi#`kkWOO_?21<iL3P?m9#P(2W<&iZ1;3 zL^vsbO+)FzH&f6onN^IAyQW#Q!4IK@oQ!mIZYE`QEUdJGX`5Q#H4?Hve3F1)E+HL| z%!d_kNw^XxFoM{al6{F5!;=VxwFe4?hSEPipVC59C3$`7!nyBT;7Jg#Z+8IVQ}*Ia zXx!ceyN%#c={dvC9g^T*7#(*6^sO6=VUgK{DT6w}N92cY+aW%-yM&Ud&+{MSt)Rbw z`#7-#LtlYZ6MkQFKxC2D#?aE`b94N4CokylYD)JS0$|TCt*vz=ebWAPvXP@px?4$i z2^v#`J6G0dL<yH5FpHH7<ei)k-p3i+xlGhz^*g-=6yqdgN8|{d-a7rruo`&B6Dfqc z%Uv?w4TDsd9`7e>k=~#K*OqhVuP9L}Mddz@afy$bqYkJ~{Au)CeD(^|{w<dC)mnzH zuvU)5J+vuLS1!!aQ)*He+x$r@6ah{#wrRTXr?Et)R`~Y<*+^ou+|YNK2AxC~B3sOk z-~?fvG2bc&3r;bl-<AsUnQ5(t+x+lH4*nMU9}(5>5mhYjH;>`|M#)%b-lrm5xLq=N z7}b7~F!6nXwLn8gVW+-Q!>%a<>I^pL?m9+49JO}pE16vhK_Z2yTxy7NR*Q#7#>Kyn zgD<_9q^@|$?0zZNz4=6!B&}oeY%X=KI3%u-*<_3;%9_$-MQV?6PL{Y3yD;HycD5V^ z;SfV=ZwZ*`tA<nyaSe<aRz<uWe?@ZjDz(jlG%+_bcLIXjPPR=qL66aZHFl*DSw~#6 zNw^=obC>HMz%B8D?4KJ`Wt?-qSIsmA?7F~OCV*tZni<TS?-F`p0Eu2Hdyqij<i=FG zSARrd7n?rt2o|+9*X~@aJHr<~gfmHD?)BX_Uh@>A!h6vV?>Lu(9mTl=^l)Y2Ff8Z4 jKlNYkBo3=?MPhWnKkq+#;}i8?gMgNrzG}U)ef0kWI(lpe diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/mipmap-xxxhdpi/gcanvas_icon.png b/bridges/weex-gcanvas/android/weex_playground/src/main/res/mipmap-xxxhdpi/gcanvas_icon.png deleted file mode 100644 index 59b5ddd70dd4a562e51357371bdb185e843674fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8296 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 diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/raw/beep.ogg b/bridges/weex-gcanvas/android/weex_playground/src/main/res/raw/beep.ogg deleted file mode 100755 index 14199476a89093b575f6ef388febe417b5cd003b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6401 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 Q!3(l<w0I|Y!;u01144^n5dZ)H diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values-v21/styles.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/values-v21/styles.xml deleted file mode 100755 index f98bd651..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values-v21/styles.xml +++ /dev/null @@ -1,27 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<resources> - - <style name="AppTheme.NoActionBar"> - <item name="windowActionBar">false</item> - <item name="windowNoTitle">true</item> - <item name="android:windowDrawsSystemBarBackgrounds">true</item> - <item name="android:statusBarColor">@android:color/transparent</item> - </style> -</resources> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values-w820dp/dimens.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/values-w820dp/dimens.xml deleted file mode 100755 index ec087276..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values-w820dp/dimens.xml +++ /dev/null @@ -1,24 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<resources> - <!-- Example customization of dimensions originally defined in res/values/dimens.xml - (such as screen margins) for screens with more than 820dp of available width. This - would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). --> - <dimen name="activity_horizontal_margin">64dp</dimen> -</resources> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values-zh-rCN/strings.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/values-zh-rCN/strings.xml deleted file mode 100755 index fcdceeaa..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values-zh-rCN/strings.xml +++ /dev/null @@ -1,147 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (C) 2014 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<resources> - <string name="app_name">GCanvas</string> - <string name="app_picker_name">应用</string> - <string name="bookmark_picker_name">书签</string> - <string name="button_add_calendar">添加至日程表</string> - <string name="button_add_contact">添加联系人</string> - <string name="button_book_search">打开图书搜索</string> - <string name="button_cancel">取消</string> - <string name="button_custom_product_search">自定义搜索</string> - <string name="button_dial">拨打电话</string> - <string name="button_email">发送 E-mail</string> - <string name="button_get_directions">获取地址</string> - <string name="button_mms">发送彩信</string> - <string name="button_ok">确定</string> - <string name="button_open_browser">打开浏览器</string> - <string name="button_product_search">打开商品搜索</string> - <string name="button_search_book_contents">搜索图书内容</string> - <string name="button_share_app">分享应用</string> - <string name="button_share_bookmark">分享书签</string> - <string name="button_share_by_email">通过 E-mail 分享</string> - <string name="button_share_by_sms">通过短信分享</string> - <string name="button_share_clipboard">分享剪切板</string> - <string name="button_share_contact">分享联系人</string> - <string name="button_show_map">显示地图</string> - <string name="button_sms">发送短信</string> - <string name="button_web_search">网页搜索</string> - <string name="button_wifi">连接到网络</string> - <string name="contents_contact">联系人信息</string> - <string name="contents_email">E-mail 地址</string> - <string name="contents_location">经纬度</string> - <string name="contents_phone">电话号码</string> - <string name="contents_sms">短信号码</string> - <string name="contents_text">纯文本</string> - <string name="history_clear_one_history_text">删除</string> - <string name="history_clear_text">删除历史记录</string> - <string name="history_email_title">条码扫描器的历史</string> - <string name="history_empty">空</string> - <string name="history_empty_detail">没有历史记录</string> - <string name="history_send">发送历史记录</string> - <string name="history_title">历史记录</string> - <string name="menu_encode_mecard">使用MECARD</string> - <string name="menu_encode_vcard">使用vCard</string> - <string name="menu_help">帮助</string> - <string name="menu_history">历史记录</string> - <string name="menu_settings">设置</string> - <string name="menu_share">创建二维码</string> - <string name="msg_bulk_mode_scanned">批量扫描模式:条码已扫描并保存</string> - <string name="msg_camera_framework_bug">很遗憾,Android 相机出现问题。你可能需要重启设备。</string> - <string name="msg_default_format">格式</string> - <string name="msg_default_meta">元数据</string> - <string name="msg_default_mms_subject">Hi</string> - <string name="msg_default_status">请将条码置于取景框内扫描。</string> - <string name="msg_default_time">时间</string> - <string name="msg_default_type">类型</string> - <string name="msg_encode_contents_failed">无法生成条码。</string> - <string name="msg_error">错误</string> - <string name="msg_google_books">Google</string> - <string name="msg_google_product">Google</string> - <string name="msg_intent_failed">抱歉,无法打开应用。条码内容可能无效。</string> - <string name="msg_invalid_value">值无效</string> - <string name="msg_redirect">重定向</string> - <string name="msg_sbc_book_not_searchable">抱歉,无法找到此图书。</string> - <string name="msg_sbc_failed">抱歉,搜索时遇到错误。</string> - <string name="msg_sbc_no_page_returned">无页面返回</string> - <string name="msg_sbc_page">页面</string> - <string name="msg_sbc_results">结果</string> - <string name="msg_sbc_searching_book">搜索图书…</string> - <string name="msg_sbc_snippet_unavailable">摘录不可用</string> - <string name="msg_share_explanation">您可以通过在自己的手机上显示条码,并使用其它手机扫描此条码的方式进行分享</string> - <string name="msg_share_text">或键入一些文字</string> - <string name="msg_sure">确定吗?</string> - <string name="msg_unmount_usb">抱歉,无法访问 SD 卡。</string> - <string name="preferences_actions_title">扫描成功</string> - <string name="preferences_auto_focus_title">自动对焦</string> - <string name="preferences_auto_open_web_title">自动打开网页</string> - <string name="preferences_bulk_mode_summary">连续扫描并保存多个条码</string> - <string name="preferences_bulk_mode_title">批量扫描模式</string> - <string name="preferences_copy_to_clipboard_title">复制到剪贴板</string> - <string name="preferences_custom_product_search_summary" formatted="false">替换:%s=内容,%f=格式,%t=类型</string> - <string name="preferences_custom_product_search_title">自定义搜索网址</string> - <string name="preferences_decode_1D_industrial_title">一维码:工业</string> - <string name="preferences_decode_1D_product_title">一维码:商品</string> - <string name="preferences_decode_Aztec_title">Aztec</string> - <string name="preferences_decode_Data_Matrix_title">Data Matrix</string> - <string name="preferences_decode_PDF417_title">PDF417 (测试)</string> - <string name="preferences_decode_QR_title">二维码</string> - <string name="preferences_device_bug_workarounds_title">设备适配</string> - <string name="preferences_disable_barcode_scene_mode_title">不进行条形码场景匹配</string> - <string name="preferences_disable_continuous_focus_summary">使用标准对焦模式</string> - <string name="preferences_disable_continuous_focus_title">不持续对焦</string> - <string name="preferences_disable_exposure_title">不曝光</string> - <string name="preferences_disable_metering_title">不使用距离测量</string> - <string name="preferences_front_light_auto">自动</string> - <string name="preferences_front_light_off">关</string> - <string name="preferences_front_light_on">开</string> - <string name="preferences_front_light_summary">设置闪光灯模式</string> - <string name="preferences_front_light_title">闪光灯</string> - <string name="preferences_general_title">扫描设置</string> - <string name="preferences_history_summary">自动将条码存入历史记录</string> - <string name="preferences_history_title">存入历史记录</string> - <string name="preferences_invert_scan_summary">扫描黑色背景上的白色条码。仅适用于部分设备。</string> - <string name="preferences_invert_scan_title">反色</string> - <string name="preferences_name">选项</string> - <string name="preferences_orientation_title">不自动旋转</string> - <string name="preferences_play_beep_title">播放提示音</string> - <string name="preferences_remember_duplicates_summary">在历史记录中保存重复的记录</string> - <string name="preferences_remember_duplicates_title">保存重复记录</string> - <string name="preferences_result_title">搜索设置</string> - <string name="preferences_scanning_title">条码类型</string> - <string name="preferences_search_country">搜索引擎国别</string> - <string name="preferences_supplemental_summary">尝试检索关于条码内容的更多信息</string> - <string name="preferences_supplemental_title">检索更多信息</string> - <string name="preferences_vibrate_title">振动</string> - <string name="result_address_book">找到联系人信息</string> - <string name="result_calendar">找到日程</string> - <string name="result_email_address">找到电子邮件地址</string> - <string name="result_geo">找到地理坐标</string> - <string name="result_isbn">找到图书</string> - <string name="result_product">找到商品</string> - <string name="result_sms">找到短信号码</string> - <string name="result_tel">找到电话号码</string> - <string name="result_text">找到纯文本</string> - <string name="result_uri">找到 URL </string> - <string name="result_wifi">找到 Wi-Fi 配置</string> - <string name="sbc_name">Google 图书搜索</string> - <string name="wifi_changing_network">连接到 Wi-Fi \u2026</string> - - <string name="cpu_not_support_tip">对不起,您当前的设备是X86架构.\n我们只支持ARM架构的设备!</string> - <string name="request_camera_permission">需要摄像头权限。</string> - <string name="camera_permission_refused">没有获取到摄像头权限,退出PlayGround。</string> -</resources> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/attrs.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/attrs.xml deleted file mode 100755 index 6a3624e3..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/attrs.xml +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<resources> - <declare-styleable name="CircleImageView"> - <attr name="border_width" format="dimension"/> - <attr name="border_color" format="color"/> - <attr name="border_overlay" format="boolean"/> - </declare-styleable> - - <!-- Declare custom theme attributes that allow changing which styles are - used for button bars depending on the API level. - ?android:attr/buttonBarStyle is new as of API 11 so this is - necessary to support previous API levels. --> - <declare-styleable name="ButtonBarContainerTheme"> - <attr name="metaButtonBarStyle" format="reference"/> - <attr name="metaButtonBarButtonStyle" format="reference"/> - </declare-styleable> -</resources> \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/colors.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/colors.xml deleted file mode 100755 index ad29c223..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/colors.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<resources> - <color name="colorPrimary">#3F51B5</color> - <color name="colorPrimaryDark">#303F9F</color> - <color name="colorAccent">#FF4081</color> - - <color name="black_overlay">#66000000</color> -</resources> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/dimens.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/dimens.xml deleted file mode 100755 index 84d904af..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/dimens.xml +++ /dev/null @@ -1,28 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<resources> - <!-- Default screen margins, per the Android Design guidelines. --> - <dimen name="nav_header_vertical_spacing">16dp</dimen> - <dimen name="nav_header_height">160dp</dimen> - <!-- Default screen margins, per the Android Design guidelines. --> - <dimen name="activity_horizontal_margin">16dp</dimen> - <dimen name="activity_vertical_margin">16dp</dimen> - <dimen name="fab_margin">16dp</dimen> - <dimen name="text_margin">16dp</dimen> -</resources> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/drawables.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/drawables.xml deleted file mode 100755 index bab12273..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/drawables.xml +++ /dev/null @@ -1,26 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<resources xmlns:android="http://schemas.android.com/apk/res/android"> - <item name="ic_menu_camera" type="drawable">@android:drawable/ic_menu_camera</item> - <item name="ic_menu_gallery" type="drawable">@android:drawable/ic_menu_gallery</item> - <item name="ic_menu_slideshow" type="drawable">@android:drawable/ic_menu_slideshow</item> - <item name="ic_menu_manage" type="drawable">@android:drawable/ic_menu_manage</item> - <item name="ic_menu_share" type="drawable">@android:drawable/ic_menu_share</item> - <item name="ic_menu_send" type="drawable">@android:drawable/ic_menu_send</item> -</resources> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_arrays.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_arrays.xml deleted file mode 100755 index 1b34bba8..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_arrays.xml +++ /dev/null @@ -1,62 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (C) 2008 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<resources xmlns:tools="http://schemas.android.com/tools"> - <string-array name="country_codes" tools:ignore="MissingTranslation"> - <item>-</item> - <item>AR</item> - <item>AU</item> - <item>BR</item> - <item>BG</item> - <item>CA</item> - <item>CH</item> - <item>CN</item> - <item>CZ</item> - <item>DE</item> - <item>DK</item> - <item>ES</item> - <item>FI</item> - <item>FR</item> - <item>GB</item> - <item>GR</item> - <item>HU</item> - <item>ID</item> - <item>IT</item> - <item>JP</item> - <item>KR</item> - <item>NL</item> - <item>PL</item> - <item>PT</item> - <item>RO</item> - <item>RU</item> - <item>SE</item> - <item>SK</item> - <item>SI</item> - <item>TR</item> - <item>TW</item> - <item>US</item> - </string-array> - <string-array name="preferences_front_light_values" tools:ignore="MissingTranslation"> - <item>ON</item> - <item>AUTO</item> - <item>OFF</item> - </string-array> - <string-array name="preferences_front_light_options"> - <item>@string/preferences_front_light_on</item> - <item>@string/preferences_front_light_auto</item> - <item>@string/preferences_front_light_off</item> - </string-array> -</resources> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_colors.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_colors.xml deleted file mode 100755 index 07b0f96d..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_colors.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (C) 2008 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<resources> - <color name="contents_text">#ff000000</color> - <color name="encode_view">#ffffffff</color> - <color name="possible_result_points">#c0ffbd21</color> <!-- Android standard ICS color --> - <color name="result_minor_text">#ffc0c0c0</color> - <color name="result_points">#c099cc00</color> <!-- Android standard ICS color --> - <color name="result_text">#ffffffff</color> - <color name="result_view">#b0000000</color> - <color name="status_text">#ffffffff</color> - <color name="transparent">#00000000</color> - <color name="viewfinder_laser">#ffcc0000</color> <!-- Android standard ICS color --> - <color name="viewfinder_mask">#60000000</color> -</resources> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_dimens.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_dimens.xml deleted file mode 100755 index 3ac3025a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_dimens.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (C) 2008 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<resources> - <dimen name="standard_padding">8dip</dimen> - <dimen name="half_padding">4dip</dimen> -</resources> \ No newline at end of file diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_ids.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_ids.xml deleted file mode 100755 index 4c0ccb42..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_ids.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (C) 2008 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<resources> - <item type="id" name="decode"/> - <item type="id" name="decode_failed"/> - <item type="id" name="decode_succeeded"/> - <item type="id" name="launch_product_query"/> - <item type="id" name="quit"/> - <item type="id" name="restart_preview"/> - <item type="id" name="return_scan_result"/> -</resources> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_strings.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_strings.xml deleted file mode 100755 index 993cc83a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_strings.xml +++ /dev/null @@ -1,140 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (C) 2014 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<resources> - <string name="app_picker_name">Applications</string> - <string name="bookmark_picker_name">Bookmarks</string> - <string name="button_add_calendar">Add to calendar</string> - <string name="button_add_contact">Add contact</string> - <string name="button_book_search">Book Search</string> - <string name="button_cancel">Cancel</string> - <string name="button_custom_product_search">Custom search</string> - <string name="button_dial">Dial number</string> - <string name="button_email">Send email</string> - <string name="button_get_directions">Get directions</string> - <string name="button_mms">Send MMS</string> - <string name="button_ok">OK</string> - <string name="button_open_browser">Open browser</string> - <string name="button_product_search">Product search</string> - <string name="button_search_book_contents">Search contents</string> - <string name="button_share_app">Application</string> - <string name="button_share_bookmark">Bookmark</string> - <string name="button_share_by_email">Share via email</string> - <string name="button_share_by_sms">Share via SMS</string> - <string name="button_share_clipboard">Clipboard</string> - <string name="button_share_contact">Contact</string> - <string name="button_show_map">Show map</string> - <string name="button_sms">Send SMS</string> - <string name="button_web_search">Web search</string> - <string name="button_wifi">Connect to Network</string> - <string name="contents_contact">Contact info</string> - <string name="contents_email">Email address</string> - <string name="contents_location">Geographic coordinates</string> - <string name="contents_phone">Phone number</string> - <string name="contents_sms">SMS address</string> - <string name="contents_text">Plain text</string> - <string name="history_clear_text">Clear history</string> - <string name="history_clear_one_history_text">Clear</string> - <string name="history_email_title">Barcode Scanner history</string> - <string name="history_empty">Empty</string> - <string name="history_empty_detail">No barcode scans have been recorded</string> - <string name="history_send">Send history</string> - <string name="history_title">History</string> - <string name="menu_encode_mecard">Use MECARD</string> - <string name="menu_encode_vcard">Use vCard</string> - <string name="menu_help">Help</string> - <string name="menu_history">History</string> - <string name="menu_settings">Settings</string> - <string name="menu_share">Share</string> - <string name="msg_bulk_mode_scanned">Bulk mode: barcode scanned and saved</string> - <string name="msg_camera_framework_bug">Sorry, the Android camera encountered a problem. You may need to restart the device.</string> - <string name="msg_default_format">Format</string> - <string name="msg_default_meta">Metadata</string> - <string name="msg_default_mms_subject">Hi</string> - <string name="msg_default_status">请将二维码置于框内</string> - <string name="msg_default_time">Time</string> - <string name="msg_default_type">Type</string> - <string name="msg_encode_contents_failed">Could not encode a barcode from the data provided.</string> - <string name="msg_error">Error</string> - <string name="msg_google_books">Google</string> - <string name="msg_google_product">Google</string> - <string name="msg_intent_failed">Sorry, the requested application could not be launched. The barcode contents may be invalid.</string> - <string name="msg_invalid_value">Invalid value</string> - <string name="msg_redirect">Redirect</string> - <string name="msg_sbc_book_not_searchable">Sorry, this book is not searchable.</string> - <string name="msg_sbc_failed">Sorry, the search encountered a problem.</string> - <string name="msg_sbc_no_page_returned">No page returned</string> - <string name="msg_sbc_page">Page</string> - <string name="msg_sbc_results">Results</string> - <string name="msg_sbc_searching_book">Searching book\u2026</string> - <string name="msg_sbc_snippet_unavailable">Snippet not available</string> - <string name="msg_share_explanation">You can share data by displaying a barcode on your screen and scanning it with another phone.</string> - <string name="msg_share_text">Or type some text and press Enter</string> - <string name="msg_sure">Are you sure?</string> - <string name="msg_unmount_usb">Sorry, the SD card is not accessible.</string> - <string name="preferences_actions_title">When a barcode is found\u2026</string> - <string name="preferences_auto_focus_title">Use auto focus</string> - <string name="preferences_auto_open_web_title">Open web pages automatically</string> - <string name="preferences_bulk_mode_summary">Scan and save many barcodes continuously</string> - <string name="preferences_bulk_mode_title">Bulk scan mode</string> - <string name="preferences_copy_to_clipboard_title">Copy to clipboard</string> - <string name="preferences_custom_product_search_summary" formatted="false">Substitutions: %s = contents, %f = format, %t = type</string> - <string name="preferences_custom_product_search_title">Custom search URL</string> - <string name="preferences_decode_1D_industrial_title">1D Industrial</string> - <string name="preferences_decode_1D_product_title">1D Product</string> - <string name="preferences_decode_Aztec_title">Aztec</string> - <string name="preferences_decode_Data_Matrix_title">Data Matrix</string> - <string name="preferences_decode_PDF417_title">PDF417 (β)</string> - <string name="preferences_decode_QR_title">QR Codes</string> - <string name="preferences_device_bug_workarounds_title">Device Bug Workarounds</string> - <string name="preferences_disable_barcode_scene_mode_title">No barcode scene mode</string> - <string name="preferences_disable_continuous_focus_summary">Use only standard focus mode</string> - <string name="preferences_disable_continuous_focus_title">No continuous focus</string> - <string name="preferences_disable_exposure_title">No exposure</string> - <string name="preferences_disable_metering_title">No metering</string> - <string name="preferences_front_light_summary">Improves scanning in low light on some phones, but may cause glare. Does not work on all phones.</string> - <string name="preferences_front_light_title">Use front light</string> - <string name="preferences_front_light_auto">Automatic</string> - <string name="preferences_front_light_off">Off</string> - <string name="preferences_front_light_on">On</string> - <string name="preferences_general_title">General settings</string> - <string name="preferences_invert_scan_title">Invert scan</string> - <string name="preferences_invert_scan_summary">Scan for white barcodes on black background. Not available on some devices.</string> - <string name="preferences_name">Settings</string> - <string name="preferences_orientation_title">No automatic rotation</string> - <string name="preferences_play_beep_title">Beep</string> - <string name="preferences_remember_duplicates_summary">Store multiple scans of the same barcode in History</string> - <string name="preferences_remember_duplicates_title">Remember duplicates</string> - <string name="preferences_result_title">Result settings</string> - <string name="preferences_scanning_title">When scanning for barcodes, decode\u2026</string> - <string name="preferences_search_country">Search country</string> - <string name="preferences_supplemental_summary">Try to retrieve more information about the barcode contents</string> - <string name="preferences_supplemental_title">Retrieve more info</string> - <string name="preferences_vibrate_title">Vibrate</string> - <string name="result_address_book">Found contact info</string> - <string name="result_calendar">Found calendar event</string> - <string name="result_email_address">Found email address</string> - <string name="result_geo">Found geographic coordinates</string> - <string name="result_isbn">Found book</string> - <string name="result_product">Found product</string> - <string name="result_sms">Found SMS address</string> - <string name="result_tel">Found phone number</string> - <string name="result_text">Found plain text</string> - <string name="result_uri">Found URL</string> - <string name="result_wifi">Found WLAN Configuration</string> - <string name="sbc_name">Google Book Search</string> - <string name="wifi_changing_network">Requesting connection to network\u2026</string> -</resources> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_styles.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_styles.xml deleted file mode 100755 index 9d89329a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/scan_code_styles.xml +++ /dev/null @@ -1,48 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<resources> - - <!-- - Base application theme, dependent on API level. This theme is replaced - by AppBaseTheme from res/values-vXX/styles.xml on newer devices. - --> - <!--<style name="AppBaseTheme" parent="android:Theme.Light">--> - <!--<!–--> - <!--Theme customizations available in newer API levels can go in--> - <!--res/values-vXX/styles.xml, while customizations related to--> - <!--backward-compatibility can go here.--> - <!--–>--> - <!--</style>--> - - <!--<!– Application theme. –>--> - <!--<style name="AppTheme" parent="AppBaseTheme">--> - <!--<!– All customizations that are NOT specific to a particular API-level can go here. –>--> - <!--</style>--> - - <style name="ResultButton" parent="@android:style/Widget.Holo.Button.Borderless.Small"> - <item name="android:layout_width">0dip</item> - <item name="android:layout_height">wrap_content</item> - <item name="android:layout_weight">1</item> - </style> - <style name="ShareButton" parent="@android:style/Widget.Holo.Button.Borderless.Small"> - <item name="android:layout_width">wrap_content</item> - <item name="android:layout_height">wrap_content</item> - </style> - -</resources> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/strings.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/strings.xml deleted file mode 100755 index ea29bdf5..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/strings.xml +++ /dev/null @@ -1,49 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<resources> - <string name="app_name">WEEX</string> - - <string name="navigation_drawer_open">Open navigation drawer</string> - <string name="navigation_drawer_close">Close navigation drawer</string> - - <string name="action_settings">Settings</string> - <string name="hello_blank_fragment">Hello blank fragment</string> - <string name="title_activity_main2">Main2Activity</string> - <string name="title_activity_wx_main">WXMainActivity</string> - - <string name="title_activity_splash">SplashActivity</string> - <string name="dummy_button">Dummy Button</string> - <string name="dummy_content">GCanvas</string> - <string name="preferences_history_summary">Save History Automatically</string> - <string name="preferences_history_title">Save History</string> - - - - <string name="cpu_not_support_tip">Sorry, your current device is x86 architecture.\n We only - support arm architecture devices! - </string> - - <string name="index_tip">Network Error!\n1.Make sure you use the command "npm run serve" - launched local service\n2.Make sure you modify "your_current_ip" to your local IP in - "WXMainActivity" - </string> - <string name="title_activity_dynamic">DynamicActivity</string> - <string name="request_camera_permission">Camera access is required for QR code scanner.</string> - <string name="camera_permission_refused">Camera permission request was denied, Can\'t able to start QR scan.</string> -</resources> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/styles.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/styles.xml deleted file mode 100755 index f0407f1a..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/styles.xml +++ /dev/null @@ -1,50 +0,0 @@ -<!-- -Licensed to the Apache Software Foundation (ASF) under one -or more contributor license agreements. See the NOTICE file -distributed with this work for additional information -regarding copyright ownership. The ASF licenses this file -to you under the Apache License, Version 2.0 (the -"License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, -software distributed under the License is distributed on an -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied. See the License for the -specific language governing permissions and limitations -under the License. ---> -<resources> - - <!-- Base application theme. --> - <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> - <!-- Customize your theme here. --> - <item name="colorPrimary">@color/colorPrimary</item> - <item name="colorPrimaryDark">@color/colorPrimaryDark</item> - <item name="colorAccent">@color/colorAccent</item> - </style> - - <style name="AppTheme.NoActionBar"> - <item name="windowActionBar">false</item> - <item name="windowNoTitle">true</item> - </style> - - <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar"/> - - <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light"/> - - <style name="FullscreenTheme" parent="AppTheme"> - <item name="windowActionBar">false</item> - <item name="windowNoTitle">true</item> - <item name="android:windowActionBarOverlay">true</item> - <item name="android:windowBackground">@null</item> - <item name="android:windowFullscreen">true</item> - </style> - - <style name="FullscreenActionBarStyle" parent="Widget.AppCompat.ActionBar"> - <item name="android:background">@color/black_overlay</item> - </style> - -</resources> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/themes.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/themes.xml deleted file mode 100755 index 4b8e2be8..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/values/themes.xml +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - Copyright (C) 2012 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<resources> - <style name="CaptureTheme" parent="android:Theme.Holo"> - <item name="android:windowFullscreen">true</item> - <item name="android:windowContentOverlay">@null</item> - <item name="android:windowActionBarOverlay">true</item> - <item name="android:windowActionModeOverlay">true</item> - </style> -</resources> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/xml/preferences.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/xml/preferences.xml deleted file mode 100755 index 196fed10..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/xml/preferences.xml +++ /dev/null @@ -1,135 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Copyright (C) 2008 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> - <PreferenceCategory android:title="@string/preferences_scanning_title"> - <CheckBoxPreference - android:key="preferences_decode_1D_product" - android:defaultValue="true" - android:title="@string/preferences_decode_1D_product_title"/> - <CheckBoxPreference - android:key="preferences_decode_1D_industrial" - android:defaultValue="true" - android:title="@string/preferences_decode_1D_industrial_title"/> - <CheckBoxPreference - android:key="preferences_decode_QR" - android:defaultValue="true" - android:title="@string/preferences_decode_QR_title"/> - <CheckBoxPreference - android:key="preferences_decode_Data_Matrix" - android:defaultValue="true" - android:title="@string/preferences_decode_Data_Matrix_title"/> - <CheckBoxPreference - android:key="preferences_decode_Aztec" - android:defaultValue="false" - android:title="@string/preferences_decode_Aztec_title"/> - <CheckBoxPreference - android:key="preferences_decode_PDF417" - android:defaultValue="false" - android:title="@string/preferences_decode_PDF417_title"/> - </PreferenceCategory> - <PreferenceCategory android:title="@string/preferences_actions_title"> - <CheckBoxPreference - android:key="preferences_play_beep" - android:defaultValue="true" - android:title="@string/preferences_play_beep_title"/> - <CheckBoxPreference - android:key="preferences_vibrate" - android:defaultValue="false" - android:title="@string/preferences_vibrate_title"/> - <CheckBoxPreference - android:key="preferences_copy_to_clipboard" - android:defaultValue="true" - android:title="@string/preferences_copy_to_clipboard_title"/> - <CheckBoxPreference - android:key="preferences_auto_open_web" - android:defaultValue="false" - android:title="@string/preferences_auto_open_web_title"/> - <CheckBoxPreference - android:key="preferences_remember_duplicates" - android:defaultValue="false" - android:title="@string/preferences_remember_duplicates_title" - android:summary="@string/preferences_remember_duplicates_summary"/> - <CheckBoxPreference - android:key="preferences_history" - android:defaultValue="true" - android:title="@string/preferences_history_title" - android:summary="@string/preferences_history_summary"/> - <CheckBoxPreference - android:key="preferences_supplemental" - android:defaultValue="true" - android:title="@string/preferences_supplemental_title" - android:summary="@string/preferences_supplemental_summary"/> - </PreferenceCategory> - <PreferenceCategory android:title="@string/preferences_general_title"> - <ListPreference - android:entries="@array/preferences_front_light_options" - android:entryValues="@array/preferences_front_light_values" - android:key="preferences_front_light_mode" - android:defaultValue="OFF" - android:title="@string/preferences_front_light_title" - android:summary="@string/preferences_front_light_summary"/> - <CheckBoxPreference - android:key="preferences_auto_focus" - android:defaultValue="true" - android:title="@string/preferences_auto_focus_title"/> - <CheckBoxPreference - android:key="preferences_invert_scan" - android:defaultValue="false" - android:title="@string/preferences_invert_scan_title" - android:summary="@string/preferences_invert_scan_summary"/> - <CheckBoxPreference - android:key="preferences_bulk_mode" - android:defaultValue="false" - android:title="@string/preferences_bulk_mode_title" - android:summary="@string/preferences_bulk_mode_summary"/> - <CheckBoxPreference - android:key="preferences_orientation" - android:defaultValue="true" - android:title="@string/preferences_orientation_title"/> - </PreferenceCategory> - <PreferenceCategory android:title="@string/preferences_result_title"> - <EditTextPreference - android:key="preferences_custom_product_search" - android:title="@string/preferences_custom_product_search_title" - android:summary="@string/preferences_custom_product_search_summary"/> - <ListPreference - android:key="preferences_search_country" - android:defaultValue="-" - android:entries="@array/country_codes" - android:entryValues="@array/country_codes" - android:title="@string/preferences_search_country"/> - </PreferenceCategory> - <PreferenceCategory android:title="@string/preferences_device_bug_workarounds_title"> - <CheckBoxPreference - android:key="preferences_disable_continuous_focus" - android:defaultValue="true" - android:title="@string/preferences_disable_continuous_focus_title" - android:summary="@string/preferences_disable_continuous_focus_summary"/> - <CheckBoxPreference - android:key="preferences_disable_exposure" - android:defaultValue="true" - android:title="@string/preferences_disable_exposure_title"/> - <CheckBoxPreference - android:key="preferences_disable_metering" - android:defaultValue="true" - android:title="@string/preferences_disable_metering_title"/> - <CheckBoxPreference - android:key="preferences_disable_barcode_scene_mode" - android:defaultValue="true" - android:title="@string/preferences_disable_barcode_scene_mode_title"/> - </PreferenceCategory> -</PreferenceScreen> diff --git a/bridges/weex-gcanvas/android/weex_playground/src/main/res/xml/scan_code_preferences.xml b/bridges/weex-gcanvas/android/weex_playground/src/main/res/xml/scan_code_preferences.xml deleted file mode 100755 index 2af44812..00000000 --- a/bridges/weex-gcanvas/android/weex_playground/src/main/res/xml/scan_code_preferences.xml +++ /dev/null @@ -1,130 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Copyright (C) 2008 ZXing authors - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - --> -<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> - <PreferenceCategory android:title="@string/preferences_scanning_title"> - <CheckBoxPreference - android:key="preferences_decode_1D_product" - android:defaultValue="true" - android:title="@string/preferences_decode_1D_product_title"/> - <CheckBoxPreference - android:key="preferences_decode_1D_industrial" - android:defaultValue="true" - android:title="@string/preferences_decode_1D_industrial_title"/> - <CheckBoxPreference - android:key="preferences_decode_QR" - android:defaultValue="true" - android:title="@string/preferences_decode_QR_title"/> - <CheckBoxPreference - android:key="preferences_decode_Data_Matrix" - android:defaultValue="true" - android:title="@string/preferences_decode_Data_Matrix_title"/> - <CheckBoxPreference - android:key="preferences_decode_Aztec" - android:defaultValue="false" - android:title="@string/preferences_decode_Aztec_title"/> - <CheckBoxPreference - android:key="preferences_decode_PDF417" - android:defaultValue="false" - android:title="@string/preferences_decode_PDF417_title"/> - </PreferenceCategory> - <PreferenceCategory android:title="@string/preferences_actions_title"> - <CheckBoxPreference - android:key="preferences_play_beep" - android:defaultValue="true" - android:title="@string/preferences_play_beep_title"/> - <CheckBoxPreference - android:key="preferences_vibrate" - android:defaultValue="false" - android:title="@string/preferences_vibrate_title"/> - <CheckBoxPreference - android:key="preferences_copy_to_clipboard" - android:defaultValue="true" - android:title="@string/preferences_copy_to_clipboard_title"/> - <CheckBoxPreference - android:key="preferences_auto_open_web" - android:defaultValue="false" - android:title="@string/preferences_auto_open_web_title"/> - <CheckBoxPreference - android:key="preferences_remember_duplicates" - android:defaultValue="false" - android:title="@string/preferences_remember_duplicates_title" - android:summary="@string/preferences_remember_duplicates_summary"/> - <CheckBoxPreference - android:key="preferences_supplemental" - android:defaultValue="true" - android:title="@string/preferences_supplemental_title" - android:summary="@string/preferences_supplemental_summary"/> - </PreferenceCategory> - <PreferenceCategory android:title="@string/preferences_general_title"> - <ListPreference - android:entries="@array/preferences_front_light_options" - android:entryValues="@array/preferences_front_light_values" - android:key="preferences_front_light_mode" - android:defaultValue="OFF" - android:title="@string/preferences_front_light_title" - android:summary="@string/preferences_front_light_summary"/> - <CheckBoxPreference - android:key="preferences_auto_focus" - android:defaultValue="true" - android:title="@string/preferences_auto_focus_title"/> - <CheckBoxPreference - android:key="preferences_invert_scan" - android:defaultValue="false" - android:title="@string/preferences_invert_scan_title" - android:summary="@string/preferences_invert_scan_summary"/> - <CheckBoxPreference - android:key="preferences_bulk_mode" - android:defaultValue="false" - android:title="@string/preferences_bulk_mode_title" - android:summary="@string/preferences_bulk_mode_summary"/> - <CheckBoxPreference - android:key="preferences_orientation" - android:defaultValue="true" - android:title="@string/preferences_orientation_title"/> - </PreferenceCategory> - <PreferenceCategory android:title="@string/preferences_result_title"> - <EditTextPreference - android:key="preferences_custom_product_search" - android:title="@string/preferences_custom_product_search_title" - android:summary="@string/preferences_custom_product_search_summary"/> - <ListPreference - android:key="preferences_search_country" - android:defaultValue="-" - android:entries="@array/country_codes" - android:entryValues="@array/country_codes" - android:title="@string/preferences_search_country"/> - </PreferenceCategory> - <PreferenceCategory android:title="@string/preferences_device_bug_workarounds_title"> - <CheckBoxPreference - android:key="preferences_disable_continuous_focus" - android:defaultValue="true" - android:title="@string/preferences_disable_continuous_focus_title" - android:summary="@string/preferences_disable_continuous_focus_summary"/> - <CheckBoxPreference - android:key="preferences_disable_exposure" - android:defaultValue="true" - android:title="@string/preferences_disable_exposure_title"/> - <CheckBoxPreference - android:key="preferences_disable_metering" - android:defaultValue="true" - android:title="@string/preferences_disable_metering_title"/> - <CheckBoxPreference - android:key="preferences_disable_barcode_scene_mode" - android:defaultValue="true" - android:title="@string/preferences_disable_barcode_scene_mode_title"/> - </PreferenceCategory> -</PreferenceScreen> diff --git a/bridges/weex-gcanvas/android/weex_playground/tools/weex.jks b/bridges/weex-gcanvas/android/weex_playground/tools/weex.jks deleted file mode 100644 index 7e045062d717946198a7861465ba5bdf014dd1be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2174 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 IU+mPs0XYuWjQ{`u diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground.xcodeproj/project.pbxproj b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground.xcodeproj/project.pbxproj deleted file mode 100644 index 5e0539e1..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground.xcodeproj/project.pbxproj +++ /dev/null @@ -1,503 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 48; - objects = { - -/* Begin PBXBuildFile section */ - 0D8A7A7C0680C07813FDDDDF /* libPods-GCanvasPlayground.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AE521482C44A331DD7CDB91 /* libPods-GCanvasPlayground.a */; }; - A227CFC520317253005957D9 /* gcanvas-icon.png in Resources */ = {isa = PBXBuildFile; fileRef = A227CFC420317253005957D9 /* gcanvas-icon.png */; }; - A248AF812022C8F500218A11 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A248AF802022C8F500218A11 /* AppDelegate.m */; }; - A248AF842022C8F500218A11 /* ViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A248AF832022C8F500218A11 /* ViewController.m */; }; - A248AF892022C8F500218A11 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A248AF882022C8F500218A11 /* Assets.xcassets */; }; - A248AF8F2022C8F500218A11 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = A248AF8E2022C8F500218A11 /* main.m */; }; - A248AF9F2022DEB200218A11 /* WXImgLoaderDefaultImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = A248AF982022DEB200218A11 /* WXImgLoaderDefaultImpl.m */; }; - A248AFA02022DEB200218A11 /* WXEventModule.m in Sources */ = {isa = PBXBuildFile; fileRef = A248AF9A2022DEB200218A11 /* WXEventModule.m */; }; - A248AFA12022DEB200218A11 /* WXSelectComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = A248AF9D2022DEB200218A11 /* WXSelectComponent.m */; }; - A248AFA42022DF2C00218A11 /* WXConfigCenterDefaultImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = A248AFA32022DF2C00218A11 /* WXConfigCenterDefaultImpl.m */; }; - A248AFB02022E1EE00218A11 /* UIView+UIThreadCheck.m in Sources */ = {isa = PBXBuildFile; fileRef = A248AFAE2022E1EE00218A11 /* UIView+UIThreadCheck.m */; }; - A248AFB12022E1EE00218A11 /* UIViewController+NaviBar.m in Sources */ = {isa = PBXBuildFile; fileRef = A248AFAF2022E1EE00218A11 /* UIViewController+NaviBar.m */; }; - A248AFB72022E25700218A11 /* WXScannerHistoryVC.m in Sources */ = {isa = PBXBuildFile; fileRef = A248AFB32022E25700218A11 /* WXScannerHistoryVC.m */; }; - A248AFB82022E25700218A11 /* WXScannerVC.m in Sources */ = {isa = PBXBuildFile; fileRef = A248AFB62022E25700218A11 /* WXScannerVC.m */; }; - A248AFBA2022E31D00218A11 /* libstdc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = A248AFB92022E31D00218A11 /* libstdc++.tbd */; }; - A248AFBC2022E32300218A11 /* libsqlite3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = A248AFBB2022E32300218A11 /* libsqlite3.tbd */; }; - A2668A9820F30DC20084251D /* UIView+Toast.m in Sources */ = {isa = PBXBuildFile; fileRef = A2668A9720F30DC20084251D /* UIView+Toast.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 9AE521482C44A331DD7CDB91 /* libPods-GCanvasPlayground.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-GCanvasPlayground.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 9EB78634B182279779D5DA84 /* Pods-GCanvasPlayground.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-GCanvasPlayground.debug.xcconfig"; path = "Pods/Target Support Files/Pods-GCanvasPlayground/Pods-GCanvasPlayground.debug.xcconfig"; sourceTree = "<group>"; }; - A227CFC420317253005957D9 /* gcanvas-icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "gcanvas-icon.png"; sourceTree = "<group>"; }; - A248AF7C2022C8F500218A11 /* GCanvasPlayground.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GCanvasPlayground.app; sourceTree = BUILT_PRODUCTS_DIR; }; - A248AF7F2022C8F500218A11 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; - A248AF802022C8F500218A11 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; - A248AF822022C8F500218A11 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; }; - A248AF832022C8F500218A11 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; }; - A248AF882022C8F500218A11 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; - A248AF8D2022C8F500218A11 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; - A248AF8E2022C8F500218A11 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; - A248AF972022DEB200218A11 /* WXImgLoaderDefaultImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXImgLoaderDefaultImpl.h; sourceTree = "<group>"; }; - A248AF982022DEB200218A11 /* WXImgLoaderDefaultImpl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXImgLoaderDefaultImpl.m; sourceTree = "<group>"; }; - A248AF9A2022DEB200218A11 /* WXEventModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXEventModule.m; sourceTree = "<group>"; }; - A248AF9B2022DEB200218A11 /* WXEventModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXEventModule.h; sourceTree = "<group>"; }; - A248AF9D2022DEB200218A11 /* WXSelectComponent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXSelectComponent.m; sourceTree = "<group>"; }; - A248AF9E2022DEB200218A11 /* WXSelectComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXSelectComponent.h; sourceTree = "<group>"; }; - A248AFA22022DF2C00218A11 /* WXConfigCenterDefaultImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXConfigCenterDefaultImpl.h; sourceTree = "<group>"; }; - A248AFA32022DF2C00218A11 /* WXConfigCenterDefaultImpl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXConfigCenterDefaultImpl.m; sourceTree = "<group>"; }; - A248AFAB2022E11E00218A11 /* MacroDefine.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MacroDefine.h; sourceTree = "<group>"; }; - A248AFAC2022E1EE00218A11 /* UIView+UIThreadCheck.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+UIThreadCheck.h"; sourceTree = "<group>"; }; - A248AFAD2022E1EE00218A11 /* UIViewController+NaviBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIViewController+NaviBar.h"; sourceTree = "<group>"; }; - A248AFAE2022E1EE00218A11 /* UIView+UIThreadCheck.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+UIThreadCheck.m"; sourceTree = "<group>"; }; - A248AFAF2022E1EE00218A11 /* UIViewController+NaviBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIViewController+NaviBar.m"; sourceTree = "<group>"; }; - A248AFB32022E25700218A11 /* WXScannerHistoryVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXScannerHistoryVC.m; sourceTree = "<group>"; }; - A248AFB42022E25700218A11 /* WXScannerVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXScannerVC.h; sourceTree = "<group>"; }; - A248AFB52022E25700218A11 /* WXScannerHistoryVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXScannerHistoryVC.h; sourceTree = "<group>"; }; - A248AFB62022E25700218A11 /* WXScannerVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXScannerVC.m; sourceTree = "<group>"; }; - A248AFB92022E31D00218A11 /* libstdc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libstdc++.tbd"; path = "usr/lib/libstdc++.tbd"; sourceTree = SDKROOT; }; - A248AFBB2022E32300218A11 /* libsqlite3.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.tbd; path = usr/lib/libsqlite3.tbd; sourceTree = SDKROOT; }; - A2668A9620F30DC20084251D /* UIView+Toast.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIView+Toast.h"; sourceTree = "<group>"; }; - A2668A9720F30DC20084251D /* UIView+Toast.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIView+Toast.m"; sourceTree = "<group>"; }; - AA671CCA4539052673ED425C /* Pods-GCanvasPlayground.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-GCanvasPlayground.release.xcconfig"; path = "Pods/Target Support Files/Pods-GCanvasPlayground/Pods-GCanvasPlayground.release.xcconfig"; sourceTree = "<group>"; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - A248AF792022C8F500218A11 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - A248AFBC2022E32300218A11 /* libsqlite3.tbd in Frameworks */, - A248AFBA2022E31D00218A11 /* libstdc++.tbd in Frameworks */, - 0D8A7A7C0680C07813FDDDDF /* libPods-GCanvasPlayground.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 0497F49CEC06EDC36E899C39 /* Frameworks */ = { - isa = PBXGroup; - children = ( - A248AFBB2022E32300218A11 /* libsqlite3.tbd */, - A248AFB92022E31D00218A11 /* libstdc++.tbd */, - 9AE521482C44A331DD7CDB91 /* libPods-GCanvasPlayground.a */, - ); - name = Frameworks; - sourceTree = "<group>"; - }; - A248AF732022C8F500218A11 = { - isa = PBXGroup; - children = ( - A248AF7E2022C8F500218A11 /* GCanvasPlayground */, - A248AF7D2022C8F500218A11 /* Products */, - ABD01D9DA6E2A0B7A026C974 /* Pods */, - 0497F49CEC06EDC36E899C39 /* Frameworks */, - ); - sourceTree = "<group>"; - }; - A248AF7D2022C8F500218A11 /* Products */ = { - isa = PBXGroup; - children = ( - A248AF7C2022C8F500218A11 /* GCanvasPlayground.app */, - ); - name = Products; - sourceTree = "<group>"; - }; - A248AF7E2022C8F500218A11 /* GCanvasPlayground */ = { - isa = PBXGroup; - children = ( - A248AFB22022E25700218A11 /* Scanner */, - A248AF952022DEB200218A11 /* extend */, - A248AF7F2022C8F500218A11 /* AppDelegate.h */, - A248AF802022C8F500218A11 /* AppDelegate.m */, - A248AF822022C8F500218A11 /* ViewController.h */, - A248AF832022C8F500218A11 /* ViewController.m */, - A248AFAC2022E1EE00218A11 /* UIView+UIThreadCheck.h */, - A248AFAE2022E1EE00218A11 /* UIView+UIThreadCheck.m */, - A248AFAD2022E1EE00218A11 /* UIViewController+NaviBar.h */, - A248AFAF2022E1EE00218A11 /* UIViewController+NaviBar.m */, - A2668A9620F30DC20084251D /* UIView+Toast.h */, - A2668A9720F30DC20084251D /* UIView+Toast.m */, - A248AFAB2022E11E00218A11 /* MacroDefine.h */, - A248AF882022C8F500218A11 /* Assets.xcassets */, - A248AF8D2022C8F500218A11 /* Info.plist */, - A248AF8E2022C8F500218A11 /* main.m */, - A227CFC420317253005957D9 /* gcanvas-icon.png */, - ); - path = GCanvasPlayground; - sourceTree = "<group>"; - }; - A248AF952022DEB200218A11 /* extend */ = { - isa = PBXGroup; - children = ( - A248AF962022DEB200218A11 /* handler */, - A248AF992022DEB200218A11 /* module */, - A248AF9C2022DEB200218A11 /* component */, - ); - path = extend; - sourceTree = "<group>"; - }; - A248AF962022DEB200218A11 /* handler */ = { - isa = PBXGroup; - children = ( - A248AFA22022DF2C00218A11 /* WXConfigCenterDefaultImpl.h */, - A248AFA32022DF2C00218A11 /* WXConfigCenterDefaultImpl.m */, - A248AF972022DEB200218A11 /* WXImgLoaderDefaultImpl.h */, - A248AF982022DEB200218A11 /* WXImgLoaderDefaultImpl.m */, - ); - path = handler; - sourceTree = "<group>"; - }; - A248AF992022DEB200218A11 /* module */ = { - isa = PBXGroup; - children = ( - A248AF9A2022DEB200218A11 /* WXEventModule.m */, - A248AF9B2022DEB200218A11 /* WXEventModule.h */, - ); - path = module; - sourceTree = "<group>"; - }; - A248AF9C2022DEB200218A11 /* component */ = { - isa = PBXGroup; - children = ( - A248AF9D2022DEB200218A11 /* WXSelectComponent.m */, - A248AF9E2022DEB200218A11 /* WXSelectComponent.h */, - ); - path = component; - sourceTree = "<group>"; - }; - A248AFB22022E25700218A11 /* Scanner */ = { - isa = PBXGroup; - children = ( - A248AFB52022E25700218A11 /* WXScannerHistoryVC.h */, - A248AFB32022E25700218A11 /* WXScannerHistoryVC.m */, - A248AFB42022E25700218A11 /* WXScannerVC.h */, - A248AFB62022E25700218A11 /* WXScannerVC.m */, - ); - path = Scanner; - sourceTree = "<group>"; - }; - ABD01D9DA6E2A0B7A026C974 /* Pods */ = { - isa = PBXGroup; - children = ( - 9EB78634B182279779D5DA84 /* Pods-GCanvasPlayground.debug.xcconfig */, - AA671CCA4539052673ED425C /* Pods-GCanvasPlayground.release.xcconfig */, - ); - name = Pods; - sourceTree = "<group>"; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - A248AF7B2022C8F500218A11 /* GCanvasPlayground */ = { - isa = PBXNativeTarget; - buildConfigurationList = A248AF922022C8F500218A11 /* Build configuration list for PBXNativeTarget "GCanvasPlayground" */; - buildPhases = ( - 75B6C7D09BE1D4BFCB68413C /* [CP] Check Pods Manifest.lock */, - A248AF782022C8F500218A11 /* Sources */, - A248AF792022C8F500218A11 /* Frameworks */, - A248AF7A2022C8F500218A11 /* Resources */, - FD0271D9309821EF8389987C /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = GCanvasPlayground; - productName = GCanvasPlayground; - productReference = A248AF7C2022C8F500218A11 /* GCanvasPlayground.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - A248AF742022C8F500218A11 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0910; - ORGANIZATIONNAME = taobao; - TargetAttributes = { - A248AF7B2022C8F500218A11 = { - CreatedOnToolsVersion = 9.1; - ProvisioningStyle = Automatic; - }; - }; - }; - buildConfigurationList = A248AF772022C8F500218A11 /* Build configuration list for PBXProject "GCanvasPlayground" */; - compatibilityVersion = "Xcode 8.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = A248AF732022C8F500218A11; - productRefGroup = A248AF7D2022C8F500218A11 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - A248AF7B2022C8F500218A11 /* GCanvasPlayground */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - A248AF7A2022C8F500218A11 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A227CFC520317253005957D9 /* gcanvas-icon.png in Resources */, - A248AF892022C8F500218A11 /* Assets.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 75B6C7D09BE1D4BFCB68413C /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-GCanvasPlayground-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - FD0271D9309821EF8389987C /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-GCanvasPlayground/Pods-GCanvasPlayground-resources.sh", - "${PODS_ROOT}/WeexSDK/pre-build/native-bundle-main.js", - "${PODS_ROOT}/WeexSDK/pre-build/weex-main-jsfm.js", - "${PODS_ROOT}/WeexSDK/pre-build/weex-polyfill.js", - "${PODS_ROOT}/WeexSDK/pre-build/weex-rax-api.js", - "${PODS_ROOT}/WeexSDK/ios/sdk/WeexSDK/Resources/wx_load_error@3x.png", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/native-bundle-main.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-main-jsfm.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-polyfill.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-rax-api.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/wx_load_error@3x.png", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-GCanvasPlayground/Pods-GCanvasPlayground-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - A248AF782022C8F500218A11 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A248AFA02022DEB200218A11 /* WXEventModule.m in Sources */, - A248AFB72022E25700218A11 /* WXScannerHistoryVC.m in Sources */, - A248AFB02022E1EE00218A11 /* UIView+UIThreadCheck.m in Sources */, - A248AFA42022DF2C00218A11 /* WXConfigCenterDefaultImpl.m in Sources */, - A248AF842022C8F500218A11 /* ViewController.m in Sources */, - A248AFB82022E25700218A11 /* WXScannerVC.m in Sources */, - A248AFA12022DEB200218A11 /* WXSelectComponent.m in Sources */, - A2668A9820F30DC20084251D /* UIView+Toast.m in Sources */, - A248AF9F2022DEB200218A11 /* WXImgLoaderDefaultImpl.m in Sources */, - A248AF8F2022C8F500218A11 /* main.m in Sources */, - A248AFB12022E1EE00218A11 /* UIViewController+NaviBar.m in Sources */, - A248AF812022C8F500218A11 /* AppDelegate.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - A248AF902022C8F500218A11 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - A248AF912022C8F500218A11 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - A248AF932022C8F500218A11 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9EB78634B182279779D5DA84 /* Pods-GCanvasPlayground.debug.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ""; - ENABLE_BITCODE = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "COCOAPODS=1", - WEBGL_EXTENSION, - ); - GCC_WARN_INHIBIT_ALL_WARNINGS = YES; - INFOPLIST_FILE = GCanvasPlayground/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.taobao.GCanvasPlayground.a; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = 1; - WARNING_CFLAGS = "-Wno-documentation"; - }; - name = Debug; - }; - A248AF942022C8F500218A11 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AA671CCA4539052673ED425C /* Pods-GCanvasPlayground.release.xcconfig */; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ""; - ENABLE_BITCODE = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "$(inherited)", - "COCOAPODS=1", - WEBGL_EXTENSION, - ); - GCC_WARN_INHIBIT_ALL_WARNINGS = YES; - INFOPLIST_FILE = GCanvasPlayground/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.taobao.GCanvasPlayground.a; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = 1; - WARNING_CFLAGS = "-Wno-documentation"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - A248AF772022C8F500218A11 /* Build configuration list for PBXProject "GCanvasPlayground" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A248AF902022C8F500218A11 /* Debug */, - A248AF912022C8F500218A11 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - A248AF922022C8F500218A11 /* Build configuration list for PBXNativeTarget "GCanvasPlayground" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A248AF932022C8F500218A11 /* Debug */, - A248AF942022C8F500218A11 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = A248AF742022C8F500218A11 /* Project object */; -} diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground.xcodeproj/xcshareddata/xcschemes/GCanvasPlayground.xcscheme b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground.xcodeproj/xcshareddata/xcschemes/GCanvasPlayground.xcscheme deleted file mode 100644 index d46cdde8..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground.xcodeproj/xcshareddata/xcschemes/GCanvasPlayground.xcscheme +++ /dev/null @@ -1,91 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "0910" - version = "1.3"> - <BuildAction - parallelizeBuildables = "YES" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "A248AF7B2022C8F500218A11" - BuildableName = "GCanvasPlayground.app" - BlueprintName = "GCanvasPlayground" - ReferencedContainer = "container:GCanvasPlayground.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - </BuildActionEntries> - </BuildAction> - <TestAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES"> - <Testables> - </Testables> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "A248AF7B2022C8F500218A11" - BuildableName = "GCanvasPlayground.app" - BlueprintName = "GCanvasPlayground" - ReferencedContainer = "container:GCanvasPlayground.xcodeproj"> - </BuildableReference> - </MacroExpansion> - <AdditionalOptions> - </AdditionalOptions> - </TestAction> - <LaunchAction - buildConfiguration = "Release" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - launchStyle = "0" - useCustomWorkingDirectory = "NO" - ignoresPersistentStateOnLaunch = "NO" - debugDocumentVersioning = "YES" - debugServiceExtension = "internal" - allowLocationSimulation = "YES"> - <BuildableProductRunnable - runnableDebuggingMode = "0"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "A248AF7B2022C8F500218A11" - BuildableName = "GCanvasPlayground.app" - BlueprintName = "GCanvasPlayground" - ReferencedContainer = "container:GCanvasPlayground.xcodeproj"> - </BuildableReference> - </BuildableProductRunnable> - <AdditionalOptions> - </AdditionalOptions> - </LaunchAction> - <ProfileAction - buildConfiguration = "Release" - shouldUseLaunchSchemeArgsEnv = "YES" - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES"> - <BuildableProductRunnable - runnableDebuggingMode = "0"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "A248AF7B2022C8F500218A11" - BuildableName = "GCanvasPlayground.app" - BlueprintName = "GCanvasPlayground" - ReferencedContainer = "container:GCanvasPlayground.xcodeproj"> - </BuildableReference> - </BuildableProductRunnable> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Debug"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Release" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme> diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/AppDelegate.h b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/AppDelegate.h deleted file mode 100644 index 9bca368f..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/AppDelegate.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import <UIKit/UIKit.h> - -@interface AppDelegate : UIResponder <UIApplicationDelegate> - -@property (strong, nonatomic) UIWindow *window; - - -@end - diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/AppDelegate.m b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/AppDelegate.m deleted file mode 100644 index 8d762b13..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/AppDelegate.m +++ /dev/null @@ -1,202 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "AppDelegate.h" -#import <AVFoundation/AVFoundation.h> - -#import <WeexSDK/WeexSDK.h> -//#import <ATSDK/ATManager.h> - -#import "ViewController.h" -#import "MacroDefine.h" -#import "UIView+UIThreadCheck.h" -#import "UIViewController+NaviBar.h" - -#import "WXImgLoaderDefaultImpl.h" -#import "WXEventModule.h" -#import "WXConfigCenterDefaultImpl.h" - - -@interface AppDelegate () - -@end - -@implementation AppDelegate - - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - // Override point for customization after application launch. - - self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; - self.window.backgroundColor = [UIColor whiteColor]; - - [self initWeexSDK]; - - self.window.rootViewController = [[WXRootViewController alloc] initWithRootViewController:[self ViewController]]; - [self.window makeKeyAndVisible]; - - [self startSplashScreen]; - -#if DEBUG - // check if there are any UI changes on main thread. - [UIView wx_checkUIThread]; -#endif - - return YES; -} - -#pragma mark weex -- (void)initWeexSDK -{ - [WXAppConfiguration setAppGroup:@"GCanvas"]; - [WXAppConfiguration setAppName:@"GCanvasPlayground"]; - [WXAppConfiguration setExternalUserAgent:@"ExternalUA"]; - - [WXSDKEngine initSDKEnvironment]; - - [WXSDKEngine registerHandler:[WXImgLoaderDefaultImpl new] withProtocol:@protocol(WXImgLoaderProtocol)]; - [WXSDKEngine registerHandler:[WXEventModule new] withProtocol:@protocol(WXEventModuleProtocol)]; - [WXSDKEngine registerHandler:[WXConfigCenterDefaultImpl new] withProtocol:@protocol(WXConfigCenterProtocol)]; - - [WXSDKEngine registerComponent:@"select" withClass:NSClassFromString(@"WXSelectComponent")]; - [WXSDKEngine registerModule:@"event" withClass:[WXEventModule class]]; - -#ifdef DEBUG -// [self atAddPlugin]; - [WXDebugTool setDebug:YES]; - [WXLog setLogLevel:WXLogLevelLog]; - -// #ifndef UITEST -// [[ATManager shareInstance] show]; -// #endif - -#else - [WXDebugTool setDebug:NO]; - [WXLog setLogLevel:WXLogLevelError]; -#endif -} - - -- (UIViewController *)ViewController -{ - UIViewController *demo = [[ViewController alloc] init]; -#if DEBUG - //If you are debugging in device , please change the host to current IP of your computer. - ((ViewController *)demo).url = [NSURL URLWithString:HOME_URL]; -#else - ((ViewController *)demo).url = [NSURL URLWithString:BUNDLE_URL]; -#endif - return demo; -} - -#pragma mark animation when startup -- (void)startSplashScreen -{ - UIView* splashView = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; - splashView.backgroundColor = GCANVAS_COLOR; - - UIImageView *iconImageView = [UIImageView new]; - UIImage *icon = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"gcanvas-icon" ofType:@"png"]]; - if ([icon respondsToSelector:@selector(imageWithRenderingMode:)]) { -// iconImageView.image = [icon imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; -// iconImageView.tintColor = [UIColor whiteColor]; - } else { - iconImageView.image = icon; - } - iconImageView.image = icon; - - iconImageView.frame = CGRectMake(0, 0, 320, 320); - iconImageView.contentMode = UIViewContentModeScaleAspectFit; - iconImageView.center = splashView.center; - [splashView addSubview:iconImageView]; - - [self.window addSubview:splashView]; - - float animationDuration = 1.4; - CGFloat shrinkDuration = animationDuration * 0.3; - CGFloat growDuration = animationDuration * 0.7; - - if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) { - [UIView animateWithDuration:shrinkDuration delay:1.0 usingSpringWithDamping:0.7f initialSpringVelocity:10 options:UIViewAnimationOptionCurveEaseInOut animations:^{ - CGAffineTransform scaleTransform = CGAffineTransformMakeScale(0.75, 0.75); - iconImageView.transform = scaleTransform; - } completion:^(BOOL finished) { - [UIView animateWithDuration:growDuration animations:^{ - CGAffineTransform scaleTransform = CGAffineTransformMakeScale(3, 3); - iconImageView.transform = scaleTransform; - splashView.alpha = 0; - } completion:^(BOOL finished) { - [splashView removeFromSuperview]; - }]; - }]; - } else { - [UIView animateWithDuration:shrinkDuration delay:1.0 options:0 animations:^{ - CGAffineTransform scaleTransform = CGAffineTransformMakeScale(0.75, 0.75); - iconImageView.transform = scaleTransform; - } completion:^(BOOL finished) { - [UIView animateWithDuration:growDuration animations:^{ - CGAffineTransform scaleTransform = CGAffineTransformMakeScale(3, 3); - iconImageView.transform = scaleTransform; - splashView.alpha = 0; - } completion:^(BOOL finished) { - [splashView removeFromSuperview]; - }]; - }]; - } -} - -#pragma mark - -//- (void)atAddPlugin { -// [[ATManager shareInstance] addPluginWithId:@"weex" andName:@"weex" andIconName:@"../weex" andEntry:@"" andArgs:@[@""]]; -// [[ATManager shareInstance] addSubPluginWithParentId:@"weex" andSubId:@"logger" andName:@"logger" andIconName:@"log" andEntry:@"WXATLoggerPlugin" andArgs:@[@""]]; -// [[ATManager shareInstance] addSubPluginWithParentId:@"weex" andSubId:@"test2" andName:@"test" andIconName:@"at_arr_refresh" andEntry:@"" andArgs:@[]]; -// [[ATManager shareInstance] addSubPluginWithParentId:@"weex" andSubId:@"test3" andName:@"test" andIconName:@"at_arr_refresh" andEntry:@"" andArgs:@[]]; -//} - - - -- (void)applicationWillResignActive:(UIApplication *)application { - // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. - // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. -} - - -- (void)applicationDidEnterBackground:(UIApplication *)application { - // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. - // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. -} - - -- (void)applicationWillEnterForeground:(UIApplication *)application { - // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. -} - - -- (void)applicationDidBecomeActive:(UIApplication *)application { - // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. -} - - -- (void)applicationWillTerminate:(UIApplication *)application { - // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. -} - - -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Contents.json b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index be578af2..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "3x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-29@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-29@3x.png", - "scale" : "3x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-40@2x-1.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-40@3x.png", - "scale" : "3x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-60@2x.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-60@3x.png", - "scale" : "3x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-29.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-29@2x-1.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-40.png", - "scale" : "1x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-40@2x.png", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-76.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-76@2x.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", - "idiom" : "ipad", - "filename" : "Icon-83.5@2x.png", - "scale" : "2x" - }, - { - "idiom" : "ios-marketing", - "size" : "1024x1024", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-29.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-29.png deleted file mode 100644 index a089684d6415ac30465bc6217eb0d0523370541f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2323 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 diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-29@2x-1.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-29@2x-1.png deleted file mode 100644 index 2837a33122c46c34ae6d93420ff6dbff75b05e0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3969 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 aPaeRrBV+C2!eZ?G6dUWC>y_v@hyM?4Oc@;j diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-29@2x.png deleted file mode 100644 index 2837a33122c46c34ae6d93420ff6dbff75b05e0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3969 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 aPaeRrBV+C2!eZ?G6dUWC>y_v@hyM?4Oc@;j diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-29@3x.png deleted file mode 100644 index 7ae89e10bc2c945d9fa7f90c0d4e0bf90981d0be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5876 zcmaJ_cQ~8t-;bEB+G5wNS;R<05X7pqHEM4)qDDy,gxQ=`?=QoB0rQ7ZOoQCn)% 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 b=S{#U{$6*XhA{m1e`u7hp-!pRO~U^GH3p{{ diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-40.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-40.png deleted file mode 100644 index db45b77976113d75a8f667f1f1721c4e1d29a05d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2935 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 bE*VMyHHNes!(wFo>aVb?lLx*E7a0FHF|zYo diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-40@2x-1.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-40@2x-1.png deleted file mode 100644 index 97e82ceb394d9cf6f5e23b4179be8e55a9c61181..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5433 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 diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-40@2x.png deleted file mode 100644 index 97e82ceb394d9cf6f5e23b4179be8e55a9c61181..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5433 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 diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-40@3x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-40@3x.png deleted file mode 100644 index 4772ca5e193df19219e9a0d1f8ae4f3c8caa3439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7209 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 diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png deleted file mode 100644 index 8611e4000491b53bc2fd0a001010c3dae73230e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7997 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 H+J^ieD(AYS diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png deleted file mode 100644 index 951e01358a7d0fa7724708970a786289ade8712d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10605 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 S40r!DKtkkH!BrsBp#K9TO5YOz diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-76.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-76.png deleted file mode 100644 index e1671bc030e1750ded3b7ed8ac81a36f5eb98831..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5172 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 diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-76@2x.png deleted file mode 100644 index d27ab8c7e64b9a3265ed38289a0c24566db1c6e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9865 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 V5P(bT@oX4CML|QpS{DB5{{X;K9s&RW diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/AppIcon.appiconset/Icon-83.5@2x.png deleted file mode 100644 index a08f5fad7bffac161878d592a2e3fa78b30d28a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9956 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 diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/Contents.json b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/Contents.json deleted file mode 100644 index da4a164c..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Contents.json b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Contents.json deleted file mode 100644 index a0581443..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Contents.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "images" : [ - { - "extent" : "full-screen", - "idiom" : "iphone", - "subtype" : "736h", - "filename" : "Default@3x.png", - "minimum-system-version" : "8.0", - "orientation" : "portrait", - "scale" : "3x" - }, - { - "extent" : "full-screen", - "idiom" : "iphone", - "subtype" : "736h", - "filename" : "Default@3x-1.png", - "minimum-system-version" : "8.0", - "orientation" : "landscape", - "scale" : "3x" - }, - { - "extent" : "full-screen", - "idiom" : "iphone", - "subtype" : "667h", - "filename" : "Default-4.7@2x.png", - "minimum-system-version" : "8.0", - "orientation" : "portrait", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "filename" : "Default@2x.png", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "scale" : "2x" - }, - { - "extent" : "full-screen", - "idiom" : "iphone", - "subtype" : "retina4", - "filename" : "Default-568h@2x.png", - "minimum-system-version" : "7.0", - "orientation" : "portrait", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "scale" : "1x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "scale" : "1x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "scale" : "2x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "filename" : "Default.png", - "extent" : "full-screen", - "scale" : "1x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "filename" : "Default@2x-1.png", - "extent" : "full-screen", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "filename" : "Default-568h@2x-1.png", - "extent" : "full-screen", - "subtype" : "retina4", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "to-status-bar", - "scale" : "1x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "full-screen", - "scale" : "1x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "to-status-bar", - "scale" : "1x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "full-screen", - "scale" : "1x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "to-status-bar", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "full-screen", - "scale" : "2x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "to-status-bar", - "scale" : "2x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "full-screen", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default-4.7@2x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default-4.7@2x.png deleted file mode 100644 index 746c9e863b1f56f672d20c9a889e3d48ce9ab9b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23453 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 IY2sV|1-`!s(*OVf diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x-1.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x-1.png deleted file mode 100644 index 515629e194a56ca32332f6d7c49f320d59dbf3ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23051 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 G{Qm>3a1g`* diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png deleted file mode 100644 index aff12463544429831528a07814faba7e3b41d9fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23051 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 G&;J*!ju68D diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default.png deleted file mode 100644 index 0268f66af5f553b85aefedd711532c23af6f053b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17825 zcmeI4d010d7Qk;7LZDEhpaL#D&??nJ5*8s5Vi2rQiz0%cMJ132L?H=DG)P4P)U_^D zomN_f)TtGzqF5I?Zec2JRRQ;niYsVEQ4z3Io%50a55&pLeDi1WeF-=Bo#me2S>F36 zERUEp!PeT@8X;sG78(+X5Jd>@Iwk{lF09-W0)MRJq0^NJ_5Xl)Q^F#LH6cVFEC~*d zh)9vCWXcqo919B$#^efFk|Y&JDC63yzs*c_h<033RLk?8OFbKH;SpA#rMhmJu5-7g z)HZrv|L2U+*ZWHnH(!5nwYKd1)u*RZUs}Z+4Y^}mtX^`oO+6tYVKXJ$EyLB%@l&St zl?^H7nl}5seWeZ$D^t~$DV53>XFfmtB<skNz~m%s-nQHA(sQ{^?5KO=E?x5zh_-mH zyUYE$=FILDgWC!sw=pB0W_{CsX@^S~in~(Y_By*1pX#;C^(m`*gY_e)&_U=`dE-y4 z$eFrJufBH~SHe_n%erHqpXt<4GCrND3jg@&K;bve9(KZq{_)pdoO1YK5<0Ywd$9kP ze;<MxMutuvd3@ig#oMDJSC!m36??$$%Il)J$I?6-b}+uSJU{e6&Wrqvw34;gZJUE` ze=+mq8Z=pW`_%TI)#d$eKK(V-DfYdSzGohk+3cdM&5Pcv{OERANv2Znx~MfGtJxyn zV%U)v!<V-1nZv$Xp`-6&tW`f$6f>JONxWOtDN#Q)Myz^P7#j1_q?2(&8Y~*mJUI4P zadcbOkkhO04)C|TXu0IGwqIgK9{5D)mvSU*f5hrNd$Rx9b>U%9bH-yi_gr6|)7=UE zn|2BKjt{K;qW->PM*8-Lj|R=TmpvmU@7}b9mFkI=#eRX?zP(rGKKsc}#S2|;Uzm7q z;M}Kw{QM|9D&J>ANWz`;fnR!A?2c`7caBPze~3NJcONDllRR`?DD}rF{-@p2t@79B z7f-{N?p$*8j<dDpcR7V?BneaM?E)T_9i%+;d0OmIVgEvLsPa5()c6^xeI#Y!4wduE zqMH+!Cs!&HmY!I?r(wYLYkRj`3F+@!x_`l}Ez6H?K0Ryq#)=Pq$o*|+h7Ys9`d+MB znU!3>Ec0YpmCK<%&ri9=^Y2f)Q4?tQEbd6j?DOo0F)x1mGj2rio9RX8>zjX5pE*}v zh5u4_Hqe`0__vD6Elb3V<#|h2o;k=po8HnCvu1vV=ZbagS+R>+<QK<Wstsy<K0$Wk z@=}?t@`wF-KW2aOrr_{~MPpx0`BU9ExY4_DZsYov#q-~vIA+JDn!`1R&kJe}uiSL; zoVqxxMVyc|@!<GFUzaCcio*rc`=>A7Uzb$&YjUZNUqRk|zISrzoTAU-*pCZ;^_N~R zs@%Kz;1%1@fYUx_`^qjl4tc-*D|hP1@{B<TM{JG$F!SheuBxi>_mTUSxA=Vg`w1tf zj}r50WT{^BoeEZ$l$|}{^y(OYX!hmCJ>P7ITJlWD<Wx7=jodoTZpWDi&EC_Fwa%2- zE|@=iXLS0^iM+j;j<KIGBF~)KCTLkTIkslRtE2*Yer)>Tyv0?&wj2?*f1elbb1MXm zDtZ|I$AMd4wbtD|KY!|(eXsj0KibNQ+Ml|*@ayEDH~6C0_h*D2vfY34+oCt^c`sjH zcgY=XxwST%qAgk&T_N9{gOLALNmQ&VHvCh5qAbl*B$g%Mo*8L!7%K<`jLndX66fM7 zECElJNCVxT95~{JNyLF}F}~rPaCtDEA_>h@;8QavMI~m=P2`E)#tN(hGWcL14OfY< zjI>m#lAjUirnk$7HL=Zh!}KDmxq)s$ghMPgJOT@rDR9i!bF@by*V`ZS<9Tv@dH!BL zA7Ne`?r1iL$L9KYaJYO9kI&&^#+RGG8dd=caS}f=<YS{d_!j7vqEgBEY_?jh_EdX& z$`r|LE|14!bG+DIULGLfp<EzUi84H-%Ap1$9d<%+WuihNS4m`2jIb+8kj+yCy15aK zI$y@P(&U|vq)H<@pvcY;$=O^_4!bucabl;Ae4Zjze>8C-8&Ad4aH&cOdfZ<1<Q=2D zQ@xwZ&dcv~3^@r8?_Ig$ylH8@x>l;j&j$oXq}|+hXey%?$Z>Wgu9VGFB;w=eLnuRg zi(Vy3>Pk*GOT?9To*mDSyhDw+Vo=kUf+0fz5Gy}efs0gl2)qSQLH-^bFAokcip$}1 z{P|qoDEQ=X0@ytyyRxje5iS!;k`{Ec!S#yb`trHnd@l~!21&A~4XAjrNG1A@tdM1U z*wM!$Q$)#RsRBdSblu(I<_<CXVea9gM2VER<$p*D&8S4OCr;!i$rNcKl|YgvO2*l8 zX>tI&Ym+3|Sy%jES*lC{Vd4Vs0CsQNy=uX8M}*<ALoflC;tEM37CB)YX51qiB1w`g z>8q9>CRM6L(nLHgL;xF}5{a14<9Q|EK0J<xSnTiP;e-45dnE9<UhtLc!}akRjq`9r zdc(uX>Tj72ktNO}I?rfY{9l?TslR1<vO)q=Q<O@QAx{6_y6DBsTdqPSN|j8pfYbxf z3HrG>6;JQJ+i@XPqMvVakwS?R-5coE(Y~Dnv2)%LI{GQV7bOytQJ@sf$Hf8cZhKva z>eMqTN&eUL8SInP-|a)4f=fFay_Y66n9@tV+lW$@q*99%cu+D_#DCUh2D{xA-|ZkV zMI=qe#R7H*yN->XDgkWb=94Pvo;$;C_mt`z9g6(z5(pq>Dj&)Rf)VM{#tmS<wb$j@ zARkMVLFzn%ypInDUTiM$Y1AcO@2NZ8gf97dPu(unXsJXc@G`pVu}#t<M!#VyO@*fv zTrk?#*V{LM-E+IAMua2-PmK+cK+`LUQug+O$n;7*uk@-py-U-_zndoMic!;$F47Z) zKAVPJcwT`=C3fetQujo6cF_NM(G}AF*)Z9h*$J73$+a1mNkn7;GcGa>lWQ|BlZeOy zW?W<%Cf8<MCJ~VZ%(%!jOs>tiOd=u+m~oM5m|UB2nM6buFykWAFu6A4GKq*RV8%tJ zVRCK8WfBotz>JGb!{pkG%OoPQfEgE=hRL-Vmq|oq0W&T#4U=m#E|ZAJ0%lxf8Yb6f zTqY5b1<bg}G)%6|xJ)7<3z%_{X_#D_ahXI!7BJ%?(=fR<<1&eeEMUe(reShz#$^%_ zS-^~oOvB{bjLRe<vVa*EnTE-=8J9^!WC1fSG7Xb!GcJ>e$O2|uWEv*dW?Uu_kp;}S z$TUo@|1B=-u3sPGQuxWC8h%?C{wysTewT<PhDL@Xl(qpO<!XeUeU8u<*ASAfN9dk2 zLf#_~avD$&HYgh*=ESg&ps0*%k7_H*290M4D@sIZN0Ci_pSET8j@&arD{Md2EGihW zX<o(@-`eZh*>CO~fBDCgvGtp7Ce@$bI9QWg-_EY3?WWLKLd^`c=8cWkS$GpsMsbAh zn)X4XIPp|^s72GkKL%p3VhIr;2p{FcHIFIO;e^hSRus6zT0BCx*OE3ZUK4@V^mE)r zrKzapYnmuEsPOW`_twY6+tR^DsActsoP1mD)Oek>O@y`fmK}#eWn$oJQcg}P+C(J` zgn~J=fpDaC5L)Vlr<0F;uF>>!1eNOV(5t@m6O3whkR}yT)>3@_q6{aFvy5I%;Y8SI zFUQ0Fk+F-FcC64+oi`k@2F-EFFEm=KchOj}wEcxkF@wE$3kDn@&dCrl?CImHJB9dk z%BLE%7x66^D=5tqzS6YN8wO&m=LIh>&t6Omouol<Y~n+%Mw{}`RrC*QCLDPVWn%$v zBr}Ru-VzTS39ousUVyR{<s_lNr53R{u#5E-X4^v`0CvAlm|-EfqyN+LSv>X&l_rjf z2i0PW>i#x*4q)T)``S?&!{N8;-afoN!SMBPW_2MNoQo<^W*_I2$(nufT1R6t6&9C- z*g)ZDL_Uix40(h@EX9OejpsPpRaB_f(?^i_Bs~@I{MZf?j?pX;>gdK`(@-mKkrfp# zMN(9DEMPZ`mcpc;v#*;Hq;=NKbFhh`b#iIt{d{(;CIM9)P;Sgd(}<9|>PNq7yJ=B9 zKE+`DE0k$N0fQH)4J^98Ds-<XH|qWMiP#2J)MmMUgm9}4&fET1$xW^mwbDwSoU|$j zHXz_dc0t>9LIritE2{p>LK=PTs9lW%PL%3MsTz!EaCK(|0x!-s)wA@eZ~#P5e1XgD z_Qb>oV^E&1L}V9?8D?2&gIU0F!1p<ut5$wl4e&92Y9T*7Cg5aR$cyf<=qZe9Uq|gB zYCD4|CZKe*R2GeHC?z^&yACjD+G!2?pd;R^TX5Nx$tpx?6&<AqnJ%?~_JCADnypyC zhGo@JtW<jW7|oAD>=5-kYR)4%GvB7}>}f8QdeKUrMW?TzTo7P^L_0xU-WV**b{q^P zAk{%}I#Vh70;!K4s|_$pFfm;%MP<u?W(tDNsS_NhGrt%C{vjTyN?9(tW!1Fuh!xdP zuYH6?Zy=YoG>Gf3LMm-oOuXiiwN3se<jZnrRQo}VG;Ea%y)<JMSz9(!%d2VxS|{D} z(#8SIoyH7&kN#u<ng(~rPzIzOLIkAEL>NR7{%*un*n0WFP5{88%yEHZwN@qkgF$$+ z$MR?9P<B%w!TPDAj?1I`)1E-(By6Oev)A?mvvMeh1s0<bRX;{rd4)$UZ;#q##VWRF zYIn@FVi_7Y;ytZQBg~{W+p^#!O_o1EyV+wv8`D=M<dq1A31Y!47&<T{U^YV5d>x5h z>pG_@kzwkD(&fkT6wF!Y?HNqF1^QzsL~ndTp~L*^=-g79y4Cf&G_z3a%X!q>zK+;k zZ*S$SbuJOJb6|i$OTffz<&Dj@y6xb2ViGY3XApz1(JF$L(+pG6rtVvmGY74CZU<-4 z&m8!OVN|;^p;G5^gqapCj#OA4XKBP}uU+V54LXVb{L51BzoW(52SJT*tRnJx!7z&< zcz1@}<pu2&lm=H*KNE&NKrl8-oU_nRWXLxZEftDT3zct0@R>siAcmW6-e3kqY3O!B zFRm{PYr}+6Yl(XE&>W^fB8Z8SV$tGk1Nl3|pk094NM}-^)HDzsw9hhn)4^k74MU(~ zs7@!wJVY`i811Gs6X6ja)>9jvyL8-z%13J;yKr>~27T<yf;zS)rsX)wjpJ>W%?pzT z<)RnRssn}kmaa11K|0iXP9hnjT9%WOfC86ULx~1OX#**bPY-gXm)O_MSez4!l8-^B zzK;n<YXomPZ#k|^qC$rdp~6&zMuB|7Ilxdey<tBwrip$sxT?!VkClsNeKFsb0R^_M zjTj?N!s~3p!a$<KvA)nQ{T%h94}!fh#4rIc2VK_6Y@v^)v;sBuyFzr3{~g{(P;`T# z458>cTs*ebKDUE#{q)53cLNBPsQjfhl(qI+1`NhbI~L3YXQl%U?q+bWpuo+|mX)$o gw=W*MUqnHw*MczW2YV&N|3(NKKPjYiTzu}o0N0d+)&Kwi diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default@2x-1.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default@2x-1.png deleted file mode 100644 index fe511bc8740a036674ad4474e1676661f30e2cb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22579 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 DJ!M~X diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default@2x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default@2x.png deleted file mode 100644 index fe511bc8740a036674ad4474e1676661f30e2cb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22579 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 DJ!M~X diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default@3x-1.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default@3x-1.png deleted file mode 100644 index b8cb6919817b740bbce6938e9c36f06ef5128b34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36744 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%0D18%w85a&5l>c{e=nvfvNUKw4 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 diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default@3x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/LaunchImage.launchimage/Default@3x.png deleted file mode 100644 index b8cb6919817b740bbce6938e9c36f06ef5128b34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36744 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%0D18%w85a&5l>c{e=nvfvNUKw4 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 diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/back.imageset/Contents.json b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/back.imageset/Contents.json deleted file mode 100644 index 3bad3d0c..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/back.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "back.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "back@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "back@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/back.imageset/back.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/back.imageset/back.png deleted file mode 100644 index 1f3e073eb1f8f38e3c12a0be81ae40827584e01e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1244 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g!!3HGbRrPd%6id3JuOkD)#(wTUiL5}rLb6AY zF9SoB8UsT^3j@P1pisjL28L1t28LG&3=CE?7#PG0=Ijcz0ZMQdctjR6FmMZlFeAgP zIT8#EjFFik5hW46K32*3xq68y`AMmI6}bgK)eH<a6;?oIZfZ%QLPc&)Ua?h$trA#; z6_5=Q)>l#hD=EpgRf_NpP;kyKN>wn`Gto0pvg1-vP_QXVNwW%aaf50H@@$ndN=gc> z^!3Zj%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUl_7?}%yCIAPA<wUD9Oyv zQvjKpn3P{yVymPCvIq_!?kvenL)es84D}Y!gZdyDeM3D1eYn{`tu`Q0EB~U*RG`fu z^X&|6z$#J1p!V44gDgjK48*5kQJ`1txNP*{!Dh$hb4Wdsfr06*r;B5Vg<$Ix-)!MP zkv8MW{c4%XqFWbni~nWxy<Kv#V}&-WYs)`I!SY2x0ZT%7T?-V&?3=h<!}WG=(2jkf z)V(d?a@j;D@uiRa9GAEVUs~d6b@{n$y3?Y}JrnL&f1mgH&i9%#68rcLZ_9N)-j;Y{ zrjOd4%a@ByW%%wJ`hKoh8np4IdBkazvwvz55+1CsNqKMaYRTOXJ<py$PmYa^eO^!@ z$ivou<#p-p_ur)#24r-9G!)>7k(ZJAqt^EPam;r1D_71MxugoY_A5<1@ldvHflYX0 z-Lo2{`RD&<v}MWOU|v<AGk5KpHFF#<)-L#aG^vn%f&9{aMLYLItiGx?`Q#I;w5}Mt zZ8avhH1n3I&ptcP;qKZDld4T2T9)(f-o3joYwNC#_rVKhiS9Fgd0tvKp;cG;?w&1M zuJrFJ<T)R#VR^k_md0PFzRR61Nnrxt=1!?}$j@8i6wp@u`_rc)eKt+5vas2=Z{IHM z5@U#B`88whccwFE&isgcU$NoYO~%~;>T*R@97~0td=x5u70S+WYENq{*M;2^Cr-S- z&OdsEUWUdsX0Lvxy*-zGxrDdqoPNgi^pE=f?IIsbZRGShwSN08X5|UtyLI@xe`BD= zf2q%EtR+^i(*LD(k4nqQ{p&ldU6=pjE)&<(_}L~h&VMZ|<!|4(apSmZ@3vd7nb>ul z&25r1GBPGVZ#VfbBN)PR-TR;`d!vnp2-orrygTf456#lgl-bc{wRx$`i`Y*(JNoCx z-*1c1xpv-l@|H)Ll8=&iHhsBaB$e=%>)l+Y^B<LLoZrakcWm?Bt0H22(!03#ooB_i zx6i~j@UYCEHLK{GySuyn0u$e;Yd<&5d@@rZ%kF@9V3qRp(_eQ^oK>&=pIyfy!Taob z(}nd+KU&_q1pejO(f3LrFeafkKQ~u*$&?e@B=2pMPt|bc=H{-gX<7GRwo`71e($f@ z8$DevzuCLw#eSCbj+;9#+HP1A9v;rmFh{M)Q11KYZ5pc_O)B5yZJsB3=krZgxpz}? T54e^}gUS$3S3j3^P6<r_mi+R_ diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/back.imageset/back@2x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/back.imageset/back@2x.png deleted file mode 100644 index 76d0bf80dec63215945629abc3cded1a33300d9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1646 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 diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/back.imageset/back@3x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/back.imageset/back@3x.png deleted file mode 100644 index 818055811708d8d3851906e44effcc7ed9932e4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2179 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 diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/delete.imageset/Contents.json b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/delete.imageset/Contents.json deleted file mode 100644 index 12315727..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/delete.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "delete.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "delete@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "delete@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/delete.imageset/delete.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/delete.imageset/delete.png deleted file mode 100644 index d7cc20ad3794395d7df4a5e3c7c0451d6b245e7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 289 zcmV++0p9+JP)<h;3K|Lk000e1NJLTq000&M000&U1^@s6#I$TX0002!Nkl<ZNK5UN z%?-jZ428dLz>y;xzy`nuumK~$28_T6FaaHb5f}j`0B+nsPf9{4`IR^}Qq@+rpZ%OX zry;)vz_{b~0M4n<CWE^GjuD?0SjOUWz$ZY@wgVs*Hy|1>gMy}!%tPP_+ynMWq8%Fn zi>{phx!Mqw6|k?&GBT_jvk>qr)w@W-pS{Qd&rBscTB=I_mW`O{WT?t&U_U^h+GxGC z#BA<?ex06N#XYc7RNsoe6(2=e;jDp+k**{y8Qa+`Y3p0|YDt$4xnf{D4@!V_o9uvt nf78Tf#nn(O0k%GBjho|dJzRWucaYyb00000NkvXXu0mjfx9524 diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/delete.imageset/delete@2x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/delete.imageset/delete@2x.png deleted file mode 100644 index 63aa9cbee4c27b9f130fadd20997a5b8f8a759ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 zcmV<U0SEqxP)<h;3K|Lk000e1NJLTq001li001lq1^@s69)wx}0005MNkl<ZSV!%d z;V}e35QV?XfDB}S2oM1xAOs>n1c-nP5CInfB0vU2Kt0t{HKuNNW^Q)x>Qr~t{<zxd z>o?tRx~F?5te8v&z`F))0=t?2`UGBpX^YKPzyf&(2z03k^dazGst~Vh0W6Sjm0*MI zCtz>UfDg>OU%&>Skmn@mXx&`SnoG%0odaja$sB*<jeOe=d03vV5&;f}rb-bwwnv;i zsZb6er6b)^c~ukz_#W6V)mq{@ZEjnDwbRQb0x30pEvzjZE;Tghx_<{)2lCkthm!r6 zB3q)SD&cLHp`3@6t{zP}x3+aN!Itv*`YHkLEh;&$<vgq~c2&6AcR5?XPHzFcW&ECX zFHljr0WJVl#8|}7Bf9{p1_T)$aG!y`vaJp7%-D<rPU+(wE=i#+ht56h9!~P9Q^G0X zl=yqk@Y3w1Ik|c|C7cpY37e{SwfQT1m-w*xa9jvOPxk<5CLBxX=}v*GMK+<b6-K7% zoL4Qr-l;=QKMkncR&?|(9ubV5)><b$slEfw^?$7%AKb&~1g8(6KGNu^5%FI99&EN& uW4v{3XEbwR){f)UQwyZ}E0G!KjOGu^-`6deZ9Aj@0000<MNUMnLSTXj$=loj diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/delete.imageset/delete@3x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/delete.imageset/delete@3x.png deleted file mode 100644 index 5963f9c151a3b929566a6bcdcdd91de6ac7f5d62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 690 zcmV;j0!{siP)<h;3K|Lk000e1NJLTq002S&002S=1^@s6<5U3X0007cNkl<ZcwX(B z{W--j6vp2>0UKZfOn?cn0TW;XOn?b60Vco%Y`_Ri!1MOzdQPi1P1_{x<;|Zo>B+C> zE9d4+pivN*h{KdXE)WL*R(e2x2k-#kqsJQFsi{G10JsCN8es#3a0uW&!dkzUNC|?Q ze*v%@S@2B&uaVbGY8w1<yGG#8jvF9QYgSJHb`}Z5ml2lsz1KtdO8`e^{u%)Kjc6mK zX;={ag8Y(Q$2NdRGr8}2S$%{+INS>dg3gF)7bC=VRsA96F&xvOGb9&L;|##*5R#1K zorS+42xfiPBN1u{F^aro7B!dw_6cu8Y#_!v8Oe%hmNI<C5H#Bw0^v}10m0;E9l&kM z(_l7L=m>%#_RY=Z!H14!Y~vWfg*(?UA_N`X+iFBL)onXJ2Q-_=F-N!wd1>2?EE<S& zmnSu{5QvUGLK@+~wE@8-jj21GDphpe;B%}su)g4Xj+HJtL5>rT6SO{J6sAFMz2pS< zmDg+~iyLGSrf%5c%oPAehq^I35TODw#ocl{@_j-3+%o`br$7kAR0pIH&K3khAf|PL znNyWUNF$^XKdFLD!=VrefhZ@?(g<mUG@|xYDbtW?$TVacs!*v^S3XQhBcu`1h}z?| zOhcw2(~xOY(?<Q|S96$>v-~g4()V-!pEr%!2HCm8%OLX_P3*k~Umpf<2D3kmW8c%; z6?z?^<f~HOq2e6|0%+>CAt+uf33-ki@bz?!5=3obA@Lst!T}ZtfhgPBzt;#lT;Afd z-Gte$7q)3(q@c08f}8wqHV{pM4E=wB2uRs`B~(=J>djatLeZPnE2`AS1ntz2WUhGr Y8w%WxQf`|J+yDRo07*qoM6N<$f@wuA4FCWD diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/reload.imageset/Contents.json b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/reload.imageset/Contents.json deleted file mode 100644 index e2cd5afd..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/reload.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "reload.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "reload@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "reload@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/reload.imageset/reload.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/reload.imageset/reload.png deleted file mode 100644 index 1fd4bac7972176417731f5a9b44183365407b426..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 542 zcmV+(0^$9MP)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv0005yNkl<ZNK3s| z?NQt?6x{dJz@>s*2RV)PpHM-df<Og<3UVEg4xj^$3c~%jM%O`(4%~qCGVhR$F)}hR zga2x0_kFJkg)fA#YTNdRh?XL<QaBOqL}YJ_xwF>przpJlXY|@5fZqU?g&6iCa_OAg z3~_Z`-)K-T1VRXlwry{T=zA%<;k$_38)HtbwM`=b31It7K+6$h{0m@_A>WEflS-uT zM;VM}vm>ID^!6m6k;fSSjmRGWteJVEkqrqGUWwKKzD{KOB;dWjA4Vl2cgC2rG4Yrv zl~n8fBbW7|MA~ft*BwB~opW89#a0YzKE^&~;Jw#T>(YE+=2a>3j_DP0g={G`HVmZC ztE##wh7F)V{wUzRzW{L65i;|aInmD`?*;w<_|=V7RaM3L*Tw=kY<1ylG=qM6-rC#} z`(bB3L*UINniF}4d3TfNihO8H=ZNGMZO_bh&Zy27sO$QKh;9d`V&j}UokLK<^yfNr z>^8=j^HL`1s$MbkWe(d5B;amzdK(eBNY<D;*Ses32^Q)D#+c)=NX~H7`d-|3b*y1I za*mf<)U0L37*!<aSd%56@{dW=PmNc%`c`P<mYLVq+GiQ|i&mO~5W+IXsOF;wt~-QE g)+8&P{B2S0|KC0u>uQ^;>i_@%07*qoM6N<$f_L`@D*ylh diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/reload.imageset/reload@2x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/reload.imageset/reload@2x.png deleted file mode 100644 index 6e972351463eee12e69fbbfb33450db28ff8de7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1037 zcmV+o1oHcdP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm000BjNkl<ZXhYpv z-Fee66unm&fNnrKLE}$;r%XUQ0bv5V0m%e36Oc|onSk(aRqX^M6Ho@Q#CKY`IEigZ z{wXPX$%Cz{bMBw7?hR9qOKW{(tvxZujG1{{7HzFv3nA9be3vB2eILhattZ@7kk<O0 zG3JbjPKjs>be(K#?JYB}gb=GFNxrqgpp^PTM4MIwplM^wM<SYrf^Go0CZeSfVi9T? z2Oek7qX?9MUl7qz8_hNBfm>ZlDd$acOW^TZI03EosWAp-3v!bV<Pa<8Ns`>|%Gd!P zPCzO3iHK$$Kt*r0)?TD(x+peQfDa>3voRV_%MD8@<%b3g%`TK>nP%om#Nitvx+bD~ zWSY@v^pGy|JU?=B5I4wJuOnn4$m`s;o<OMPt+l_I8Chgm<+oKpk-v>GQ)}&%nO{Ya z*?qN|fKm$n4!`%Ug%DyEn*Mf$X|2b3p3j*1z3-r!=lcX)w)yT6xDi5}g=*Xf4i?Gt zeAU7l+XP&m*Pc{)Cxkd{tMxiE?(7v2o%jfso^KNfaGg6TWlT^<U?B>PyGjC113w$S zuyC76-<tR2d7lFQTEM4$Aw<%b&j);AeZY(7TLhr}x_rBkQlkFpeYJ3#GKNP2S(cqK z^VceL$n&GoXgq}LbOaB$j|7xbmqdi}xM~fe{T{$?5vX;aA$-3l@Q(ys_W4z#{f(5e z*YdeX@J|F#=huCCdvzaI1EHAfW#LN7N-12;a8apRb1CJs-UDKpfk18HX01I>(-h_L z!LCLELWs9XlAu00*!6!CcquOQvV+)jf$24k4iQMc57}Buc|63yeaS3pAvBRHZ$d+q z5`BS(oPSo#^+m#4PNT=;tbqQ^!L6s}u2KpBD;rMM+N(58k*yAHl?gQVf(|tno(Q0< z&hs1-l)6qCT<Lg-n^_mLZp{aL7kk(5M19oDh^PzjV(;F7qbU}!X($r7D?om1=VOmR zU~3WX1WW7<A=+rw-AO)UZ>-$P5tGlAN+8jdo+nAtD#g0y?q_B$-_oL#Q#&KevTPaA zHNF%=T!mWX=H})NTI+5|SY@<e5{*N?ND=^o;KmJZZLI}}2NyHOOqdxnWc*?r8!{ja zBH^7<wjj|a4C?lH@8n(rkgSwKTk#>to@2SG&xMq7={qlo0ED=f2;3uPzU4c=>N(~Q z)6jSdCQzJ&422PBi)l(DnHa5?1w|8Z*1%s4;8w^aT`hvi=1d52-R2A5ia=Qd#l+G5 z*&}p3^n-|QV<ww*=IcygSFkGyU?G$SMY=3f>V2qhhX&6dQ_upwp_i_y00000NkvXX Hu0mjf2twaP diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/reload.imageset/reload@3x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/reload.imageset/reload@3x.png deleted file mode 100644 index ab75ee71e0f85088bc15bc075ad108041295102c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1516 zcmV<I1rz#-P)<h;3K|Lk000e1NJLTq002k;002k`1^@s6RqeA!000HENkl<ZcwX(C z;ZfZ<5XU9CfRGA~RB(9Y??);KsUT26LIr^e?xli|3i7BR@ZH9wf_qeOF9q1T`7`p3 zpPy~5WJ&f*q8Wx6kS*!w-PLNP6=w@54-XH2b-Tei|B<HY<DA_q%kqfF>_AzTCskDe z#wla$h;xqL#-fzE<D74lQjbZJ+{XY{6vbyD#FyZJ%CdY@Rn@tMab%=HtFUE^t%VTl zG)-@5kI-uY4rA<G2=O`ypt3BF>$?8P7(0Wc(7WbT6R>WC5TDXC-8j9W^-u!`fAS8f z1?GHeM;)IBsB2eHZ8%;5!I;%`{WrwYabUh5TWL^`E>h{j@dhZ*^Y@(ds|cz@8fdH1 zRw;FnW!c*FU>}^xfFLzhRek21!_F+ZK<zHmH0_n9Avlu&VY;sC`YU7Xc*$g%zG?U1 zqU#=v!EpwZ=lL1u9MfRv*~vHiEoP+#k_nCzprR;XgaIc+d18z;(=;UWj{uE8%`O>Z za8`{Iiq$ml3yxCi2V)GL@tqLjF-_CEArP>0j4`P5iBbw)_bKQ6MF4QUuOtJ~Y6Y9) zT$EB@;Qdl&m9a+97kqur`5WiX5FaD~(gyjPtIYwJBuTDZowpI`I<BhfigW&sI9}^& zMnKvDEFEX7dm+TRZ!q0a>JPZmcEuXP*aJpDd7gi@^>bijIOiXvls8^`Yj{~v6dxF4 z@aDahQ9zCjJ_#YtVuU05DClqsCIBynd=QXUt$!@-&UYci>5#|j?XwzQq*V^m`{&d) z2La`Ieq(9;76GRLLU95q@OlC1kOicNTA)@Zb4!kIICx(#ARFm{K~9ncYBg)@I0T$t zKn~J#5qq{85^G;-)qek;1ldRrW9(i^Nea4Cb=9?A2sphGR20R()R{{N@hY?vNC6fK z&K@9}#VD2!S(X`B!;}F|sS^^;9-utW*VF~z5~L?IoIVL6sn-&uCkC7yK-&AnqSRQF zQg5e*ER2neREPy<2M~4L1-~cDve`ndG2!e0qS_y&)NPh!v+QEThSQZGggy68SoBEx zrIZq}m#Ae9I9))BGGe_eFc?FoyyMX7JRe>tih=}4N*Uy^!;+!#vMf*Qx<<^|SbhT< zNAz7vd19palU1;hpv5dsV}66*fDE*40Bxj{uVQ|^CA4J&i2agA+Gd&;LcCl`>^YWn zS@}V~vZJ`@rA91i>1*d%f(~J^Iv1oy#i;w*TPfwsxjH*XyU&0QDPR^G(*KLkJkPh3 zP5(J#Lb2hXy*8kO3fjkl)dqyqtE6LgO9<RY2c%~+lA7sgTe_4z`H--70$@c^Ae{Q1 z(jaoUvMhT|se8zEb^tjXUYI3D9TWIo2-Wfc1J2O=)T*`z$U%y5#2=6*C$q(r3~F1w zL3kTmgobpo2=XAv`B~Hs&Rwq;kWO{lP#ni*07Dryu?L90`}|OY+c=Kt2Rj)xvEj6i z@OV4<HoDJcYp`2DuB4RLu>cJu_j!Rd3P_)qMy$yC%yBH0(~^!8_I=5HlOY**N<Exj zpOlF_B!$@Utg7lG;c|jWkc@zua7a~ElaBZ+rI1{^PLkx-)re|UdWT#P%LE%|NF+dj zWOIhmWP9{g6VFL?ob#t49}3c|lzM?=I{Xl%Wvpo@NMt|_B&F2KX8Je5>ioa)qe30h zvW8>@$d|fVLi1JKDHF*WPy?y1YcCl!zD93&k8`q(6Ce!<7Yjh$f~7=yf_E*Y#LW;+ z#Tii3n)X8wM+%X~?KCL;kdsPv8=MTNk*2z?G4<j~oLP%b30+N*n)U#^0BT-{P)X=a z<RSVR44hJASbK{qcm>o3r6meShC{0!ZfpRUl}|9uSb_j*e`UQSXs+n;1q)DcMb}N} zjf3ETI<Rnc7jn#S))7CHJ35*>J&@J-D1^9+8NG}OXv})Uezn$Do0t&B`t=_bQUy6{ SFCDc20000<MNUMnLSTYFa>OeD diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan.imageset/Contents.json b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan.imageset/Contents.json deleted file mode 100644 index 798ba854..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "scan.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "scan@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "scan@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan.imageset/scan.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan.imageset/scan.png deleted file mode 100644 index 618310545fc8ad4baca64f56d9ecdd489d07eee8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1344 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEa{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8X6a5n0T@z%2~Ij105p z08M9%%nXSriSYHYO3u&KOH9d6O4X~#EdZ)!V6dsM0y1+`OA-|-a&z*EttxDlz$&bO zY>=?Nk^)#sNw%$0gl~X?bAC~(f~lT~o`I4bmx6+VO;JjkRgjAtR6CGotCUevQedU8 zUtV6WS8lAAUzDzIXlZGwZ(yWvWTXpJp<7&;SCUwvn^&w1F$89gOKNd)QD#9&W`3Rm z$lS!F{L&IzB_)tWZ~$><NoE?tro3XPw}2kh2g&Fg>KW+6%?4_<0f}1q7iFdbZ3dZd zXJ`Xfi6REI$3`DyIg(=_J_U;cy=up0qYn=@J1(C?>X8f#%z>URjv*erYr}jqLc&Gt zp8wnPlUte7V&kF<CnjXMaVg4{UUkys(wm}psWrFY;jSH8d9DHn*J>ZsdbMe`QmDAn z4x!tZgeD$bpm?QMQ&Q{Lk<QBZ_o{#0?Y!uD<cL}EgTHr+&zGOG-QUm7_U&8tTYrO< z`D;x@(_FnYi|lsKO<ntV^5pN*TiAH{u9XXXw9GDI?`&~lO4ZBlx)A#QYvg3(#2$~g z{4RSHf2g}W+{qtu;2CE!m;Utwd7EpTX8L8G`u)XFWUIn<Ps92nN7#EfFT2e+F0xvx z^+WcA55^|{&-#S9{1du({#vlY+7C|8f6V&+hhdXuit>-^YeHm~|2!vfc|yVOg6Hz~ zzy5MD{H<Cr_s`0e_Guq$vn$tztyaC6^pI6D^!Tj_P49b?e2=~O9l`L!)750v^m(U~ zUfbS3Wg^uZB3Y|{OlaNqHWeG;z}lIU!@UjES^Z<|*S6m}7_a$QMpuQ?K}AREPTiM# zyb1?C%L<)dUvRHpJ^QQo^G(qPpH~{57xxQXdSmkW%k~Xj4ga~fT<+OvIa5>YCwtP& z?$^?6Z&=<}u)kZ8*Zls@&i9XXk`K>u`(NHzl%l({o&UYvL;qD@^CLdmiOgy}ziTl= zYlDoJ>W^v-lb>>NQpW-(<ymoWTXtwwpHuMknM*h?e-5}ZS6JW|^F{4D`4T3(UMs#R zT(UClT_4jH$!oVP&c4eOXWC`P(%;i_<L1q-S#$QxOv;`f<I*!P<@3)yFM={}uXEYj zrWIY4KI?2+h){63vUu)YtDq1qbDc@A4WmA0F3H%x<B}l5`aE&@szn(Wq_w8!y4F}c z-c%xWbSYo<+DyYz38UO!0T;|0RzKY`c~Qh?)~Xn>YOP)K7Q`Oc{KmI-!yDOmmz?fw zKBVzqiaRn>bl1wmD#{;&)`xwc7T&l<Am(WFzc+Ud3p&T#V7`-4almE*=Zp=~!Ea}% z*&9Us<q_^OYzb-Ja%bj@AG&2XzX#R-U%u4W_T=*!F&tWxnrkJG{(hR>X#dz}pM*<a zQ{>VAN6Nmawj22`_#^)QkcHX0l?ws_!ZLqx-AJC%r^#dHsKLIzXK{}HjGvYD`$B^D zez>j}wySNy>=!}LW8**UlU@9M7Qb6%qLugCZFaen&KmAsd|LAd+nwUGDr>#}GtJja V5kKqEAOb3<JYD@<);T3K0RW)kF7f~X diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan.imageset/scan@2x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan.imageset/scan@2x.png deleted file mode 100644 index 43cf01d5e6431d85d71daa53e155741c70e8b37a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2458 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 JskHKm|2GUTPfq{< diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan.imageset/scan@3x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan.imageset/scan@3x.png deleted file mode 100644 index 76c7e0b86421b2824d2ab55249dd8db3c7e79ed4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3723 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 diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan_history.imageset/Contents.json b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan_history.imageset/Contents.json deleted file mode 100644 index e972e4e9..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan_history.imageset/Contents.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "history.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "history@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "filename" : "history@3x.png", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan_history.imageset/history.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan_history.imageset/history.png deleted file mode 100644 index 48aac03f75007cdea6b02a66a0ad995c1f14c90a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 546 zcmV+-0^R+IP)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv0005$Nkl<ZNK2)b z{V@bV5XIj`fCvx)B0vOW;4T9qKm>>Y5g-CC0z^Oth=BTS&D-joo!Q+hUA2GgPItfV z*B`Sp4a=6KeM!fX)+HSz^%qIsk{%^3C4JW1%qj;syOJ~?3Bbp9lFkxn$D{;6w6`hZ ziT)ckGFqgpTDu&8h;beT3W)G6J)G^P2Yo1v0totzL;xax2%7JbP9?#&h4(K>_u(6L z!Qp23c4#{T!1+g@1?L!&c63f%kWQ4zjzD(OId<FF8-NH-(qYLtM;DULlg?#&kJJz( zG&&QqoC82B61}BOuS@MH0P1A@9PBm#h=rw~?)A+7Bmiun%7tG5z_1)uxQ!rV6qRcA z1OU9bI5m3m8W3gdF3y=|c#kwK0r(AJ)+Rd#$m#RDyQ}rN3IH?UHeCrI7G;PcoYD|< zT}hybcJEOXi_F5hu7x-8d(5;ca%@wwA&dV=uT7^8+7!^@pkWwS1zhfxcKZkdtKv1( z=!Rt(mmQARk`rbFs^YR6@{e;?1Zy1mNkHwg<72+A0i>_<fy#lPg*6X|rMIqqP`Yr) z#upBo7Gd&<7JWx;AJq%T3S@#q(>0~IrUlzh#zU7r^WZyT41|KR40|;j+C4a>h2hx0 kEndT{b^o?7sMTip15}K6*Qwd-ng9R*07*qoM6N<$f)`Bi)&Kwi diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan_history.imageset/history@2x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan_history.imageset/history@2x.png deleted file mode 100644 index dd94cb76c9319339c30c70af2cc964658ffc90bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1037 zcmV+o1oHcdP)<h;3K|Lk000e1NJLTq001xm001xu1^@s6R|5Hm000BjNkl<ZXhY4J zfpHWu3`La+AQb==02M$gfOG&A02M$g04jhENGgC-08{`}KvDtByRmMZjU`!LFF`Xq zbF=5w{%=X&viCsd*liJcBq9$)<Z*GyZ|-9kBJ!>L{!)IQm;0*_9ISX6a8E?!Sp_=l z4l*A_<ZP782mye<5RsSF3}=Ba#}lD<BJw^<BufC`Zzck75y3x1x~!MLT@m?Ia=gp& z%0bl2v55SP{PYlbDk2{?oOKH$X$1-D#I%S21q%2cyA+Yra`Ez7c~p_8A0~wBR*zE= zd0q;=Iou=A3m!S700EydNFW5rZ)7G3ivZ5adCve&!MP!hkQE8WPekOX^{y5H3ifM| z^RLRRTlh$o*JX_$mC*W=fDF-i>x{wA!)0N&2mqd(Z5eq^YDMWnN+G$mL4cX|jL1XQ zst?o&5_?+`@MZz<v<cc0ctHL%{=D{b!vT{=T3RHoM876L*nc>wgQP_>ub5f{_%BjD zecr1<Qt6(q*tJ8#OWw9D%K7CpYYE`b%Z7bADgkfyQ5)?rJ49tSWCj8JkV-9e+DAbN zc$(jouYk!c0!-Xz<6XP8K?yLZHOnKjKQjVe6o}3d1W2FX2Fpz0)-Gm60H0n#A40$y zfNbiHsyFv%snGI$<a|q3k0D^G54$ADjo8cx@P6c*-QUtqAYfH`RywyzAx~1zJOU%? z6Qxj3G}*)~dnZec&LLoh`=$se$+~y42wZps4znBVYI?0n>4|`jse30=DgS2z->a_J zC16R^niOia)0x?4Y%L;I3SDkh#LO7-j11pNBL7v2xZXRsMZATKCNYP@t<H2OqgyOw zA)@2}cOmn7jouAN5>INl+pBHW%%u<pgTrQy=dC)}wX8GI4ES<e{jD}M12~(HbZ=<L zGkTC#%gTK=(KlfnGH_0{G+KS`?^+2pZ&S~4H&XU5&07qwZR!E$MS=g_L)OX6ygmAU z_IYRKV2hT6g6=ukTEmBfElvk5GY_`(0RY}No`wVt=-0Qf=tR73@OJOF4tF8po!^t6 z5SeKl?0R)Z>JXhPUu~?F){`#<jU!0(9yeNKS*QTtQk(jj?&EcRC<>>J8~Ie4{Y0Do zz>y`P<B108$3?x+8e_E7fF=dFGN&EGpO_RB=>)LeZ(6hJf}Drws*ijMhWvztrB1Uz zs~^+`@KZjs*5FVHR_v{!!K~vSmFu#RexF>12-hqk00%S|wbN}Q1k|~H^F^(qFN_u- zPQO_cNzW8;b-0E=4GJ<8yQ+*Tjz)+XR%KF^qBw^@*DwAHeU0j_S?jzQ00000NkvXX Hu0mjfhs@Q2 diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan_history.imageset/history@3x.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Assets.xcassets/scan_history.imageset/history@3x.png deleted file mode 100644 index 2d5f2b46dd662033e11ffb3c2e6fb5ecb3a56284..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1628 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 a6#NIHMQ9bDN}SdJ0000<MNUMnLSTY&SnCx4 diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Info.plist b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Info.plist deleted file mode 100644 index 68b40501..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Info.plist +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundleDevelopmentRegion</key> - <string>$(DEVELOPMENT_LANGUAGE)</string> - <key>CFBundleDisplayName</key> - <string>GCanvas</string> - <key>CFBundleExecutable</key> - <string>$(EXECUTABLE_NAME)</string> - <key>CFBundleIdentifier</key> - <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundleName</key> - <string>$(PRODUCT_NAME)</string> - <key>CFBundlePackageType</key> - <string>APPL</string> - <key>CFBundleShortVersionString</key> - <string>1.0</string> - <key>CFBundleVersion</key> - <string>1</string> - <key>LSApplicationCategoryType</key> - <string>NSCameraUsageDescription</string> - <key>LSRequiresIPhoneOS</key> - <true/> - <key>NSAppTransportSecurity</key> - <dict> - <key>NSAllowsArbitraryLoads</key> - <true/> - </dict> - <key>NSCameraUsageDescription</key> - <string>$(PRODUCT_NAME) needs access your Camera</string> - <key>NSPhotoLibraryAddUsageDescription</key> - <string>$(PRODUCT_NAME) needs access your photo Album</string> - <key>NSPhotoLibraryUsageDescription</key> - <string>$(PRODUCT_NAME) needs access your photo Album</string> - <key>UIRequiredDeviceCapabilities</key> - <array> - <string>armv7</string> - </array> - <key>UISupportedInterfaceOrientations</key> - <array> - <string>UIInterfaceOrientationPortrait</string> - </array> - <key>UISupportedInterfaceOrientations~ipad</key> - <array> - <string>UIInterfaceOrientationPortrait</string> - <string>UIInterfaceOrientationPortraitUpsideDown</string> - <string>UIInterfaceOrientationLandscapeLeft</string> - <string>UIInterfaceOrientationLandscapeRight</string> - </array> -</dict> -</plist> diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/MacroDefine.h b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/MacroDefine.h deleted file mode 100644 index e651f958..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/MacroDefine.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - - -#ifndef MacroDefine_h -#define MacroDefine_h - -#import <Foundation/Foundation.h> - -#define CURRENT_IP [NSString stringWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"localServer-ip" ofType:@".txt"] encoding:NSUTF8StringEncoding error:nil] - -#if TARGET_IPHONE_SIMULATOR -#define DEMO_HOST @"127.0.0.1" -#else -#define DEMO_HOST CURRENT_IP -#endif - -#define DEMO_URL(path) [NSString stringWithFormat:@"http://%@:12580/%s", DEMO_HOST, #path] - -#define HOME_URL [NSString stringWithFormat:@"http://%@:12580/examples/build/index.js", DEMO_HOST] - -#define BUNDLE_URL [NSString stringWithFormat:@"file://%@/bundlejs/index.js",[NSBundle mainBundle].bundlePath] - -#define UITEST_HOME_URL @"http://test?_wx_tpl=http://localhost:12580/test/build/TC__Home.js" - -#define QRSCAN @"com.taobao.gcanvas.scan" -#define QRSCAN_HISTORY @"com.taobao.gcanvas.scan.history" -#define GCANVAS_COLOR [UIColor colorWithRed:0.125 green:0.27 blue:0.98 alpha:1.0] //0x2045fa -#define WX_SCANNER_HISTORY @"wx_scanner_history" - - -#endif /* MacroDefine_h */ diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Scanner/WXScannerHistoryVC.h b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Scanner/WXScannerHistoryVC.h deleted file mode 100644 index 2dee545b..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Scanner/WXScannerHistoryVC.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import <UIKit/UIKit.h> - -@interface WXScannerHistoryVC : UITableViewController<UIGestureRecognizerDelegate> - -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Scanner/WXScannerHistoryVC.m b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Scanner/WXScannerHistoryVC.m deleted file mode 100644 index 8067b23d..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Scanner/WXScannerHistoryVC.m +++ /dev/null @@ -1,224 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXScannerHistoryVC.h" -#import "MacroDefine.h" -#import "ViewController.h" -#import "UIViewController+NaviBar.h" -#import <CoreText/CoreText.h> - -@interface WXScannerHistoryVC () -@property(nonatomic)NSMutableArray * scanner_history; -@property(nonatomic)UIImageView * qrCodeImageView; -@end - -@implementation WXScannerHistoryVC - -- (instancetype)init { - if (self = [super init]) { - _scanner_history = [[[NSUserDefaults standardUserDefaults] objectForKey:WX_SCANNER_HISTORY] mutableCopy]; - } - return self; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - [self setupNaviBar]; - UITapGestureRecognizer * tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleClick:)]; - [self.tableView addGestureRecognizer:tapGestureRecognizer]; - tapGestureRecognizer.delegate = self; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadHistory) name:NSUserDefaultsDidChangeNotification object:nil]; -} - -- (void)dealloc { - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -#pragma mark - Table view data source - -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { - return 1; -} - -- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { - return 88.0f; -} - -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { - return [_scanner_history count]; -} - -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - [tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"WX_SCANNER_HISTORY_CELL"]; - UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"WX_SCANNER_HISTORY_CELL" forIndexPath:indexPath]; - if (!cell) { - cell = [UITableViewCell new]; - } - UILongPressGestureRecognizer * longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)]; - longPressGesture.minimumPressDuration = 1.0; - longPressGesture.delegate = self; - [cell addGestureRecognizer:longPressGesture]; - NSMutableAttributedString * attributeString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%ld %@",(long)indexPath.row+1,[_scanner_history objectAtIndex:indexPath.row]]]; - [attributeString addAttribute:(NSString*)NSForegroundColorAttributeName value:(id)[UIColor redColor].CGColor range:NSMakeRange(0, 1)]; - NSDictionary<NSString*, id> *attributes = @{ - NSForegroundColorAttributeName:[UIColor redColor], - NSFontAttributeName: [UIFont boldSystemFontOfSize:25.0], - }; - [attributeString addAttributes:attributes range:NSMakeRange(0, 2)]; - cell.textLabel.attributedText = attributeString; - cell.textLabel.numberOfLines = 0; - - return cell; -} - -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath -{ - NSString *urlStr = _scanner_history[indexPath.row]; - if (urlStr) { - ViewController * demoVC = [ViewController new]; - demoVC.url = [NSURL URLWithString:urlStr]; - [self.navigationController pushViewController:demoVC animated:YES]; - } -} - -- (void)reloadHistory -{ - if ([_scanner_history count]) { - [_qrCodeImageView removeFromSuperview]; - [_scanner_history removeAllObjects]; - [self.tableView reloadData]; - } -} - -- (void)handleClick:(UITapGestureRecognizer*)gestureRecognizer -{ - CGPoint clickPoint = [gestureRecognizer locationInView:self.tableView]; - if (!CGRectContainsPoint(_qrCodeImageView.frame, clickPoint)) { - [_qrCodeImageView removeFromSuperview]; - } -} - -- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch -{ - if ([gestureRecognizer isKindOfClass:[UITapGestureRecognizer class]]) { - if ([_qrCodeImageView superview]) { - return YES; - } - } - if ([gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer class]]) { - return YES; - } - return NO; -} - -- (void)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer -{ - if (gestureRecognizer.state != UIGestureRecognizerStateBegan) { - return ; - } - CGPoint pressPoint = [gestureRecognizer locationInView:self.tableView]; - NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:pressPoint]; - if (indexPath == nil) { - return; - } - - NSString * url = _scanner_history[indexPath.row]; - UIImage * qrCodeImage = [self getQRCodeWithData:url size:CGSizeMake(300, 300)]; - _qrCodeImageView.contentMode = UIViewContentModeScaleAspectFill; - if (![_qrCodeImageView superview]) { - _qrCodeImageView = [[UIImageView alloc] initWithImage:qrCodeImage]; - [_qrCodeImageView setCenter:self.view.center]; - [self.view addSubview:_qrCodeImageView]; - }else { - _qrCodeImageView.image = qrCodeImage; - } -} - -- (UIImage*)getQRCodeWithData:(NSString*)url size:(CGSize)size { - CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"]; - [filter setDefaults]; - NSString *info = url; - NSData *infoData = [info dataUsingEncoding:NSUTF8StringEncoding]; - [filter setValue:infoData forKeyPath:@"inputMessage"]; - - CIImage *outputImage = [filter outputImage]; - CGRect extent = CGRectIntegral(outputImage.extent); - CGFloat scale = MIN(size.width/CGRectGetWidth(extent), size.width/CGRectGetHeight(extent)); - - size_t width = CGRectGetWidth(extent) * scale; - size_t height = CGRectGetHeight(extent) * scale; - CGColorSpaceRef cs = CGColorSpaceCreateDeviceGray(); - CGContextRef bitmapRef = CGBitmapContextCreate(nil, width, height, 8, 0, cs, (CGBitmapInfo)kCGImageAlphaNone); - CIContext *context = [CIContext contextWithOptions:nil]; - CGImageRef bitmapImage = [context createCGImage:outputImage fromRect:extent]; - CGContextSetInterpolationQuality(bitmapRef, kCGInterpolationNone); - CGContextScaleCTM(bitmapRef, scale, scale); - CGContextDrawImage(bitmapRef, extent, bitmapImage); - - CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef); - CGContextRelease(bitmapRef); - CGImageRelease(bitmapImage); - return [UIImage imageWithCGImage:scaledImage]; -} - -/* -// Override to support conditional editing of the table view. -- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { - // Return NO if you do not want the specified item to be editable. - return YES; -} -*/ - -/* -// Override to support editing the table view. -- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { - if (editingStyle == UITableViewCellEditingStyleDelete) { - // Delete the row from the data source - [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; - } else if (editingStyle == UITableViewCellEditingStyleInsert) { - // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view - } -} -*/ - -/* -// Override to support rearranging the table view. -- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath { -} -*/ - -/* -// Override to support conditional rearranging of the table view. -- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { - // Return NO if you do not want the item to be re-orderable. - return YES; -} -*/ - -/* -#pragma mark - Navigation - -// In a storyboard-based application, you will often want to do a little preparation before navigation -- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { - // Get the new view controller using [segue destinationViewController]. - // Pass the selected object to the new view controller. -} -*/ - -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Scanner/WXScannerVC.h b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Scanner/WXScannerVC.h deleted file mode 100644 index eb654839..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Scanner/WXScannerVC.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import <UIKit/UIKit.h> -#import <AVFoundation/AVFoundation.h> - -@interface WXScannerVC : UIViewController <AVCaptureMetadataOutputObjectsDelegate> - -@end \ No newline at end of file diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Scanner/WXScannerVC.m b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Scanner/WXScannerVC.m deleted file mode 100644 index 51f0ea8b..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/Scanner/WXScannerVC.m +++ /dev/null @@ -1,250 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import <WeexSDK/WeexSDK.h> -#import "WXScannerVC.h" -#import "AppDelegate.h" -#import "UIViewController+NaviBar.h" -#import "ViewController.h" -#import "MacroDefine.h" - -#ifdef DEBUG -#import <WXDevTool/WXDevTool.h> -#endif -#import <AudioToolbox/AudioToolbox.h> - -@interface WXScannerVC () - -@property (nonatomic, strong) AVCaptureSession * session; -@property (nonatomic, strong) AVCaptureVideoPreviewLayer *captureLayer; -@property (nonatomic, strong) UIView *sanFrameView; - -@end - -@implementation WXScannerVC - -#pragma mark - lifeCircle - -- (void)dealloc { - [_captureLayer removeFromSuperlayer]; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - self.edgesForExtendedLayout = UIRectEdgeNone; - [self setupNaviBar]; - -#if !(TARGET_IPHONE_SIMULATOR) - self.session = [[AVCaptureSession alloc]init]; - [_session setSessionPreset:AVCaptureSessionPresetHigh]; - AVCaptureDevice * device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; - AVCaptureDeviceInput * input = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil]; - AVCaptureMetadataOutput * output = [[AVCaptureMetadataOutput alloc]init]; - if (output && input && device) { - [output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()]; - [_session addInput:input]; - [_session addOutput:output]; - output.metadataObjectTypes=@[AVMetadataObjectTypeQRCode,AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeCode128Code]; - } - - _captureLayer = [AVCaptureVideoPreviewLayer layerWithSession:_session]; - _captureLayer.videoGravity=AVLayerVideoGravityResizeAspectFill; - _captureLayer.frame=self.view.layer.bounds; -#endif -} - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - - [self.view.layer addSublayer:_captureLayer]; - [_session startRunning]; -} - -- (void) viewDidDisappear:(BOOL)animated -{ - [super viewDidDisappear:animated]; - - [_captureLayer removeFromSuperlayer]; - [_session stopRunning]; -} - -- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection -{ - [_captureLayer removeFromSuperlayer]; - [_session stopRunning]; - AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); - if (metadataObjects.count > 0) { - AVMetadataMachineReadableCodeObject * metadataObject = [metadataObjects objectAtIndex: 0]; - [self recordScannerHistory:metadataObject.stringValue]; - [self openURL:metadataObject.stringValue]; - } -} - -- (void)openURL:(NSString*)URL -{ - NSString *transformURL = URL; - NSArray* elts = [URL componentsSeparatedByString:@"?"]; - if (elts.count >= 2) { - NSArray *urls = [elts.lastObject componentsSeparatedByString:@"="]; - for (NSString *param in urls) { - if ([param isEqualToString:@"_wx_tpl"]) { - transformURL = [[urls lastObject] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; - break; - } - } - } - NSURL *url = [NSURL URLWithString:transformURL]; - if ([self remoteDebug:url]) { - return; - } - [self jsReplace:url]; - ViewController * controller = [[ViewController alloc] init]; - controller.url = url; - controller.source = @"scan"; - - NSMutableDictionary *queryDict = [NSMutableDictionary new]; - if (WX_SYS_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")) { - NSURLComponents *components = [NSURLComponents componentsWithURL:url resolvingAgainstBaseURL:NO]; - NSArray *queryItems = [components queryItems]; - - for (NSURLQueryItem *item in queryItems) - [queryDict setObject:item.value forKey:item.name]; - }else { - queryDict = [self queryWithURL:url]; - } - NSString *wsport = queryDict[@"wsport"] ?: @"8082"; - NSURL *socketURL = [NSURL URLWithString:[NSString stringWithFormat:@"ws://%@:%@", url.host, wsport]]; - controller.hotReloadSocket = [[SRWebSocket alloc] initWithURL:socketURL protocols:@[@"echo-protocol"]]; - controller.hotReloadSocket.delegate = controller; - [controller.hotReloadSocket open]; - - [[self navigationController] pushViewController:controller animated:YES]; -} - -- (NSMutableDictionary*)queryWithURL:(NSURL *)url { - NSMutableDictionary * queryDic = nil; - if (![url query]) { - return queryDic; - } - queryDic = [NSMutableDictionary new]; - NSArray* components = [[url query] componentsSeparatedByString:@"&"]; - for (NSUInteger i = 0; i < [components count]; i ++) { - NSString * queryParam = [components objectAtIndex:i]; - NSArray* component = [queryParam componentsSeparatedByString:@"="]; - [queryDic setValue:component[1] forKey:component[0]]; - } - - return queryDic; -} - -#pragma mark - Replace JS - -- (void)jsReplace:(NSURL *)url -{ - if ([[url host] isEqualToString:@"weex-remote-debugger"]){ - NSString* path = [url path]; - if ([path isEqualToString:@"/dynamic/replace/bundle"]){ - for (NSString * param in [[url query] componentsSeparatedByString:@"&"]) { - NSArray* elts = [param componentsSeparatedByString:@"="]; - if ([elts count] < 2) { - continue; - } - if ([[elts firstObject] isEqualToString:@"bundle"]){ - [WXDebugTool setReplacedBundleJS:[NSURL URLWithString:[elts lastObject]]]; - } - } - } - - if ([path isEqualToString:@"/dynamic/replace/framework"]){ - for (NSString * param in [[url query] componentsSeparatedByString:@"&"]) { - NSArray* elts = [param componentsSeparatedByString:@"="]; - if ([elts count] < 2) { - continue; - } - if ([[elts firstObject] isEqualToString:@"framework"]){ - [WXDebugTool setReplacedJSFramework:[NSURL URLWithString:[elts lastObject]]]; - } - } - } - } -} - -#pragma mark Remote debug -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Warc-performSelector-leaks" -- (BOOL)remoteDebug:(NSURL *)url -{ - if ([url.scheme isEqualToString:@"ws"]) { - [WXSDKEngine connectDebugServer:url.absoluteString]; - [WXSDKEngine initSDKEnvironment]; - - return YES; - } - - NSString *query = url.query; - for (NSString *param in [query componentsSeparatedByString:@"&"]) { - NSArray *elts = [param componentsSeparatedByString:@"="]; - if([elts count] < 2) continue; - if ([[elts firstObject] isEqualToString:@"_wx_debug"]) { - #ifdef DEBUG - [WXDebugTool setDebug:YES]; - #endif - - [WXSDKEngine connectDebugServer:[[elts lastObject] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; - if ([[[self.navigationController viewControllers] objectAtIndex:0] isKindOfClass:NSClassFromString(@"ViewController")]) { - ViewController * vc = (ViewController*)[[self.navigationController viewControllers] objectAtIndex:0]; - [vc performSelector:NSSelectorFromString(@"loadRefreshCtl")]; - [self.navigationController popToViewController:vc animated:NO]; - } - return YES; - } else if ([[elts firstObject] isEqualToString:@"_wx_devtool"]) { - #ifdef DEBUG - NSString *devToolURL = [[elts lastObject] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; - [WXDevTool launchDevToolDebugWithUrl:devToolURL]; - #endif - if ([[[self.navigationController viewControllers] objectAtIndex:0] isKindOfClass:NSClassFromString(@"ViewController")]) { - ViewController * vc = (ViewController*)[[self.navigationController viewControllers] objectAtIndex:0]; - [self.navigationController popToViewController:vc animated:NO]; - } - - return YES; - } - } - - return NO; -} -#pragma clang diagnostic pop - -- (void)recordScannerHistory:(NSString*)urlStr { - - NSMutableArray * scanner_history = [[[NSUserDefaults standardUserDefaults] objectForKey:WX_SCANNER_HISTORY] mutableCopy]; - if (!scanner_history) { - scanner_history = [NSMutableArray new]; - } - if ([scanner_history containsObject:urlStr]) { - [scanner_history removeObject:urlStr]; - } - if ([scanner_history count] >= 7) { - [scanner_history removeLastObject]; - } - [scanner_history insertObject:urlStr atIndex:0]; - [[NSUserDefaults standardUserDefaults] setObject:scanner_history forKey:WX_SCANNER_HISTORY]; -} - -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIView+Toast.h b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIView+Toast.h deleted file mode 100644 index 7f9b3e60..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIView+Toast.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// UIView+Toast.h -// GCanvasPlayground -// -// Created by jiangweixing on 2018/7/9. -// Copyright © 2018年 taobao. All rights reserved. -// - -#import <UIKit/UIKit.h> - -@interface UIView(Toast) - -- (void)toastMessage:(NSString*)message duration:(NSTimeInterval)delay; - -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIView+Toast.m b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIView+Toast.m deleted file mode 100644 index 5968d9fa..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIView+Toast.m +++ /dev/null @@ -1,101 +0,0 @@ -// -// UIView+Toast.m -// GCanvasPlayground -// -// Created by jiangweixing on 2018/7/9. -// Copyright © 2018年 taobao. All rights reserved. -// - -#import "UIView+Toast.h" - -@implementation UIView(Toast) - -- (void)toastMessage:(NSString*)message duration:(NSTimeInterval)duration{ - UIView *toast = [self toastViewForMessage:message]; - [self showToast:toast]; -} - -- (UIView*)toastViewForMessage:(NSString*)message{ - if (message ==nil) { - return nil; - } - - UILabel *messageLabel = [[UILabel alloc] init]; - messageLabel.numberOfLines = 0; - messageLabel.font = [UIFont systemFontOfSize:16.0]; - messageLabel.textAlignment = NSTextAlignmentCenter; - messageLabel.lineBreakMode = NSLineBreakByTruncatingTail; - messageLabel.textColor = [UIColor whiteColor]; - messageLabel.backgroundColor = [UIColor clearColor]; - messageLabel.alpha = 1.0; - messageLabel.text = message; - - CGSize maxSizeMessage = CGSizeMake((self.bounds.size.width * 0.8), self.bounds.size.height * 0.8); - CGSize expectedSizeMessage = [messageLabel sizeThatFits:maxSizeMessage]; - // UILabel can return a size larger than the max size when the number of lines is 1 - expectedSizeMessage = CGSizeMake(MIN(maxSizeMessage.width, expectedSizeMessage.width), MIN(maxSizeMessage.height, expectedSizeMessage.height)); - messageLabel.frame = CGRectMake(0.0, 0.0, expectedSizeMessage.width, expectedSizeMessage.height); - - CGRect messageRect = CGRectZero; - messageRect.origin.x = 10.0; - messageRect.origin.y = 10.0; - messageRect.size.width = messageLabel.bounds.size.width; - messageRect.size.height = messageLabel.bounds.size.height; - messageLabel.frame = messageRect; - - UIView *contentView = [[UIView alloc] init]; - contentView.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin); - contentView.layer.cornerRadius = 2.0; - contentView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.75]; - CGFloat contentWidth = messageRect.origin.x * 2 + messageRect.size.width; - CGFloat contentHeight = messageRect.origin.y * 2 + messageRect.size.height; - contentView.frame = CGRectMake(0.0, 0.0, contentWidth, contentHeight); - [contentView addSubview:messageLabel]; - - UIView *maskView = [[UIView alloc] initWithFrame:self.bounds]; - maskView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.1]; - contentView.center = CGPointMake(self.bounds.size.width*0.5, self.bounds.size.height *0.5); - [maskView addSubview:contentView]; - - return maskView; -} - -- (void)showToast:(UIView *)toast{ - if (toast == nil) return; - - typeof(self)weakSelf = self; - - UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onHandleToastTapped:)]; - [toast addGestureRecognizer:recognizer]; - toast.userInteractionEnabled = YES; - toast.exclusiveTouch = YES; - toast.alpha = 0; - - [UIView animateWithDuration:0.3 - delay:0 - options:(UIViewAnimationOptionCurveEaseOut|UIViewAnimationOptionAllowUserInteraction) - animations:^{ - toast.alpha = 1.0; - } completion:^(BOOL finished) { - [weakSelf addSubview:toast]; - }]; -} - -- (void)hideToast:(UIView*)toast{ - [UIView animateWithDuration:0.3 - delay:0 - options:(UIViewAnimationOptionCurveEaseOut|UIViewAnimationOptionAllowUserInteraction) - animations:^{ - toast.alpha = 0; - } completion:^(BOOL finished) { - [toast removeFromSuperview]; - }]; -} - -- (void)onHandleToastTapped:(UIGestureRecognizer*)recognizer{ - UIView *toast = recognizer.view; - [self hideToast:toast]; -} - - -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIView+UIThreadCheck.h b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIView+UIThreadCheck.h deleted file mode 100644 index 1d41e985..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIView+UIThreadCheck.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import <UIKit/UIKit.h> - -@interface UIView (UIThreadCheck) - -+ (void)wx_checkUIThread; - -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIView+UIThreadCheck.m b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIView+UIThreadCheck.m deleted file mode 100644 index b8d4ed87..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIView+UIThreadCheck.m +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "UIView+UIThreadCheck.h" -#import <WeexSDK/NSObject+WXSwizzle.h> - -#define WXCheckUIThread() NSAssert([NSThread isMainThread], \ -@"You must change UI on main thread!") - -@implementation UIView (UIThreadCheck) - -+ (void)wx_checkUIThread -{ - [self weex_swizzle:[self class] Method:@selector(setNeedsLayout) withMethod:@selector(wx_setNeedsLayout)]; - [self weex_swizzle:[self class] Method:@selector(setNeedsDisplay) withMethod:@selector(wx_setNeedsDisplay)]; - [self weex_swizzle:[self class] Method:@selector(setNeedsDisplayInRect:) withMethod:@selector(wx_setNeedsDisplayInRect:)]; -} - -- (void)wx_setNeedsLayout -{ - WXCheckUIThread(); - [self wx_setNeedsLayout]; -} - -- (void)wx_setNeedsDisplay -{ - WXCheckUIThread(); - [self wx_setNeedsDisplay]; -} - -- (void)wx_setNeedsDisplayInRect:(CGRect)rect -{ - WXCheckUIThread(); - [self wx_setNeedsDisplayInRect:rect]; -} - -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIViewController+NaviBar.h b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIViewController+NaviBar.h deleted file mode 100644 index 3ade85f1..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIViewController+NaviBar.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import <UIKit/UIKit.h> - -@interface UIViewController (NaviBar) <UIGestureRecognizerDelegate> - -/** - * back button click action - * @param sender responder - */ -- (void)backButtonClicked:(id)sender; - -- (void)setupNaviBar; - -@end - diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIViewController+NaviBar.m b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIViewController+NaviBar.m deleted file mode 100644 index 14576b30..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/UIViewController+NaviBar.m +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "UIViewController+NaviBar.h" -#import "WXScannerVC.h" -#import "WXScannerHistoryVC.h" -#import "MacroDefine.h" -#import <objc/runtime.h> - -@implementation UIViewController (WXDemoNaviBar) - -- (void)setupNaviBar -{ - UIScreenEdgePanGestureRecognizer *edgePanGestureRecognizer = [[UIScreenEdgePanGestureRecognizer alloc] initWithTarget:self action:@selector(edgePanGesture:)]; - edgePanGestureRecognizer.delegate = self; - edgePanGestureRecognizer.edges = UIRectEdgeLeft; - [self.view addGestureRecognizer:edgePanGestureRecognizer]; - - NSArray *ver = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."]; - if ([[ver objectAtIndex:0] intValue] >= 7) { - // iOS 7.0 or later - self.navigationController.navigationBar.barTintColor = GCANVAS_COLOR; - self.navigationController.navigationBar.tintColor = [UIColor whiteColor]; - self.navigationController.navigationBar.translucent = NO; - }else { - // iOS 6.1 or earlier - self.navigationController.navigationBar.tintColor = GCANVAS_COLOR; - } - - [self.navigationController.navigationBar setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys: - [UIColor whiteColor], NSForegroundColorAttributeName, nil]]; - self.navigationItem.title = @"GCanvas Playground"; - if (!self.navigationItem.leftBarButtonItem) { - UIBarButtonItem *leftItem; - if(![[self.navigationController.viewControllers objectAtIndex:0] isEqual:self]) { - leftItem = [self backButtonItem]; - } else { - leftItem = [self leftBarButtonItem]; - } - self.navigationItem.leftBarButtonItems = @[leftItem]; - } - if ([self isKindOfClass:[WXScannerVC class]]) { - UIBarButtonItem *historyItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"scan_history"] - style:UIBarButtonItemStylePlain - target:self - action:@selector(historyButtonClicked:)]; - self.navigationItem.rightBarButtonItems = @[historyItem]; - } - if([self isKindOfClass:[WXScannerHistoryVC class]]) { - UIBarButtonItem *historyItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"delete"] - style:UIBarButtonItemStylePlain - target:self - action:@selector(clearScannerHistory:)]; - self.navigationItem.rightBarButtonItems = @[historyItem]; - } -} - -- (void)edgePanGesture:(UIScreenEdgePanGestureRecognizer*)edgePanGestureRecognizer -{ - [self.navigationController popViewControllerAnimated:YES]; -} - -#pragma mark- UIGestureRecognizerDelegate -- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer -{ - if (self.navigationController && [self.navigationController.viewControllers count] == 1) { - return NO; - } - return YES; -} - -#pragma mark - -#pragma mark - UIBarButtonItems - -- (UIBarButtonItem *)leftBarButtonItem -{ - UIBarButtonItem *leftItem = objc_getAssociatedObject(self, _cmd); - - if (!leftItem) { - leftItem = [[UIBarButtonItem alloc] - initWithImage:[UIImage imageNamed:@"scan"] - style:UIBarButtonItemStylePlain - target:self - action:@selector(scanQR:)]; - leftItem.accessibilityHint = @"click to scan qr code"; - leftItem.accessibilityValue = @"scan qr code"; - objc_setAssociatedObject(self, _cmd, leftItem, OBJC_ASSOCIATION_RETAIN_NONATOMIC); - } - return leftItem; -} - -- (UIBarButtonItem *)backButtonItem -{ - UIBarButtonItem *backButtonItem = objc_getAssociatedObject(self, _cmd); - if (!backButtonItem) { - backButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"back"] - style:UIBarButtonItemStylePlain - target:self - action:@selector(backButtonClicked:)]; - objc_setAssociatedObject(self, _cmd, backButtonItem, OBJC_ASSOCIATION_RETAIN_NONATOMIC); - } - return backButtonItem; -} - -#pragma mark - -#pragma mark - UIBarButtonItem actions - -- (void)scanQR:(id)sender { - - WXScannerVC * scanViewController = [[WXScannerVC alloc] init]; - [self.navigationController pushViewController:scanViewController animated:YES]; -} - -- (void)backButtonClicked:(id)sender { - - [self.navigationController popViewControllerAnimated:YES]; -} - -- (void)historyButtonClicked:(id)sender { - - [self.navigationController pushViewController:[WXScannerHistoryVC new] animated:YES]; -} - -- (void)clearScannerHistory:(id)sender { - [[NSUserDefaults standardUserDefaults] removeObjectForKey:WX_SCANNER_HISTORY]; -} - -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/ViewController.h b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/ViewController.h deleted file mode 100644 index 17afe9a0..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/ViewController.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import <UIKit/UIKit.h> -#import <SocketRocket/SRWebSocket.h> - -@interface ViewController : UIViewController <SRWebSocketDelegate> - -@property (nonatomic, strong) NSString *script; -@property (nonatomic, strong) NSURL *url; - -@property (nonatomic, strong) SRWebSocket *hotReloadSocket; -@property (nonatomic, strong) NSString *source; - -@end - diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/ViewController.m b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/ViewController.m deleted file mode 100644 index d749ce12..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/ViewController.m +++ /dev/null @@ -1,243 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "ViewController.h" -#import <WeexSDK/WXSDKInstance.h> -#import <WeexSDK/WXSDKEngine.h> -#import <WeexSDK/WXUtility.h> -#import <WeexSDK/WXDebugTool.h> -#import <WeexSDK/WXSDKManager.h> -#import <WeexSDK/WXPrerenderManager.h> -#import <WeexSDK/WXMonitor.h> - -#import "UIViewController+NaviBar.h" - -@interface ViewController ()<UIScrollViewDelegate, UIWebViewDelegate> -@property (nonatomic, strong) WXSDKInstance *instance; -@property (nonatomic, strong) UIView *weexView; - -@property (nonatomic, strong) NSArray *refreshList; -@property (nonatomic, strong) NSArray *refreshList1; -@property (nonatomic, strong) NSArray *refresh; -@property (nonatomic) NSInteger count; - -@property (nonatomic, assign) CGFloat weexHeight; -@property (nonatomic, weak) id<UIScrollViewDelegate> originalDelegate; - -@end - -@implementation ViewController - -- (void)viewDidLoad -{ - [super viewDidLoad]; - [self setupNaviBar]; - [self setupRightBarItem]; - self.view.backgroundColor = [UIColor whiteColor]; - [self.view setClipsToBounds:YES]; - - _weexHeight = self.view.frame.size.height - 64; - - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notificationRefreshInstance:) name:@"RefreshInstance" object:nil]; - - [self render]; -} - -- (void)viewDidAppear:(BOOL)animated -{ - [super viewDidAppear:animated]; - [self updateInstanceState:WeexInstanceAppear]; -} - -- (void)viewDidDisappear:(BOOL)animated -{ - [super viewDidDisappear:animated]; - [self updateInstanceState:WeexInstanceDisappear]; -} - -- (void)viewWillAppear:(BOOL)animated -{ - [super viewWillAppear:animated]; - self.navigationController.navigationBarHidden = NO; -} - -//TODO get height -- (void)viewDidLayoutSubviews -{ - _weexHeight = self.view.frame.size.height; -} - -- (void)didReceiveMemoryWarning { - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. -} - -- (void)dealloc -{ - - [_instance destroyInstance]; -#ifdef DEBUG - [_instance forceGarbageCollection]; -#endif - - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -- (void)render -{ - CGFloat width = self.view.frame.size.width; - [_instance destroyInstance]; - _instance = [[WXSDKInstance alloc] init]; - if([WXPrerenderManager isTaskExist:[self.url absoluteString]]){ - _instance = [WXPrerenderManager instanceFromUrl:self.url.absoluteString]; - } - - _instance.viewController = self; - _instance.frame = CGRectMake(self.view.frame.size.width-width, 0, width, _weexHeight); - - __weak typeof(self) weakSelf = self; - _instance.onCreate = ^(UIView *view) { - [weakSelf.weexView removeFromSuperview]; - weakSelf.weexView = view; - [weakSelf.view addSubview:weakSelf.weexView]; - UIAccessibilityPostNotification(UIAccessibilityScreenChangedNotification, weakSelf.weexView); - }; - _instance.onFailed = ^(NSError *error) { - if ([[error domain] isEqualToString:@"1"]) { - dispatch_async(dispatch_get_main_queue(), ^{ - NSMutableString *errMsg=[NSMutableString new]; - [errMsg appendFormat:@"ErrorType:%@\n",[error domain]]; - [errMsg appendFormat:@"ErrorCode:%ld\n",(long)[error code]]; - [errMsg appendFormat:@"ErrorInfo:%@\n", [error userInfo]]; - - UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"render failed" message:errMsg delegate:weakSelf cancelButtonTitle:nil otherButtonTitles:@"ok", nil]; - [alertView show]; - }); - } - }; - - _instance.renderFinish = ^(UIView *view) { - WXLogDebug(@"%@", @"Render Finish..."); - [weakSelf updateInstanceState:WeexInstanceAppear]; - }; - - _instance.updateFinish = ^(UIView *view) { - WXLogDebug(@"%@", @"Update Finish..."); - }; - if (!self.url) { - WXLogError(@"error: render url is nil"); - return; - } - if([WXPrerenderManager isTaskExist:[self.url absoluteString]]){ - WX_MONITOR_INSTANCE_PERF_START(WXPTJSDownload, _instance); - WX_MONITOR_INSTANCE_PERF_END(WXPTJSDownload, _instance); - WX_MONITOR_INSTANCE_PERF_START(WXPTFirstScreenRender, _instance); - WX_MONITOR_INSTANCE_PERF_START(WXPTAllRender, _instance); - [WXPrerenderManager renderFromCache:[self.url absoluteString]]; - return; - } - NSURL *URL = [self testURL: [self.url absoluteString]]; - NSString *randomURL = [NSString stringWithFormat:@"%@%@random=%d",URL.absoluteString,URL.query?@"&":@"?",arc4random()]; - [_instance renderWithURL:[NSURL URLWithString:randomURL] options:@{@"bundleUrl":URL.absoluteString} data:nil]; -} - -- (void)updateInstanceState:(WXState)state -{ - if (_instance && _instance.state != state) { - _instance.state = state; - - if (state == WeexInstanceAppear) { - [[WXSDKManager bridgeMgr] fireEvent:_instance.instanceId ref:WX_SDK_ROOT_REF type:@"viewappear" params:nil domChanges:nil]; - } - else if (state == WeexInstanceDisappear) { - [[WXSDKManager bridgeMgr] fireEvent:_instance.instanceId ref:WX_SDK_ROOT_REF type:@"viewdisappear" params:nil domChanges:nil]; - } - } -} - -#pragma mark - refresh -- (void)refreshWeex -{ - [self render]; -} - -#pragma mark - UIBarButtonItems - -- (void)setupRightBarItem -{ - if ([self.url.scheme hasPrefix:@"http"]) { - [self loadRefreshCtl]; - } -} - -- (void)loadRefreshCtl { - UIBarButtonItem *refreshButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"reload"] style:UIBarButtonItemStylePlain target:self action:@selector(refreshWeex)]; - refreshButtonItem.accessibilityHint = @"click to reload curent page"; - self.navigationItem.rightBarButtonItem = refreshButtonItem; -} - -#pragma mark - websocket -- (void)webSocketDidOpen:(SRWebSocket *)webSocket -{ - -} - -- (void)webSocket:(SRWebSocket *)webSocket didReceiveMessage:(id)message -{ - if ([@"refresh" isEqualToString:message]) { - [self render]; - } -} - -- (void)webSocket:(SRWebSocket *)webSocket didFailWithError:(NSError *)error -{ - -} - -#pragma mark - localBundle - -#pragma mark - load local device bundle -- (NSURL*)testURL:(NSString*)url -{ - NSRange range = [url rangeOfString:@"_wx_tpl"]; - if (range.location != NSNotFound) { - NSString *tmp = [url substringFromIndex:range.location]; - NSUInteger start = [tmp rangeOfString:@"="].location; - NSUInteger end = [tmp rangeOfString:@"&"].location; - ++start; - if (end == NSNotFound) { - end = [tmp length] - start; - } - else { - end = end - start; - } - NSRange subRange; - subRange.location = start; - subRange.length = end; - url = [tmp substringWithRange:subRange]; - } - return [NSURL URLWithString:url]; -} - -#pragma mark - notification -- (void)notificationRefreshInstance:(NSNotification *)notification { - [self refreshWeex]; -} - -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/component/WXSelectComponent.h b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/component/WXSelectComponent.h deleted file mode 100644 index a50bd5ba..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/component/WXSelectComponent.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import <UIKit/UIKit.h> -#import <WeexSDK/WXComponent.h> - -@interface WXSelectComponent : WXComponent <UIPickerViewDataSource, UIPickerViewDelegate> - -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/component/WXSelectComponent.m b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/component/WXSelectComponent.m deleted file mode 100644 index e8de320a..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/component/WXSelectComponent.m +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXSelectComponent.h" -#import <WeexSDK/WXUtility.h> -#import <WeexSDK/WXComponent.h> - -@interface WXSelectComponent()<UIGestureRecognizerDelegate> - -@property (nonatomic, strong) UITapGestureRecognizer *tap; -@property (nonatomic, strong) UIPickerView *pickerView; -@property (nonatomic, strong) NSArray *options; -@property (nonatomic, assign) NSInteger selectIndex; -@property (nonatomic, assign) BOOL disabled; - -@end - -@implementation WXSelectComponent -- (instancetype)initWithRef:(NSString *)ref type:(NSString *)type styles:(NSDictionary *)styles attributes:(NSDictionary *)attributes events:(NSArray *)events weexInstance:(WXSDKInstance *)weexInstance -{ - self = [super initWithRef:ref type:type styles:styles attributes:attributes events:events weexInstance:weexInstance]; - if (self) { - _tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(popupPicker)]; - _tap.delegate = self; - - if (attributes[@"options"]) { - _options = [attributes[@"options"] componentsSeparatedByString:@","]; - } - if (attributes[@"selectIndex"]) { - _selectIndex = [attributes[@"selectIndex"] integerValue]; - } - if (attributes[@"disabled"]) { - _disabled = [attributes[@"disabled"] boolValue]; - } - - if (styles[@""]) { - // setting style when init - } - - UIWindow * window = [UIApplication sharedApplication].keyWindow; - CGSize windowSize = window.rootViewController.view.frame.size; - CGFloat pickerViewHeight = 200.0; - _pickerView = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 0, windowSize.width, pickerViewHeight)]; - [_pickerView setBackgroundColor:[UIColor redColor]]; - _pickerView.dataSource = self; - _pickerView.delegate = self; - } - - return self; -} - -- (void)viewDidLoad -{ - [_pickerView selectRow:_selectIndex inComponent:0 animated:YES]; - // show selected item - _pickerView.showsSelectionIndicator=YES; -} - -- (void)viewWillUnload -{ -} - -- (UIView *)loadView { - - return _pickerView; -} - -- (void)updateAttributes:(NSDictionary *)attributes -{ - if (attributes[@"options"]) { - _options = [attributes[@"options"] componentsSeparatedByString:@","]; - } - if (attributes[@"selectIndex"]) { - _selectIndex = [attributes[@"selectIndex"] integerValue]; - } - if (attributes[@"disabled"]) { - _disabled = [attributes[@"disabled"] boolValue]; - } - [_pickerView reloadAllComponents]; -} - -- (void)updateStyles:(NSDictionary *)styles -{ - -} - -#pragma mark - action -- (void)popupPicker -{ - if (_disabled) - return; - - [self fireEvent:@"focus" params:nil]; -} - -- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer -{ - if (gestureRecognizer == _tap) - return YES; - - if (otherGestureRecognizer == _tap) - return YES; - - if( [super respondsToSelector:@selector(gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:)]){ - id ret = [super performSelector:@selector(gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:) withObject:gestureRecognizer withObject:otherGestureRecognizer]; - return [ret boolValue]; - } - - return NO; -} - -#pragma mark - pickerView delegate -- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { - return 1; -} - - -- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { - return [_options count]; -} - -- (CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component { - - return self.calculatedFrame.size.width; -} - -- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component -{ - [self fireEvent:@"change" params:@{@"index":[NSNumber numberWithInteger:row], - @"value":[_options objectAtIndex:row]}]; -} - --(NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component -{ - return [_options objectAtIndex:row]; -} - -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/handler/WXConfigCenterDefaultImpl.h b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/handler/WXConfigCenterDefaultImpl.h deleted file mode 100644 index d2dc009a..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/handler/WXConfigCenterDefaultImpl.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import <Foundation/Foundation.h> -#import <WeexSDK/WXConfigCenterProtocol.h> - -@interface WXConfigCenterDefaultImpl : NSObject<WXConfigCenterProtocol> - -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/handler/WXConfigCenterDefaultImpl.m b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/handler/WXConfigCenterDefaultImpl.m deleted file mode 100644 index 946660da..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/handler/WXConfigCenterDefaultImpl.m +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXConfigCenterDefaultImpl.h" - -@implementation WXConfigCenterDefaultImpl - -- (id)configForKey:(NSString *)key defaultValue:(id)defaultValue isDefault:(BOOL *)isDefault -{ - NSArray<NSString*>* keys = [key componentsSeparatedByString:@"."]; - if ([keys[0] isEqualToString:@"iOS_weex_ext_config"] && [keys[1] isEqualToString:@"text_render_useCoreText"]){ - return @YES; - } - if ([keys[0] isEqualToString:@"iOS_weex_ext_config"] && [keys[1] isEqualToString:@"slider_class_name"]){ - return @"WXCycleSliderComponent"; - } - if ([keys[0] isEqualToString:@"weex_prerender_config"] && [keys[1] isEqualToString:@"is_switch_on"]){ - return @YES; - } - if ([keys[0] isEqualToString:@"weex_prerender_config"] && [keys[1] isEqualToString:@"cacheTime"]){ - return @300000; - } - if ([keys[0] isEqualToString:@"weex_prerender_config"] && [keys[1] isEqualToString:@"max_cache_num"]){ - return @2; - } - return nil; -} - -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/handler/WXImgLoaderDefaultImpl.h b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/handler/WXImgLoaderDefaultImpl.h deleted file mode 100644 index cfc354c0..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/handler/WXImgLoaderDefaultImpl.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import <Foundation/Foundation.h> -#import <WeexSDK/WXImgLoaderProtocol.h> - -@interface WXImgLoaderDefaultImpl : NSObject<WXImgLoaderProtocol, WXModuleProtocol> -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/handler/WXImgLoaderDefaultImpl.m b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/handler/WXImgLoaderDefaultImpl.m deleted file mode 100644 index ee59567b..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/handler/WXImgLoaderDefaultImpl.m +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXImgLoaderDefaultImpl.h" -#import <SDWebImage/UIImageView+WebCache.h> - -#define MIN_IMAGE_WIDTH 36 -#define MIN_IMAGE_HEIGHT 36 - -#if OS_OBJECT_USE_OBJC -#undef WXDispatchQueueRelease -#undef WXDispatchQueueSetterSementics -#define WXDispatchQueueRelease(q) -#define WXDispatchQueueSetterSementics strong -#else -#undef WXDispatchQueueRelease -#undef WXDispatchQueueSetterSementics -#define WXDispatchQueueRelease(q) (dispatch_release(q)) -#define WXDispatchQueueSetterSementics assign -#endif - -@interface WXImgLoaderDefaultImpl() - -@property (WXDispatchQueueSetterSementics, nonatomic) dispatch_queue_t ioQueue; - -@end - -@implementation WXImgLoaderDefaultImpl - -#pragma mark - -#pragma mark WXImgLoaderProtocol - -- (id<WXImageOperationProtocol>)downloadImageWithURL:(NSString *)url imageFrame:(CGRect)imageFrame userInfo:(NSDictionary *)userInfo completed:(void(^)(UIImage *image, NSError *error, BOOL finished))completedBlock -{ - if ([url hasPrefix:@"//"]) { - url = [@"http:" stringByAppendingString:url]; - } - - return (id<WXImageOperationProtocol>) [[SDWebImageManager sharedManager].imageLoader requestImageWithURL:[NSURL URLWithString:url] options:0 context:nil progress:nil completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, BOOL finished) { - if( completedBlock ){ - completedBlock(image, error, finished); - } - }]; -} - -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXEventModule.h b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXEventModule.h deleted file mode 100644 index 2fec4ec1..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXEventModule.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import <Foundation/Foundation.h> -#import <WeexSDK/WXEventModuleProtocol.h> -#import <WeexSDK/WXModuleProtocol.h> - -@interface WXEventModule : NSObject <WXEventModuleProtocol, WXModuleProtocol> - -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXEventModule.m b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXEventModule.m deleted file mode 100644 index 5d3bfd5d..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXEventModule.m +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXEventModule.h" -#import "ViewController.h" -#import <WeexSDK/WXBaseViewController.h> - -@implementation WXEventModule - -@synthesize weexInstance; - -WX_EXPORT_METHOD(@selector(openURL:)) - -WX_EXPORT_METHOD(@selector(fireNativeGlobalEvent:callback:)) - -- (void)openURL:(NSString *)url -{ - NSString *newURL = url; - if ([url hasPrefix:@"//"]) { - newURL = [NSString stringWithFormat:@"http:%@", url]; - } else if (![url hasPrefix:@"http"]) { - // relative path - newURL = [NSURL URLWithString:url relativeToURL:weexInstance.scriptURL].absoluteString; - } - - UIViewController *controller = [[ViewController alloc] init]; - ((ViewController *)controller).url = [NSURL URLWithString:newURL]; - - [[weexInstance.viewController navigationController] pushViewController:controller animated:YES]; -} - - -/** - a test method for macaca case, you can fire globalEvent when download finish、device shaked and so on. - @param event event name - */ -- (void)fireNativeGlobalEvent:(NSString *)event callback:(WXModuleCallback)callback -{ - [weexInstance fireGlobalEvent:event params:@{@"eventParam":@"eventValue"}]; - if (callback) { - NSDictionary * result = @{@"ok": @true}; - callback(result); - } -} - -@end - diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXExtModule.h b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXExtModule.h deleted file mode 100644 index e440c58b..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXExtModule.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import <Foundation/Foundation.h> - -#import <WeexSDK/WXModuleProtocol.h> - -@interface WXExtModule : NSObject <WXModuleProtocol> - -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXExtModule.m b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXExtModule.m deleted file mode 100644 index ae43d0fc..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXExtModule.m +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXExtModule.h" - -@implementation WXExtModule - -WX_EXPORT_METHOD(@selector(generateCover:)) - -- (void)generateCover:(WXModuleCallback)callback -{ -#ifdef UITEST -#if !TARGET_IPHONE_SIMULATOR - NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); - NSString *documentsDirectory = [paths objectAtIndex:0]; - setenv("GCOV_PREFIX", [documentsDirectory cStringUsingEncoding:NSUTF8StringEncoding], 1); - setenv("GCOV_PREFIX_STRIP", "6", 1); -#endif - extern void __gcov_flush(void); - __gcov_flush(); -#endif - - if (callback) { - NSDictionary * result = @{@"ok": @true}; - callback(result); - } -} - -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXSyncTestModule.h b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXSyncTestModule.h deleted file mode 100644 index 254af6f3..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXSyncTestModule.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import <Foundation/Foundation.h> -#import <WeexSDK/WXModuleProtocol.h> - -@interface WXSyncTestModule : NSObject <WXModuleProtocol> - -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXSyncTestModule.m b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXSyncTestModule.m deleted file mode 100644 index 784502df..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/extend/module/WXSyncTestModule.m +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXSyncTestModule.h" - -@implementation WXSyncTestModule - -WX_EXPORT_METHOD_SYNC(@selector(getString)) -WX_EXPORT_METHOD_SYNC(@selector(getNumber)) -WX_EXPORT_METHOD_SYNC(@selector(getArray)) -WX_EXPORT_METHOD_SYNC(@selector(getObject)) - -- (NSString *)getString -{ - return @"testString"; -} - -- (NSUInteger)getNumber -{ - return 111111; -} - -- (NSArray *)getArray -{ - return @[@(111111),@"testString",@"testString2"]; -} - -- (NSDictionary *)getObject -{ - return @{@"number":@(111111), @"string1":@"testString",@"string2":@"testString2"}; -} - -@end diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/gcanvas-icon.png b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/gcanvas-icon.png deleted file mode 100644 index 2d47ff393c45595607969fcf0f8486fc121fb5b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28010 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 O1GH}H;mU4Ug#Hg<()t7d diff --git a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/main.m b/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/main.m deleted file mode 100644 index 070182fd..00000000 --- a/bridges/weex-gcanvas/ios/playground/GCanvasPlayground/main.m +++ /dev/null @@ -1,16 +0,0 @@ -// -// main.m -// GCanvasPlayground -// -// Created by jiangweixing on 2018/2/1. -// Copyright © 2018年 taobao. All rights reserved. -// - -#import <UIKit/UIKit.h> -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/bridges/weex-gcanvas/ios/playground/Podfile b/bridges/weex-gcanvas/ios/playground/Podfile deleted file mode 100644 index c8392b59..00000000 --- a/bridges/weex-gcanvas/ios/playground/Podfile +++ /dev/null @@ -1,14 +0,0 @@ -source 'https://github.com/CocoaPods/Specs.git' - -platform :ios, '9.0' -inhibit_all_warnings! - -target 'GCanvasPlayground' do - pod 'WXDevtool', '0.20.0', :configurations => ['Debug'] - pod 'WeexSDK' - pod 'WeexPluginLoader', :git=>'git@github.com:kfeagle/WeexPluginLoader.git' - pod 'SocketRocket' - - pod 'WeexGcanvas', :path=>'../../../../' - pod 'GCanvas', :path=>'../../../../' -end diff --git a/bridges/weex-gcanvas/ios/sdk/Info.plist b/bridges/weex-gcanvas/ios/sdk/Info.plist deleted file mode 100644 index fbe1e6b3..00000000 --- a/bridges/weex-gcanvas/ios/sdk/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundleDevelopmentRegion</key> - <string>en</string> - <key>CFBundleExecutable</key> - <string>$(EXECUTABLE_NAME)</string> - <key>CFBundleIdentifier</key> - <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundleName</key> - <string>$(PRODUCT_NAME)</string> - <key>CFBundlePackageType</key> - <string>FMWK</string> - <key>CFBundleShortVersionString</key> - <string>1.0</string> - <key>CFBundleVersion</key> - <string>$(CURRENT_PROJECT_VERSION)</string> - <key>NSPrincipalClass</key> - <string></string> -</dict> -</plist> diff --git a/bridges/weex-gcanvas/ios/sdk/Podfile b/bridges/weex-gcanvas/ios/sdk/Podfile deleted file mode 100644 index 63a4f57f..00000000 --- a/bridges/weex-gcanvas/ios/sdk/Podfile +++ /dev/null @@ -1,11 +0,0 @@ -source 'https://github.com/CocoaPods/Specs.git' - -platform :ios, '9.0' -inhibit_all_warnings! - -target 'WeexGcanvas' do - pod 'WeexPluginLoader', :git=>'git@github.com:kfeagle/WeexPluginLoader.git' - pod 'GCanvas', :path=>'../../../../' - pod 'SDWebImage' - pod 'WeexSDK' -end diff --git a/bridges/weex-gcanvas/ios/sdk/Sources/WXGCanvasComponent.h b/bridges/weex-gcanvas/ios/sdk/Sources/WXGCanvasComponent.h deleted file mode 100644 index b8b47e28..00000000 --- a/bridges/weex-gcanvas/ios/sdk/Sources/WXGCanvasComponent.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import <UIKit/UIKit.h> -#import <WeexSDK/WXComponent.h> -#import <GLKit/GLKit.h> -#import <GCanvas/GCanvasViewProtocol.h> - -@interface WXGCanvasComponent : WXComponent<GCanvasViewProtocol> - -@property (nonatomic, strong, readonly) GLKView* glkview; -@property (nonatomic, assign, readonly) CGRect componetFrame; - -/** - * offscreen WXGCanvasComponent - */ -@property (nonatomic, assign, readonly) BOOL isOffscreen; - -/** - * GCnavas plugin initilaise or refresh - */ -@property (nonatomic, assign) BOOL needChangeEAGLContenxt; - -- (CGFloat)devicePixelRatio; -- (NSString*)componentId; - -@end diff --git a/bridges/weex-gcanvas/ios/sdk/Sources/WXGCanvasComponent.mm b/bridges/weex-gcanvas/ios/sdk/Sources/WXGCanvasComponent.mm deleted file mode 100644 index 049bee0b..00000000 --- a/bridges/weex-gcanvas/ios/sdk/Sources/WXGCanvasComponent.mm +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXGCanvasComponent.h" -#import <GLKit/GLKit.h> -#import <WeexPluginLoader/WeexPluginLoader.h> -#import <WeexSDK/WeexSDK.h> -#import <WeexSDK/WXComponent+Layout.h> - -#import <GCanvas/GCVCommon.h> -#import <GCanvas/GCanvasModule.h> - -@interface WXGCanvasComponent() - -@property (nonatomic, strong) GLKView *glkview; -@property (nonatomic, assign) CGSize viewSize; -@property (nonatomic, assign) CGRect componetFrame; -@property (nonatomic, assign) BOOL isOffscreen; - -@end - -@implementation WXGCanvasComponent - -WX_PlUGIN_EXPORT_COMPONENT(gcanvas,WXGCanvasComponent) - - -/** - * @abstract Initializes a new component using the specified properties. - * - * @param ref the identity string of component - * @param type component type - * @param styles component's styles - * @param attributes component's attributes - * @param events component's events - * @param weexInstance the weexInstance with which the component associated - * - * @return A WXComponent instance. - */ -- (instancetype)initWithRef:(NSString *)ref - type:(NSString*)type - styles:(nullable NSDictionary *)styles - attributes:(nullable NSDictionary *)attributes - events:(nullable NSArray *)events - weexInstance:(WXSDKInstance *)weexInstance{ - GCVLOG_METHOD(@"ref=%@, type=%@, styles=%@, attributes=%@, events=%@, weexInstance=%@", ref, type, styles, attributes, events, weexInstance) - self = [super initWithRef:ref type:type styles:styles attributes:attributes events:events weexInstance:weexInstance]; - if (self ){ - //indicate offscreen gcanvas, while set offscreen=1 in styles - if( styles[@"offscreen"] ){ - self.isOffscreen = [styles[@"offscreen"] integerValue] == 1; - } - - //get style from flexCssNode - CGSize size = [[UIScreen mainScreen] bounds].size; - float x=0, y=0; - if (!isnan(_flexCssNode->getStylePositionLeft())) { - x = _flexCssNode->getStylePositionLeft(); - } - if(!isnan(_flexCssNode->getStylePositionTop())){ - y = _flexCssNode->getStylePositionTop(); - } - if(!isnan(_flexCssNode->getStyleWidth())){ - size.width = _flexCssNode->getStyleWidth(); - } - if(!isnan(_flexCssNode->getStyleHeight())){ - size.height = _flexCssNode->getStyleHeight(); - } - self.viewSize = size; - float r = self.weexInstance.pixelScaleFactor; - self.componetFrame = CGRectMake(x, y, size.width/r, size.height/r); - self.needChangeEAGLContenxt = YES; - } - - return self; -} - - -- (void)dealloc{ - [EAGLContext setCurrentContext:nil]; -} - -- (UIView *)loadView{ - if( !self.glkview ){ - GLKView *glkview = [[GLKView alloc] initWithFrame:CGRectMake(0, 0, self.viewSize.width, self.viewSize.height)]; - glkview.enableSetNeedsDisplay = YES; - glkview.userInteractionEnabled = YES; - glkview.drawableDepthFormat = GLKViewDrawableDepthFormat24; - glkview.drawableStencilFormat = GLKViewDrawableStencilFormat8; - glkview.backgroundColor = [UIColor clearColor]; - - self.glkview = glkview; - - [[NSNotificationCenter defaultCenter] postNotificationName:kGCanvasCompLoadedNotification object:nil userInfo:@{@"componentId":self.ref}]; - } - return self.glkview; -} - -- (NSString*)componentId{ - return self.ref; -} - -- (CGFloat)devicePixelRatio{ - return self.calculatedFrame.size.width * [UIScreen mainScreen].nativeScale / self.componetFrame.size.width ; -} - -@end diff --git a/bridges/weex-gcanvas/ios/sdk/Sources/WXGCanvasModule.h b/bridges/weex-gcanvas/ios/sdk/Sources/WXGCanvasModule.h deleted file mode 100644 index c409100b..00000000 --- a/bridges/weex-gcanvas/ios/sdk/Sources/WXGCanvasModule.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import <Foundation/Foundation.h> -#import <WeexSDK/WXModuleProtocol.h> - -@interface WXGCanvasModule : NSObject <WXModuleProtocol> - -@end diff --git a/bridges/weex-gcanvas/ios/sdk/Sources/WXGCanvasModule.m b/bridges/weex-gcanvas/ios/sdk/Sources/WXGCanvasModule.m deleted file mode 100644 index 70dfdd19..00000000 --- a/bridges/weex-gcanvas/ios/sdk/Sources/WXGCanvasModule.m +++ /dev/null @@ -1,234 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -#import "WXGCanvasModule.h" -#import "WXGCanvasComponent.h" -#import <GCanvas/GCanvasModule.h> -#import <WeexSDK/WXDefine.h> -#import <WeexSDK/WXComponentManager.h> -#import <SDWebImage/SDWebImageManager.h> -#import <WeexPluginLoader/WeexPluginLoader.h> - -@interface WXGCanvasModule()<GCanvasModuleProtocol, GCVImageLoaderProtocol> - -@property (nonatomic, strong) GCanvasModule *gcanvasModule; - -@end - - -@implementation WXGCanvasModule - -WX_PlUGIN_EXPORT_MODULE(gcanvas, WXGCanvasModule) - -@synthesize weexInstance; - -#pragma mark - Export asynchronous method -/** - * @abstract JS render method - */ -WX_EXPORT_METHOD(@selector(render:componentId:)); - -/** - * @abstract JS preload image - */ -WX_EXPORT_METHOD(@selector(preLoadImage:callback:)); - -/** - * @abstract JS bind image to a texture - */ -WX_EXPORT_METHOD(@selector(bindImageTexture:componentId:callback:)); - -/** - * @abstract JS setContextType, 0-GCVContextType2D, 1-GCVContextTypeWebGL - */ -WX_EXPORT_METHOD(@selector(setContextType:componentId:)); - -/** - * @abstract JS setLogLevel - */ -WX_EXPORT_METHOD(@selector(setLogLevel:)); - -/** - * @abstract JS call this function while viewdisappear - */ -WX_EXPORT_METHOD(@selector(resetComponent:)); - - - -#pragma mark - Export synchronous method -/** - * @abstract JS initalise GCanvas - */ -WX_EXPORT_METHOD_SYNC(@selector(enable:)); - -/** - * @abstract JS callNative method just for WebGL - */ -WX_EXPORT_METHOD_SYNC(@selector(extendCallNative:)); - - - -/** - * WXModuleProtocol method - * return the execute queue for the module - */ -- (dispatch_queue_t)targetExecuteQueue{ - return [self.gcanvasModule gcanvasExecuteQueue]; -} - -- (instancetype)init{ - if( self = [super init] ){ - self.gcanvasModule = [[GCanvasModule alloc] initWithDelegate:self]; - self.gcanvasModule.imageLoader = self; - } - return self; -} - -#pragma mark - Weex Export Method -- (NSString*)enable:(NSDictionary *)args{ - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(onWeexInstanceWillDestroy:) - name:WX_INSTANCE_WILL_DESTROY_NOTIFICATION - object:nil]; - return [self.gcanvasModule enable:args]; -} - - - -/** - * Export JS method for context 2D render - * - * @param commands render commands from js - * @param componentId GCanvas component identifier - */ -- (void)render:(NSString *)commands componentId:(NSString*)componentId{ - [self.gcanvasModule render:commands componentId:componentId]; -} - -/** - * Export JS method for reset GCanvas component while disappear - * - * @param componentId GCanvas component identifier - */ -- (void)resetComponent:(NSString*)componentId{ - [self.gcanvasModule resetComponent:componentId]; -} - -/** - * Export JS method for preloading image - * - * @param data NSArray, contain 2 item - data[0] - image source, - data[1] - fake texture id(auto-increment id)of GCanvasImage in JS - * @param componentId GCanvas component identifier - * @param callback - */ -- (void)preLoadImage:(NSArray *)data callback:(WXModuleCallback)callback{ - [self.gcanvasModule preLoadImage:data callback:callback]; -} - -/** - * Export JS method for binding image to real native texture - * - * @param data same as preLoadImage:callback: - * @param componentId GCanvas component identifier - * @param callback - */ -- (void)bindImageTexture:(NSArray *)data componentId:(NSString*)componentId callback:(WXModuleCallback)callback{ - [self.gcanvasModule bindImageTexture:data componentId:componentId callback:callback]; -} - -/** - * Export JS method set GCanvas plugin contextType - * @param type see GCVContextType - */ -- (void)setContextType:(NSUInteger)type componentId:(NSString*)componentId{ - [self.gcanvasModule setContextType:type componentId:componentId]; -} - -/** - * Export JS method set log level - * @param level - */ -- (void)setLogLevel:(NSUInteger)level{ - [self.gcanvasModule setLogLevel:level]; -} - - -#pragma mark - WebGL -/** - * JS call native directly just for WebGL - * - * @param dict input WebGL command - dict[@"contextId"] - GCanvas component identifier - dict[@"type"] - type - dict[@"args"] - WebGL command - - * @return return execute result - */ -- (NSDictionary*)extendCallNative:(NSDictionary*)dict{ - return [self.gcanvasModule extendCallNative:dict]; -} - -#pragma mark - GCanvasModuleProtocol -- (id<GCanvasViewProtocol>)gcanvasComponentById:(NSString*)componentId{ - __block id<GCanvasViewProtocol> component = nil; - __weak typeof(self) weakSelf = self; - - dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); - while ( !component || !component.glkview ) { - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.05 * NSEC_PER_SEC)), [self targetExecuteQueue], ^{ - WXPerformBlockSyncOnComponentThread(^{ - component = (WXGCanvasComponent *)[weakSelf.weexInstance componentForRef:componentId]; - }); - dispatch_semaphore_signal(semaphore); - }); - dispatch_semaphore_wait(semaphore, dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC))); - } - return component; -} - -- (NSString*)gcanvasModuleInstanceId{ - return weexInstance.instanceId; -} - -- (void)dispatchGlobalEvent:(NSString*)event params:(NSDictionary*)params{ - [weexInstance fireGlobalEvent:event params:params]; -} - -#pragma mark - GCVImageLoaderProtocol -- (void)loadImage:(NSURL*)url completed:(GCVLoadImageCompletion)completion{ - [[SDWebImageManager sharedManager].imageLoader requestImageWithURL:url options:0 context:nil progress:nil completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, BOOL finished) { - completion(image, error, finished, url); - }]; -} - -#pragma mark - Event Notificaiton -- (void)onWeexInstanceWillDestroy:(NSNotification*)notification{ - NSString *instanceId = notification.userInfo[@"instanceId"]; - if (![instanceId isEqualToString:weexInstance.instanceId]) { - return; - } - - [[NSNotificationCenter defaultCenter] postNotificationName:kGCanvasDestroyNotification - object:notification.object - userInfo:notification.userInfo]; -} - -@end diff --git a/bridges/weex-gcanvas/ios/sdk/WeexGcanvas.xcodeproj/project.pbxproj b/bridges/weex-gcanvas/ios/sdk/WeexGcanvas.xcodeproj/project.pbxproj deleted file mode 100644 index fe2c9990..00000000 --- a/bridges/weex-gcanvas/ios/sdk/WeexGcanvas.xcodeproj/project.pbxproj +++ /dev/null @@ -1,411 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 167A902A23FF95F55EE49181 /* libPods-WeexGcanvas.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 8AA79D7936ED98F635C0AE12 /* libPods-WeexGcanvas.a */; }; - C431395D1E954ACB008B80D0 /* WXGCanvasComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = C43139581E954ACB008B80D0 /* WXGCanvasComponent.h */; }; - C431395E1E954ACB008B80D0 /* WXGCanvasComponent.mm in Sources */ = {isa = PBXBuildFile; fileRef = C43139591E954ACB008B80D0 /* WXGCanvasComponent.mm */; }; - C431395F1E954ACB008B80D0 /* WXGCanvasModule.h in Headers */ = {isa = PBXBuildFile; fileRef = C431395A1E954ACB008B80D0 /* WXGCanvasModule.h */; }; - C43139601E954ACB008B80D0 /* WXGCanvasModule.m in Sources */ = {isa = PBXBuildFile; fileRef = C431395B1E954ACB008B80D0 /* WXGCanvasModule.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 7222E97A9E0BDD5D4BA6A21E /* Pods-WeexGcanvas.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WeexGcanvas.debug.xcconfig"; path = "Pods/Target Support Files/Pods-WeexGcanvas/Pods-WeexGcanvas.debug.xcconfig"; sourceTree = "<group>"; }; - 8AA79D7936ED98F635C0AE12 /* libPods-WeexGcanvas.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-WeexGcanvas.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 912A6A653FE8C3267A392A2F /* Pods-WeexGcanvas.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WeexGcanvas.release.xcconfig"; path = "Pods/Target Support Files/Pods-WeexGcanvas/Pods-WeexGcanvas.release.xcconfig"; sourceTree = "<group>"; }; - C431394B1E954AA8008B80D0 /* WeexGcanvas.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = WeexGcanvas.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C43139561E954ACB008B80D0 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; - C43139581E954ACB008B80D0 /* WXGCanvasComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXGCanvasComponent.h; sourceTree = "<group>"; }; - C43139591E954ACB008B80D0 /* WXGCanvasComponent.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = WXGCanvasComponent.mm; sourceTree = "<group>"; }; - C431395A1E954ACB008B80D0 /* WXGCanvasModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WXGCanvasModule.h; sourceTree = "<group>"; }; - C431395B1E954ACB008B80D0 /* WXGCanvasModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WXGCanvasModule.m; sourceTree = "<group>"; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - C43139471E954AA8008B80D0 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 167A902A23FF95F55EE49181 /* libPods-WeexGcanvas.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 9CCEC35719F2C76245E693D5 /* Pods */ = { - isa = PBXGroup; - children = ( - 7222E97A9E0BDD5D4BA6A21E /* Pods-WeexGcanvas.debug.xcconfig */, - 912A6A653FE8C3267A392A2F /* Pods-WeexGcanvas.release.xcconfig */, - ); - name = Pods; - sourceTree = "<group>"; - }; - C43139411E954AA8008B80D0 = { - isa = PBXGroup; - children = ( - C43139561E954ACB008B80D0 /* Info.plist */, - C43139571E954ACB008B80D0 /* Sources */, - C431394C1E954AA8008B80D0 /* Products */, - 9CCEC35719F2C76245E693D5 /* Pods */, - EC99DF3D825954C35FF1B28F /* Frameworks */, - ); - sourceTree = "<group>"; - }; - C431394C1E954AA8008B80D0 /* Products */ = { - isa = PBXGroup; - children = ( - C431394B1E954AA8008B80D0 /* WeexGcanvas.framework */, - ); - name = Products; - sourceTree = "<group>"; - }; - C43139571E954ACB008B80D0 /* Sources */ = { - isa = PBXGroup; - children = ( - C43139581E954ACB008B80D0 /* WXGCanvasComponent.h */, - C43139591E954ACB008B80D0 /* WXGCanvasComponent.mm */, - C431395A1E954ACB008B80D0 /* WXGCanvasModule.h */, - C431395B1E954ACB008B80D0 /* WXGCanvasModule.m */, - ); - path = Sources; - sourceTree = "<group>"; - }; - EC99DF3D825954C35FF1B28F /* Frameworks */ = { - isa = PBXGroup; - children = ( - 8AA79D7936ED98F635C0AE12 /* libPods-WeexGcanvas.a */, - ); - name = Frameworks; - sourceTree = "<group>"; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - C43139481E954AA8008B80D0 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - C431395D1E954ACB008B80D0 /* WXGCanvasComponent.h in Headers */, - C431395F1E954ACB008B80D0 /* WXGCanvasModule.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - C431394A1E954AA8008B80D0 /* WeexGcanvas */ = { - isa = PBXNativeTarget; - buildConfigurationList = C43139531E954AA8008B80D0 /* Build configuration list for PBXNativeTarget "WeexGcanvas" */; - buildPhases = ( - FC9116878B00DA9884F74AC5 /* [CP] Check Pods Manifest.lock */, - C43139461E954AA8008B80D0 /* Sources */, - C43139471E954AA8008B80D0 /* Frameworks */, - C43139481E954AA8008B80D0 /* Headers */, - C43139491E954AA8008B80D0 /* Resources */, - 49DD026700C539FA75F5A07F /* [CP] Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = WeexGcanvas; - productName = WeexGcanvas; - productReference = C431394B1E954AA8008B80D0 /* WeexGcanvas.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - C43139421E954AA8008B80D0 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0820; - ORGANIZATIONNAME = weexplugin; - TargetAttributes = { - C431394A1E954AA8008B80D0 = { - CreatedOnToolsVersion = 8.2; - ProvisioningStyle = Automatic; - }; - }; - }; - buildConfigurationList = C43139451E954AA8008B80D0 /* Build configuration list for PBXProject "WeexGcanvas" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - en, - ); - mainGroup = C43139411E954AA8008B80D0; - productRefGroup = C431394C1E954AA8008B80D0 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - C431394A1E954AA8008B80D0 /* WeexGcanvas */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - C43139491E954AA8008B80D0 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 49DD026700C539FA75F5A07F /* [CP] Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-WeexGcanvas/Pods-WeexGcanvas-resources.sh", - "${PODS_ROOT}/WeexSDK/pre-build/native-bundle-main.js", - "${PODS_ROOT}/WeexSDK/pre-build/weex-main-jsfm.js", - "${PODS_ROOT}/WeexSDK/pre-build/weex-polyfill.js", - "${PODS_ROOT}/WeexSDK/pre-build/weex-rax-api.js", - "${PODS_ROOT}/WeexSDK/ios/sdk/WeexSDK/Resources/wx_load_error@3x.png", - ); - name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/native-bundle-main.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-main-jsfm.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-polyfill.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/weex-rax-api.js", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/wx_load_error@3x.png", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-WeexGcanvas/Pods-WeexGcanvas-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - FC9116878B00DA9884F74AC5 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-WeexGcanvas-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - C43139461E954AA8008B80D0 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - C43139601E954ACB008B80D0 /* WXGCanvasModule.m in Sources */, - C431395E1E954ACB008B80D0 /* WXGCanvasComponent.mm in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - C43139511E954AA8008B80D0 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - C43139521E954AA8008B80D0 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - C43139541E954AA8008B80D0 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7222E97A9E0BDD5D4BA6A21E /* Pods-WeexGcanvas.debug.xcconfig */; - buildSettings = { - CLANG_ENABLE_MODULES = NO; - CLANG_WARN_DOCUMENTATION_COMMENTS = NO; - CODE_SIGN_IDENTITY = ""; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "\"${PODS_ROOT}/Headers/Public\"", - "\"${PODS_ROOT}/Headers/Public/GCanvas\"", - "\"${PODS_ROOT}/Headers/Public/SDWebImage\"", - "\"${PODS_ROOT}/Headers/Public/SocketRocket\"", - "\"${PODS_ROOT}/Headers/Public/WeexSDK\"", - ); - INFOPLIST_FILE = "$(SRCROOT)/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - OTHER_CFLAGS = "-Wno-error-unused-command-line-argument"; - PRODUCT_BUNDLE_IDENTIFIER = com.weexplugin.WeexGcanvas; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - WARNING_CFLAGS = "-Wno-documentation"; - }; - name = Debug; - }; - C43139551E954AA8008B80D0 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 912A6A653FE8C3267A392A2F /* Pods-WeexGcanvas.release.xcconfig */; - buildSettings = { - CLANG_ENABLE_MODULES = NO; - CLANG_WARN_DOCUMENTATION_COMMENTS = NO; - CODE_SIGN_IDENTITY = ""; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "\"${PODS_ROOT}/Headers/Public\"", - "\"${PODS_ROOT}/Headers/Public/GCanvas\"", - "\"${PODS_ROOT}/Headers/Public/SDWebImage\"", - "\"${PODS_ROOT}/Headers/Public/SocketRocket\"", - "\"${PODS_ROOT}/Headers/Public/WeexSDK\"", - ); - INFOPLIST_FILE = "$(SRCROOT)/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 7.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - OTHER_CFLAGS = "-Wno-error-unused-command-line-argument"; - PRODUCT_BUNDLE_IDENTIFIER = com.weexplugin.WeexGcanvas; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - WARNING_CFLAGS = "-Wno-documentation"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C43139451E954AA8008B80D0 /* Build configuration list for PBXProject "WeexGcanvas" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C43139511E954AA8008B80D0 /* Debug */, - C43139521E954AA8008B80D0 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C43139531E954AA8008B80D0 /* Build configuration list for PBXNativeTarget "WeexGcanvas" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C43139541E954AA8008B80D0 /* Debug */, - C43139551E954AA8008B80D0 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = C43139421E954AA8008B80D0 /* Project object */; -} diff --git a/bridges/weex-gcanvas/ios/sdk/WeexGcanvas.xcodeproj/xcshareddata/xcschemes/WeexGcanvas.xcscheme b/bridges/weex-gcanvas/ios/sdk/WeexGcanvas.xcodeproj/xcshareddata/xcschemes/WeexGcanvas.xcscheme deleted file mode 100644 index 654b3ec4..00000000 --- a/bridges/weex-gcanvas/ios/sdk/WeexGcanvas.xcodeproj/xcshareddata/xcschemes/WeexGcanvas.xcscheme +++ /dev/null @@ -1,82 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "0820" - version = "1.3"> - <BuildAction - parallelizeBuildables = "YES" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "C431394A1E954AA8008B80D0" - BuildableName = "WeexGcanvas.framework" - BlueprintName = "WeexGcanvas" - ReferencedContainer = "container:WeexGcanvas.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - </BuildActionEntries> - </BuildAction> - <TestAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - language = "" - shouldUseLaunchSchemeArgsEnv = "YES"> - <Testables> - </Testables> - <AdditionalOptions> - </AdditionalOptions> - </TestAction> - <LaunchAction - buildConfiguration = "Release" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - language = "" - launchStyle = "0" - useCustomWorkingDirectory = "NO" - ignoresPersistentStateOnLaunch = "NO" - debugDocumentVersioning = "YES" - debugServiceExtension = "internal" - allowLocationSimulation = "YES"> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "C431394A1E954AA8008B80D0" - BuildableName = "WeexGcanvas.framework" - BlueprintName = "WeexGcanvas" - ReferencedContainer = "container:WeexGcanvas.xcodeproj"> - </BuildableReference> - </MacroExpansion> - <AdditionalOptions> - </AdditionalOptions> - </LaunchAction> - <ProfileAction - buildConfiguration = "Release" - shouldUseLaunchSchemeArgsEnv = "YES" - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES"> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "C431394A1E954AA8008B80D0" - BuildableName = "WeexGcanvas.framework" - BlueprintName = "WeexGcanvas" - ReferencedContainer = "container:WeexGcanvas.xcodeproj"> - </BuildableReference> - </MacroExpansion> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Debug"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Release" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme> diff --git a/examples/ReactNativeGCanvasExample/.babelrc b/examples/ReactNativeGCanvasExample/.babelrc deleted file mode 100644 index a9ce1369..00000000 --- a/examples/ReactNativeGCanvasExample/.babelrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "presets": ["react-native"] -} diff --git a/examples/ReactNativeGCanvasExample/.buckconfig b/examples/ReactNativeGCanvasExample/.buckconfig deleted file mode 100644 index 934256cb..00000000 --- a/examples/ReactNativeGCanvasExample/.buckconfig +++ /dev/null @@ -1,6 +0,0 @@ - -[android] - target = Google Inc.:Google APIs:23 - -[maven_repositories] - central = https://repo1.maven.org/maven2 diff --git a/examples/ReactNativeGCanvasExample/.flowconfig b/examples/ReactNativeGCanvasExample/.flowconfig deleted file mode 100644 index 0b611f07..00000000 --- a/examples/ReactNativeGCanvasExample/.flowconfig +++ /dev/null @@ -1,54 +0,0 @@ -[ignore] -; We fork some components by platform -.*/*[.]android.js - -; Ignore "BUCK" generated dirs -<PROJECT_ROOT>/\.buckd/ - -; Ignore unexpected extra "@providesModule" -.*/node_modules/.*/node_modules/fbjs/.* - -; Ignore duplicate module providers -; For RN Apps installed via npm, "Libraries" folder is inside -; "node_modules/react-native" but in the source repo it is in the root -.*/Libraries/react-native/React.js - -; Ignore polyfills -.*/Libraries/polyfills/.* - -; Ignore metro -.*/node_modules/metro/.* - -[include] - -[libs] -node_modules/react-native/Libraries/react-native/react-native-interface.js -node_modules/react-native/flow/ -node_modules/react-native/flow-github/ - -[options] -emoji=true - -module.system=haste - -munge_underscores=true - -module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub' - -module.file_ext=.js -module.file_ext=.jsx -module.file_ext=.json -module.file_ext=.native.js - -suppress_type=$FlowIssue -suppress_type=$FlowFixMe -suppress_type=$FlowFixMeProps -suppress_type=$FlowFixMeState - -suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) -suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ -suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy -suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError - -[version] -^0.63.0 diff --git a/examples/ReactNativeGCanvasExample/.gitattributes b/examples/ReactNativeGCanvasExample/.gitattributes deleted file mode 100644 index d42ff183..00000000 --- a/examples/ReactNativeGCanvasExample/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.pbxproj -text diff --git a/examples/ReactNativeGCanvasExample/.gitignore b/examples/ReactNativeGCanvasExample/.gitignore deleted file mode 100644 index 0826423b..00000000 --- a/examples/ReactNativeGCanvasExample/.gitignore +++ /dev/null @@ -1,53 +0,0 @@ -# OSX -# -.DS_Store - -# Xcode -# -build/ -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 -xcuserdata -*.xccheckout -*.moved-aside -DerivedData -*.hmap -*.ipa -*.xcuserstate -project.xcworkspace - -# Android/IntelliJ -# -build/ -.idea -.gradle -local.properties -*.iml - -# node.js -# -node_modules/ -npm-debug.log -yarn-error.log - -# BUCK -buck-out/ -\.buckd/ -*.keystore - -# fastlane -# -# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the -# screenshots whenever they are needed. -# For more information about the recommended setup visit: -# https://docs.fastlane.tools/best-practices/source-control/ - -*/fastlane/report.xml -*/fastlane/Preview.html -*/fastlane/screenshots diff --git a/examples/ReactNativeGCanvasExample/.watchmanconfig b/examples/ReactNativeGCanvasExample/.watchmanconfig deleted file mode 100644 index 9e26dfee..00000000 --- a/examples/ReactNativeGCanvasExample/.watchmanconfig +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/examples/ReactNativeGCanvasExample/App.js b/examples/ReactNativeGCanvasExample/App.js deleted file mode 100644 index adc54e72..00000000 --- a/examples/ReactNativeGCanvasExample/App.js +++ /dev/null @@ -1,106 +0,0 @@ -/** - * Sample React Native App - * https://github.com/facebook/react-native - * @flow - */ - -import React, { Component } from 'react'; -import { - Platform, - StyleSheet, - Text, - View, - TouchableHighlight -} from 'react-native'; - -import { - requireNativeComponent, - findNodeHandle, - NativeModules -} from 'react-native'; - - -import { - GCanvasView, -} from 'react-native-gcanvas'; - -import { enable, ReactNativeBridge, Image as GImage } from "gcanvas.js/src/index.js"; - -ReactNativeBridge.GCanvasModule = NativeModules.GCanvasModule; -ReactNativeBridge.Platform = Platform; - -export default class App extends Component<{}> { - - onPressHandle = () => { - console.log(">>>>>>>>onPressHandle...start") - - var ref = this.refs.canvas_holder; - - var canvas_tag = findNodeHandle(ref); - // var canvas_tag = "2"; - var el = { ref:""+canvas_tag, style:{width:414, height:376}}; - - ref = enable(el, {bridge: ReactNativeBridge}); - - var ctx = ref.getContext('2d'); - //rect - ctx.fillStyle = 'green'; - ctx.fillRect(0, 0, 100, 100); - - //rect - ctx.fillStyle = 'black'; - ctx.fillRect(100, 100, 100, 100); - ctx.fillRect(25, 205, 414-50, 5); - - //circle - ctx.arc(200, 315, 100, 0, Math.PI * 2, true); - ctx.fill(); - - var image = new GImage(); - image.onload = function(){ - ctx.drawImage(image, 150, 0); - ctx.drawImage(image, 150, 450); - - } - image.src = '//gw.alicdn.com/tfs/TB1KwRTlh6I8KJjy0FgXXXXzVXa-225-75.png'; - - console.log(">>>>>>>>onPressHandle...end") - }; - - render() { - return ( - <View style={styles.container}> - <Text style={styles.welcome}> - Click to draw gcanvas - </Text> - <TouchableHighlight onPress={this.onPressHandle}> - <GCanvasView ref='canvas_holder' style={styles.gcanvas}> - </GCanvasView> - </TouchableHighlight> - </View> - ); - } -} - -const styles = StyleSheet.create({ - gcanvas: { - top: 20, - width: 414, - height :700, - backgroundColor: '#FF000030' - }, - container: { - flex: 1, - justifyContent: 'center', - alignItems: 'center', - backgroundColor: '#F5FCFF', - }, - welcome: { - fontSize: 20, - textAlign: 'center', - margin: 10, - top:20, - height :40 - - } -}); diff --git a/examples/ReactNativeGCanvasExample/__tests__/App.js b/examples/ReactNativeGCanvasExample/__tests__/App.js deleted file mode 100644 index d0b9ee31..00000000 --- a/examples/ReactNativeGCanvasExample/__tests__/App.js +++ /dev/null @@ -1,12 +0,0 @@ -import 'react-native'; -import React from 'react'; -import App from '../App'; - -// Note: test renderer must be required after react-native. -import renderer from 'react-test-renderer'; - -it('renders correctly', () => { - const tree = renderer.create( - <App /> - ); -}); diff --git a/examples/ReactNativeGCanvasExample/android/app/BUCK b/examples/ReactNativeGCanvasExample/android/app/BUCK deleted file mode 100644 index b7753fce..00000000 --- a/examples/ReactNativeGCanvasExample/android/app/BUCK +++ /dev/null @@ -1,65 +0,0 @@ -# To learn about Buck see [Docs](https://buckbuild.com/). -# To run your application with Buck: -# - install Buck -# - `npm start` - to start the packager -# - `cd android` -# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"` -# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck -# - `buck install -r android/app` - compile, install and run application -# - -lib_deps = [] - -for jarfile in glob(['libs/*.jar']): - name = 'jars__' + jarfile[jarfile.rindex('/') + 1: jarfile.rindex('.jar')] - lib_deps.append(':' + name) - prebuilt_jar( - name = name, - binary_jar = jarfile, - ) - -for aarfile in glob(['libs/*.aar']): - name = 'aars__' + aarfile[aarfile.rindex('/') + 1: aarfile.rindex('.aar')] - lib_deps.append(':' + name) - android_prebuilt_aar( - name = name, - aar = aarfile, - ) - -android_library( - name = "all-libs", - exported_deps = lib_deps, -) - -android_library( - name = "app-code", - srcs = glob([ - "src/main/java/**/*.java", - ]), - deps = [ - ":all-libs", - ":build_config", - ":res", - ], -) - -android_build_config( - name = "build_config", - package = "com.rngcanvassample", -) - -android_resource( - name = "res", - package = "com.rngcanvassample", - res = "src/main/res", -) - -android_binary( - name = "app", - keystore = "//android/keystores:debug", - manifest = "src/main/AndroidManifest.xml", - package_type = "debug", - deps = [ - ":app-code", - ], -) diff --git a/examples/ReactNativeGCanvasExample/android/app/build.gradle b/examples/ReactNativeGCanvasExample/android/app/build.gradle deleted file mode 100644 index 56707258..00000000 --- a/examples/ReactNativeGCanvasExample/android/app/build.gradle +++ /dev/null @@ -1,151 +0,0 @@ -apply plugin: "com.android.application" - -import com.android.build.OutputFile - -/** - * The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets - * and bundleReleaseJsAndAssets). - * These basically call `react-native bundle` with the correct arguments during the Android build - * cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the - * bundle directly from the development server. Below you can see all the possible configurations - * and their defaults. If you decide to add a configuration block, make sure to add it before the - * `apply from: "../../node_modules/react-native/react.gradle"` line. - * - * project.ext.react = [ - * // the name of the generated asset file containing your JS bundle - * bundleAssetName: "index.android.bundle", - * - * // the entry file for bundle generation - * entryFile: "index.android.js", - * - * // whether to bundle JS and assets in debug mode - * bundleInDebug: false, - * - * // whether to bundle JS and assets in release mode - * bundleInRelease: true, - * - * // whether to bundle JS and assets in another build variant (if configured). - * // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants - * // The configuration property can be in the following formats - * // 'bundleIn${productFlavor}${buildType}' - * // 'bundleIn${buildType}' - * // bundleInFreeDebug: true, - * // bundleInPaidRelease: true, - * // bundleInBeta: true, - * - * // whether to disable dev mode in custom build variants (by default only disabled in release) - * // for example: to disable dev mode in the staging build type (if configured) - * devDisabledInStaging: true, - * // The configuration property can be in the following formats - * // 'devDisabledIn${productFlavor}${buildType}' - * // 'devDisabledIn${buildType}' - * - * // the root of your project, i.e. where "package.json" lives - * root: "../../", - * - * // where to put the JS bundle asset in debug mode - * jsBundleDirDebug: "$buildDir/intermediates/assets/debug", - * - * // where to put the JS bundle asset in release mode - * jsBundleDirRelease: "$buildDir/intermediates/assets/release", - * - * // where to put drawable resources / React Native assets, e.g. the ones you use via - * // require('./image.png')), in debug mode - * resourcesDirDebug: "$buildDir/intermediates/res/merged/debug", - * - * // where to put drawable resources / React Native assets, e.g. the ones you use via - * // require('./image.png')), in release mode - * resourcesDirRelease: "$buildDir/intermediates/res/merged/release", - * - * // by default the gradle tasks are skipped if none of the JS files or assets change; this means - * // that we don't look at files in android/ or ios/ to determine whether the tasks are up to - * // date; if you have any other folders that you want to ignore for performance reasons (gradle - * // indexes the entire tree), add them here. Alternatively, if you have JS files in android/ - * // for example, you might want to remove it from here. - * inputExcludes: ["android/**", "ios/**"], - * - * // override which node gets called and with what additional arguments - * nodeExecutableAndArgs: ["node"], - * - * // supply additional arguments to the packager - * extraPackagerArgs: [] - * ] - */ - -project.ext.react = [ - entryFile: "index.js" -] - -apply from: "../../node_modules/react-native/react.gradle" - -/** - * Set this to true to create two separate APKs instead of one: - * - An APK that only works on ARM devices - * - An APK that only works on x86 devices - * The advantage is the size of the APK is reduced by about 4MB. - * Upload all the APKs to the Play Store and people will download - * the correct one based on the CPU architecture of their device. - */ -def enableSeparateBuildPerCPUArchitecture = false - -/** - * Run Proguard to shrink the Java bytecode in release builds. - */ -def enableProguardInReleaseBuilds = false - -android { - compileSdkVersion 23 - buildToolsVersion "23.0.1" - - defaultConfig { - applicationId "com.rngcanvassample" - minSdkVersion 16 - targetSdkVersion 22 - versionCode 1 - versionName "1.0" - ndk { - abiFilters "armeabi-v7a", "x86" - } - } - splits { - abi { - reset() - enable enableSeparateBuildPerCPUArchitecture - universalApk false // If true, also generate a universal APK - include "armeabi-v7a", "x86" - } - } - buildTypes { - release { - minifyEnabled enableProguardInReleaseBuilds - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" - } - } - // applicationVariants are e.g. debug, release - applicationVariants.all { variant -> - variant.outputs.each { output -> - // For each separate APK per architecture, set a unique version code as described here: - // http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits - def versionCodes = ["armeabi-v7a":1, "x86":2] - def abi = output.getFilter(OutputFile.ABI) - if (abi != null) { // null for the universal-debug, universal-release variants - output.versionCodeOverride = - versionCodes.get(abi) * 1048576 + defaultConfig.versionCode - } - } - } -} - -dependencies { - compile project(':bridges:react-native-bridge:react-native-gcanvas:android') - compile fileTree(dir: "libs", include: ["*.jar"]) - compile "com.android.support:appcompat-v7:23.0.1" - compile "com.facebook.react:react-native:+" // From node_modules -} - -// Run this once to be able to run the application with BUCK -// puts all compile dependencies into folder libs for BUCK to use -task copyDownloadableDepsToLibs(type: Copy) { - from configurations.compile - into 'libs' -} diff --git a/examples/ReactNativeGCanvasExample/android/app/proguard-rules.pro b/examples/ReactNativeGCanvasExample/android/app/proguard-rules.pro deleted file mode 100644 index 6e8516c8..00000000 --- a/examples/ReactNativeGCanvasExample/android/app/proguard-rules.pro +++ /dev/null @@ -1,70 +0,0 @@ -# Add project specific ProGuard rules here. -# By default, the flags in this file are appended to flags specified -# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt -# You can edit the include path and order by changing the proguardFiles -# directive in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# Add any project specific keep options here: - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Disabling obfuscation is useful if you collect stack traces from production crashes -# (unless you are using a system that supports de-obfuscate the stack traces). --dontobfuscate - -# React Native - -# Keep our interfaces so they can be used by other ProGuard rules. -# See http://sourceforge.net/p/proguard/bugs/466/ --keep,allowobfuscation @interface com.facebook.proguard.annotations.DoNotStrip --keep,allowobfuscation @interface com.facebook.proguard.annotations.KeepGettersAndSetters --keep,allowobfuscation @interface com.facebook.common.internal.DoNotStrip - -# Do not strip any method/class that is annotated with @DoNotStrip --keep @com.facebook.proguard.annotations.DoNotStrip class * --keep @com.facebook.common.internal.DoNotStrip class * --keepclassmembers class * { - @com.facebook.proguard.annotations.DoNotStrip *; - @com.facebook.common.internal.DoNotStrip *; -} - --keepclassmembers @com.facebook.proguard.annotations.KeepGettersAndSetters class * { - void set*(***); - *** get*(); -} - --keep class * extends com.facebook.react.bridge.JavaScriptModule { *; } --keep class * extends com.facebook.react.bridge.NativeModule { *; } --keepclassmembers,includedescriptorclasses class * { native <methods>; } --keepclassmembers class * { @com.facebook.react.uimanager.UIProp <fields>; } --keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactProp <methods>; } --keepclassmembers class * { @com.facebook.react.uimanager.annotations.ReactPropGroup <methods>; } - --dontwarn com.facebook.react.** - -# TextLayoutBuilder uses a non-public Android constructor within StaticLayout. -# See libs/proxy/src/main/java/com/facebook/fbui/textlayoutbuilder/proxy for details. --dontwarn android.text.StaticLayout - -# okhttp - --keepattributes Signature --keepattributes *Annotation* --keep class okhttp3.** { *; } --keep interface okhttp3.** { *; } --dontwarn okhttp3.** - -# okio - --keep class sun.misc.Unsafe { *; } --dontwarn java.nio.file.* --dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement --dontwarn okio.** diff --git a/examples/ReactNativeGCanvasExample/android/app/src/main/AndroidManifest.xml b/examples/ReactNativeGCanvasExample/android/app/src/main/AndroidManifest.xml deleted file mode 100644 index dbe0c96c..00000000 --- a/examples/ReactNativeGCanvasExample/android/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,32 +0,0 @@ -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="com.rngcanvassample" - android:versionCode="1" - android:versionName="1.0"> - - <uses-permission android:name="android.permission.INTERNET" /> - <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/> - - <uses-sdk - android:minSdkVersion="16" - android:targetSdkVersion="22" /> - - <application - android:name=".MainApplication" - android:allowBackup="true" - android:label="@string/app_name" - android:icon="@mipmap/ic_launcher" - android:theme="@style/AppTheme"> - <activity - android:name=".MainActivity" - android:label="@string/app_name" - android:configChanges="keyboard|keyboardHidden|orientation|screenSize" - android:windowSoftInputMode="adjustResize"> - <intent-filter> - <action android:name="android.intent.action.MAIN" /> - <category android:name="android.intent.category.LAUNCHER" /> - </intent-filter> - </activity> - <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" /> - </application> - -</manifest> diff --git a/examples/ReactNativeGCanvasExample/android/app/src/main/java/com/rngcanvassample/MainActivity.java b/examples/ReactNativeGCanvasExample/android/app/src/main/java/com/rngcanvassample/MainActivity.java deleted file mode 100644 index 15eb1e6c..00000000 --- a/examples/ReactNativeGCanvasExample/android/app/src/main/java/com/rngcanvassample/MainActivity.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.rngcanvassample; - -import com.facebook.react.ReactActivity; -import com.facebook.react.ReactPackage; - -import java.util.List; - -public class MainActivity extends ReactActivity { - - /** - * Returns the name of the main component registered from JavaScript. - * This is used to schedule rendering of the component. - */ - @Override - protected String getMainComponentName() { - return "RNGCanvasSample"; - } -} diff --git a/examples/ReactNativeGCanvasExample/android/app/src/main/java/com/rngcanvassample/MainApplication.java b/examples/ReactNativeGCanvasExample/android/app/src/main/java/com/rngcanvassample/MainApplication.java deleted file mode 100644 index 39d9ec77..00000000 --- a/examples/ReactNativeGCanvasExample/android/app/src/main/java/com/rngcanvassample/MainApplication.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.rngcanvassample; - -import android.app.Application; - -import com.facebook.react.ReactApplication; -import com.facebook.react.ReactNativeHost; -import com.facebook.react.ReactPackage; -import com.facebook.react.shell.MainReactPackage; -import com.facebook.soloader.SoLoader; -import com.taobao.gcanvas.bridges.rn.GReactPackage; - -import java.util.Arrays; -import java.util.List; - -public class MainApplication extends Application implements ReactApplication { - - private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { - @Override - public boolean getUseDeveloperSupport() { - return BuildConfig.DEBUG; - } - - @Override - protected List<ReactPackage> getPackages() { - return Arrays.<ReactPackage>asList( - new MainReactPackage(), - new GReactPackage() - ); - } - - @Override - protected String getJSMainModuleName() { - return "index"; - } - }; - - @Override - public ReactNativeHost getReactNativeHost() { - return mReactNativeHost; - } - - @Override - public void onCreate() { - super.onCreate(); - SoLoader.init(this, /* native exopackage */ false); - } -} diff --git a/examples/ReactNativeGCanvasExample/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/examples/ReactNativeGCanvasExample/android/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index cde69bcccec65160d92116f20ffce4fce0b5245c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3418 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 diff --git a/examples/ReactNativeGCanvasExample/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/examples/ReactNativeGCanvasExample/android/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index c133a0cbd379f5af6dbf1a899a0293ca5eccfad0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2206 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 diff --git a/examples/ReactNativeGCanvasExample/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/examples/ReactNativeGCanvasExample/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index bfa42f0e7b91d006d22352c9ff2f134e504e3c1d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4842 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 diff --git a/examples/ReactNativeGCanvasExample/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/examples/ReactNativeGCanvasExample/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 324e72cdd7480cb983fa1bcc7ce686e51ef87fe7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7718 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 diff --git a/examples/ReactNativeGCanvasExample/android/app/src/main/res/values/strings.xml b/examples/ReactNativeGCanvasExample/android/app/src/main/res/values/strings.xml deleted file mode 100644 index 7e414f09..00000000 --- a/examples/ReactNativeGCanvasExample/android/app/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ -<resources> - <string name="app_name">RNGCanvasSample</string> -</resources> diff --git a/examples/ReactNativeGCanvasExample/android/app/src/main/res/values/styles.xml b/examples/ReactNativeGCanvasExample/android/app/src/main/res/values/styles.xml deleted file mode 100644 index 319eb0ca..00000000 --- a/examples/ReactNativeGCanvasExample/android/app/src/main/res/values/styles.xml +++ /dev/null @@ -1,8 +0,0 @@ -<resources> - - <!-- Base application theme. --> - <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> - <!-- Customize your theme here. --> - </style> - -</resources> diff --git a/examples/ReactNativeGCanvasExample/android/build.gradle b/examples/ReactNativeGCanvasExample/android/build.gradle deleted file mode 100644 index 7b08fb6e..00000000 --- a/examples/ReactNativeGCanvasExample/android/build.gradle +++ /dev/null @@ -1,33 +0,0 @@ -// Top-level build file where you can add configuration options common to all sub-projects/modules. - -buildscript { - repositories { - jcenter() - maven { - url 'https://maven.google.com/' - name 'Google' - } - google() - } - dependencies { - classpath 'com.android.tools.build:gradle:3.3.0' - - // NOTE: Do not place your application dependencies here; they belong - // in the individual module build.gradle files - } -} - -allprojects { - repositories { - mavenLocal() - jcenter() - maven { - // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm - url "$rootDir/../node_modules/react-native/android" - } - maven { - url 'https://maven.google.com/' - name 'Google' - } - } -} diff --git a/examples/ReactNativeGCanvasExample/android/gradle.properties b/examples/ReactNativeGCanvasExample/android/gradle.properties deleted file mode 100644 index 1fd964e9..00000000 --- a/examples/ReactNativeGCanvasExample/android/gradle.properties +++ /dev/null @@ -1,20 +0,0 @@ -# Project-wide Gradle settings. - -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. - -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html - -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -# Default value: -Xmx10248m -XX:MaxPermSize=256m -# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 - -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true - -android.useDeprecatedNdk=true diff --git a/examples/ReactNativeGCanvasExample/android/gradlew b/examples/ReactNativeGCanvasExample/android/gradlew deleted file mode 100755 index 9d82f789..00000000 --- a/examples/ReactNativeGCanvasExample/android/gradlew +++ /dev/null @@ -1,160 +0,0 @@ -#!/usr/bin/env bash - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn ( ) { - echo "$*" -} - -die ( ) { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; -esac - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=$((i+1)) - done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") -} -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" - -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/examples/ReactNativeGCanvasExample/android/gradlew.bat b/examples/ReactNativeGCanvasExample/android/gradlew.bat deleted file mode 100644 index aec99730..00000000 --- a/examples/ReactNativeGCanvasExample/android/gradlew.bat +++ /dev/null @@ -1,90 +0,0 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windowz variants - -if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/examples/ReactNativeGCanvasExample/android/keystores/BUCK b/examples/ReactNativeGCanvasExample/android/keystores/BUCK deleted file mode 100644 index 88e4c31b..00000000 --- a/examples/ReactNativeGCanvasExample/android/keystores/BUCK +++ /dev/null @@ -1,8 +0,0 @@ -keystore( - name = "debug", - properties = "debug.keystore.properties", - store = "debug.keystore", - visibility = [ - "PUBLIC", - ], -) diff --git a/examples/ReactNativeGCanvasExample/android/keystores/debug.keystore.properties b/examples/ReactNativeGCanvasExample/android/keystores/debug.keystore.properties deleted file mode 100644 index 121bfb49..00000000 --- a/examples/ReactNativeGCanvasExample/android/keystores/debug.keystore.properties +++ /dev/null @@ -1,4 +0,0 @@ -key.store=debug.keystore -key.alias=androiddebugkey -key.store.password=android -key.alias.password=android diff --git a/examples/ReactNativeGCanvasExample/android/settings.gradle b/examples/ReactNativeGCanvasExample/android/settings.gradle deleted file mode 100644 index bad7bdf0..00000000 --- a/examples/ReactNativeGCanvasExample/android/settings.gradle +++ /dev/null @@ -1,3 +0,0 @@ -rootProject.name = 'RNGCanvasSample' - -include ':app' diff --git a/examples/ReactNativeGCanvasExample/app.json b/examples/ReactNativeGCanvasExample/app.json deleted file mode 100644 index 38f09149..00000000 --- a/examples/ReactNativeGCanvasExample/app.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "RNGCanvasSample", - "displayName": "RNGCanvasSample" -} \ No newline at end of file diff --git a/examples/ReactNativeGCanvasExample/index.js b/examples/ReactNativeGCanvasExample/index.js deleted file mode 100644 index 7836d507..00000000 --- a/examples/ReactNativeGCanvasExample/index.js +++ /dev/null @@ -1,4 +0,0 @@ -import { AppRegistry } from 'react-native'; -import App from './App'; - -AppRegistry.registerComponent('RNGCanvasSample', () => App); diff --git a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample-tvOS/Info.plist b/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample-tvOS/Info.plist deleted file mode 100644 index 2fb6a11c..00000000 --- a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample-tvOS/Info.plist +++ /dev/null @@ -1,54 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundleDevelopmentRegion</key> - <string>en</string> - <key>CFBundleExecutable</key> - <string>$(EXECUTABLE_NAME)</string> - <key>CFBundleIdentifier</key> - <string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundleName</key> - <string>$(PRODUCT_NAME)</string> - <key>CFBundlePackageType</key> - <string>APPL</string> - <key>CFBundleShortVersionString</key> - <string>1.0</string> - <key>CFBundleSignature</key> - <string>????</string> - <key>CFBundleVersion</key> - <string>1</string> - <key>LSRequiresIPhoneOS</key> - <true/> - <key>UILaunchStoryboardName</key> - <string>LaunchScreen</string> - <key>UIRequiredDeviceCapabilities</key> - <array> - <string>armv7</string> - </array> - <key>UISupportedInterfaceOrientations</key> - <array> - <string>UIInterfaceOrientationPortrait</string> - <string>UIInterfaceOrientationLandscapeLeft</string> - <string>UIInterfaceOrientationLandscapeRight</string> - </array> - <key>UIViewControllerBasedStatusBarAppearance</key> - <false/> - <key>NSLocationWhenInUseUsageDescription</key> - <string></string> - <key>NSAppTransportSecurity</key> - <!--See http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/ --> - <dict> - <key>NSExceptionDomains</key> - <dict> - <key>localhost</key> - <dict> - <key>NSExceptionAllowsInsecureHTTPLoads</key> - <true/> - </dict> - </dict> - </dict> -</dict> -</plist> diff --git a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample-tvOSTests/Info.plist b/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample-tvOSTests/Info.plist deleted file mode 100644 index 886825cc..00000000 --- a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample-tvOSTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundleDevelopmentRegion</key> - <string>en</string> - <key>CFBundleExecutable</key> - <string>$(EXECUTABLE_NAME)</string> - <key>CFBundleIdentifier</key> - <string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundleName</key> - <string>$(PRODUCT_NAME)</string> - <key>CFBundlePackageType</key> - <string>BNDL</string> - <key>CFBundleShortVersionString</key> - <string>1.0</string> - <key>CFBundleSignature</key> - <string>????</string> - <key>CFBundleVersion</key> - <string>1</string> -</dict> -</plist> diff --git a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample.xcodeproj/project.pbxproj b/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample.xcodeproj/project.pbxproj deleted file mode 100644 index a0fd4ac7..00000000 --- a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1489 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */; }; - 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */; }; - 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */; }; - 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */; }; - 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */; }; - 00E356F31AD99517003FC87E /* RNGCanvasSampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* RNGCanvasSampleTests.m */; }; - 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 78C398B91ACF4ADC00677621 /* libRCTLinking.a */; }; - 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */; }; - 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */; }; - 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; - 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; }; - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; - 146834051AC3E58100842450 /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 146834041AC3E56700842450 /* libReact.a */; }; - 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; }; - 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; - 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; - 2D02E4C21E0B4AEC006451C7 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; - 2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */; }; - 2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */; }; - 2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */; }; - 2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */; }; - 2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */; }; - 2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */; }; - 2D16E6881FA4F8E400B85C8A /* libReact.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2D16E6891FA4F8E400B85C8A /* libReact.a */; }; - 2DCD954D1E0B4F2C00145EB5 /* RNGCanvasSampleTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* RNGCanvasSampleTests.m */; }; - 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */; }; - 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 832341B51AAA6A8300B99B32 /* libRCTText.a */; }; - ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */ = {isa = PBXBuildFile; fileRef = ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTActionSheet; - }; - 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTGeolocation; - }; - 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 58B5115D1A9E6B3D00147676; - remoteInfo = RCTImage; - }; - 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 58B511DB1A9E6C8500147676; - remoteInfo = RCTNetwork; - }; - 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 832C81801AAF6DEF007FA2F7; - remoteInfo = RCTVibration; - }; - 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 13B07F861A680F5B00A75B9A; - remoteInfo = RNGCanvasSample; - }; - 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTSettings; - }; - 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3C86DF461ADF2C930047B81A; - remoteInfo = RCTWebSocket; - }; - 146834031AC3E56700842450 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 83CBBA2E1A601D0E00E9B192; - remoteInfo = React; - }; - 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2D02E47A1E0B4A5D006451C7; - remoteInfo = "RNGCanvasSample-tvOS"; - }; - 2D16E6711FA4F8DC00B85C8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = ADD01A681E09402E00F6D226; - remoteInfo = "RCTBlob-tvOS"; - }; - 2D16E6831FA4F8DC00B85C8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3DBE0D001F3B181A0099AA32; - remoteInfo = fishhook; - }; - 2D16E6851FA4F8DC00B85C8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3DBE0D0D1F3B181C0099AA32; - remoteInfo = "fishhook-tvOS"; - }; - 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A283A1D9B042B00D4039D; - remoteInfo = "RCTImage-tvOS"; - }; - 3DAD3E871DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28471D9B043800D4039D; - remoteInfo = "RCTLinking-tvOS"; - }; - 3DAD3E8B1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28541D9B044C00D4039D; - remoteInfo = "RCTNetwork-tvOS"; - }; - 3DAD3E8F1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28611D9B046600D4039D; - remoteInfo = "RCTSettings-tvOS"; - }; - 3DAD3E931DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A287B1D9B048500D4039D; - remoteInfo = "RCTText-tvOS"; - }; - 3DAD3E981DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28881D9B049200D4039D; - remoteInfo = "RCTWebSocket-tvOS"; - }; - 3DAD3EA21DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28131D9B038B00D4039D; - remoteInfo = "React-tvOS"; - }; - 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3C059A1DE3340900C268FA; - remoteInfo = yoga; - }; - 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3C06751DE3340C00C268FA; - remoteInfo = "yoga-tvOS"; - }; - 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3CD9251DE5FBEC00167DC4; - remoteInfo = cxxreact; - }; - 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3CD9321DE5FBEE00167DC4; - remoteInfo = "cxxreact-tvOS"; - }; - 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3CD90B1DE5FBD600167DC4; - remoteInfo = jschelpers; - }; - 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D3CD9181DE5FBD800167DC4; - remoteInfo = "jschelpers-tvOS"; - }; - 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTAnimation; - }; - 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 2D2A28201D9B03D100D4039D; - remoteInfo = "RCTAnimation-tvOS"; - }; - 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 134814201AA4EA6300B7C361; - remoteInfo = RCTLinking; - }; - 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 58B5119B1A9E6C1200147676; - remoteInfo = RCTText; - }; - A29FA79F239E2D3D00F1DDC2 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = A29FA79A239E2D3D00F1DDC2 /* RCTGCanvas.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = A2385E382005FB730010B576; - remoteInfo = RCTGCanvas; - }; - A2B65C242029D02F000DB6F7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = EBF21BDC1FC498900052F4D5; - remoteInfo = jsinspector; - }; - A2B65C262029D02F000DB6F7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = EBF21BFA1FC4989A0052F4D5; - remoteInfo = "jsinspector-tvOS"; - }; - A2B65C282029D02F000DB6F7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 139D7ECE1E25DB7D00323FB7; - remoteInfo = "third-party"; - }; - A2B65C2A2029D02F000DB6F7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D383D3C1EBD27B6005632C8; - remoteInfo = "third-party-tvOS"; - }; - A2B65C2C2029D02F000DB6F7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 139D7E881E25C6D100323FB7; - remoteInfo = "double-conversion"; - }; - A2B65C2E2029D02F000DB6F7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 3D383D621EBD27B9005632C8; - remoteInfo = "double-conversion-tvOS"; - }; - A2B65C302029D02F000DB6F7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 9936F3131F5F2E4B0010BF04; - remoteInfo = privatedata; - }; - A2B65C322029D02F000DB6F7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 146833FF1AC3E56700842450 /* React.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 9936F32F1F5F2E5B0010BF04; - remoteInfo = "privatedata-tvOS"; - }; - ADBDB9261DFEBF0700ED6528 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 358F4ED71D1E81A9004DF814; - remoteInfo = RCTBlob; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 008F07F21AC5B25A0029DE68 /* main.jsbundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = main.jsbundle; sourceTree = "<group>"; }; - 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTActionSheet.xcodeproj; path = "../node_modules/react-native/Libraries/ActionSheetIOS/RCTActionSheet.xcodeproj"; sourceTree = "<group>"; }; - 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGeolocation.xcodeproj; path = "../node_modules/react-native/Libraries/Geolocation/RCTGeolocation.xcodeproj"; sourceTree = "<group>"; }; - 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTImage.xcodeproj; path = "../node_modules/react-native/Libraries/Image/RCTImage.xcodeproj"; sourceTree = "<group>"; }; - 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTNetwork.xcodeproj; path = "../node_modules/react-native/Libraries/Network/RCTNetwork.xcodeproj"; sourceTree = "<group>"; }; - 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTVibration.xcodeproj; path = "../node_modules/react-native/Libraries/Vibration/RCTVibration.xcodeproj"; sourceTree = "<group>"; }; - 00E356EE1AD99517003FC87E /* RNGCanvasSampleTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RNGCanvasSampleTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; - 00E356F21AD99517003FC87E /* RNGCanvasSampleTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RNGCanvasSampleTests.m; sourceTree = "<group>"; }; - 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTSettings.xcodeproj; path = "../node_modules/react-native/Libraries/Settings/RCTSettings.xcodeproj"; sourceTree = "<group>"; }; - 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTWebSocket.xcodeproj; path = "../node_modules/react-native/Libraries/WebSocket/RCTWebSocket.xcodeproj"; sourceTree = "<group>"; }; - 13B07F961A680F5B00A75B9A /* RNGCanvasSample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RNGCanvasSample.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = RNGCanvasSample/AppDelegate.h; sourceTree = "<group>"; }; - 13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = RNGCanvasSample/AppDelegate.m; sourceTree = "<group>"; }; - 13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; }; - 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = RNGCanvasSample/Images.xcassets; sourceTree = "<group>"; }; - 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = RNGCanvasSample/Info.plist; sourceTree = "<group>"; }; - 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = RNGCanvasSample/main.m; sourceTree = "<group>"; }; - 146833FF1AC3E56700842450 /* React.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = React.xcodeproj; path = "../node_modules/react-native/React/React.xcodeproj"; sourceTree = "<group>"; }; - 2D02E47B1E0B4A5D006451C7 /* RNGCanvasSample-tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "RNGCanvasSample-tvOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 2D02E4901E0B4A5D006451C7 /* RNGCanvasSample-tvOSTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "RNGCanvasSample-tvOSTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 2D16E6891FA4F8E400B85C8A /* libReact.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libReact.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTAnimation.xcodeproj; path = "../node_modules/react-native/Libraries/NativeAnimation/RCTAnimation.xcodeproj"; sourceTree = "<group>"; }; - 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTLinking.xcodeproj; path = "../node_modules/react-native/Libraries/LinkingIOS/RCTLinking.xcodeproj"; sourceTree = "<group>"; }; - 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTText.xcodeproj; path = "../node_modules/react-native/Libraries/Text/RCTText.xcodeproj"; sourceTree = "<group>"; }; - A22CB7082029D62800BFE25D /* GCanvas.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = GCanvas.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A29FA79A239E2D3D00F1DDC2 /* RCTGCanvas.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTGCanvas.xcodeproj; path = "../../../bridges/react-native-gcanvas/ios/RCTGCanvas.xcodeproj"; sourceTree = "<group>"; }; - ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = RCTBlob.xcodeproj; path = "../node_modules/react-native/Libraries/Blob/RCTBlob.xcodeproj"; sourceTree = "<group>"; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 00E356EB1AD99517003FC87E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 140ED2AC1D01E1AD002B40FF /* libReact.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F8C1A680F5B00A75B9A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ADBDB9381DFEBF1600ED6528 /* libRCTBlob.a in Frameworks */, - 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */, - 146834051AC3E58100842450 /* libReact.a in Frameworks */, - 5E9157361DD0AC6A00FF2AA8 /* libRCTAnimation.a in Frameworks */, - 00C302E51ABCBA2D00DB3ED1 /* libRCTActionSheet.a in Frameworks */, - 00C302E71ABCBA2D00DB3ED1 /* libRCTGeolocation.a in Frameworks */, - 00C302E81ABCBA2D00DB3ED1 /* libRCTImage.a in Frameworks */, - 133E29F31AD74F7200F7D852 /* libRCTLinking.a in Frameworks */, - 00C302E91ABCBA2D00DB3ED1 /* libRCTNetwork.a in Frameworks */, - 139105C61AF99C1200B5F7CC /* libRCTSettings.a in Frameworks */, - 832341BD1AAA6AB300B99B32 /* libRCTText.a in Frameworks */, - 00C302EA1ABCBA2D00DB3ED1 /* libRCTVibration.a in Frameworks */, - 139FDEF61B0652A700C62182 /* libRCTWebSocket.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E4781E0B4A5D006451C7 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 2D16E6881FA4F8E400B85C8A /* libReact.a in Frameworks */, - 2D02E4C21E0B4AEC006451C7 /* libRCTAnimation.a in Frameworks */, - 2D02E4C31E0B4AEC006451C7 /* libRCTImage-tvOS.a in Frameworks */, - 2D02E4C41E0B4AEC006451C7 /* libRCTLinking-tvOS.a in Frameworks */, - 2D02E4C51E0B4AEC006451C7 /* libRCTNetwork-tvOS.a in Frameworks */, - 2D02E4C61E0B4AEC006451C7 /* libRCTSettings-tvOS.a in Frameworks */, - 2D02E4C71E0B4AEC006451C7 /* libRCTText-tvOS.a in Frameworks */, - 2D02E4C81E0B4AEC006451C7 /* libRCTWebSocket-tvOS.a in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E48D1E0B4A5D006451C7 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 00C302A81ABCB8CE00DB3ED1 /* Products */ = { - isa = PBXGroup; - children = ( - 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */, - ); - name = Products; - sourceTree = "<group>"; - }; - 00C302B61ABCB90400DB3ED1 /* Products */ = { - isa = PBXGroup; - children = ( - 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */, - ); - name = Products; - sourceTree = "<group>"; - }; - 00C302BC1ABCB91800DB3ED1 /* Products */ = { - isa = PBXGroup; - children = ( - 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */, - 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */, - ); - name = Products; - sourceTree = "<group>"; - }; - 00C302D41ABCB9D200DB3ED1 /* Products */ = { - isa = PBXGroup; - children = ( - 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */, - 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */, - ); - name = Products; - sourceTree = "<group>"; - }; - 00C302E01ABCB9EE00DB3ED1 /* Products */ = { - isa = PBXGroup; - children = ( - 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */, - ); - name = Products; - sourceTree = "<group>"; - }; - 00E356EF1AD99517003FC87E /* RNGCanvasSampleTests */ = { - isa = PBXGroup; - children = ( - 00E356F21AD99517003FC87E /* RNGCanvasSampleTests.m */, - 00E356F01AD99517003FC87E /* Supporting Files */, - ); - path = RNGCanvasSampleTests; - sourceTree = "<group>"; - }; - 00E356F01AD99517003FC87E /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 00E356F11AD99517003FC87E /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = "<group>"; - }; - 139105B71AF99BAD00B5F7CC /* Products */ = { - isa = PBXGroup; - children = ( - 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */, - 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */, - ); - name = Products; - sourceTree = "<group>"; - }; - 139FDEE71B06529A00C62182 /* Products */ = { - isa = PBXGroup; - children = ( - 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */, - 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */, - 2D16E6841FA4F8DC00B85C8A /* libfishhook.a */, - 2D16E6861FA4F8DC00B85C8A /* libfishhook-tvOS.a */, - ); - name = Products; - sourceTree = "<group>"; - }; - 13B07FAE1A68108700A75B9A /* RNGCanvasSample */ = { - isa = PBXGroup; - children = ( - 008F07F21AC5B25A0029DE68 /* main.jsbundle */, - 13B07FAF1A68108700A75B9A /* AppDelegate.h */, - 13B07FB01A68108700A75B9A /* AppDelegate.m */, - 13B07FB51A68108700A75B9A /* Images.xcassets */, - 13B07FB61A68108700A75B9A /* Info.plist */, - 13B07FB11A68108700A75B9A /* LaunchScreen.xib */, - 13B07FB71A68108700A75B9A /* main.m */, - ); - name = RNGCanvasSample; - sourceTree = "<group>"; - }; - 146834001AC3E56700842450 /* Products */ = { - isa = PBXGroup; - children = ( - 146834041AC3E56700842450 /* libReact.a */, - 3DAD3EA31DF850E9000B6D8A /* libReact.a */, - 3DAD3EA51DF850E9000B6D8A /* libyoga.a */, - 3DAD3EA71DF850E9000B6D8A /* libyoga.a */, - 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */, - 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */, - 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */, - 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */, - A2B65C252029D02F000DB6F7 /* libjsinspector.a */, - A2B65C272029D02F000DB6F7 /* libjsinspector-tvOS.a */, - A2B65C292029D02F000DB6F7 /* libthird-party.a */, - A2B65C2B2029D02F000DB6F7 /* libthird-party.a */, - A2B65C2D2029D02F000DB6F7 /* libdouble-conversion.a */, - A2B65C2F2029D02F000DB6F7 /* libdouble-conversion.a */, - A2B65C312029D02F000DB6F7 /* libprivatedata.a */, - A2B65C332029D02F000DB6F7 /* libprivatedata-tvOS.a */, - ); - name = Products; - sourceTree = "<group>"; - }; - 2D16E6871FA4F8E400B85C8A /* Frameworks */ = { - isa = PBXGroup; - children = ( - A22CB7082029D62800BFE25D /* GCanvas.framework */, - 2D16E6891FA4F8E400B85C8A /* libReact.a */, - ); - name = Frameworks; - sourceTree = "<group>"; - }; - 5E91572E1DD0AC6500FF2AA8 /* Products */ = { - isa = PBXGroup; - children = ( - 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */, - 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */, - ); - name = Products; - sourceTree = "<group>"; - }; - 78C398B11ACF4ADC00677621 /* Products */ = { - isa = PBXGroup; - children = ( - 78C398B91ACF4ADC00677621 /* libRCTLinking.a */, - 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */, - ); - name = Products; - sourceTree = "<group>"; - }; - 832341AE1AAA6A7D00B99B32 /* Libraries */ = { - isa = PBXGroup; - children = ( - A29FA79A239E2D3D00F1DDC2 /* RCTGCanvas.xcodeproj */, - 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */, - 146833FF1AC3E56700842450 /* React.xcodeproj */, - 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */, - ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */, - 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */, - 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */, - 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */, - 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */, - 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */, - 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */, - 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */, - 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */, - ); - name = Libraries; - sourceTree = "<group>"; - }; - 832341B11AAA6A8300B99B32 /* Products */ = { - isa = PBXGroup; - children = ( - 832341B51AAA6A8300B99B32 /* libRCTText.a */, - 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */, - ); - name = Products; - sourceTree = "<group>"; - }; - 83CBB9F61A601CBA00E9B192 = { - isa = PBXGroup; - children = ( - 13B07FAE1A68108700A75B9A /* RNGCanvasSample */, - 832341AE1AAA6A7D00B99B32 /* Libraries */, - 00E356EF1AD99517003FC87E /* RNGCanvasSampleTests */, - 83CBBA001A601CBA00E9B192 /* Products */, - 2D16E6871FA4F8E400B85C8A /* Frameworks */, - ); - indentWidth = 2; - sourceTree = "<group>"; - tabWidth = 2; - usesTabs = 0; - }; - 83CBBA001A601CBA00E9B192 /* Products */ = { - isa = PBXGroup; - children = ( - 13B07F961A680F5B00A75B9A /* RNGCanvasSample.app */, - 00E356EE1AD99517003FC87E /* RNGCanvasSampleTests.xctest */, - 2D02E47B1E0B4A5D006451C7 /* RNGCanvasSample-tvOS.app */, - 2D02E4901E0B4A5D006451C7 /* RNGCanvasSample-tvOSTests.xctest */, - ); - name = Products; - sourceTree = "<group>"; - }; - A29FA79B239E2D3D00F1DDC2 /* Products */ = { - isa = PBXGroup; - children = ( - A29FA7A0239E2D3D00F1DDC2 /* libRCTGCanvas.a */, - ); - name = Products; - sourceTree = "<group>"; - }; - ADBDB9201DFEBF0600ED6528 /* Products */ = { - isa = PBXGroup; - children = ( - ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */, - 2D16E6721FA4F8DC00B85C8A /* libRCTBlob-tvOS.a */, - ); - name = Products; - sourceTree = "<group>"; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 00E356ED1AD99517003FC87E /* RNGCanvasSampleTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "RNGCanvasSampleTests" */; - buildPhases = ( - 00E356EA1AD99517003FC87E /* Sources */, - 00E356EB1AD99517003FC87E /* Frameworks */, - 00E356EC1AD99517003FC87E /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 00E356F51AD99517003FC87E /* PBXTargetDependency */, - ); - name = RNGCanvasSampleTests; - productName = RNGCanvasSampleTests; - productReference = 00E356EE1AD99517003FC87E /* RNGCanvasSampleTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; - 13B07F861A680F5B00A75B9A /* RNGCanvasSample */ = { - isa = PBXNativeTarget; - buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "RNGCanvasSample" */; - buildPhases = ( - 13B07F871A680F5B00A75B9A /* Sources */, - 13B07F8C1A680F5B00A75B9A /* Frameworks */, - 13B07F8E1A680F5B00A75B9A /* Resources */, - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = RNGCanvasSample; - productName = "Hello World"; - productReference = 13B07F961A680F5B00A75B9A /* RNGCanvasSample.app */; - productType = "com.apple.product-type.application"; - }; - 2D02E47A1E0B4A5D006451C7 /* RNGCanvasSample-tvOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "RNGCanvasSample-tvOS" */; - buildPhases = ( - 2D02E4771E0B4A5D006451C7 /* Sources */, - 2D02E4781E0B4A5D006451C7 /* Frameworks */, - 2D02E4791E0B4A5D006451C7 /* Resources */, - 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "RNGCanvasSample-tvOS"; - productName = "RNGCanvasSample-tvOS"; - productReference = 2D02E47B1E0B4A5D006451C7 /* RNGCanvasSample-tvOS.app */; - productType = "com.apple.product-type.application"; - }; - 2D02E48F1E0B4A5D006451C7 /* RNGCanvasSample-tvOSTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "RNGCanvasSample-tvOSTests" */; - buildPhases = ( - 2D02E48C1E0B4A5D006451C7 /* Sources */, - 2D02E48D1E0B4A5D006451C7 /* Frameworks */, - 2D02E48E1E0B4A5D006451C7 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */, - ); - name = "RNGCanvasSample-tvOSTests"; - productName = "RNGCanvasSample-tvOSTests"; - productReference = 2D02E4901E0B4A5D006451C7 /* RNGCanvasSample-tvOSTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 83CBB9F71A601CBA00E9B192 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0610; - ORGANIZATIONNAME = Facebook; - TargetAttributes = { - 00E356ED1AD99517003FC87E = { - CreatedOnToolsVersion = 6.2; - TestTargetID = 13B07F861A680F5B00A75B9A; - }; - 2D02E47A1E0B4A5D006451C7 = { - CreatedOnToolsVersion = 8.2.1; - ProvisioningStyle = Automatic; - }; - 2D02E48F1E0B4A5D006451C7 = { - CreatedOnToolsVersion = 8.2.1; - ProvisioningStyle = Automatic; - TestTargetID = 2D02E47A1E0B4A5D006451C7; - }; - }; - }; - buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "RNGCanvasSample" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - en, - Base, - ); - mainGroup = 83CBB9F61A601CBA00E9B192; - productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = 00C302A81ABCB8CE00DB3ED1 /* Products */; - ProjectRef = 00C302A71ABCB8CE00DB3ED1 /* RCTActionSheet.xcodeproj */; - }, - { - ProductGroup = 5E91572E1DD0AC6500FF2AA8 /* Products */; - ProjectRef = 5E91572D1DD0AC6500FF2AA8 /* RCTAnimation.xcodeproj */; - }, - { - ProductGroup = ADBDB9201DFEBF0600ED6528 /* Products */; - ProjectRef = ADBDB91F1DFEBF0600ED6528 /* RCTBlob.xcodeproj */; - }, - { - ProductGroup = A29FA79B239E2D3D00F1DDC2 /* Products */; - ProjectRef = A29FA79A239E2D3D00F1DDC2 /* RCTGCanvas.xcodeproj */; - }, - { - ProductGroup = 00C302B61ABCB90400DB3ED1 /* Products */; - ProjectRef = 00C302B51ABCB90400DB3ED1 /* RCTGeolocation.xcodeproj */; - }, - { - ProductGroup = 00C302BC1ABCB91800DB3ED1 /* Products */; - ProjectRef = 00C302BB1ABCB91800DB3ED1 /* RCTImage.xcodeproj */; - }, - { - ProductGroup = 78C398B11ACF4ADC00677621 /* Products */; - ProjectRef = 78C398B01ACF4ADC00677621 /* RCTLinking.xcodeproj */; - }, - { - ProductGroup = 00C302D41ABCB9D200DB3ED1 /* Products */; - ProjectRef = 00C302D31ABCB9D200DB3ED1 /* RCTNetwork.xcodeproj */; - }, - { - ProductGroup = 139105B71AF99BAD00B5F7CC /* Products */; - ProjectRef = 139105B61AF99BAD00B5F7CC /* RCTSettings.xcodeproj */; - }, - { - ProductGroup = 832341B11AAA6A8300B99B32 /* Products */; - ProjectRef = 832341B01AAA6A8300B99B32 /* RCTText.xcodeproj */; - }, - { - ProductGroup = 00C302E01ABCB9EE00DB3ED1 /* Products */; - ProjectRef = 00C302DF1ABCB9EE00DB3ED1 /* RCTVibration.xcodeproj */; - }, - { - ProductGroup = 139FDEE71B06529A00C62182 /* Products */; - ProjectRef = 139FDEE61B06529A00C62182 /* RCTWebSocket.xcodeproj */; - }, - { - ProductGroup = 146834001AC3E56700842450 /* Products */; - ProjectRef = 146833FF1AC3E56700842450 /* React.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 13B07F861A680F5B00A75B9A /* RNGCanvasSample */, - 00E356ED1AD99517003FC87E /* RNGCanvasSampleTests */, - 2D02E47A1E0B4A5D006451C7 /* RNGCanvasSample-tvOS */, - 2D02E48F1E0B4A5D006451C7 /* RNGCanvasSample-tvOSTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - 00C302AC1ABCB8CE00DB3ED1 /* libRCTActionSheet.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTActionSheet.a; - remoteRef = 00C302AB1ABCB8CE00DB3ED1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 00C302BA1ABCB90400DB3ED1 /* libRCTGeolocation.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTGeolocation.a; - remoteRef = 00C302B91ABCB90400DB3ED1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 00C302C01ABCB91800DB3ED1 /* libRCTImage.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTImage.a; - remoteRef = 00C302BF1ABCB91800DB3ED1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 00C302DC1ABCB9D200DB3ED1 /* libRCTNetwork.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTNetwork.a; - remoteRef = 00C302DB1ABCB9D200DB3ED1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 00C302E41ABCB9EE00DB3ED1 /* libRCTVibration.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTVibration.a; - remoteRef = 00C302E31ABCB9EE00DB3ED1 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 139105C11AF99BAD00B5F7CC /* libRCTSettings.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTSettings.a; - remoteRef = 139105C01AF99BAD00B5F7CC /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 139FDEF41B06529B00C62182 /* libRCTWebSocket.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTWebSocket.a; - remoteRef = 139FDEF31B06529B00C62182 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 146834041AC3E56700842450 /* libReact.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libReact.a; - remoteRef = 146834031AC3E56700842450 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 2D16E6721FA4F8DC00B85C8A /* libRCTBlob-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTBlob-tvOS.a"; - remoteRef = 2D16E6711FA4F8DC00B85C8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 2D16E6841FA4F8DC00B85C8A /* libfishhook.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libfishhook.a; - remoteRef = 2D16E6831FA4F8DC00B85C8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 2D16E6861FA4F8DC00B85C8A /* libfishhook-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libfishhook-tvOS.a"; - remoteRef = 2D16E6851FA4F8DC00B85C8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E841DF850E9000B6D8A /* libRCTImage-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTImage-tvOS.a"; - remoteRef = 3DAD3E831DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E881DF850E9000B6D8A /* libRCTLinking-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTLinking-tvOS.a"; - remoteRef = 3DAD3E871DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E8C1DF850E9000B6D8A /* libRCTNetwork-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTNetwork-tvOS.a"; - remoteRef = 3DAD3E8B1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E901DF850E9000B6D8A /* libRCTSettings-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTSettings-tvOS.a"; - remoteRef = 3DAD3E8F1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E941DF850E9000B6D8A /* libRCTText-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTText-tvOS.a"; - remoteRef = 3DAD3E931DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3E991DF850E9000B6D8A /* libRCTWebSocket-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libRCTWebSocket-tvOS.a"; - remoteRef = 3DAD3E981DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EA31DF850E9000B6D8A /* libReact.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libReact.a; - remoteRef = 3DAD3EA21DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EA51DF850E9000B6D8A /* libyoga.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libyoga.a; - remoteRef = 3DAD3EA41DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EA71DF850E9000B6D8A /* libyoga.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libyoga.a; - remoteRef = 3DAD3EA61DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EA91DF850E9000B6D8A /* libcxxreact.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libcxxreact.a; - remoteRef = 3DAD3EA81DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EAB1DF850E9000B6D8A /* libcxxreact.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libcxxreact.a; - remoteRef = 3DAD3EAA1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EAD1DF850E9000B6D8A /* libjschelpers.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libjschelpers.a; - remoteRef = 3DAD3EAC1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 3DAD3EAF1DF850E9000B6D8A /* libjschelpers.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libjschelpers.a; - remoteRef = 3DAD3EAE1DF850E9000B6D8A /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 5E9157331DD0AC6500FF2AA8 /* libRCTAnimation.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTAnimation.a; - remoteRef = 5E9157321DD0AC6500FF2AA8 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 5E9157351DD0AC6500FF2AA8 /* libRCTAnimation.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTAnimation.a; - remoteRef = 5E9157341DD0AC6500FF2AA8 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 78C398B91ACF4ADC00677621 /* libRCTLinking.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTLinking.a; - remoteRef = 78C398B81ACF4ADC00677621 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - 832341B51AAA6A8300B99B32 /* libRCTText.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTText.a; - remoteRef = 832341B41AAA6A8300B99B32 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - A29FA7A0239E2D3D00F1DDC2 /* libRCTGCanvas.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTGCanvas.a; - remoteRef = A29FA79F239E2D3D00F1DDC2 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - A2B65C252029D02F000DB6F7 /* libjsinspector.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libjsinspector.a; - remoteRef = A2B65C242029D02F000DB6F7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - A2B65C272029D02F000DB6F7 /* libjsinspector-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libjsinspector-tvOS.a"; - remoteRef = A2B65C262029D02F000DB6F7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - A2B65C292029D02F000DB6F7 /* libthird-party.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libthird-party.a"; - remoteRef = A2B65C282029D02F000DB6F7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - A2B65C2B2029D02F000DB6F7 /* libthird-party.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libthird-party.a"; - remoteRef = A2B65C2A2029D02F000DB6F7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - A2B65C2D2029D02F000DB6F7 /* libdouble-conversion.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libdouble-conversion.a"; - remoteRef = A2B65C2C2029D02F000DB6F7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - A2B65C2F2029D02F000DB6F7 /* libdouble-conversion.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libdouble-conversion.a"; - remoteRef = A2B65C2E2029D02F000DB6F7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - A2B65C312029D02F000DB6F7 /* libprivatedata.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libprivatedata.a; - remoteRef = A2B65C302029D02F000DB6F7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - A2B65C332029D02F000DB6F7 /* libprivatedata-tvOS.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = "libprivatedata-tvOS.a"; - remoteRef = A2B65C322029D02F000DB6F7 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - ADBDB9271DFEBF0700ED6528 /* libRCTBlob.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libRCTBlob.a; - remoteRef = ADBDB9261DFEBF0700ED6528 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 00E356EC1AD99517003FC87E /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F8E1A680F5B00A75B9A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, - 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E4791E0B4A5D006451C7 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2D02E4BD1E0B4A84006451C7 /* Images.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E48E1E0B4A5D006451C7 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Bundle React Native code and images"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; - }; - 2D02E4CB1E0B4B27006451C7 /* Bundle React Native Code And Images */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Bundle React Native Code And Images"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 00E356EA1AD99517003FC87E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 00E356F31AD99517003FC87E /* RNGCanvasSampleTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 13B07F871A680F5B00A75B9A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */, - 13B07FC11A68108700A75B9A /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E4771E0B4A5D006451C7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2D02E4BF1E0B4AB3006451C7 /* main.m in Sources */, - 2D02E4BC1E0B4A80006451C7 /* AppDelegate.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 2D02E48C1E0B4A5D006451C7 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2DCD954D1E0B4F2C00145EB5 /* RNGCanvasSampleTests.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 00E356F51AD99517003FC87E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 13B07F861A680F5B00A75B9A /* RNGCanvasSample */; - targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */; - }; - 2D02E4921E0B4A5D006451C7 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 2D02E47A1E0B4A5D006451C7 /* RNGCanvasSample-tvOS */; - targetProxy = 2D02E4911E0B4A5D006451C7 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 13B07FB11A68108700A75B9A /* LaunchScreen.xib */ = { - isa = PBXVariantGroup; - children = ( - 13B07FB21A68108700A75B9A /* Base */, - ); - name = LaunchScreen.xib; - path = RNGCanvasSample; - sourceTree = "<group>"; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 00E356F61AD99517003FC87E /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = RNGCanvasSampleTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - ); - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/RNGCanvasSample.app/RNGCanvasSample"; - }; - name = Debug; - }; - 00E356F71AD99517003FC87E /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - COPY_PHASE_STRIP = NO; - INFOPLIST_FILE = RNGCanvasSampleTests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - ); - PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/RNGCanvasSample.app/RNGCanvasSample"; - }; - name = Release; - }; - 13B07F941A680F5B00A75B9A /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CURRENT_PROJECT_VERSION = 1; - DEAD_CODE_STRIPPING = NO; - INFOPLIST_FILE = RNGCanvasSample/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_NAME = RNGCanvasSample; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Debug; - }; - 13B07F951A680F5B00A75B9A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CURRENT_PROJECT_VERSION = 1; - INFOPLIST_FILE = RNGCanvasSample/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "$(inherited)", - "-ObjC", - "-lc++", - ); - PRODUCT_NAME = RNGCanvasSample; - VERSIONING_SYSTEM = "apple-generic"; - }; - name = Release; - }; - 2D02E4971E0B4A5E006451C7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "RNGCanvasSample-tvOS/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.RNGCanvasSample-tvOS"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.2; - }; - name = Debug; - }; - 2D02E4981E0B4A5E006451C7 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "RNGCanvasSample-tvOS/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - OTHER_LDFLAGS = ( - "-ObjC", - "-lc++", - ); - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.RNGCanvasSample-tvOS"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TARGETED_DEVICE_FAMILY = 3; - TVOS_DEPLOYMENT_TARGET = 9.2; - }; - name = Release; - }; - 2D02E4991E0B4A5E006451C7 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_TESTABILITY = YES; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "RNGCanvasSample-tvOSTests/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.RNGCanvasSample-tvOSTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/RNGCanvasSample-tvOS.app/RNGCanvasSample-tvOS"; - TVOS_DEPLOYMENT_TARGET = 10.1; - }; - name = Debug; - }; - 2D02E49A1E0B4A5E006451C7 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; - CLANG_ANALYZER_NONNULL = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = "RNGCanvasSample-tvOSTests/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "com.facebook.REACT.RNGCanvasSample-tvOSTests"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/RNGCanvasSample-tvOS.app/RNGCanvasSample-tvOS"; - TVOS_DEPLOYMENT_TARGET = 10.1; - }; - name = Release; - }; - 83CBBA201A601CBA00E9B192 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 83CBBA211A601CBA00E9B192 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "RNGCanvasSampleTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 00E356F61AD99517003FC87E /* Debug */, - 00E356F71AD99517003FC87E /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "RNGCanvasSample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 13B07F941A680F5B00A75B9A /* Debug */, - 13B07F951A680F5B00A75B9A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 2D02E4BA1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "RNGCanvasSample-tvOS" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 2D02E4971E0B4A5E006451C7 /* Debug */, - 2D02E4981E0B4A5E006451C7 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 2D02E4BB1E0B4A5E006451C7 /* Build configuration list for PBXNativeTarget "RNGCanvasSample-tvOSTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 2D02E4991E0B4A5E006451C7 /* Debug */, - 2D02E49A1E0B4A5E006451C7 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "RNGCanvasSample" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 83CBBA201A601CBA00E9B192 /* Debug */, - 83CBBA211A601CBA00E9B192 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */; -} diff --git a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample.xcodeproj/xcshareddata/xcschemes/RNGCanvasSample-tvOS.xcscheme b/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample.xcodeproj/xcshareddata/xcschemes/RNGCanvasSample-tvOS.xcscheme deleted file mode 100644 index 09c793f7..00000000 --- a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample.xcodeproj/xcshareddata/xcschemes/RNGCanvasSample-tvOS.xcscheme +++ /dev/null @@ -1,129 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "0820" - version = "1.3"> - <BuildAction - parallelizeBuildables = "NO" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "2D2A28121D9B038B00D4039D" - BuildableName = "libReact.a" - BlueprintName = "React-tvOS" - ReferencedContainer = "container:../node_modules/react-native/React/React.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7" - BuildableName = "RNGCanvasSample-tvOS.app" - BlueprintName = "RNGCanvasSample-tvOS" - ReferencedContainer = "container:RNGCanvasSample.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "NO" - buildForArchiving = "NO" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "2D02E48F1E0B4A5D006451C7" - BuildableName = "RNGCanvasSample-tvOSTests.xctest" - BlueprintName = "RNGCanvasSample-tvOSTests" - ReferencedContainer = "container:RNGCanvasSample.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - </BuildActionEntries> - </BuildAction> - <TestAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES"> - <Testables> - <TestableReference - skipped = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "2D02E48F1E0B4A5D006451C7" - BuildableName = "RNGCanvasSample-tvOSTests.xctest" - BlueprintName = "RNGCanvasSample-tvOSTests" - ReferencedContainer = "container:RNGCanvasSample.xcodeproj"> - </BuildableReference> - </TestableReference> - </Testables> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7" - BuildableName = "RNGCanvasSample-tvOS.app" - BlueprintName = "RNGCanvasSample-tvOS" - ReferencedContainer = "container:RNGCanvasSample.xcodeproj"> - </BuildableReference> - </MacroExpansion> - <AdditionalOptions> - </AdditionalOptions> - </TestAction> - <LaunchAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - launchStyle = "0" - useCustomWorkingDirectory = "NO" - ignoresPersistentStateOnLaunch = "NO" - debugDocumentVersioning = "YES" - debugServiceExtension = "internal" - allowLocationSimulation = "YES"> - <BuildableProductRunnable - runnableDebuggingMode = "0"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7" - BuildableName = "RNGCanvasSample-tvOS.app" - BlueprintName = "RNGCanvasSample-tvOS" - ReferencedContainer = "container:RNGCanvasSample.xcodeproj"> - </BuildableReference> - </BuildableProductRunnable> - <AdditionalOptions> - </AdditionalOptions> - </LaunchAction> - <ProfileAction - buildConfiguration = "Release" - shouldUseLaunchSchemeArgsEnv = "YES" - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES"> - <BuildableProductRunnable - runnableDebuggingMode = "0"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "2D02E47A1E0B4A5D006451C7" - BuildableName = "RNGCanvasSample-tvOS.app" - BlueprintName = "RNGCanvasSample-tvOS" - ReferencedContainer = "container:RNGCanvasSample.xcodeproj"> - </BuildableReference> - </BuildableProductRunnable> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Debug"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Release" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme> diff --git a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample.xcodeproj/xcshareddata/xcschemes/RNGCanvasSample.xcscheme b/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample.xcodeproj/xcshareddata/xcschemes/RNGCanvasSample.xcscheme deleted file mode 100644 index c5e59bb7..00000000 --- a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample.xcodeproj/xcshareddata/xcschemes/RNGCanvasSample.xcscheme +++ /dev/null @@ -1,129 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<Scheme - LastUpgradeVersion = "0620" - version = "1.3"> - <BuildAction - parallelizeBuildables = "NO" - buildImplicitDependencies = "YES"> - <BuildActionEntries> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "83CBBA2D1A601D0E00E9B192" - BuildableName = "libReact.a" - BlueprintName = "React" - ReferencedContainer = "container:../node_modules/react-native/React/React.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "YES" - buildForArchiving = "YES" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "13B07F861A680F5B00A75B9A" - BuildableName = "RNGCanvasSample.app" - BlueprintName = "RNGCanvasSample" - ReferencedContainer = "container:RNGCanvasSample.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - <BuildActionEntry - buildForTesting = "YES" - buildForRunning = "YES" - buildForProfiling = "NO" - buildForArchiving = "NO" - buildForAnalyzing = "YES"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "00E356ED1AD99517003FC87E" - BuildableName = "RNGCanvasSampleTests.xctest" - BlueprintName = "RNGCanvasSampleTests" - ReferencedContainer = "container:RNGCanvasSample.xcodeproj"> - </BuildableReference> - </BuildActionEntry> - </BuildActionEntries> - </BuildAction> - <TestAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - shouldUseLaunchSchemeArgsEnv = "YES"> - <Testables> - <TestableReference - skipped = "NO"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "00E356ED1AD99517003FC87E" - BuildableName = "RNGCanvasSampleTests.xctest" - BlueprintName = "RNGCanvasSampleTests" - ReferencedContainer = "container:RNGCanvasSample.xcodeproj"> - </BuildableReference> - </TestableReference> - </Testables> - <MacroExpansion> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "13B07F861A680F5B00A75B9A" - BuildableName = "RNGCanvasSample.app" - BlueprintName = "RNGCanvasSample" - ReferencedContainer = "container:RNGCanvasSample.xcodeproj"> - </BuildableReference> - </MacroExpansion> - <AdditionalOptions> - </AdditionalOptions> - </TestAction> - <LaunchAction - buildConfiguration = "Debug" - selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" - selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" - launchStyle = "0" - useCustomWorkingDirectory = "NO" - ignoresPersistentStateOnLaunch = "NO" - debugDocumentVersioning = "YES" - debugServiceExtension = "internal" - allowLocationSimulation = "YES"> - <BuildableProductRunnable - runnableDebuggingMode = "0"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "13B07F861A680F5B00A75B9A" - BuildableName = "RNGCanvasSample.app" - BlueprintName = "RNGCanvasSample" - ReferencedContainer = "container:RNGCanvasSample.xcodeproj"> - </BuildableReference> - </BuildableProductRunnable> - <AdditionalOptions> - </AdditionalOptions> - </LaunchAction> - <ProfileAction - buildConfiguration = "Release" - shouldUseLaunchSchemeArgsEnv = "YES" - savedToolIdentifier = "" - useCustomWorkingDirectory = "NO" - debugDocumentVersioning = "YES"> - <BuildableProductRunnable - runnableDebuggingMode = "0"> - <BuildableReference - BuildableIdentifier = "primary" - BlueprintIdentifier = "13B07F861A680F5B00A75B9A" - BuildableName = "RNGCanvasSample.app" - BlueprintName = "RNGCanvasSample" - ReferencedContainer = "container:RNGCanvasSample.xcodeproj"> - </BuildableReference> - </BuildableProductRunnable> - </ProfileAction> - <AnalyzeAction - buildConfiguration = "Debug"> - </AnalyzeAction> - <ArchiveAction - buildConfiguration = "Release" - revealArchiveInOrganizer = "YES"> - </ArchiveAction> -</Scheme> diff --git a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/AppDelegate.h b/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/AppDelegate.h deleted file mode 100644 index a9654d5e..00000000 --- a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/AppDelegate.h +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import <UIKit/UIKit.h> - -@interface AppDelegate : UIResponder <UIApplicationDelegate> - -@property (nonatomic, strong) UIWindow *window; - -@end diff --git a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/AppDelegate.m b/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/AppDelegate.m deleted file mode 100644 index 0b81ecb6..00000000 --- a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/AppDelegate.m +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import "AppDelegate.h" - -#import <React/RCTBundleURLProvider.h> -#import <React/RCTRootView.h> - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - NSURL *jsCodeLocation; - - jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; - - RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation - moduleName:@"RNGCanvasSample" - initialProperties:nil - launchOptions:launchOptions]; - rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; - - self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; - UIViewController *rootViewController = [UIViewController new]; - rootViewController.view = rootView; - self.window.rootViewController = rootViewController; - [self.window makeKeyAndVisible]; - return YES; -} - -@end diff --git a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/Base.lproj/LaunchScreen.xib b/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/Base.lproj/LaunchScreen.xib deleted file mode 100644 index 19eee77f..00000000 --- a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/Base.lproj/LaunchScreen.xib +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7702" systemVersion="14D136" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES"> - <dependencies> - <deployment identifier="iOS"/> - <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7701"/> - <capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/> - </dependencies> - <objects> - <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/> - <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/> - <view contentMode="scaleToFill" id="iN0-l3-epB"> - <rect key="frame" x="0.0" y="0.0" width="480" height="480"/> - <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> - <subviews> - <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Powered by React Native" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumFontSize="9" translatesAutoresizingMaskIntoConstraints="NO" id="8ie-xW-0ye"> - <rect key="frame" x="20" y="439" width="441" height="21"/> - <fontDescription key="fontDescription" type="system" pointSize="17"/> - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> - <nil key="highlightedColor"/> - </label> - <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="RNGCanvasSample" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX"> - <rect key="frame" x="20" y="140" width="441" height="43"/> - <fontDescription key="fontDescription" type="boldSystem" pointSize="36"/> - <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> - <nil key="highlightedColor"/> - </label> - </subviews> - <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/> - <constraints> - <constraint firstItem="kId-c2-rCX" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="bottom" multiplier="1/3" constant="1" id="5cJ-9S-tgC"/> - <constraint firstAttribute="centerX" secondItem="kId-c2-rCX" secondAttribute="centerX" id="Koa-jz-hwk"/> - <constraint firstAttribute="bottom" secondItem="8ie-xW-0ye" secondAttribute="bottom" constant="20" id="Kzo-t9-V3l"/> - <constraint firstItem="8ie-xW-0ye" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="MfP-vx-nX0"/> - <constraint firstAttribute="centerX" secondItem="8ie-xW-0ye" secondAttribute="centerX" id="ZEH-qu-HZ9"/> - <constraint firstItem="kId-c2-rCX" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="fvb-Df-36g"/> - </constraints> - <nil key="simulatedStatusBarMetrics"/> - <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> - <point key="canvasLocation" x="548" y="455"/> - </view> - </objects> -</document> diff --git a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/Images.xcassets/AppIcon.appiconset/Contents.json b/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/Images.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 118c98f7..00000000 --- a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/Images.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/Images.xcassets/Contents.json b/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/Images.xcassets/Contents.json deleted file mode 100644 index 2d92bd53..00000000 --- a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/Images.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} diff --git a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/Info.plist b/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/Info.plist deleted file mode 100644 index 5da3e850..00000000 --- a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/Info.plist +++ /dev/null @@ -1,56 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundleDevelopmentRegion</key> - <string>en</string> - <key>CFBundleDisplayName</key> - <string>RNGCanvasSample</string> - <key>CFBundleExecutable</key> - <string>$(EXECUTABLE_NAME)</string> - <key>CFBundleIdentifier</key> - <string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundleName</key> - <string>$(PRODUCT_NAME)</string> - <key>CFBundlePackageType</key> - <string>APPL</string> - <key>CFBundleShortVersionString</key> - <string>1.0</string> - <key>CFBundleSignature</key> - <string>????</string> - <key>CFBundleVersion</key> - <string>1</string> - <key>LSRequiresIPhoneOS</key> - <true/> - <key>UILaunchStoryboardName</key> - <string>LaunchScreen</string> - <key>UIRequiredDeviceCapabilities</key> - <array> - <string>armv7</string> - </array> - <key>UISupportedInterfaceOrientations</key> - <array> - <string>UIInterfaceOrientationPortrait</string> - <string>UIInterfaceOrientationLandscapeLeft</string> - <string>UIInterfaceOrientationLandscapeRight</string> - </array> - <key>UIViewControllerBasedStatusBarAppearance</key> - <false/> - <key>NSLocationWhenInUseUsageDescription</key> - <string></string> - <key>NSAppTransportSecurity</key> - <!--See http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/ --> - <dict> - <key>NSExceptionDomains</key> - <dict> - <key>localhost</key> - <dict> - <key>NSExceptionAllowsInsecureHTTPLoads</key> - <true/> - </dict> - </dict> - </dict> -</dict> -</plist> diff --git a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/main.m b/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/main.m deleted file mode 100644 index 3d767fcb..00000000 --- a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSample/main.m +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import <UIKit/UIKit.h> - -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSampleTests/Info.plist b/examples/ReactNativeGCanvasExample/ios/RNGCanvasSampleTests/Info.plist deleted file mode 100644 index 886825cc..00000000 --- a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSampleTests/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> -<plist version="1.0"> -<dict> - <key>CFBundleDevelopmentRegion</key> - <string>en</string> - <key>CFBundleExecutable</key> - <string>$(EXECUTABLE_NAME)</string> - <key>CFBundleIdentifier</key> - <string>org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)</string> - <key>CFBundleInfoDictionaryVersion</key> - <string>6.0</string> - <key>CFBundleName</key> - <string>$(PRODUCT_NAME)</string> - <key>CFBundlePackageType</key> - <string>BNDL</string> - <key>CFBundleShortVersionString</key> - <string>1.0</string> - <key>CFBundleSignature</key> - <string>????</string> - <key>CFBundleVersion</key> - <string>1</string> -</dict> -</plist> diff --git a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSampleTests/RNGCanvasSampleTests.m b/examples/ReactNativeGCanvasExample/ios/RNGCanvasSampleTests/RNGCanvasSampleTests.m deleted file mode 100644 index 78061c02..00000000 --- a/examples/ReactNativeGCanvasExample/ios/RNGCanvasSampleTests/RNGCanvasSampleTests.m +++ /dev/null @@ -1,70 +0,0 @@ -/** - * Copyright (c) 2015-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - */ - -#import <UIKit/UIKit.h> -#import <XCTest/XCTest.h> - -#import <React/RCTLog.h> -#import <React/RCTRootView.h> - -#define TIMEOUT_SECONDS 600 -#define TEXT_TO_LOOK_FOR @"Welcome to React Native!" - -@interface RNGCanvasSampleTests : XCTestCase - -@end - -@implementation RNGCanvasSampleTests - -- (BOOL)findSubviewInView:(UIView *)view matching:(BOOL(^)(UIView *view))test -{ - if (test(view)) { - return YES; - } - for (UIView *subview in [view subviews]) { - if ([self findSubviewInView:subview matching:test]) { - return YES; - } - } - return NO; -} - -- (void)testRendersWelcomeScreen -{ - UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController]; - NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS]; - BOOL foundElement = NO; - - __block NSString *redboxError = nil; - RCTSetLogFunction(^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) { - if (level >= RCTLogLevelError) { - redboxError = message; - } - }); - - while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) { - [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; - - foundElement = [self findSubviewInView:vc.view matching:^BOOL(UIView *view) { - if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) { - return YES; - } - return NO; - }]; - } - - RCTSetLogFunction(RCTDefaultLogFunction); - - XCTAssertNil(redboxError, @"RedBox error: %@", redboxError); - XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS); -} - - -@end diff --git a/examples/ReactNativeGCanvasExample/package.json b/examples/ReactNativeGCanvasExample/package.json deleted file mode 100644 index 3fda14c4..00000000 --- a/examples/ReactNativeGCanvasExample/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "RNGCanvasSample", - "version": "0.0.1", - "private": true, - "scripts": { - "start": "node node_modules/react-native/local-cli/cli.js start", - "test": "jest" - }, - "dependencies": { - "gcanvas.js": "^0.0.5", - "react": "16.2.0", - "react-native": "0.53.0", - "react-native-gcanvas": "^0.0.1" - }, - "devDependencies": { - "babel-jest": "22.1.0", - "babel-preset-react-native": "4.0.0", - "jest": "22.1.4", - "react-test-renderer": "16.2.0" - }, - "jest": { - "preset": "react-native" - } -}