You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by zs...@apache.org on 2017/04/10 03:24:09 UTC
[01/10] incubator-weex git commit: Merge remote-tracking branch
'upstream/0.12-dev' into 0.12-dev
Repository: incubator-weex
Updated Branches:
refs/heads/0.12-dev 35a3f8c21 -> 5b1126a56
Merge remote-tracking branch 'upstream/0.12-dev' into 0.12-dev
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/8d2411e4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/8d2411e4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/8d2411e4
Branch: refs/heads/0.12-dev
Commit: 8d2411e42fbe85047c05053fd515e184fce538d0
Parents: 20f0dc1 e1be952
Author: \u9690\u98ce <cx...@apache.org>
Authored: Mon Mar 27 15:36:15 2017 +0800
Committer: \u9690\u98ce <cx...@apache.org>
Committed: Mon Mar 27 15:36:15 2017 +0800
----------------------------------------------------------------------
CHANGELOG.md | 7 +
.../java/com/taobao/weex/WXSDKInstance.java | 6 +-
.../main/java/com/taobao/weex/WXSDKManager.java | 10 +
.../taobao/weex/adapter/DefaultUriAdapter.java | 8 +-
.../com/taobao/weex/bridge/WXBridgeManager.java | 3 +-
.../com/taobao/weex/dom/ApplyStyleConsumer.java | 245 ++++
.../java/com/taobao/weex/dom/DOMAction.java | 216 +++
.../com/taobao/weex/dom/DOMActionContext.java | 255 ++++
.../taobao/weex/dom/DOMActionContextImpl.java | 620 +++++++++
.../java/com/taobao/weex/dom/RenderAction.java | 215 +++
.../taobao/weex/dom/RenderActionContext.java | 218 +++
.../com/taobao/weex/dom/RenderActionTask.java | 227 ++++
.../java/com/taobao/weex/dom/WXDomHandler.java | 82 +-
.../java/com/taobao/weex/dom/WXDomManager.java | 300 +----
.../java/com/taobao/weex/dom/WXDomModule.java | 439 +-----
.../java/com/taobao/weex/dom/WXDomObject.java | 4 +-
.../com/taobao/weex/dom/WXDomStatement.java | 1272 ------------------
.../dom/action/AbstractAddElementAction.java | 313 +++++
.../dom/action/AbstractLayoutFinishAction.java | 240 ++++
.../java/com/taobao/weex/dom/action/Action.java | 212 +++
.../com/taobao/weex/dom/action/Actions.java | 350 +++++
.../weex/dom/action/AddElementAction.java | 295 ++++
.../taobao/weex/dom/action/AddEventAction.java | 262 ++++
.../taobao/weex/dom/action/AddRuleAction.java | 254 ++++
.../taobao/weex/dom/action/AnimationAction.java | 463 +++++++
.../weex/dom/action/CreateBodyAction.java | 302 +++++
.../weex/dom/action/CreateFinishAction.java | 224 +++
.../weex/dom/action/GetComponentRectAction.java | 299 ++++
.../weex/dom/action/InvokeMethodAction.java | 236 ++++
.../weex/dom/action/MoveElementAction.java | 281 ++++
.../weex/dom/action/RefreshFinishAction.java | 221 +++
.../weex/dom/action/RemoveElementAction.java | 286 ++++
.../weex/dom/action/RemoveEventAction.java | 264 ++++
.../weex/dom/action/ScrollToElementAction.java | 257 ++++
.../weex/dom/action/UpdateAttributeAction.java | 263 ++++
.../weex/dom/action/UpdateFinishAction.java | 237 ++++
.../weex/dom/action/UpdateStyleAction.java | 298 ++++
.../taobao/weex/ui/RenderActionContextImpl.java | 299 ++++
.../com/taobao/weex/ui/WXRenderManager.java | 191 +--
.../com/taobao/weex/ui/WXRenderStatement.java | 556 --------
.../ui/animation/DimensionUpdateListener.java | 6 +-
.../weex/ui/animation/WXAnimationBean.java | 5 +-
.../weex/ui/animation/WXAnimationModule.java | 199 +--
.../weex/ui/component/NestedContainer.java | 2 +
.../taobao/weex/ui/component/WXComponent.java | 12 +-
.../com/taobao/weex/ui/component/WXEmbed.java | 6 +
.../java/com/taobao/weex/WXSDKManagerTest.java | 2 +-
.../com/taobao/weex/dom/WXDomStatementTest.java | 119 +-
.../com/taobao/weex/dom/action/TestActions.java | 59 +
.../taobao/weex/ui/WXRenderStatementTest.java | 4 +-
.../ui/animation/WXAnimationModuleTest.java | 18 +-
build/webpack.ci.config.js | 53 +
build/webpack.ci.web.config.js | 68 +
build/webpack.deprecatedmacacatest.config.js | 53 +
build/webpack.macacatest.config.js | 53 -
circle.yml | 37 -
.../WeexSDK/Sources/Component/WXEditComponent.m | 30 +-
package.json | 10 +-
test/.gitignore | 2 +
test/pages/components/scroller-fixed.vue | 64 +
test/pages/components/scroller-fixed.we | 62 -
test/pages/components/textarea-maxlength.vue | 50 +
test/pages/dom-operation.vue | 37 +
test/pages/dom-operation.we | 32 -
test/pages/image-onload.vue | 21 +
test/pages/image-onload.we | 19 -
test/pages/index.vue | 30 +
test/pages/index.we | 27 -
test/pages/list-scroll.vue | 34 +
test/pages/list-scroll.we | 31 -
test/pages/scroller-scroll.vue | 33 +
test/pages/scroller-scroll.we | 31 -
test/run.sh | 10 +-
test/scripts/components/image-onload.test.js | 2 +-
test/scripts/components/scroll-event.test.js | 4 +-
test/scripts/components/scroller-fixed.test.js | 2 +-
.../components/textarea-maxlength.test.js | 36 +
test/scripts/dom.test.js | 11 +-
test/scripts/index.test.js | 2 +-
test/scripts/util.js | 24 +
test/serve.sh | 6 +-
81 files changed, 8742 insertions(+), 3294 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/8d2411e4/build/webpack.deprecatedmacacatest.config.js
----------------------------------------------------------------------
diff --cc build/webpack.deprecatedmacacatest.config.js
index 0000000,ba154a8..30d5359
mode 000000,100644..100644
--- a/build/webpack.deprecatedmacacatest.config.js
+++ b/build/webpack.deprecatedmacacatest.config.js
@@@ -1,0 -1,57 +1,53 @@@
+ var path = require('path');
+ var fs = require('fs');
+ var webpack = require('webpack');
+
+ var entry = {};
+ var bannerExcludeFiles = [];
+
+ function walk(dir) {
+ dir = dir || '.'
+ var directory = path.join(__dirname, '../test/pages', dir);
+ fs.readdirSync(directory)
+ .forEach(function(file) {
+ var fullpath = path.join(directory, file);
+ var stat = fs.statSync(fullpath);
+ var extname = path.extname(fullpath);
+ if (stat.isFile() && (extname === '.we' || extname === '.vue')) {
+ var name = path.join('test', 'build', dir, path.basename(file, extname));
+ entry[name] = fullpath + '?entry=true';
+ if (extname === '.we') {
+ bannerExcludeFiles.push(name + '.js')
+ }
+ } else if (stat.isDirectory() && file !== 'build' && file !== 'include') {
+ var subdir = path.join(dir, file);
+ walk(subdir);
+ }
+ });
+ }
+
+ walk();
+
+ var banner = '// { "framework": "Vue" }\n'
+
+ var bannerPlugin = new webpack.BannerPlugin(banner, {
+ raw: true,
+ exclude: bannerExcludeFiles
+ })
+
+ module.exports = {
+ entry: entry,
+ output : {
+ path: '.',
+ filename: '[name].js'
+ },
+ module: {
+ loaders: [
+ {
- test: /\.we(\?[^?]+)?$/,
++ test: /\.(we|vue)(\?[^?]+)?$/,
+ loader: 'weex'
- },
- {
- test: /\.vue(\?[^?]+)?$/,
- loader: 'weex-vue-loader'
+ }
+ ]
+ },
+ plugins: [bannerPlugin]
+ }
[09/10] incubator-weex git commit: * [test] fix recycler test problems
Posted by zs...@apache.org.
* [test] fix recycler test problems
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/982da124
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/982da124
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/982da124
Branch: refs/heads/0.12-dev
Commit: 982da1245e64f518680b91356abf30a45005287d
Parents: 53b61da
Author: \u9690\u98ce <cx...@apache.org>
Authored: Fri Apr 7 11:58:24 2017 +0800
Committer: \u9690\u98ce <cx...@apache.org>
Committed: Fri Apr 7 11:58:24 2017 +0800
----------------------------------------------------------------------
.../Component/Recycler/WXRecyclerComponent.m | 1 +
.../WeexSDK/Sources/Component/WXListComponent.m | 2 ++
test/pages/components/recycler.vue | 12 ++++------
test/scripts/components/recycler.test.js | 25 ++++++++++++--------
4 files changed, 22 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/982da124/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerComponent.m b/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerComponent.m
index 842fa1f..92daf1c 100644
--- a/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Component/Recycler/WXRecyclerComponent.m
@@ -348,6 +348,7 @@ typedef enum : NSUInteger {
}
[cellView.contentView addSubview:contentView];
+ [cellView setAccessibilityIdentifier:contentView.accessibilityIdentifier];
return cellView;
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/982da124/ios/sdk/WeexSDK/Sources/Component/WXListComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXListComponent.m b/ios/sdk/WeexSDK/Sources/Component/WXListComponent.m
index c598a3d..8037799 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXListComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXListComponent.m
@@ -610,6 +610,8 @@
[cellView.contentView addSubview:cell.view];
+ [cellView setAccessibilityIdentifier:cell.view.accessibilityIdentifier];
+
WXLogDebug(@"Created cell:%@ view:%@ cellView:%@ at indexPath:%@", cell.ref, cell.view, cellView, indexPath);
return cellView;
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/982da124/test/pages/components/recycler.vue
----------------------------------------------------------------------
diff --git a/test/pages/components/recycler.vue b/test/pages/components/recycler.vue
index 7a55136..ae52e7a 100644
--- a/test/pages/components/recycler.vue
+++ b/test/pages/components/recycler.vue
@@ -42,7 +42,7 @@
<text class="stickyText">Content Offset:{{contentOffset}}</text>
</div>
</header>
- <cell v-for="(item, index) in items" :key="item.src" class="cell" :test-id="item.testid" ref="index">
+ <cell v-for="(item, index) in items" :key="item.src" class="cell" :test-id="'cell' + index" ref="index">
<div class="item" @click="onItemclick(item.behaviour, index)" @appear="itemAppear(item.src)" @disappear="itemDisappear(item.src)">
<text v-if="item.name" class="itemName">{{item.name}}</text>
<image class="itemPhoto" :src="item.src"></image>
@@ -304,14 +304,10 @@
]
let repeatItems = [];
- // for (let i = 0; i < 3; i++) {
+ for (let i = 0; i < 3; i++) {
repeatItems.push(...items)
- // }
-
- for(let i =0;i< repeatItems.length;i++ ){
- repeatItems[i].testid = 'cell'+i;
- console.log(repeatItems[i].testid)
- }
+ }
+
return {
padding: 0,
refreshing: false,
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/982da124/test/scripts/components/recycler.test.js
----------------------------------------------------------------------
diff --git a/test/scripts/components/recycler.test.js b/test/scripts/components/recycler.test.js
index ba75fa8..21e8f79 100644
--- a/test/scripts/components/recycler.test.js
+++ b/test/scripts/components/recycler.test.js
@@ -25,7 +25,7 @@ const isAndroid = platform === 'android';
// const footerPath = '//recycler[1]/div[1]'
const isApproximate = (x, y) => {
- return Math.abs(x - y) <= isAndroid ? 1 : 0.5
+ return Math.abs(x - y) <= (isAndroid ? 1 : 1.5)
}
// if (isAndroid) {
@@ -130,7 +130,7 @@ describe('recycler', function () {
it('#2 test column count', () => {
return driver
- .elementById('cell3')
+ .elementById('cell2')
.click()
.elementById('cell0')
.getRect()
@@ -307,14 +307,14 @@ describe('recycler', function () {
it('#9 test moving cell', () => {
return driver
- .elementById('cell28')
+ .elementById('cell29')
.click()
.elementById('fixed1')
.click()
- .elementById('cell28')
+ .elementById('cell27')
.getRect()
.then((rect)=>{
- console.log(`cell 28 rect after moving cell 29 to 1:${JSON.stringify(rect)}`)
+ console.log(`cell 28 rect after moving cell 30 to 1:${JSON.stringify(rect)}`)
assert.isOk(isApproximate(rect.x, 381 * scaleFactor))
assert.isOk(isApproximate(rect.y, screenHeight - 94 * scaleFactor - rect.height))
assert.isOk(isApproximate(rect.width, 369 * scaleFactor))
@@ -323,7 +323,7 @@ describe('recycler', function () {
it('#10 test recycler padding', () => {
return driver
- .elementById('cell27')
+ .elementById('cell26')
.click()
.elementById('fixed1')
.click()
@@ -348,14 +348,14 @@ describe('recycler', function () {
.elementById('cell27')
.getRect()
.then((rect)=>{
- console.log(`cell 28 rect after setting padding to 12:${JSON.stringify(rect)}`)
+ console.log(`cell 27 rect after setting padding to 12:${JSON.stringify(rect)}`)
assert.isOk(isApproximate(rect.x, 12 * scaleFactor))
assert.isOk(isApproximate(rect.width, 357 * scaleFactor))
})
.elementById('cell28')
.getRect()
.then((rect)=>{
- console.log(`cell 29 rect after setting padding to 12:${JSON.stringify(rect)}`)
+ console.log(`cell 28 rect after setting padding to 12:${JSON.stringify(rect)}`)
assert.isOk(isApproximate(rect.x, 381 * scaleFactor))
assert.isOk(isApproximate(rect.width, 357 * scaleFactor))
})
@@ -366,10 +366,15 @@ describe('recycler', function () {
it('#11 test onscroll', () => {
let originContentOffset = 0
return driver
- .elementById('cell28')
+ .elementById('cell28')
+ .getRect()
+ .then((rect)=>{
+ console.log(`cell 29 rect:${JSON.stringify(rect)}`)
+ })
+ .elementById('cell28')
.click()
.elementById('stickyText1')
- .text()
+ .text()
.then(text => {
console.log(text)
originContentOffset = Number.parseInt(text.replace('Content Offset:-',''))
[07/10] incubator-weex git commit: * [tc] recycler tc
Posted by zs...@apache.org.
* [tc] recycler tc
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/db99d41e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/db99d41e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/db99d41e
Branch: refs/heads/0.12-dev
Commit: db99d41eec8e5169df0e5a976f91294e420a1e02
Parents: b0a11a2
Author: zshshr <zh...@gmail.com>
Authored: Thu Apr 6 19:17:21 2017 +0800
Committer: zshshr <zh...@gmail.com>
Committed: Thu Apr 6 19:17:21 2017 +0800
----------------------------------------------------------------------
test/pages/components/recycler.vue | 39 ++++----
test/scripts/components/recycler.test.js | 136 +++++++++++++-------------
2 files changed, 90 insertions(+), 85 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/db99d41e/test/pages/components/recycler.vue
----------------------------------------------------------------------
diff --git a/test/pages/components/recycler.vue b/test/pages/components/recycler.vue
index ce4f21f..7a55136 100644
--- a/test/pages/components/recycler.vue
+++ b/test/pages/components/recycler.vue
@@ -1,5 +1,5 @@
<template>
- <waterfall class="page" ref="waterfall"
+ <waterfall class="page" ref="waterfall" test-id="waterfall"
v-bind:style="{padding:padding}"
:column-width="columnWidth" :column-count="columnCount" :column-gap="columnGap"
:show-scrollbar="showScrollbar" :scrollable="scrollable"
@@ -9,7 +9,7 @@
<loading-indicator class="indicator"></loading-indicator>
<text class="refreshText">{{refreshText}}</text>
</refresh>-->
- <header class="header" ref="header" v-if="showHeader">
+ <header class="header" ref="header" test-id="header1" v-if="showHeader">
<div class="banner">
<image class="absolute" src="https://gw.alicdn.com/tps/TB1ESN1PFXXXXX1apXXXXXXXXXX-1000-600.jpg" resize="cover"></image>
<div class="bannerInfo">
@@ -24,9 +24,9 @@
</div>
</div>
</header>
- <header class="stickyHeader" >
+ <header class="stickyHeader" test-id="header2">
<div v-if="stickyHeaderType === 'none'" class="stickyWrapper">
- <text class="stickyText">Sticky Header</text>
+ <text class="stickyText" test-id="stickyText1">Sticky Header</text>
</div>
<div v-if="stickyHeaderType === 'appear'" class="stickyWrapper">
<div class="stickyTextImageWrapper">
@@ -42,7 +42,7 @@
<text class="stickyText">Content Offset:{{contentOffset}}</text>
</div>
</header>
- <cell v-for="(item, index) in items" :key="item.src" class="cell" ref="index">
+ <cell v-for="(item, index) in items" :key="item.src" class="cell" :test-id="item.testid" ref="index">
<div class="item" @click="onItemclick(item.behaviour, index)" @appear="itemAppear(item.src)" @disappear="itemDisappear(item.src)">
<text v-if="item.name" class="itemName">{{item.name}}</text>
<image class="itemPhoto" :src="item.src"></image>
@@ -50,10 +50,10 @@
<text v-if="item.behaviourName" class="itemClickBehaviour"> {{item.behaviourName}}</text>
</div>
</cell>
- <header class="footer" ref="footer">
+ <header class="footer" ref="footer" test-id="footer1" >
<text class="stickyText">Footer</text>
</header>
- <div ref="fixed" class="fixedItem" @click="scrollToNext">
+ <div ref="fixed" class="fixedItem" test-id="fixed1" @click="scrollToNext">
<text class="fixedText">bot</text>
</div>
</waterfall>
@@ -244,7 +244,7 @@
name: 'Thomas Carlyle',
desc:'Genius only means hard-working all one\'s life',
behaviourName: 'Change width',
- behaviour: 'changeColumnWidth',
+ behaviour: 'changeColumnWidth'
},
{
src:'https://gw.alicdn.com/tps/TB1Hv1JPFXXXXa3XXXXXXXXXXXX-370-370.jpg',
@@ -263,13 +263,13 @@
name:'Addison',
desc:'Cease to struggle and you cease to live',
behaviourName: 'Show scrollbar',
- behaviour: 'showScrollbar',
+ behaviour: 'showScrollbar'
},
{
src:'https://gw.alicdn.com/tps/TB1ACygPFXXXXXwXVXXXXXXXXXX-370-370.jpg',
desc:'A strong man will struggle with the storms of fate',
behaviourName: 'Listen appear',
- behaviour: 'listenAppear',
+ behaviour: 'listenAppear'
},
{
src:'https://gw.alicdn.com/tps/TB1IGShPFXXXXaqXVXXXXXXXXXX-370-370.jpg',
@@ -281,32 +281,37 @@
{
src:'https://gw.alicdn.com/tps/TB1xU93PFXXXXXHaXXXXXXXXXXX-240-240.jpg',
behaviourName: 'waterfall padding',
- behaviour: 'setPadding',
+ behaviour: 'setPadding'
},
{
src:'https://gw.alicdn.com/tps/TB19hu0PFXXXXaXaXXXXXXXXXXX-240-240.jpg',
name:'Balzac',
desc:'There is no such thing as a great talent without great will - power',
behaviourName: 'listen scroll',
- behaviour: 'listenScroll',
+ behaviour: 'listenScroll'
},
{
src:'https://gw.alicdn.com/tps/TB1ux2vPFXXXXbkXXXXXXXXXXXX-240-240.jpg',
behaviourName: 'Remove cell',
- behaviour: 'removeCell',
+ behaviour: 'removeCell'
},
{
src:'https://gw.alicdn.com/tps/TB1tCCWPFXXXXa7aXXXXXXXXXXX-240-240.jpg',
behaviourName: 'Move cell',
- behaviour: 'moveCell',
+ behaviour: 'moveCell'
+
}
]
let repeatItems = [];
- for (let i = 0; i < 3; i++) {
+ // for (let i = 0; i < 3; i++) {
repeatItems.push(...items)
- }
-
+ // }
+
+ for(let i =0;i< repeatItems.length;i++ ){
+ repeatItems[i].testid = 'cell'+i;
+ console.log(repeatItems[i].testid)
+ }
return {
padding: 0,
refreshing: false,
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/db99d41e/test/scripts/components/recycler.test.js
----------------------------------------------------------------------
diff --git a/test/scripts/components/recycler.test.js b/test/scripts/components/recycler.test.js
index 19f0ad3..6bc67ed 100644
--- a/test/scripts/components/recycler.test.js
+++ b/test/scripts/components/recycler.test.js
@@ -11,36 +11,36 @@ var util = require("../util.js");
const platform = process.env.platform.toLowerCase() || 'android';
const isAndroid = platform === 'android';
-const fixedPath = '//div[1]'
-const header1Path = '//recycler[1]/div[1]/'
-const header2Path = '//recycler[1]/div[2]/'
-const cell1Path = isAndroid ? '//recycler[1]/div[3]/' : '//recycler[1]/cell[1]/'
-const cell2Path = isAndroid ? '//recycler[1]/div[4]/' : '//recycler[1]/cell[2]/'
-const cell3Path = isAndroid ? '//recycler[1]/div[5]/' : '//recycler[1]/cell[3]/'
-const cell4Path = isAndroid ? '//recycler[1]/div[6]/' : '//recycler[1]/cell[4]/'
-const cell27Path = isAndroid ? '//recycler[1]/div[29]/' : '//recycler[1]/cell[27]/'
-const cell28Path = isAndroid ? '//recycler[1]/div[30]/' : '//recycler[1]/cell[28]/'
-const cell29Path = isAndroid ? '//recycler[1]/div[31]/' : '//recycler[1]/cell[29]/'
-const cell30Path = isAndroid ? '//recycler[1]/div[32]/' : '//recycler[1]/cell[30]/'
-const footerPath = '//recycler[1]/div[1]'
+// const fixedPath = '//div[1]'
+// const header1Path = '//recycler[1]/div[1]/'
+// const header2Path = '//recycler[1]/div[2]/'
+// const cell1Path = isAndroid ? '//recycler[1]/div[3]/' : '//recycler[1]/cell[1]/'
+// const cell2Path = isAndroid ? '//recycler[1]/div[4]/' : '//recycler[1]/cell[2]/'
+// const cell3Path = isAndroid ? '//recycler[1]/div[5]/' : '//recycler[1]/cell[3]/'
+// const cell4Path = isAndroid ? '//recycler[1]/div[6]/' : '//recycler[1]/cell[4]/'
+// const cell27Path = isAndroid ? '//recycler[1]/div[29]/' : '//recycler[1]/cell[27]/'
+// const cell28Path = isAndroid ? '//recycler[1]/div[30]/' : '//recycler[1]/cell[28]/'
+// const cell29Path = isAndroid ? '//recycler[1]/div[31]/' : '//recycler[1]/cell[29]/'
+// const cell30Path = isAndroid ? '//recycler[1]/div[32]/' : '//recycler[1]/cell[30]/'
+// const footerPath = '//recycler[1]/div[1]'
const isApproximate = (x, y) => {
return Math.abs(x - y) <= 1
}
-if (isAndroid) {
- return;
-}
+// if (isAndroid) {
+// return;
+// }
describe('recycler', function () {
this.timeout(util.getTimeoutMills())
const driver = util.createDriver(wd)
before(function () {
- console.log('wxpage://' + util.getDeviceHost() +'/components/recycler.js')
+ console.log(util.getPage('/components/recycler.js'))
return util.init(driver)
- .get('wxpage://' + util.getDeviceHost() +'/components/recycler.js')
- .waitForElementByXPath('//recycler[1]',util.getGETActionWaitTimeMills(),1000)
+ .get(util.getPage('/components/recycler.js'))
+ .waitForElementById('waterfall',util.getGETActionWaitTimeMills(),1000)
});
after(function () {
@@ -64,7 +64,7 @@ describe('recycler', function () {
console.log(`scale factor:${scaleFactor}`)
})
.sleep(2000)
- .elementByXPath('//recycler[1]')
+ .elementById('waterfall')
.getRect()
.then((rect)=>{
console.log(`recycler rect:${JSON.stringify(rect)}`)
@@ -73,7 +73,7 @@ describe('recycler', function () {
assert.isOk(isApproximate(rect.width, recyclerWidth))
assert.isOk(isApproximate(rect.height, screenHeight - navBarHeight))
})
- .elementByXPath(header1Path)
+ .elementById('header1')
.getRect()
.then((rect)=>{
console.log(`header 1 rect:${JSON.stringify(rect)}`)
@@ -82,7 +82,7 @@ describe('recycler', function () {
assert.isOk(isApproximate(rect.width, recyclerWidth))
assert.isOk(isApproximate(rect.height, 377 * scaleFactor))
})
- .elementByXPath(header2Path)
+ .elementById('header2')
.getRect()
.then((rect)=>{
console.log(`header 2 rect:${JSON.stringify(rect)}`)
@@ -91,7 +91,7 @@ describe('recycler', function () {
assert.isOk(isApproximate(rect.width, recyclerWidth))
assert.isOk(isApproximate(rect.height, 94 * scaleFactor))
})
- .elementByXPath(cell1Path)
+ .elementById('cell0')
.getRect()
.then((rect)=>{
console.log(`cell 1 rect:${JSON.stringify(rect)}`)
@@ -100,7 +100,7 @@ describe('recycler', function () {
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor))
assert.isOk(isApproximate(rect.width, 369 * scaleFactor))
})
- .elementByXPath(cell2Path)
+ .elementById('cell1')
.getRect()
.then((rect)=>{
console.log(`cell 2 rect:${JSON.stringify(rect)}`)
@@ -109,7 +109,7 @@ describe('recycler', function () {
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor))
assert.isOk(isApproximate(rect.width, 369 * scaleFactor))
})
- .elementByXPath(cell3Path)
+ .elementById('cell2')
.getRect()
.then((rect)=>{
console.log(`cell 3 rect:${JSON.stringify(rect)}`)
@@ -117,7 +117,7 @@ describe('recycler', function () {
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor + cell2Height))
assert.isOk(isApproximate(rect.width, 369 * scaleFactor))
})
- .elementByXPath(cell4Path)
+ .elementById('cell3')
.getRect()
.then((rect)=>{
console.log(`cell 4 rect:${JSON.stringify(rect)}`)
@@ -129,9 +129,9 @@ describe('recycler', function () {
it('#2 test column count', () => {
return driver
- .elementByXPath(cell3Path)
+ .elementById('cell3')
.click()
- .elementByXPath(cell1Path)
+ .elementById('cell0')
.getRect()
.then((rect)=>{
console.log(`cell 1 rect after changing column count to 3:${JSON.stringify(rect)}`)
@@ -139,7 +139,7 @@ describe('recycler', function () {
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor))
assert.isOk(isApproximate(rect.width, 242 * scaleFactor))
})
- .elementByXPath(cell2Path)
+ .elementById('cell1')
.getRect()
.then((rect)=>{
console.log(`cell 2 rect after changing column count to 3:${JSON.stringify(rect)}`)
@@ -148,7 +148,7 @@ describe('recycler', function () {
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor))
assert.isOk(isApproximate(rect.width, 242 * scaleFactor))
})
- .elementByXPath(cell3Path)
+ .elementById('cell2')
.getRect()
.then((rect)=>{
console.log(`cell 3 rect after changing column count to 3:${JSON.stringify(rect)}`)
@@ -156,7 +156,7 @@ describe('recycler', function () {
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor))
assert.isOk(isApproximate(rect.width, 242 * scaleFactor))
})
- .elementByXPath(cell4Path)
+ .elementById('cell3')
.getRect()
.then((rect)=>{
console.log(`cell 4 rect after changing column count to 3:${JSON.stringify(rect)}`)
@@ -164,15 +164,15 @@ describe('recycler', function () {
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor + cell2Height))
assert.isOk(isApproximate(rect.width, 242 * scaleFactor))
})
- .elementByXPath(cell3Path)
+ .elementById('cell2')
.click()
})
it('#3 test column gap', () => {
return driver
- .elementByXPath(cell2Path)
+ .elementById('cell1')
.click()
- .elementByXPath(cell1Path)
+ .elementById('cell0')
.getRect()
.then((rect)=>{
console.log(`cell 1 rect after changing column gap to normal:${JSON.stringify(rect)}`)
@@ -181,7 +181,7 @@ describe('recycler', function () {
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor))
assert.isOk(isApproximate(rect.width, 357 * scaleFactor))
})
- .elementByXPath(cell2Path)
+ .elementById('cell1')
.getRect()
.then((rect)=>{
console.log(`cell 2 rect after changing column gap to normal:${JSON.stringify(rect)}`)
@@ -190,7 +190,7 @@ describe('recycler', function () {
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor))
assert.isOk(isApproximate(rect.width, 357 * scaleFactor))
})
- .elementByXPath(cell3Path)
+ .elementById('cell2')
.getRect()
.then((rect)=>{
console.log(`cell 3 rect after changing column gap to normal:${JSON.stringify(rect)}`)
@@ -198,7 +198,7 @@ describe('recycler', function () {
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor + cell2Height))
assert.isOk(isApproximate(rect.width, 357 * scaleFactor))
})
- .elementByXPath(cell4Path)
+ .elementById('cell3')
.getRect()
.then((rect)=>{
console.log(`cell 4 rect after changing column gap to normal:${JSON.stringify(rect)}`)
@@ -206,15 +206,15 @@ describe('recycler', function () {
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor + cell1Height))
assert.isOk(isApproximate(rect.width, 357 * scaleFactor))
})
- .elementByXPath(cell2Path)
+ .elementById('cell1')
.click()
})
it('#4 test column width', () => {
return driver
- .elementByXPath(cell1Path)
+ .elementById('cell0')
.click()
- .elementByXPath(cell1Path)
+ .elementById('cell0')
.getRect()
.then((rect)=>{
console.log(`cell 1 rect after changing column width to 600:${JSON.stringify(rect)}`)
@@ -223,7 +223,7 @@ describe('recycler', function () {
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor))
assert.isOk(isApproximate(rect.width, recyclerWidth))
})
- .elementByXPath(cell2Path)
+ .elementById('cell1')
.getRect()
.then((rect)=>{
console.log(`cell 2 rect after changing column width to 600:${JSON.stringify(rect)}`)
@@ -232,15 +232,15 @@ describe('recycler', function () {
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor + cell1Height))
assert.isOk(isApproximate(rect.width, recyclerWidth))
})
- .elementByXPath(cell1Path)
+ .elementById('cell0')
.click()
})
it('#5 test deleting header', () => {
return driver
- .elementByXPath(header2Path)
+ .elementById('header2')
.click()
- .elementByXPath(header1Path)
+ .elementById('header1')
.getRect()
.then((rect)=>{
console.log(`header 2 rect after deleting header 1:${JSON.stringify(rect)}`)
@@ -248,16 +248,16 @@ describe('recycler', function () {
assert.isOk(isApproximate(rect.y, navBarHeight))
assert.isOk(isApproximate(rect.width, recyclerWidth))
})
- .elementByXPath(header2Path)
+ .elementById('header2')
.click()
})
it('#6 test footer', () => {
return driver
- .elementByXPath(fixedPath)
+ .elementById('fixed1')
.click()
.sleep(500)
- .elementByXPath(footerPath)
+ .elementById('footer1')
.getRect()
.then((rect)=>{
console.log(`footer rect:${JSON.stringify(rect)}`)
@@ -269,8 +269,8 @@ describe('recycler', function () {
})
it('#7 test sticky and fixed', () => {
- return driver
- .elementByXPath(fixedPath)
+ return driver
+ .elementById('fixed1')
.getRect()
.then((rect)=>{
console.log(`fixed rect:${JSON.stringify(rect)}`)
@@ -279,7 +279,7 @@ describe('recycler', function () {
assert.isOk(isApproximate(rect.width, 78 * scaleFactor))
assert.isOk(isApproximate(rect.height, 78 * scaleFactor))
})
- .elementByXPath(header2Path)
+ .elementById('header2')
.getRect()
.then((rect)=>{
console.log(`sticky header rect:${JSON.stringify(rect)}`)
@@ -292,9 +292,9 @@ describe('recycler', function () {
it('#8 test removing cell', () => {
return driver
- .elementByXPath(cell29Path)
+ .elementById('cell28')
.click()
- .elementByXPath(cell28Path)
+ .elementById('cell27')
.getRect()
.then((rect)=>{
console.log(`cell 28 rect after removing cell 29:${JSON.stringify(rect)}`)
@@ -306,11 +306,11 @@ describe('recycler', function () {
it('#9 test moving cell', () => {
return driver
- .elementByXPath(cell29Path)
+ .elementById('cell28')
.click()
- .elementByXPath(fixedPath)
+ .elementById('fixed1')
.click()
- .elementByXPath(cell29Path)
+ .elementById('cell28')
.getRect()
.then((rect)=>{
console.log(`cell 28 rect after moving cell 29 to 1:${JSON.stringify(rect)}`)
@@ -322,11 +322,11 @@ describe('recycler', function () {
it('#10 test recycler padding', () => {
return driver
- .elementByXPath(cell28Path)
+ .elementById('cell27')
.click()
- .elementByXPath(fixedPath)
+ .elementById('fixed1')
.click()
- .elementByXPath(header2Path)
+ .elementById('header2')
.getRect()
.then((rect)=>{
console.log(`sticking header rect after setting padding to 12:${JSON.stringify(rect)}`)
@@ -335,7 +335,7 @@ describe('recycler', function () {
assert.isOk(isApproximate(rect.width, recyclerWidth - 24 * scaleFactor))
assert.isOk(isApproximate(rect.height, 94 * scaleFactor))
})
- .elementByXPath(footerPath)
+ .elementById('footer1')
.getRect()
.then((rect)=>{
console.log(`footer rect after setting padding to 12:${JSON.stringify(rect)}`)
@@ -344,30 +344,30 @@ describe('recycler', function () {
assert.isOk(isApproximate(rect.width, recyclerWidth - 24 * scaleFactor))
assert.isOk(isApproximate(rect.height, 94 * scaleFactor))
})
- .elementByXPath(cell28Path)
+ .elementById('cell27')
.getRect()
.then((rect)=>{
console.log(`cell 28 rect after setting padding to 12:${JSON.stringify(rect)}`)
assert.isOk(isApproximate(rect.x, 12 * scaleFactor))
assert.isOk(isApproximate(rect.width, 357 * scaleFactor))
})
- .elementByXPath(cell29Path)
+ .elementById('cell28')
.getRect()
.then((rect)=>{
console.log(`cell 29 rect after setting padding to 12:${JSON.stringify(rect)}`)
assert.isOk(isApproximate(rect.x, 381 * scaleFactor))
assert.isOk(isApproximate(rect.width, 357 * scaleFactor))
})
- .elementByXPath(cell28Path)
+ .elementById('cell27')
.click()
})
it('#11 test onscroll', () => {
let originContentOffset = 0
return driver
- .elementByXPath(cell29Path)
+ .elementById('cell28')
.click()
- .elementByXPath(header2Path + '/div[1]/div[1]/text[1]')
+ .elementById('stickyText1')
.text()
.then(text => {
console.log(text)
@@ -376,30 +376,30 @@ describe('recycler', function () {
.touch('drag', {fromX:recyclerWidth / 2, fromY:screenHeight / 5, toX:recyclerWidth / 2, toY: screenHeight * 4 / 5})
.sleep(1000)
.touch('drag', {fromX:recyclerWidth / 2, fromY:screenHeight / 5, toX:recyclerWidth / 2, toY: screenHeight * 4 / 5})
- .elementByXPath(header2Path + '/div[1]/div[1]/text[1]')
+ .elementById('stickyText1')
.text()
.then(text => {
console.log(text)
const contentOffset = Number.parseInt(text.replace('Content Offset:-',''))
assert.isOk(originContentOffset - contentOffset > screenHeight / scaleFactor)
})
- .elementByXPath(fixedPath)
+ .elementById('fixed1')
.click()
})
it('#12 test scrollable', () => {
let originContentOffset = 0
return driver
- .elementByXPath(cell27Path)
+ .elementById('cell26')
.click()
- .elementByXPath(header2Path + '/div[1]/div[1]/text[1]')
+ .elementById('stickyText1')
.text()
.then(text => {
console.log(text)
originContentOffset = Number.parseInt(text.replace('Content Offset:-',''))
})
.touch('drag', {fromX:recyclerWidth / 2, fromY:screenHeight / 5, toX:recyclerWidth / 2, toY: screenHeight * 4 / 5})
- .elementByXPath(header2Path + '/div[1]/div[1]/text[1]')
+ .elementById('stickyText1')
.text()
.then(text => {
console.log(text)
[08/10] incubator-weex git commit: Merge branch
'0.12-dev-recycler-tc' into 0.12-dev
Posted by zs...@apache.org.
Merge branch '0.12-dev-recycler-tc' into 0.12-dev
* 0.12-dev-recycler-tc: (209 commits)
* [tc] recycler tc
* [android] fix NPE in move fixed view
* [doc] add scrollToElement animation support
* [jsfm] fix function markupState
* [example] fix banner
* [jsfm] v0.20.2
* [jsfm] update jsfm version to 0.19.17 for fixed Vue leak
* [jsfm] v0.19.17
* [jsfm] update weex-vue-framework to 2.2.1-weex.2 && destroy runtime document
* [android] fix setSize when defaultHeight is use screen height
* [jsfm] update vue framework to 2.2.2-weex.1
* [test] Closes #141: invalid/pullrequest
* [test] Closes #141: invalid/pullrequest
* [test] fix CI
* [android] update imageView
* [android] avoid remove-readd view when fixed component view already moved
* [android] avoid remove-readd view when fixed component view already moved
* [html5] clear log.
+ [ios] change to color
* [ios] fix box shadow shadowColor get method circularly called
...
# Conflicts:
# test/scripts/components/recycler.test.js
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/53b61da6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/53b61da6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/53b61da6
Branch: refs/heads/0.12-dev
Commit: 53b61da6ac1610fe3153d147c67114cd70d478fc
Parents: 5445c92 db99d41
Author: zshshr <zh...@gmail.com>
Authored: Thu Apr 6 19:23:40 2017 +0800
Committer: zshshr <zh...@gmail.com>
Committed: Thu Apr 6 19:23:40 2017 +0800
----------------------------------------------------------------------
.eslintrc | 16 +-
.flowconfig | 16 +
README.md | 50 +-
android/commons/build.gradle | 3 +-
.../weex/commons/AbstractWeexActivity.java | 24 +
android/playground/app/build.gradle | 3 +-
.../playground/app/src/main/assets/animation.js | 11 +-
.../app/src/main/assets/component/a-demo.js | 11 +-
.../src/main/assets/component/countdown-demo.js | 11 +-
.../app/src/main/assets/component/image-demo.js | 11 +-
.../app/src/main/assets/component/input-demo.js | 11 +-
.../main/assets/component/list/list-basic.js | 8 +
.../assets/component/list/list-demo-horizon.js | 8 +
.../src/main/assets/component/list/list-demo.js | 8 +
.../src/main/assets/component/marquee-demo.js | 11 +-
.../src/main/assets/component/navigator-demo.js | 15 +-
.../main/assets/component/process-bar-demo.js | 11 +-
.../src/main/assets/component/scroller-demo.js | 11 +-
.../slider-neighbor/slider-neighbor-item.js | 8 +
.../slider-neighbor/slider-neighbor-page.js | 8 +
.../src/main/assets/component/slider/index.js | 11 +-
.../main/assets/component/slider/slider-item.js | 8 +
.../main/assets/component/slider/slider-page.js | 8 +
.../main/assets/component/tabbar/tabbar-demo.js | 15 +-
.../main/assets/component/tabbar/tabbar-item.js | 8 +
.../app/src/main/assets/component/text-demo.js | 11 +-
.../app/src/main/assets/component/video-demo.js | 11 +-
.../app/src/main/assets/component/web-demo.js | 11 +-
android/playground/app/src/main/assets/hello.js | 8 +
.../playground/app/src/main/assets/iconfont.js | 8 +
.../app/src/main/assets/module/clipboard.js | 11 +-
.../java/com/alibaba/weex/IndexActivity.java | 6 +
.../src/main/java/com/alibaba/weex/Utility.java | 277 +
.../java/com/alibaba/weex/WXApplication.java | 4 +
.../java/com/alibaba/weex/WXPageActivity.java | 58 +
.../extend/WXInstanceStatisticsListener.java | 268 +
.../app/src/main/res/layout/id_stub.xml | 57 +
android/sdk/assets/main.js | 14 +-
android/sdk/build.gradle | 2 +
android/sdk/libs/armeabi/libweexv8.so | Bin 3583820 -> 3563544 bytes
android/sdk/libs/x86/libweexv8.so | Bin 4336768 -> 4545544 bytes
.../com/taobao/weex/IWXStatisticsListener.java | 252 +
.../main/java/com/taobao/weex/InitConfig.java | 14 +
.../java/com/taobao/weex/WXEnvironment.java | 18 +
.../main/java/com/taobao/weex/WXSDKEngine.java | 5 +-
.../java/com/taobao/weex/WXSDKInstance.java | 86 +-
.../main/java/com/taobao/weex/WXSDKManager.java | 79 +-
.../taobao/weex/adapter/IWXSoLoaderAdapter.java | 236 +
.../java/com/taobao/weex/bridge/WXBridge.java | 6 +
.../com/taobao/weex/bridge/WXBridgeManager.java | 59 +-
.../java/com/taobao/weex/bridge/WXParams.java | 13 +
.../java/com/taobao/weex/common/Constants.java | 8 +
.../java/com/taobao/weex/common/IWXBridge.java | 7 +
.../taobao/weex/common/WXJSBridgeMsgType.java | 1 +
.../taobao/weex/ui/IExternalMoudleGetter.java | 215 +
.../taobao/weex/ui/component/WXComponent.java | 7 +-
.../com/taobao/weex/ui/component/WXImage.java | 6 +
.../java/com/taobao/weex/utils/OsVersion.java | 233 +
.../main/java/com/taobao/weex/utils/Trace.java | 301 +
.../taobao/weex/utils/WXSoInstallMgrSdk.java | 51 +-
.../java/com/taobao/weex/utils/WXUtils.java | 84 +-
.../taobao/weex/bridge/WXWebsocketBridge.java | 3 +
bin/dist-vue.sh | 42 +
build/build.js | 2 +
build/config.js | 13 +-
build/examples-banner-plugin.js | 65 +
build/karma.vue.conf.js | 69 +-
build/webpack.examples.config.js | 1 +
build/webpack.examples.web.config.js | 24 +-
dangerfile.js | 30 +
doc/source/cn/references/modules/dom.md | 3 +-
doc/source/references/modules/dom.md | 3 +-
examples/module/componentRect.we | 4 +-
examples/vue/animation.vue | 4 +-
examples/vue/components/countdown.vue | 2 +-
examples/vue/components/image.vue | 2 +-
examples/vue/components/list.vue | 19 +-
examples/vue/components/marquee.vue | 3 +-
examples/vue/components/navigator.vue | 7 +-
examples/vue/components/scroller.vue | 34 +-
examples/vue/components/slider.vue | 22 +-
examples/vue/components/text.vue | 2 +-
examples/vue/components/textarea.vue | 57 +
examples/vue/components/video.vue | 2 +-
examples/vue/components/web.vue | 2 +-
examples/vue/iconfont.vue | 2 +-
examples/vue/include/base-url.js | 4 +-
examples/vue/include/button.vue | 2 +-
examples/vue/include/countdown.vue | 2 +-
examples/vue/include/example-list-item.vue | 2 +-
examples/vue/include/example-list.vue | 2 +-
examples/vue/include/h1.vue | 2 +-
examples/vue/include/h2.vue | 2 +-
examples/vue/include/h3.vue | 2 +-
examples/vue/include/hn.vue | 2 +-
examples/vue/include/list-item.vue | 2 +-
examples/vue/include/marquee.vue | 4 +-
examples/vue/include/navbar.vue | 2 +-
examples/vue/include/navpage.vue | 2 +-
examples/vue/include/panel.vue | 10 +-
examples/vue/include/slider-item.vue | 2 +-
examples/vue/include/slider-page.vue | 5 +-
examples/vue/include/tabbar.vue | 6 +-
examples/vue/include/tabitem.vue | 2 +-
examples/vue/include/tip.vue | 2 +-
examples/vue/include/wxc-list-item.vue | 2 +-
examples/vue/modules/stream.vue | 2 +-
examples/vue/showcase/calculator.vue | 2 +-
examples/vue/showcase/include/banners.vue | 4 +-
examples/vue/showcase/include/brand.vue | 2 +-
examples/vue/showcase/include/category.vue | 8 +-
examples/vue/showcase/include/coupon.vue | 2 +-
examples/vue/showcase/include/goods.vue | 4 +-
examples/vue/showcase/include/headlines.vue | 2 +-
examples/vue/showcase/include/match.vue | 4 +-
examples/vue/showcase/include/resource.vue | 2 +-
examples/vue/showcase/include/scene.vue | 4 +-
examples/vue/showcase/itemlist.vue | 246 +-
examples/vue/showcase/new-fashion.vue | 2 +-
examples/vue/style/index.vue | 2 +-
examples/vue/style/style-box.vue | 2 +-
examples/vue/style/style-flex.vue | 2 +-
examples/vue/style/style-item.vue | 2 +-
examples/vue/syntax/hello-world-3.vue | 4 +-
examples/vue/syntax/hello-world-4.vue | 4 +-
examples/vue/syntax/hello-world-5.vue | 4 +-
examples/vue/syntax/hello-world.vue | 4 +-
examples/vue/syntax/include/btn.vue | 2 +-
examples/vue/syntax/include/sub.vue | 2 +-
examples/vue/syntax/script-component.vue | 2 +-
examples/vue/syntax/script-data.vue | 2 +-
examples/vue/syntax/script-events.vue | 4 +-
examples/vue/syntax/script-instance.vue | 2 +-
examples/vue/syntax/script-lifecycle.vue | 4 +-
examples/vue/syntax/script-module.vue | 2 +-
examples/vue/syntax/script-options.vue | 2 +-
examples/vue/syntax/template-class.vue | 2 +-
examples/vue/syntax/template-event.vue | 2 +-
examples/vue/syntax/template-if.vue | 2 +-
examples/vue/syntax/template-repeat-update.vue | 2 +-
examples/vue/syntax/template-repeat.vue | 8 +-
flow-typed/npm/animationjs_vx.x.x.js | 60 +
flow-typed/npm/babel-core_vx.x.x.js | 227 +
flow-typed/npm/babel-eslint_vx.x.x.js | 73 +
flow-typed/npm/babel-istanbul_vx.x.x.js | 353 +
flow-typed/npm/babel-loader_vx.x.x.js | 67 +
flow-typed/npm/babel-plugin-coverage_vx.x.x.js | 32 +
flow-typed/npm/babel-preset-es2015_vx.x.x.js | 32 +
flow-typed/npm/babel-runtime_vx.x.x.js | 1691 ++++
flow-typed/npm/chai_v3.5.x.js | 212 +
flow-typed/npm/chromedriver_vx.x.x.js | 46 +
flow-typed/npm/core-js_vx.x.x.js | 9390 ++++++++++++++++++
flow-typed/npm/cross-spawn_vx.x.x.js | 59 +
flow-typed/npm/css-loader_vx.x.x.js | 87 +
flow-typed/npm/cubicbezier_vx.x.x.js | 109 +
flow-typed/npm/danger_vx.x.x.js | 284 +
flow-typed/npm/envd_vx.x.x.js | 109 +
flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js | 319 +
flow-typed/npm/eslint_vx.x.x.js | 1978 ++++
flow-typed/npm/flow-bin_v0.x.x.js | 6 +
flow-typed/npm/fs-extra_vx.x.x.js | 221 +
flow-typed/npm/http-server_vx.x.x.js | 39 +
flow-typed/npm/httpurl_vx.x.x.js | 67 +
flow-typed/npm/inline-style-prefixer_vx.x.x.js | 347 +
flow-typed/npm/json-loader_vx.x.x.js | 33 +
flow-typed/npm/karma-coverage_vx.x.x.js | 81 +
flow-typed/npm/karma-mocha-reporter_vx.x.x.js | 38 +
flow-typed/npm/karma-mocha_vx.x.x.js | 53 +
.../npm/karma-phantomjs-launcher_vx.x.x.js | 59 +
flow-typed/npm/karma-sourcemap-loader_vx.x.x.js | 33 +
flow-typed/npm/karma-webpack_vx.x.x.js | 45 +
flow-typed/npm/karma_vx.x.x.js | 445 +
flow-typed/npm/lazyimg_vx.x.x.js | 32 +
flow-typed/npm/macaca-cli_vx.x.x.js | 123 +
flow-typed/npm/macaca-utils_vx.x.x.js | 39 +
flow-typed/npm/mocha_v2.4.x.js | 25 +
flow-typed/npm/modals_vx.x.x.js | 81 +
flow-typed/npm/nightwatch_vx.x.x.js | 633 ++
flow-typed/npm/phantomjs-prebuilt_vx.x.x.js | 389 +
flow-typed/npm/query-string_vx.x.x.js | 33 +
flow-typed/npm/reify_vx.x.x.js | 95 +
flow-typed/npm/rollup-plugin-buble_vx.x.x.js | 39 +
flow-typed/npm/rollup-plugin-commonjs_vx.x.x.js | 81 +
flow-typed/npm/rollup-plugin-eslint_vx.x.x.js | 39 +
.../rollup-plugin-flow-no-whitespace_vx.x.x.js | 33 +
flow-typed/npm/rollup-plugin-flow_vx.x.x.js | 33 +
flow-typed/npm/rollup-plugin-json_vx.x.x.js | 46 +
.../npm/rollup-plugin-node-resolve_vx.x.x.js | 53 +
flow-typed/npm/rollup-plugin-postcss_vx.x.x.js | 38 +
flow-typed/npm/rollup-plugin-replace_vx.x.x.js | 46 +
flow-typed/npm/rollup-plugin-uglify_vx.x.x.js | 32 +
flow-typed/npm/rollup-watch_vx.x.x.js | 67 +
flow-typed/npm/rollup_vx.x.x.js | 46 +
flow-typed/npm/scroll-to_vx.x.x.js | 33 +
flow-typed/npm/selenium-server_vx.x.x.js | 39 +
flow-typed/npm/semver_v5.1.x.js | 81 +
flow-typed/npm/serve_vx.x.x.js | 18 +
flow-typed/npm/sinon-chai_vx.x.x.js | 32 +
flow-typed/npm/sinon_vx.x.x.js | 263 +
flow-typed/npm/uglify-js_vx.x.x.js | 116 +
flow-typed/npm/vue-loader_vx.x.x.js | 122 +
flow-typed/npm/vue-template-compiler_vx.x.x.js | 38 +
flow-typed/npm/vue_vx.x.x.js | 1089 ++
flow-typed/npm/webdriver-client_vx.x.x.js | 129 +
flow-typed/npm/webpack_vx.x.x.js | 1523 +++
flow-typed/npm/weex-components_vx.x.x.js | 33 +
flow-typed/npm/weex-loader_vx.x.x.js | 108 +
flow-typed/npm/weex-picker_vx.x.x.js | 81 +
flow-typed/npm/weex-rax-framework_vx.x.x.js | 165 +
flow-typed/npm/weex-styler_vx.x.x.js | 66 +
flow-typed/npm/weex-vdom-tester_vx.x.x.js | 108 +
flow-typed/npm/weex-vue-framework_vx.x.x.js | 33 +
flow-typed/npm/weex-wd_vx.x.x.js | 38 +
flow-typed/npm/wwp_vx.x.x.js | 39 +
flow-typed/npm/xml2map_vx.x.x.js | 45 +
html5/frameworks/legacy/app/ctrl/init.js | 55 +-
html5/frameworks/legacy/static/create.js | 5 +-
html5/frameworks/legacy/static/life.js | 19 +
html5/render/browser/extend/api/stream.js | 2 +-
html5/render/browser/extend/components/input.js | 33 +
.../browser/extend/components/textarea.js | 32 +
html5/render/browser/utils/index.js | 9 +
html5/render/vue/README.md | 51 +-
html5/render/vue/components/a.js | 18 +-
html5/render/vue/components/div.js | 25 +-
html5/render/vue/components/image.js | 81 +-
html5/render/vue/components/index.js | 9 +-
html5/render/vue/components/input.js | 31 +-
.../render/vue/components/scrollable/header.js | 40 +-
.../vue/components/scrollable/list/cell.js | 15 +-
.../vue/components/scrollable/list/index.js | 32 +-
.../vue/components/scrollable/list/listMixin.js | 118 +-
.../components/scrollable/loading-indicator.js | 3 +-
.../render/vue/components/scrollable/loading.js | 55 +-
.../render/vue/components/scrollable/refresh.js | 64 +-
.../vue/components/scrollable/scroller.js | 30 +-
.../render/vue/components/scrollable/shared.js | 22 -
html5/render/vue/components/slider/index.js | 40 +-
html5/render/vue/components/slider/indicator.js | 115 +-
.../render/vue/components/slider/slideMixin.js | 141 +-
html5/render/vue/components/switch.js | 11 +-
html5/render/vue/components/text.js | 45 +-
html5/render/vue/components/textarea.js | 29 +-
html5/render/vue/components/video.js | 14 +-
html5/render/vue/components/web.js | 19 +-
html5/render/vue/env/WXEnvironment.js | 39 -
html5/render/vue/env/index.js | 17 +-
html5/render/vue/env/viewport.js | 56 +-
html5/render/vue/env/weex.js | 30 +-
html5/render/vue/env/wx-env.js | 48 +
html5/render/vue/index.js | 64 +-
html5/render/vue/mixins/base.js | 110 +-
html5/render/vue/mixins/event.js | 76 -
html5/render/vue/mixins/index.js | 8 +-
html5/render/vue/mixins/input-common.js | 47 +
html5/render/vue/mixins/scrollable.js | 110 +
html5/render/vue/mixins/style.js | 265 +-
html5/render/vue/modules/dom.js | 69 +-
html5/render/vue/modules/index.js | 42 +-
html5/render/vue/styles/components.css | 225 +-
html5/render/vue/styles/reset.css | 44 +-
html5/render/vue/utils/component.js | 83 +-
html5/render/vue/utils/event.js | 91 +-
html5/render/vue/utils/func.js | 81 +-
html5/render/vue/utils/index.js | 55 +-
html5/render/vue/utils/lazyload.js | 102 +
html5/render/vue/utils/perf.js | 170 +
html5/render/vue/utils/style.js | 21 +
html5/render/vue/utils/type.js | 20 +
html5/test/render/index.js | 3 -
html5/test/render/vue/components/a.js | 38 +
html5/test/render/vue/components/div.js | 29 +
html5/test/render/vue/components/image.js | 44 +-
html5/test/render/vue/components/list.js | 21 +-
html5/test/render/vue/components/switch.js | 35 +-
html5/test/render/vue/components/text.js | 42 +-
html5/test/render/vue/components/web.js | 14 +-
html5/test/render/vue/examples/list-cell.js | 16 +-
html5/test/render/vue/helper.js | 157 +-
html5/test/render/vue/utils.js | 1 -
html5/test/render/vue/validator/check.js | 1 -
html5/test/render/vue/validator/index.js | 1 -
html5/test/render/vue/validator/prop.js | 1 -
html5/test/render/vue/validator/style.js | 1 -
index.html | 3 +-
ios/sdk/WeexSDK.xcodeproj/project.pbxproj | 8 -
ios/sdk/WeexSDK/Resources/main.js | 14 +-
.../Recycler/WXRecyclerDataController.m | 2 +-
.../Component/WXComponent+GradientColor.h | 21 -
.../Component/WXComponent+GradientColor.m | 124 -
.../Sources/Component/WXComponent_internal.h | 3 +
.../Sources/Display/WXComponent+BoxShadow.h | 2 +-
.../Sources/Display/WXComponent+BoxShadow.m | 10 +-
ios/sdk/WeexSDK/Sources/Display/WXInnerLayer.h | 2 +-
ios/sdk/WeexSDK/Sources/Display/WXInnerLayer.m | 4 +-
.../WeexSDK/Sources/Layout/WXComponent+Layout.m | 3 +-
.../Sources/Manager/WXComponentManager.m | 4 +-
ios/sdk/WeexSDK/Sources/Model/WXComponent.m | 29 +-
ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.h | 2 +-
ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.m | 21 +-
ios/sdk/WeexSDK/Sources/Utility/WXUtility.h | 27 +
ios/sdk/WeexSDK/Sources/Utility/WXUtility.m | 101 +
.../Sources/View/WXComponent+ViewManagement.m | 1 -
ios/sdk/WeexSDK/Sources/WeexSDK.h | 1 +
package.json | 33 +-
packages/weex-vue-render/README.md | 51 +-
packages/weex-vue-render/package.json | 13 +-
test/ci-funcs.sh | 3 +
test/pages/components/recycler.vue | 39 +-
test/pages/image-onload.vue | 2 +-
test/pages/index.vue | 10 +-
test/scripts/components/recycler.test.js | 134 +-
test/scripts/index.test.js | 14 +-
vue.html | 53 +-
314 files changed, 28744 insertions(+), 1781 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/53b61da6/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/53b61da6/test/scripts/components/recycler.test.js
----------------------------------------------------------------------
diff --cc test/scripts/components/recycler.test.js
index bbf20a8,6bc67ed..ba75fa8
--- a/test/scripts/components/recycler.test.js
+++ b/test/scripts/components/recycler.test.js
@@@ -11,35 -11,36 +11,37 @@@ var util = require("../util.js")
const platform = process.env.platform.toLowerCase() || 'android';
const isAndroid = platform === 'android';
- const fixedPath = '//div[1]'
- const header1Path = '//recycler[1]/div[1]/'
- const header2Path = '//recycler[1]/div[2]/'
- const cell1Path = isAndroid ? '//recycler[1]/div[3]/' : '//recycler[1]/cell[1]/'
- const cell2Path = isAndroid ? '//recycler[1]/div[4]/' : '//recycler[1]/cell[2]/'
- const cell3Path = isAndroid ? '//recycler[1]/div[5]/' : '//recycler[1]/cell[3]/'
- const cell4Path = isAndroid ? '//recycler[1]/div[6]/' : '//recycler[1]/cell[4]/'
- const cell27Path = isAndroid ? '//recycler[1]/div[29]/' : '//recycler[1]/cell[27]/'
- const cell28Path = isAndroid ? '//recycler[1]/div[30]/' : '//recycler[1]/cell[28]/'
- const cell29Path = isAndroid ? '//recycler[1]/div[31]/' : '//recycler[1]/cell[29]/'
- const cell30Path = isAndroid ? '//recycler[1]/div[32]/' : '//recycler[1]/cell[30]/'
- const footerPath = '//recycler[1]/div[1]'
+ // const fixedPath = '//div[1]'
+ // const header1Path = '//recycler[1]/div[1]/'
+ // const header2Path = '//recycler[1]/div[2]/'
+ // const cell1Path = isAndroid ? '//recycler[1]/div[3]/' : '//recycler[1]/cell[1]/'
+ // const cell2Path = isAndroid ? '//recycler[1]/div[4]/' : '//recycler[1]/cell[2]/'
+ // const cell3Path = isAndroid ? '//recycler[1]/div[5]/' : '//recycler[1]/cell[3]/'
+ // const cell4Path = isAndroid ? '//recycler[1]/div[6]/' : '//recycler[1]/cell[4]/'
+ // const cell27Path = isAndroid ? '//recycler[1]/div[29]/' : '//recycler[1]/cell[27]/'
+ // const cell28Path = isAndroid ? '//recycler[1]/div[30]/' : '//recycler[1]/cell[28]/'
+ // const cell29Path = isAndroid ? '//recycler[1]/div[31]/' : '//recycler[1]/cell[29]/'
+ // const cell30Path = isAndroid ? '//recycler[1]/div[32]/' : '//recycler[1]/cell[30]/'
+ // const footerPath = '//recycler[1]/div[1]'
const isApproximate = (x, y) => {
- return Math.abs(x - y) <= 1
+ return Math.abs(x - y) <= isAndroid ? 1 : 0.5
}
- if (isAndroid) {
- return;
- }
+ // if (isAndroid) {
+ // return;
+ // }
describe('recycler', function () {
this.timeout(util.getTimeoutMills())
const driver = util.createDriver(wd)
before(function () {
++
+ console.log(util.getPage('/components/recycler.js'))
return util.init(driver)
.get(util.getPage('/components/recycler.js'))
- .waitForElementByXPath('//recycler[1]',util.getGETActionWaitTimeMills(),1000)
+ .waitForElementById('waterfall',util.getGETActionWaitTimeMills(),1000)
});
after(function () {
@@@ -178,34 -179,34 +180,34 @@@
cell1Height = rect.height
assert.isOk(isApproximate(rect.x, 0))
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor))
- assert.isOk(isApproximate(rect.width, 357 * scaleFactor))
+ assert.isOk(isApproximate(rect.width, 359 * scaleFactor))
})
- .elementByXPath(cell2Path)
+ .elementById('cell1')
.getRect()
.then((rect)=>{
console.log(`cell 2 rect after changing column gap to normal:${JSON.stringify(rect)}`)
cell2Height = rect.height
- assert.isOk(isApproximate(rect.x, 393 * scaleFactor))
+ assert.isOk(isApproximate(rect.x, 391 * scaleFactor))
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor))
- assert.isOk(isApproximate(rect.width, 357 * scaleFactor))
+ assert.isOk(isApproximate(rect.width, 359 * scaleFactor))
})
- .elementByXPath(cell3Path)
+ .elementById('cell2')
.getRect()
.then((rect)=>{
console.log(`cell 3 rect after changing column gap to normal:${JSON.stringify(rect)}`)
- assert.isOk(isApproximate(rect.x, 393 * scaleFactor))
+ assert.isOk(isApproximate(rect.x, 391 * scaleFactor))
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor + cell2Height))
- assert.isOk(isApproximate(rect.width, 357 * scaleFactor))
+ assert.isOk(isApproximate(rect.width, 359 * scaleFactor))
})
- .elementByXPath(cell4Path)
+ .elementById('cell3')
.getRect()
.then((rect)=>{
console.log(`cell 4 rect after changing column gap to normal:${JSON.stringify(rect)}`)
assert.isOk(isApproximate(rect.x, 0))
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor + cell1Height))
- assert.isOk(isApproximate(rect.width, 357 * scaleFactor))
+ assert.isOk(isApproximate(rect.width, 359 * scaleFactor))
})
- .elementByXPath(cell2Path)
+ .elementById('cell1')
.click()
})
[02/10] incubator-weex git commit: Merge branch '0.12-dev' into
0.12-dev
Posted by zs...@apache.org.
Merge branch '0.12-dev' into 0.12-dev
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/44feea0e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/44feea0e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/44feea0e
Branch: refs/heads/0.12-dev
Commit: 44feea0e10602bbfb286f447e6f6b0796c50f7b8
Parents: 8d2411e d073636
Author: \u9690\u5c0f\u98ce <cx...@gmail.com>
Authored: Mon Mar 27 15:43:11 2017 +0800
Committer: GitHub <no...@github.com>
Committed: Mon Mar 27 15:43:11 2017 +0800
----------------------------------------------------------------------
.../app/src/main/assets/component/image-demo.js | 2 +-
.../assets/component/slider-neighbor/index.js | 264 ++
.../slider-neighbor/silder-neighbor.js | 287 --
.../src/main/assets/component/slider/index.js | 33 +
.../app/src/main/assets/component/text-demo.js | 108 +
.../app/src/main/assets/component/web-demo.js | 1 -
android/playground/app/src/main/assets/error.js | 2217 ++++++++++++
.../app/src/main/assets/geolocation.js | 183 +
.../app/src/main/assets/hello_weex.js | 28 -
android/playground/app/src/main/assets/index.js | 2 +-
.../app/src/main/assets/linear-gradient.js | 367 ++
.../app/src/main/assets/module/clipboard.js | 27 +-
.../app/src/main/assets/module/componentRect.js | 107 +-
.../app/src/main/assets/module/instance-api.js | 14 +-
.../app/src/main/assets/module/modal.js | 18 +-
.../app/src/main/assets/module/picker-demo.js | 18 +-
.../app/src/main/assets/module/storage-demo.js | 14 +-
.../app/src/main/assets/module/stream-demo.js | 18 +-
.../src/main/assets/module/websocket-demo.js | 2412 +++++++++++++
.../app/src/main/assets/showcase/calculator.js | 21 +-
.../assets/showcase/dropdown/dropdown-demo.js | 30 +-
.../assets/showcase/dropdown/we-dropdown.js | 12 +-
.../app/src/main/assets/showcase/minesweeper.js | 12 +-
.../main/assets/showcase/new-fashion/banner.js | 8 +-
.../main/assets/showcase/new-fashion/banners.js | 20 +-
.../main/assets/showcase/new-fashion/brand.js | 36 +-
.../assets/showcase/new-fashion/category.js | 24 +-
.../main/assets/showcase/new-fashion/coupon.js | 12 +-
.../main/assets/showcase/new-fashion/fashion.js | 38 +-
.../main/assets/showcase/new-fashion/goods.js | 24 +-
.../assets/showcase/new-fashion/headlines.js | 48 +-
.../main/assets/showcase/new-fashion/index.js | 21 +-
.../main/assets/showcase/new-fashion/link.js | 8 +-
.../main/assets/showcase/new-fashion/main.js | 209 +-
.../main/assets/showcase/new-fashion/match.js | 24 +-
.../assets/showcase/new-fashion/resource.js | 38 +-
.../main/assets/showcase/new-fashion/scene.js | 24 +-
.../src/main/assets/showcase/pseudo-class.js | 2425 +++++++++++++
.../app/src/main/assets/showcase/ui.js | 24 +-
.../app/src/main/assets/style/index.js | 76 +-
.../app/src/main/assets/style/style-box.js | 40 +-
.../app/src/main/assets/style/style-flex.js | 48 +-
.../app/src/main/assets/style/style-item.js | 12 +-
.../app/src/main/assets/syntax/hello-world-1.js | 4 +-
.../app/src/main/assets/syntax/hello-world-2.js | 6 +-
.../app/src/main/assets/syntax/hello-world-3.js | 10 +-
.../app/src/main/assets/syntax/hello-world-4.js | 14 +-
.../app/src/main/assets/syntax/hello-world-5.js | 14 +-
.../app/src/main/assets/syntax/hello-world.js | 14 +-
.../app/src/main/assets/syntax/index.js | 20 +-
.../src/main/assets/syntax/script-component.js | 24 +-
.../app/src/main/assets/syntax/script-data.js | 12 +-
.../app/src/main/assets/syntax/script-events.js | 12 +-
.../src/main/assets/syntax/script-instance.js | 12 +-
.../src/main/assets/syntax/script-lifecycle.js | 12 +-
.../app/src/main/assets/syntax/script-module.js | 12 +-
.../src/main/assets/syntax/script-options.js | 12 +-
.../src/main/assets/syntax/template-class.js | 12 +-
.../src/main/assets/syntax/template-content.js | 20 +-
.../src/main/assets/syntax/template-event.js | 12 +-
.../app/src/main/assets/syntax/template-if.js | 12 +-
.../assets/syntax/template-repeat-update.js | 12 +-
.../src/main/assets/syntax/template-repeat.js | 12 +-
.../src/main/assets/syntax/template-style.js | 8 +-
.../playground/app/src/main/assets/template.js | 12 +-
android/playground/app/src/main/assets/test.js | 128 +
.../app/src/main/assets/vue/animation.js | 709 ++++
.../app/src/main/assets/vue/components/a.js | 438 +++
.../src/main/assets/vue/components/countdown.js | 640 ++++
.../app/src/main/assets/vue/components/image.js | 641 ++++
.../app/src/main/assets/vue/components/input.js | 364 ++
.../app/src/main/assets/vue/components/list.js | 246 ++
.../src/main/assets/vue/components/marquee.js | 534 +++
.../src/main/assets/vue/components/navigator.js | 1059 ++++++
.../src/main/assets/vue/components/scroller.js | 304 ++
.../src/main/assets/vue/components/slider.js | 898 +++++
.../src/main/assets/vue/components/tabbar.js | 599 ++++
.../app/src/main/assets/vue/components/text.js | 513 +++
.../app/src/main/assets/vue/components/video.js | 396 +++
.../app/src/main/assets/vue/components/web.js | 459 +++
.../playground/app/src/main/assets/vue/hello.js | 99 +
.../app/src/main/assets/vue/iconfont.js | 204 ++
.../playground/app/src/main/assets/vue/index.js | 496 +++
.../src/main/assets/vue/modules/clipboard.js | 691 ++++
.../src/main/assets/vue/modules/instance-api.js | 304 ++
.../app/src/main/assets/vue/modules/modal.js | 581 +++
.../app/src/main/assets/vue/modules/storage.js | 381 ++
.../app/src/main/assets/vue/modules/stream.js | 477 +++
.../src/main/assets/vue/showcase/calculator.js | 340 ++
.../src/main/assets/vue/showcase/itemlist.js | 1062 ++++++
.../src/main/assets/vue/showcase/new-fashion.js | 3302 ++++++++++++++++++
.../src/main/assets/vue/showcase/progress.js | 336 ++
.../app/src/main/assets/vue/style/index.js | 1566 +++++++++
.../app/src/main/assets/vue/style/style-box.js | 780 +++++
.../app/src/main/assets/vue/style/style-flex.js | 919 +++++
.../app/src/main/assets/vue/style/style-item.js | 155 +
.../src/main/assets/vue/syntax/hello-world-1.js | 95 +
.../src/main/assets/vue/syntax/hello-world-2.js | 112 +
.../src/main/assets/vue/syntax/hello-world-3.js | 127 +
.../src/main/assets/vue/syntax/hello-world-4.js | 167 +
.../src/main/assets/vue/syntax/hello-world-5.js | 173 +
.../src/main/assets/vue/syntax/hello-world.js | 183 +
.../main/assets/vue/syntax/script-component.js | 224 ++
.../src/main/assets/vue/syntax/script-data.js | 214 ++
.../src/main/assets/vue/syntax/script-events.js | 161 +
.../main/assets/vue/syntax/script-instance.js | 196 ++
.../main/assets/vue/syntax/script-lifecycle.js | 155 +
.../src/main/assets/vue/syntax/script-module.js | 156 +
.../main/assets/vue/syntax/script-options.js | 182 +
.../main/assets/vue/syntax/template-class.js | 161 +
.../main/assets/vue/syntax/template-content.js | 189 +
.../main/assets/vue/syntax/template-event.js | 197 ++
.../src/main/assets/vue/syntax/template-if.js | 165 +
.../assets/vue/syntax/template-repeat-update.js | 195 ++
.../main/assets/vue/syntax/template-repeat.js | 170 +
.../main/assets/vue/syntax/template-style.js | 144 +
.../app/src/main/assets/vue/template.js | 796 +++++
.../playground/app/src/main/ic_launcher-web.png | Bin 0 -> 19935 bytes
.../java/com/alibaba/weex/WXApplication.java | 5 +
.../alibaba/weex/extend/component/WXMask.java | 167 +
.../extend/component/dom/WXMaskDomObject.java | 231 ++
.../alibaba/weex/extend/view/WXMaskView.java | 220 ++
.../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 5248 -> 1755 bytes
.../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 4303 -> 1221 bytes
.../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 6354 -> 2451 bytes
.../src/main/res/mipmap-xxhdpi/ic_launcher.png | Bin 7930 -> 3939 bytes
.../src/main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 10633 -> 5608 bytes
examples/component/image-demo.we | 2 +-
128 files changed, 33177 insertions(+), 863 deletions(-)
----------------------------------------------------------------------
[10/10] incubator-weex git commit: Merge branch '0.12-dev' of
https://github.com/cxfeng1/incubator-weex into 0.12-dev
Posted by zs...@apache.org.
Merge branch '0.12-dev' of https://github.com/cxfeng1/incubator-weex into 0.12-dev
* '0.12-dev' of https://github.com/cxfeng1/incubator-weex:
* [test] fix recycler test problems
* [tc] recycler tc
* [ios] fix issue that view unloading will delay if component thread is busy. * invalidate component manager earlier to remove all the component thread tasks.
* [test] update page url
* [test] fix recycler column gap test and reduce iOS pixel error
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/5b1126a5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/5b1126a5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/5b1126a5
Branch: refs/heads/0.12-dev
Commit: 5b1126a56c583b56baa491c67b23e45f6f409d2b
Parents: 35a3f8c 982da12
Author: zshshr <zh...@gmail.com>
Authored: Mon Apr 10 11:24:05 2017 +0800
Committer: zshshr <zh...@gmail.com>
Committed: Mon Apr 10 11:24:05 2017 +0800
----------------------------------------------------------------------
.../Component/Recycler/WXRecyclerComponent.m | 1 +
.../WeexSDK/Sources/Component/WXListComponent.m | 2 +
.../Sources/Manager/WXComponentManager.h | 4 +
.../Sources/Manager/WXComponentManager.m | 5 +
ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m | 1 +
test/pages/components/recycler.vue | 29 ++--
test/scripts/components/recycler.test.js | 164 ++++++++++---------
7 files changed, 113 insertions(+), 93 deletions(-)
----------------------------------------------------------------------
[06/10] incubator-weex git commit: * [ios] fix issue that view
unloading will delay if component thread is busy. * invalidate component
manager earlier to remove all the component thread tasks.
Posted by zs...@apache.org.
* [ios] fix issue that view unloading will delay if component thread is busy.
* invalidate component manager earlier to remove all the component thread tasks.
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/5445c921
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/5445c921
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/5445c921
Branch: refs/heads/0.12-dev
Commit: 5445c9210be48b8d0b379cff34516d3423d91cfe
Parents: f0f58f5
Author: \u9690\u98ce <cx...@apache.org>
Authored: Wed Mar 29 20:21:31 2017 +0800
Committer: \u9690\u98ce <cx...@apache.org>
Committed: Wed Mar 29 20:21:31 2017 +0800
----------------------------------------------------------------------
ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.h | 4 ++++
ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m | 5 +++++
ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m | 1 +
3 files changed, 10 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5445c921/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.h
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.h b/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.h
index 9e72f4b..3cdf573 100644
--- a/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.h
+++ b/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.h
@@ -141,6 +141,10 @@ extern void WXPerformBlockOnComponentThread(void (^block)());
**/
- (void)unload;
+/**
+ * @abstract invalidate component management, this can be called on main thread.
+ **/
+- (void)invalidate;
///--------------------------------------
/// @name Fixed
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5445c921/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m b/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
index f08c985..4d5d0b9 100644
--- a/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
+++ b/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
@@ -536,6 +536,11 @@ static css_node_t * rootNodeGetChild(void *context, int i)
_isValid = NO;
}
+- (void)invalidate
+{
+ _isValid = NO;
+}
+
- (BOOL)isValid
{
return _isValid;
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5445c921/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m b/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m
index afc6c53..83bcd7d 100644
--- a/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m
+++ b/ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m
@@ -293,6 +293,7 @@ typedef enum : NSUInteger {
[[WXSDKManager bridgeMgr] destroyInstance:self.instanceId];
+ [self.componentManager invalidate];
__weak typeof(self) weakSelf = self;
WXPerformBlockOnComponentThread(^{
__strong typeof(self) strongSelf = weakSelf;
[04/10] incubator-weex git commit: * [test] update page url
Posted by zs...@apache.org.
* [test] update page url
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/8ebd1735
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/8ebd1735
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/8ebd1735
Branch: refs/heads/0.12-dev
Commit: 8ebd1735b72708f879db434ac203b475936450e0
Parents: 1185fbd
Author: sospartan <so...@apache.org>
Authored: Tue Mar 28 10:44:09 2017 +0800
Committer: sospartan <so...@apache.org>
Committed: Tue Mar 28 10:44:09 2017 +0800
----------------------------------------------------------------------
test/scripts/components/recycler.test.js | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/8ebd1735/test/scripts/components/recycler.test.js
----------------------------------------------------------------------
diff --git a/test/scripts/components/recycler.test.js b/test/scripts/components/recycler.test.js
index bc5f867..bbf20a8 100644
--- a/test/scripts/components/recycler.test.js
+++ b/test/scripts/components/recycler.test.js
@@ -37,9 +37,8 @@ describe('recycler', function () {
const driver = util.createDriver(wd)
before(function () {
- console.log('wxpage://' + util.getDeviceHost() +'/components/recycler.js')
return util.init(driver)
- .get('wxpage://' + util.getDeviceHost() +'/components/recycler.js')
+ .get(util.getPage('/components/recycler.js'))
.waitForElementByXPath('//recycler[1]',util.getGETActionWaitTimeMills(),1000)
});
[03/10] incubator-weex git commit: * [test] fix recycler column gap
test and reduce iOS pixel error
Posted by zs...@apache.org.
* [test] fix recycler column gap test and reduce iOS pixel error
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/1185fbd6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/1185fbd6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/1185fbd6
Branch: refs/heads/0.12-dev
Commit: 1185fbd61bdc0fbd31b19a45911adc82cc7142b5
Parents: 44feea0
Author: \u9690\u98ce <cx...@apache.org>
Authored: Mon Mar 27 19:27:49 2017 +0800
Committer: \u9690\u98ce <cx...@apache.org>
Committed: Mon Mar 27 19:27:49 2017 +0800
----------------------------------------------------------------------
test/scripts/components/recycler.test.js | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1185fbd6/test/scripts/components/recycler.test.js
----------------------------------------------------------------------
diff --git a/test/scripts/components/recycler.test.js b/test/scripts/components/recycler.test.js
index 19f0ad3..bc5f867 100644
--- a/test/scripts/components/recycler.test.js
+++ b/test/scripts/components/recycler.test.js
@@ -25,7 +25,7 @@ const cell30Path = isAndroid ? '//recycler[1]/div[32]/' : '//recycler[1]/cell[30
const footerPath = '//recycler[1]/div[1]'
const isApproximate = (x, y) => {
- return Math.abs(x - y) <= 1
+ return Math.abs(x - y) <= isAndroid ? 1 : 0.5
}
if (isAndroid) {
@@ -179,24 +179,24 @@ describe('recycler', function () {
cell1Height = rect.height
assert.isOk(isApproximate(rect.x, 0))
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor))
- assert.isOk(isApproximate(rect.width, 357 * scaleFactor))
+ assert.isOk(isApproximate(rect.width, 359 * scaleFactor))
})
.elementByXPath(cell2Path)
.getRect()
.then((rect)=>{
console.log(`cell 2 rect after changing column gap to normal:${JSON.stringify(rect)}`)
cell2Height = rect.height
- assert.isOk(isApproximate(rect.x, 393 * scaleFactor))
+ assert.isOk(isApproximate(rect.x, 391 * scaleFactor))
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor))
- assert.isOk(isApproximate(rect.width, 357 * scaleFactor))
+ assert.isOk(isApproximate(rect.width, 359 * scaleFactor))
})
.elementByXPath(cell3Path)
.getRect()
.then((rect)=>{
console.log(`cell 3 rect after changing column gap to normal:${JSON.stringify(rect)}`)
- assert.isOk(isApproximate(rect.x, 393 * scaleFactor))
+ assert.isOk(isApproximate(rect.x, 391 * scaleFactor))
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor + cell2Height))
- assert.isOk(isApproximate(rect.width, 357 * scaleFactor))
+ assert.isOk(isApproximate(rect.width, 359 * scaleFactor))
})
.elementByXPath(cell4Path)
.getRect()
@@ -204,7 +204,7 @@ describe('recycler', function () {
console.log(`cell 4 rect after changing column gap to normal:${JSON.stringify(rect)}`)
assert.isOk(isApproximate(rect.x, 0))
assert.isOk(isApproximate(rect.y, navBarHeight + 471 * scaleFactor + cell1Height))
- assert.isOk(isApproximate(rect.width, 357 * scaleFactor))
+ assert.isOk(isApproximate(rect.width, 359 * scaleFactor))
})
.elementByXPath(cell2Path)
.click()
[05/10] incubator-weex git commit: Merge remote-tracking branch
'upstream/0.12-dev' into 0.12-dev
Posted by zs...@apache.org.
Merge remote-tracking branch 'upstream/0.12-dev' into 0.12-dev
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/f0f58f5b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/f0f58f5b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/f0f58f5b
Branch: refs/heads/0.12-dev
Commit: f0f58f5bcaac15a531921330f97655b87e3d027e
Parents: 8ebd173 80df1aa
Author: \u9690\u98ce <cx...@apache.org>
Authored: Wed Mar 29 20:14:40 2017 +0800
Committer: \u9690\u98ce <cx...@apache.org>
Committed: Wed Mar 29 20:14:40 2017 +0800
----------------------------------------------------------------------
.../java/com/taobao/weex/common/Constants.java | 2 +
.../taobao/weex/dom/WXRecyclerDomObject.java | 4 +-
.../taobao/weex/ui/component/WXComponent.java | 25 +
.../com/taobao/weex/ui/component/WXText.java | 8 +
.../com/taobao/weex/ui/view/WXTextView.java | 18 +-
examples/accessibilitySupport.we | 57 +
examples/component/input-demo.we | 253 +-
examples/component/list/list-basic.we | 79 +-
examples/component/scroller-demo.we | 64 +-
examples/component/slider-tab.we | 100 +
examples/include/example-list-item.we | 30 +-
examples/index.we | 4 +-
examples/linear-gradient.we | 3 +
examples/module/chatroom-demo.we | 227 ++
examples/module/websocket-demo.we | 50 +-
examples/showcase/boxshadow.we | 46 +
examples/vue/components/input.vue | 203 +-
examples/vue/components/list.vue | 3 +
examples/vue/index.vue | 1 +
examples/vue/showcase/boxshadow.vue | 39 +
ios/playground/bundlejs/component/image-demo.js | 2 +-
ios/playground/bundlejs/component/input-demo.js | 2683 ++++--------------
.../bundlejs/component/lengthunitwx-demo.js | 329 +++
.../bundlejs/component/list/list-basic.js | 132 +-
.../component/list/list-demo-horizon.js | 12 +-
.../bundlejs/component/list/list-demo.js | 12 +-
.../bundlejs/component/list/waterfall.js | 877 ++++++
.../bundlejs/component/marquee-demo.js | 13 +-
.../bundlejs/component/process-bar-demo.js | 17 +-
.../bundlejs/component/scroller-demo.js | 219 +-
.../bundlejs/component/slider-neighbor/index.js | 8 +-
.../slider-neighbor/slider-neighbor-item.js | 12 +-
.../slider-neighbor/slider-neighbor-page.js | 28 +-
ios/playground/bundlejs/component/slider-tab.js | 633 +++++
.../bundlejs/component/slider/index.js | 56 +-
.../bundlejs/component/slider/slider-item.js | 12 +-
.../bundlejs/component/slider/slider-page.js | 28 +-
ios/playground/bundlejs/component/text-demo.js | 24 +-
ios/playground/bundlejs/component/video-demo.js | 24 +-
ios/playground/bundlejs/component/web-demo.js | 25 +-
ios/playground/bundlejs/error.js | 20 +-
ios/playground/bundlejs/geolocation.js | 46 +-
ios/playground/bundlejs/hello.js | 4 +-
ios/playground/bundlejs/iconfont.js | 12 +-
ios/playground/bundlejs/index.js | 270 +-
ios/playground/bundlejs/linear-gradient.js | 8 +-
ios/playground/bundlejs/module/chatroom-demo.js | 370 +++
ios/playground/bundlejs/module/clipboard.js | 61 +-
ios/playground/bundlejs/module/componentRect.js | 28 +-
ios/playground/bundlejs/module/instance-api.js | 61 +-
ios/playground/bundlejs/module/modal.js | 27 +-
ios/playground/bundlejs/module/picker-demo.js | 27 +-
ios/playground/bundlejs/module/storage-demo.js | 61 +-
ios/playground/bundlejs/module/stream-demo.js | 61 +-
.../bundlejs/module/websocket-demo.js | 2661 +++++++----------
ios/playground/bundlejs/showcase/boxshadow.js | 269 ++
ios/playground/bundlejs/showcase/calculator.js | 30 +-
.../bundlejs/showcase/dropdown/dropdown-demo.js | 38 +-
.../bundlejs/showcase/dropdown/we-dropdown.js | 12 +-
ios/playground/bundlejs/showcase/minesweeper.js | 12 +-
.../bundlejs/showcase/pseudo-class.js | 30 +-
ios/playground/bundlejs/showcase/ui.js | 30 +-
ios/playground/bundlejs/style/index.js | 82 +-
ios/playground/bundlejs/style/style-box.js | 46 +-
ios/playground/bundlejs/style/style-flex.js | 54 +-
ios/playground/bundlejs/style/style-item.js | 12 +-
ios/playground/bundlejs/syntax/hello-world-1.js | 4 +-
ios/playground/bundlejs/syntax/hello-world-2.js | 4 +-
ios/playground/bundlejs/syntax/hello-world-3.js | 8 +-
ios/playground/bundlejs/syntax/hello-world-4.js | 12 +-
ios/playground/bundlejs/syntax/hello-world-5.js | 12 +-
ios/playground/bundlejs/syntax/hello-world.js | 12 +-
ios/playground/bundlejs/syntax/index.js | 296 +-
.../bundlejs/syntax/script-component.js | 24 +-
ios/playground/bundlejs/syntax/script-data.js | 12 +-
ios/playground/bundlejs/syntax/script-events.js | 20 +-
.../bundlejs/syntax/script-instance.js | 12 +-
.../bundlejs/syntax/script-lifecycle.js | 12 +-
ios/playground/bundlejs/syntax/script-module.js | 12 +-
.../bundlejs/syntax/script-options.js | 12 +-
.../bundlejs/syntax/template-class.js | 12 +-
.../bundlejs/syntax/template-content.js | 20 +-
.../bundlejs/syntax/template-event.js | 12 +-
ios/playground/bundlejs/syntax/template-if.js | 12 +-
.../bundlejs/syntax/template-repeat-update.js | 12 +-
.../bundlejs/syntax/template-repeat.js | 12 +-
.../bundlejs/syntax/template-style.js | 8 +-
ios/playground/bundlejs/template.js | 12 +-
ios/playground/bundlejs/test.js | 8 +-
ios/playground/bundlejs/vue/animation.js | 120 +-
ios/playground/bundlejs/vue/components/a.js | 97 +-
.../bundlejs/vue/components/countdown.js | 122 +-
ios/playground/bundlejs/vue/components/image.js | 142 +-
ios/playground/bundlejs/vue/components/input.js | 735 +++--
ios/playground/bundlejs/vue/components/list.js | 44 +-
.../bundlejs/vue/components/marquee.js | 105 +-
.../bundlejs/vue/components/navigator.js | 187 +-
.../bundlejs/vue/components/scroller.js | 48 +-
.../bundlejs/vue/components/slider.js | 341 +--
.../bundlejs/vue/components/tabbar.js | 133 +-
ios/playground/bundlejs/vue/components/text.js | 132 +-
ios/playground/bundlejs/vue/components/video.js | 72 +-
.../bundlejs/vue/components/waterfall.js | 877 ++++++
ios/playground/bundlejs/vue/components/web.js | 74 +-
ios/playground/bundlejs/vue/hello.js | 19 +-
ios/playground/bundlejs/vue/iconfont.js | 36 +-
ios/playground/bundlejs/vue/index.js | 139 +-
.../bundlejs/vue/modules/clipboard.js | 147 +-
.../bundlejs/vue/modules/instance-api.js | 59 +-
ios/playground/bundlejs/vue/modules/modal.js | 105 +-
ios/playground/bundlejs/vue/modules/storage.js | 71 +-
ios/playground/bundlejs/vue/modules/stream.js | 95 +-
.../bundlejs/vue/showcase/boxshadow.js | 244 ++
.../bundlejs/vue/showcase/calculator.js | 72 +-
.../bundlejs/vue/showcase/itemlist.js | 166 +-
.../bundlejs/vue/showcase/new-fashion.js | 557 ++--
.../bundlejs/vue/showcase/progress.js | 63 +-
ios/playground/bundlejs/vue/style/index.js | 418 +--
ios/playground/bundlejs/vue/style/style-box.js | 180 +-
ios/playground/bundlejs/vue/style/style-flex.js | 238 +-
ios/playground/bundlejs/vue/style/style-item.js | 26 +-
.../bundlejs/vue/syntax/hello-world-1.js | 17 +-
.../bundlejs/vue/syntax/hello-world-2.js | 23 +-
.../bundlejs/vue/syntax/hello-world-3.js | 28 +-
.../bundlejs/vue/syntax/hello-world-4.js | 32 +-
.../bundlejs/vue/syntax/hello-world-5.js | 32 +-
.../bundlejs/vue/syntax/hello-world.js | 32 +-
.../bundlejs/vue/syntax/script-component.js | 64 +-
.../bundlejs/vue/syntax/script-data.js | 36 +-
.../bundlejs/vue/syntax/script-events.js | 32 +-
.../bundlejs/vue/syntax/script-instance.js | 30 +-
.../bundlejs/vue/syntax/script-lifecycle.js | 32 +-
.../bundlejs/vue/syntax/script-module.js | 30 +-
.../bundlejs/vue/syntax/script-options.js | 28 +-
.../bundlejs/vue/syntax/template-class.js | 34 +-
.../bundlejs/vue/syntax/template-content.js | 49 +-
.../bundlejs/vue/syntax/template-event.js | 36 +-
.../bundlejs/vue/syntax/template-if.js | 32 +-
.../vue/syntax/template-repeat-update.js | 40 +-
.../bundlejs/vue/syntax/template-repeat.js | 50 +-
.../bundlejs/vue/syntax/template-style.js | 27 +-
ios/playground/bundlejs/vue/template.js | 181 +-
.../Component/Recycler/WXMultiColumnLayout.h | 2 +
.../Component/Recycler/WXMultiColumnLayout.m | 5 +-
.../Component/Recycler/WXRecyclerComponent.m | 21 +-
.../Recycler/WXRecyclerDataController.h | 2 +
.../Recycler/WXRecyclerDataController.m | 6 +
.../Component/WXComponent+GradientColor.m | 56 +-
.../Sources/Component/WXComponent_internal.h | 9 +
.../WeexSDK/Sources/Component/WXListComponent.m | 7 +-
.../Sources/Component/WXScrollerComponent.m | 10 +-
.../WeexSDK/Sources/Component/WXTextComponent.m | 5 +
.../WeexSDK/Sources/Layout/WXComponent+Layout.m | 2 +-
ios/sdk/WeexSDK/Sources/Model/WXComponent.m | 29 +
ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.m | 40 +-
ios/sdk/WeexSDK/Sources/Utility/WXConvert.h | 1 +
ios/sdk/WeexSDK/Sources/Utility/WXConvert.m | 22 +
test/pages/components/recycler.vue | 19 +-
158 files changed, 10979 insertions(+), 7240 deletions(-)
----------------------------------------------------------------------