You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by gu...@apache.org on 2017/09/26 04:25:03 UTC

[01/47] incubator-weex git commit: * [html5] fix release CI.

Repository: incubator-weex
Updated Branches:
  refs/heads/dev 2513b0f43 -> 915935b09


* [html5] fix release CI.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/a672d2f1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/a672d2f1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/a672d2f1

Branch: refs/heads/dev
Commit: a672d2f1dc08e52b9f639763bcfa09cdf7cc1ec8
Parents: b903e3c
Author: MrRaindrop <te...@gmail.com>
Authored: Wed Aug 16 17:26:14 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Wed Aug 16 17:26:14 2017 +0800

----------------------------------------------------------------------
 scripts/release_files.rules | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/a672d2f1/scripts/release_files.rules
----------------------------------------------------------------------
diff --git a/scripts/release_files.rules b/scripts/release_files.rules
index bfc0958..01ba712 100644
--- a/scripts/release_files.rules
+++ b/scripts/release_files.rules
@@ -42,6 +42,7 @@
 + /packages/weex-html5
 + /packages/weex-html5/package.json
 + /packages/weex-vue-render
++ /packages/weex-vue-render/src/**
 + /packages/weex-vue-render/package.json
 + /build
 + /build/**


[30/47] incubator-weex git commit: * [html5] release 0.12.10

Posted by gu...@apache.org.
* [html5] release 0.12.10


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/86cd036c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/86cd036c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/86cd036c

Branch: refs/heads/dev
Commit: 86cd036ccbf1569253629e9fc33a462638a494b4
Parents: 19f0c01
Author: MrRaindrop <te...@gmail.com>
Authored: Tue Sep 12 10:47:08 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Tue Sep 12 10:47:08 2017 +0800

----------------------------------------------------------------------
 package.json                          | 2 +-
 packages/weex-vue-render/package.json | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/86cd036c/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 8346fc2..b4b605b 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
   "subversion": {
     "browser": "0.5.0",
     "framework": "0.21.11",
-    "vue-render": "0.12.9",
+    "vue-render": "0.12.10",
     "transformer": ">=0.1.5 <0.5"
   },
   "description": "A framework for building Mobile cross-platform UI",

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/86cd036c/packages/weex-vue-render/package.json
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/package.json b/packages/weex-vue-render/package.json
index 220744f..bf978ae 100644
--- a/packages/weex-vue-render/package.json
+++ b/packages/weex-vue-render/package.json
@@ -1,6 +1,6 @@
 {
   "name": "weex-vue-render",
-  "version": "0.12.9",
+  "version": "0.12.10",
   "description": "Weex built-in components for Vue 2.x.",
   "license": "Apache-2.0",
   "main": "dist/index.common.js",


[25/47] incubator-weex git commit: * [html5] bugfix: appear only trigger once when there's no disappear handler bound.

Posted by gu...@apache.org.
* [html5] bugfix: appear only trigger once when there's no disappear handler bound.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/ec5b7914
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/ec5b7914
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/ec5b7914

Branch: refs/heads/dev
Commit: ec5b79142d13d319d21ed8092f8a2f5857cb341f
Parents: b0741d8
Author: MrRaindrop <te...@gmail.com>
Authored: Tue Sep 5 18:11:46 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Tue Sep 5 18:11:46 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/utils/component.js | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ec5b7914/html5/render/vue/utils/component.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/utils/component.js b/html5/render/vue/utils/component.js
index f587b26..eb8ded7 100644
--- a/html5/render/vue/utils/component.js
+++ b/html5/render/vue/utils/component.js
@@ -202,7 +202,12 @@ export function detectAppear (context, visible, dir = null) {
   const el = context && context.$el
   if (!el) { return }
   const handlers = getEventHandlers(context)
-  if (!handlers[visible ? 'appear' : 'disappear']) { return }
+  /**
+   * No matter it's binding appear/disappear or both of them. Always
+   * should test it's visibility and change the context._visible.
+   * If neithor of them was bound, then just ignore it.
+   */
+  if (!handlers['appear'] && !handlers['disappear']) { return }
   /**
    * if the component hasn't appeared for once yet, then it shouldn't trigger
    * a disappear event at all.


[19/47] incubator-weex git commit: * [html5] fix error under firefox ios.

Posted by gu...@apache.org.
* [html5] fix error under firefox ios.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/1ceb3749
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/1ceb3749
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/1ceb3749

Branch: refs/heads/dev
Commit: 1ceb3749b1862ebf6e3eee5a0a1ddb3fe0d0d603
Parents: 31411dd
Author: MrRaindrop <te...@gmail.com>
Authored: Mon Sep 4 17:26:03 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Mon Sep 4 17:26:03 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/lib/envd/index.js | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1ceb3749/html5/render/vue/lib/envd/index.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/lib/envd/index.js b/html5/render/vue/lib/envd/index.js
index 99b6fd6..df9fdf3 100644
--- a/html5/render/vue/lib/envd/index.js
+++ b/html5/render/vue/lib/envd/index.js
@@ -55,7 +55,7 @@ else if ((match = ua.match(/(iPhone|iPad|iPod)/))) {
     isIPhone: (name === 'iPhone' || name === 'iPod'),
     isIPad: name === 'iPad',
     isIOS: true,
-    version: match[1].split('_').join('.')
+    version: match && match[1].split('_').join('.') || ''
   }
 }
 else {
@@ -155,7 +155,7 @@ else if (ua.match(/iPhone|iPad|iPod/)) {
     env.browser = {
       name: 'Safari',
       isSafari: true,
-      version: match[1]
+      version: match && match[1] || ''
     }
   }
   else {
@@ -163,7 +163,7 @@ else if (ua.match(/iPhone|iPad|iPod/)) {
     env.browser = {
       name: 'iOS Webview',
       isWebview: true,
-      version: match[1].replace(/_/g, '.')
+      version: match && match[1].replace(/_/g, '.') || ''
     }
   }
 }


[04/47] incubator-weex git commit: * [html5] release vue-render 0.12.2

Posted by gu...@apache.org.
* [html5] release vue-render 0.12.2


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/bb844b90
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/bb844b90
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/bb844b90

Branch: refs/heads/dev
Commit: bb844b90aa013ca946c6ffdce57a1281f5340374
Parents: 7e2d4ef
Author: MrRaindrop <te...@gmail.com>
Authored: Fri Aug 4 17:09:18 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Mon Aug 21 11:28:29 2017 +0800

----------------------------------------------------------------------
 package.json | 5 +++++
 1 file changed, 5 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/bb844b90/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 4579a27..2148df1 100644
--- a/package.json
+++ b/package.json
@@ -3,8 +3,13 @@
   "version": "0.12.2",
   "subversion": {
     "browser": "0.5.0",
+<<<<<<< HEAD
     "framework": "0.21.9",
     "vue-render": "0.12.3",
+=======
+    "framework": "0.20.6",
+    "vue-render": "0.12.2",
+>>>>>>> 850811c... * [html5] release vue-render 0.12.2
     "transformer": ">=0.1.5 <0.5"
   },
   "description": "A framework for building Mobile cross-platform UI",


[34/47] incubator-weex git commit: * [html5] release v0.12.12

Posted by gu...@apache.org.
* [html5] release v0.12.12


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/89b131fb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/89b131fb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/89b131fb

Branch: refs/heads/dev
Commit: 89b131fb7c430dab67a41abf6c70365c57440395
Parents: 2cf1675
Author: MrRaindrop <te...@gmail.com>
Authored: Thu Sep 14 13:58:31 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Thu Sep 14 13:58:31 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/README.md            | 4 ++++
 package.json                          | 2 +-
 packages/weex-vue-render/README.md    | 4 ++++
 packages/weex-vue-render/package.json | 2 +-
 4 files changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/89b131fb/html5/render/vue/README.md
----------------------------------------------------------------------
diff --git a/html5/render/vue/README.md b/html5/render/vue/README.md
index d8f241a..31b6226 100644
--- a/html5/render/vue/README.md
+++ b/html5/render/vue/README.md
@@ -160,6 +160,10 @@ vue: {
 * fix styles in firefox.
 * implement methods about selection range.
 
+#### 0.12.12
+
+* fix NS (svg) bug in vue.js@v2.4.3
+
 ## component -> dom map
 
 | component | dom element | children | note |

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/89b131fb/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index fa2a332..534cc67 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
   "subversion": {
     "browser": "0.5.0",
     "framework": "0.21.11",
-    "vue-render": "0.12.11",
+    "vue-render": "0.12.12",
     "transformer": ">=0.1.5 <0.5"
   },
   "description": "A framework for building Mobile cross-platform UI",

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/89b131fb/packages/weex-vue-render/README.md
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/README.md b/packages/weex-vue-render/README.md
index d8f241a..31b6226 100644
--- a/packages/weex-vue-render/README.md
+++ b/packages/weex-vue-render/README.md
@@ -160,6 +160,10 @@ vue: {
 * fix styles in firefox.
 * implement methods about selection range.
 
+#### 0.12.12
+
+* fix NS (svg) bug in vue.js@v2.4.3
+
 ## component -> dom map
 
 | component | dom element | children | note |

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/89b131fb/packages/weex-vue-render/package.json
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/package.json b/packages/weex-vue-render/package.json
index 54cefab..8ff879e 100644
--- a/packages/weex-vue-render/package.json
+++ b/packages/weex-vue-render/package.json
@@ -1,6 +1,6 @@
 {
   "name": "weex-vue-render",
-  "version": "0.12.11",
+  "version": "0.12.12",
   "description": "Weex built-in components for Vue 2.x.",
   "license": "Apache-2.0",
   "main": "dist/index.common.js",


[38/47] incubator-weex git commit: * [html5] fix trigger click problem.

Posted by gu...@apache.org.
* [html5] fix trigger click problem.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/b7fa6b0f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/b7fa6b0f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/b7fa6b0f

Branch: refs/heads/dev
Commit: b7fa6b0ff7af1b4d18823709fe43569cc5b69b9a
Parents: 6ec5a50
Author: MrRaindrop <te...@gmail.com>
Authored: Sat Sep 23 18:51:20 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Sat Sep 23 18:51:20 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/README.md            |  4 ++
 html5/render/vue/env/event-manager.js | 88 +++++++++++++++---------------
 package.json                          |  2 +-
 packages/weex-vue-render/README.md    |  4 ++
 packages/weex-vue-render/package.json |  2 +-
 5 files changed, 55 insertions(+), 45 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b7fa6b0f/html5/render/vue/README.md
----------------------------------------------------------------------
diff --git a/html5/render/vue/README.md b/html5/render/vue/README.md
index 0554334..31646a2 100644
--- a/html5/render/vue/README.md
+++ b/html5/render/vue/README.md
@@ -172,6 +172,10 @@ vue: {
 
 * fix loading & refresh: pulling down wrongly triggered.
 
+#### 0.12.15
+
+* not to prevent default behaviour of click events unless the click-binding element is inside a `<a>` link, or it is a `<a>` link and has a `prevent` attribute on it.
+
 ## component -> dom map
 
 | component | dom element | children | note |

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b7fa6b0f/html5/render/vue/env/event-manager.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/env/event-manager.js b/html5/render/vue/env/event-manager.js
index 16057ca..e637b7d 100644
--- a/html5/render/vue/env/event-manager.js
+++ b/html5/render/vue/env/event-manager.js
@@ -35,6 +35,15 @@ function isANode (el) {
   return el.tagName.toLowerCase() === 'a'
 }
 
+function isInANode (el) {
+  let parent = el.parentElement
+  while (parent && parent !== document.body) {
+    if (parent.tagName === 'A') { return true }
+    parent = parent.parentElement
+  }
+  return false
+}
+
 /**
  * get listeners from on config and v-on binding.
  * v-on binding has a priority over on config.
@@ -87,72 +96,65 @@ function _init (doc) {
         return
       }
       let disposed = false
-      let evtName = e.type
-      /**
-       * take full control of redirection of <a> element.
-       */
-      if (evtName === 'click') {
-        // use '_triggered' to control bubbles event.
-        e._triggered = { target: vm.$el }
-        e.preventDefault()
-        return
-      }
+      const evtName = e.type
 
       if (evtName === 'tap' && e._for !== 'weex') {
         return
       }
-      else if (evtName === 'tap') {
-        evtName = 'click'
-      }
 
       while (vm) {
         const vnode = vm._vnode || vm.$vnode
         const elm = vm.$el
-        const ons = getListeners(vnode, evtName)
+        const ons = getListeners(vnode, evtName === 'tap' ? 'click' : evtName)
         const len = ons && ons.length
 
         if (len > 0) {
-          for (let i = 0; i < len; i++) {
-            const handler = ons[i]
-            const newEvt = evtName === 'click'
-              ? createEvent(el, evtName)
-              : e
-            applyFns(handler.fns, newEvt)
+          if (evtName !== 'click') {
+            for (let i = 0; i < len; i++) {
+              const handler = ons[i]
+              const newEvt = evtName === 'tap'
+                ? createEvent(el, 'click')
+                : e
+              newEvt._triggered = { target: elm }
+              applyFns(handler.fns, newEvt)
+            }
           }
-          e._triggered = { target: vm.$el }
+          e._triggered = { target: elm }
           disposed = true
         }
 
-        /**
-         * if the handler is binding on a <a> element, should trigger
-         * the handler first and then jump to href.
-         * NOTE: if target==='_blank' then do no jumping and leave it
-         * to users binding handlers for further disposing.
-         */
-        if (evtName === 'click' && isANode(elm)) {
+        if (isANode(elm)
+          && (evtName === 'click' || evtName === 'tap')) {
           const href = elm.getAttribute('href')
           const voidHrefReg = /^\s*javascript\s*:\s*void\s*(?:\(\s*0\s*\)|0)\s*;?\s*$/
           const prevent = elm.getAttribute('prevent')
-          disposed = true
-          /**
-           * Give the chance to the listeners binding on doc or doc.body for
-           * handling the a-jump.
-           * Should set a _should_intercept_a_jump function on window to test
-           * whether we should intercept the a-jump.
-           */
-          if (window._should_intercept_a_jump && window._should_intercept_a_jump(elm)
-            || href.match(voidHrefReg)
-            || prevent === '' || prevent === 'true') {
-            // do nothing. leave it to the intercept handler.
+          if (window._should_intercept_a_jump && window._should_intercept_a_jump(elm)) {
+            // e._triggered should not be true since we left the intercepter to handle the event.
+            e._triggered = false
+            e.preventDefault()
+            disposed = true
           }
-          else if (href) {
-            location.href = href
+          else if (href.match(voidHrefReg)
+            || prevent === '' || prevent === 'true') {
+              e._triggered = false
+              e.preventDefault()
           }
-          else if (process.env.NODE_ENV === 'development') {
-            console.warn('[vue-render] If you want to use the A tag jump, set the href attribute')
+          else {
+            e._triggered = { target: elm }
+            disposed = true // handled by default behavior for clicking on a element.
           }
         }
 
+        /**
+         * If the click handler is binding on a element inside a <a> element,
+         * then should prevent default.
+         */
+        if (disposed && evtName === 'click' && isInANode(elm)) {
+          e._triggered = { target: elm }
+          e.preventDefault()
+          return
+        }
+
         if (disposed) {
           return
         }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b7fa6b0f/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 7176a73..cd90c76 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
   "subversion": {
     "browser": "0.5.0",
     "framework": "0.21.11",
-    "vue-render": "0.12.14",
+    "vue-render": "0.12.15",
     "transformer": ">=0.1.5 <0.5"
   },
   "description": "A framework for building Mobile cross-platform UI",

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b7fa6b0f/packages/weex-vue-render/README.md
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/README.md b/packages/weex-vue-render/README.md
index 0554334..31646a2 100644
--- a/packages/weex-vue-render/README.md
+++ b/packages/weex-vue-render/README.md
@@ -172,6 +172,10 @@ vue: {
 
 * fix loading & refresh: pulling down wrongly triggered.
 
+#### 0.12.15
+
+* not to prevent default behaviour of click events unless the click-binding element is inside a `<a>` link, or it is a `<a>` link and has a `prevent` attribute on it.
+
 ## component -> dom map
 
 | component | dom element | children | note |

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b7fa6b0f/packages/weex-vue-render/package.json
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/package.json b/packages/weex-vue-render/package.json
index b07535d..a08b4ce 100644
--- a/packages/weex-vue-render/package.json
+++ b/packages/weex-vue-render/package.json
@@ -1,6 +1,6 @@
 {
   "name": "weex-vue-render",
-  "version": "0.12.14",
+  "version": "0.12.15",
   "description": "Weex built-in components for Vue 2.x.",
   "license": "Apache-2.0",
   "main": "dist/index.common.js",


[16/47] incubator-weex git commit: * [html5] release v0.12.7

Posted by gu...@apache.org.
* [html5] release v0.12.7


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/902a1f73
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/902a1f73
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/902a1f73

Branch: refs/heads/dev
Commit: 902a1f7306da90e67006f4938489f6b6659b909e
Parents: 5bc5851
Author: MrRaindrop <te...@gmail.com>
Authored: Thu Aug 24 21:39:35 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Thu Aug 24 21:39:35 2017 +0800

----------------------------------------------------------------------
 package.json                          | 2 +-
 packages/weex-vue-render/package.json | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/902a1f73/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 3e70ac0..47b84dd 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
   "subversion": {
     "browser": "0.5.0",
     "framework": "0.21.11",
-    "vue-render": "0.12.6",
+    "vue-render": "0.12.7",
     "transformer": ">=0.1.5 <0.5"
   },
   "description": "A framework for building Mobile cross-platform UI",

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/902a1f73/packages/weex-vue-render/package.json
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/package.json b/packages/weex-vue-render/package.json
index 51a68d9..1262ef1 100644
--- a/packages/weex-vue-render/package.json
+++ b/packages/weex-vue-render/package.json
@@ -1,6 +1,6 @@
 {
   "name": "weex-vue-render",
-  "version": "0.12.6",
+  "version": "0.12.7",
   "description": "Weex built-in components for Vue 2.x.",
   "license": "Apache-2.0",
   "main": "dist/index.common.js",


[02/47] incubator-weex git commit: Merge branch '0.16-dev' into 0.16-dev-web

Posted by gu...@apache.org.
Merge branch '0.16-dev' into 0.16-dev-web


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/a105b22b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/a105b22b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/a105b22b

Branch: refs/heads/dev
Commit: a105b22b15281fbf7b37ae2b326ee5a77a490da2
Parents: a672d2f 2a52a58
Author: MrRaindrop <te...@gmail.com>
Authored: Mon Aug 21 11:04:34 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Mon Aug 21 11:04:34 2017 +0800

----------------------------------------------------------------------
 HOW-TO-BUILD.md                                 |    17 +-
 SCRIPTS.md                                      |     4 +-
 .../main/java/com/taobao/weex/WXSDKManager.java |     6 +
 .../java/com/taobao/weex/common/Constants.java  |     1 +
 .../taobao/weex/dom/WXRecyclerDomObject.java    |     9 +
 .../weex/dom/action/GetComponentRectAction.java |    12 -
 .../weex/ui/component/ContentMeasurable.java    |    29 -
 .../taobao/weex/ui/component/WXComponent.java   |    14 +-
 .../taobao/weex/ui/component/WXScroller.java    |    16 +-
 .../com/taobao/weex/ui/component/WXSlider.java  |     8 +-
 .../ui/component/list/BasicListComponent.java   |    69 +-
 .../weex/ui/view/WXBaseCircleIndicator.java     |     3 +-
 .../taobao/weex/ui/view/WXCircleViewPager.java  |    57 +-
 .../ui/view/refresh/core/WXSwipeLayout.java     |    17 +-
 .../ui/view/refresh/wrapper/BaseBounceView.java |     2 +-
 build/build.js                                  |     1 +
 build/config.js                                 |    21 +-
 dangerfile.js                                   |    27 +-
 examples/vanilla/index.js                       |     4 +-
 examples/vue/index.vue                          |     2 +
 html5/frameworks/vanilla/index.js               |    32 +-
 html5/render/browser/extend/api/storage.js      |     4 +-
 html5/render/native/setup.js                    |     2 +-
 html5/runtime/api/config.js                     |    37 +
 html5/runtime/api/init.js                       |   227 +
 html5/runtime/api/service.js                    |    77 +
 html5/runtime/bridge/CallbackManager.js         |    58 +
 html5/runtime/bridge/Handler.js                 |    91 +
 html5/runtime/bridge/Listener.js                |   220 +
 html5/runtime/bridge/TaskCenter.js              |   130 +
 html5/runtime/bridge/normalize.js               |    91 +
 html5/runtime/callback-manager.js               |    58 -
 html5/runtime/config.js                         |    36 -
 html5/runtime/handler.js                        |    91 -
 html5/runtime/index.js                          |    11 +-
 html5/runtime/init.js                           |   215 -
 html5/runtime/listener.js                       |   227 -
 html5/runtime/normalize.js                      |    98 -
 html5/runtime/service.js                        |    77 -
 html5/runtime/task-center.js                    |   130 -
 html5/runtime/utils.js                          |    54 +
 html5/runtime/vdom/Comment.js                   |    43 +
 html5/runtime/vdom/Document.js                  |   188 +
 html5/runtime/vdom/Element.js                   |   454 +
 html5/runtime/vdom/Node.js                      |    47 +
 html5/runtime/vdom/WeexElement.js               |    84 +
 html5/runtime/vdom/comment.js                   |    47 -
 html5/runtime/vdom/directive.js                 |    69 +
 html5/runtime/vdom/document.js                  |   194 -
 html5/runtime/vdom/element-types.js             |    83 -
 html5/runtime/vdom/element.js                   |   459 -
 html5/runtime/vdom/index.js                     |    16 +-
 html5/runtime/vdom/node.js                      |    49 -
 html5/runtime/vdom/operation.js                 |     8 -
 html5/test/case/prepare.js                      |     4 +-
 html5/test/unit/default/app/bundle.js           |    98 +-
 html5/test/unit/default/helper/document.js      |   145 -
 html5/test/unit/default/runtime.js              |   485 -
 html5/test/unit/default/vm/compiler.js          |   614 -
 html5/test/unit/default/vm/directive.js         |   279 -
 html5/test/unit/default/vm/dom-helper.js        |     2 +-
 html5/test/unit/default/vm/vm.js                |     2 +-
 html5/test/unit/runtime/legacy-framework.js     |   353 +
 html5/test/unit/runtime/runner/helper.js        |    73 +
 html5/test/unit/runtime/runner/vanilla.js       |    59 +
 html5/test/unit/runtime/runner/vue.js           |    67 +
 html5/test/unit/runtime/vdom/directive.js       |   101 +
 html5/test/unit/runtime/vdom/index.js           |   639 +
 html5/test/unit/runtime/vdom/listener.js        |   381 +
 html5/test/unit/runtime/vdom/node.js            |    39 +
 html5/test/unit/shared/BroadcastChannel.js      |     7 -
 html5/test/unit/shared/arrayFrom.js             |     5 -
 html5/test/unit/shared/index.js                 |    20 +-
 html5/test/unit/vanilla/index.js                |    13 -
 html5/test/unit/vdom/index.js                   |   659 -
 html5/test/unit/vdom/listener.js                |   423 -
 html5/test/unit/vdom/node.js                    |    39 -
 ios/playground/WeexDemo/WXExtModule.m           |     7 +
 .../Sources/Component/WXComponent_internal.h    |     2 +
 .../Sources/Component/WXImageComponent.m        |     2 +-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m     |     6 +-
 ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m   |     9 +-
 .../WeexSDK/Sources/Module/WXAnimationModule.m  |     1 -
 ios/sdk/WeexSDK/Sources/Module/WXTransition.m   |     2 +-
 .../Sources/Protocol/WXJSExceptionProtocol.h    |    10 +
 .../Sources/View/WXComponent+ViewManagement.m   |    10 +
 package.json                                    |    13 +-
 packages/weex-html5/index.js                    | 38779 +++++++++++++++++
 packages/weex-html5/index.min.js                |     1 +
 packages/weex-js-framework/index.js             |  1088 +-
 packages/weex-js-framework/index.min.js         |     2 +-
 packages/weex-js-runtime/index.js               |   937 +-
 packages/weex-js-runtime/index.min.js           |     4 +
 packages/weex-legacy-framework/index.js         |    23 +-
 packages/weex-legacy-framework/index.min.js     |     2 +-
 packages/weex-legacy-framework/package.json     |     2 +-
 packages/weex-vanilla-framework/.npmignore      |     4 +
 packages/weex-vanilla-framework/index.js        |   136 +
 packages/weex-vanilla-framework/index.min.js    |     1 +
 packages/weex-vanilla-framework/package.json    |    21 +
 scripts/build_from_source.sh                    |    10 +-
 test/scripts/attributes/compositing.test.js     |     4 +-
 test/scripts/components/hyperlink.test.js       |     4 +-
 test/scripts/components/iconfont.test.js        |     4 +-
 test/scripts/components/image-onload.test.js    |     4 +-
 test/scripts/components/input-event.test.js     |     4 +-
 test/scripts/components/recycler.test.js        |     4 +-
 test/scripts/components/refresh-loading.test.js |     4 +-
 test/scripts/components/scroll-event.test.js    |     8 +-
 test/scripts/components/scroller-fixed.test.js  |     4 +-
 test/scripts/components/slider-common.test.js   |     4 +-
 test/scripts/components/slider-infinite.test.js |     4 +-
 test/scripts/components/switch-event.test.js    |     4 +-
 test/scripts/components/text.test.js            |     4 +-
 .../components/textarea-maxlength.test.js       |     4 +-
 test/scripts/components/web-event.test.js       |     4 +-
 test/scripts/css/border.test.js                 |     4 +-
 test/scripts/dom.test.js                        |     4 +-
 test/scripts/index.test.js                      |     4 +-
 .../scripts/modules/animation-translate.test.js |     4 +-
 test/scripts/modules/clipboard-event.test.js    |     4 +-
 test/scripts/modules/downgrade-event.test.js    |     4 +-
 test/scripts/modules/gesture-longpress.test.js  |     4 +-
 test/scripts/modules/globalEvent.test.js        |     4 +-
 test/scripts/modules/modal-event.test.js        |     5 +-
 test/scripts/modules/picker-event.test.js       |     4 +-
 test/scripts/modules/storage-event.test.js      |     4 +-
 test/scripts/modules/stream-result.test.js      |     4 +-
 test/scripts/modules/timer.test.js              |     4 +-
 test/scripts/zcover-generate.js                 |     4 +-
 130 files changed, 43966 insertions(+), 5760 deletions(-)
----------------------------------------------------------------------



[23/47] incubator-weex git commit: * [html5] update README

Posted by gu...@apache.org.
* [html5] update README


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/60ce6306
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/60ce6306
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/60ce6306

Branch: refs/heads/dev
Commit: 60ce6306fca87be38b10da56724149bbd7c592cf
Parents: b8aae6f
Author: MrRaindrop <te...@gmail.com>
Authored: Tue Sep 5 10:56:21 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Tue Sep 5 10:56:21 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/README.md         | 1 +
 packages/weex-vue-render/README.md | 1 +
 2 files changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/60ce6306/html5/render/vue/README.md
----------------------------------------------------------------------
diff --git a/html5/render/vue/README.md b/html5/render/vue/README.md
index bcdd2de..2c915a6 100644
--- a/html5/render/vue/README.md
+++ b/html5/render/vue/README.md
@@ -145,6 +145,7 @@ vue: {
 #### 0.12.8
 
 * optimize event binding.
+* fix a-jump interception condition.
 
 ## component -> dom map
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/60ce6306/packages/weex-vue-render/README.md
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/README.md b/packages/weex-vue-render/README.md
index bcdd2de..2c915a6 100644
--- a/packages/weex-vue-render/README.md
+++ b/packages/weex-vue-render/README.md
@@ -145,6 +145,7 @@ vue: {
 #### 0.12.8
 
 * optimize event binding.
+* fix a-jump interception condition.
 
 ## component -> dom map
 


[21/47] incubator-weex git commit: * [html5] fix return event of input component on android UC browser.

Posted by gu...@apache.org.
* [html5] fix return event of input component on android UC browser.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/0ae0fcfa
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/0ae0fcfa
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/0ae0fcfa

Branch: refs/heads/dev
Commit: 0ae0fcfaf0ae3a2802a76f5aeb6d7b2c53978af5
Parents: 125f17d
Author: MrRaindrop <te...@gmail.com>
Authored: Mon Sep 4 18:20:46 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Mon Sep 4 18:20:46 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/mixins/input-common.js |  6 +++---
 vue.html                                | 15 +++++++++------
 2 files changed, 12 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/0ae0fcfa/html5/render/vue/mixins/input-common.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/mixins/input-common.js b/html5/render/vue/mixins/input-common.js
index f5fa18b..db86079 100644
--- a/html5/render/vue/mixins/input-common.js
+++ b/html5/render/vue/mixins/input-common.js
@@ -46,10 +46,10 @@ export default {
         const keyboardEvents = {
           'keyup': function (ev) {
             const code = ev.keyCode
-            let key = ev.key
+            const key = ev.key
             if (code === 13) {
-              if (key.toLowerCase() === 'tab') {
-                key = 'next'
+              if (!key || key.toLowerCase() === 'tab') {
+                ev.key = 'next'
               }
               const rightKeyType = findEnterKeyType(customKeyType)
               ev.returnKeyType = rightKeyType

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/0ae0fcfa/vue.html
----------------------------------------------------------------------
diff --git a/vue.html b/vue.html
index aa8b353..f403a2f 100644
--- a/vue.html
+++ b/vue.html
@@ -44,21 +44,24 @@
       opacity: 0.7;
     }
   </style>
-
+</head>
+<body>
+  <div id="root"></div>
+  <!-- <script>
+    window.onerror = function (err) {
+      alert('error!' + JSON.stringify(err))
+    }
+  </script> -->
   <!--<script src="./node_modules/vue/dist/vue.runtime.min.js"></script>-->
-  <script src="./node_modules/vue/dist/vue.runtime.js"></script> 
+  <script src="./node_modules/vue/dist/vue.runtime.js"></script>
   <!--<script src="dist/vue.runtime.js"></script> -->
   <!-- <script src="./node_modules/weex-vue-render/index.min.js"></script> -->
   <script src="./packages/weex-vue-render/dist/index.js"></script>
   <!--<script src="./dist/render.vue.js"></script>-->
   <!--<script src="./dist/render.vue.min.js"></script>-->
   <!--<script src="./packages/weex-vue-render/dist/index.min.js"></script>-->
-
   <!--This line is only used to run weex-picker example,you can remove this line when you do not need weex-picker module-->
   <script src="./node_modules/@weex-project/weex-picker/js/build/index.js"></script>
-</head>
-<body>
-  <div id="root"></div>
   <script>
     /**
      * these iife is just for the convenience for the showcase of demos.


[44/47] incubator-weex git commit: Merge branch '0.16-dev' into 0.16-dev-web

Posted by gu...@apache.org.
Merge branch '0.16-dev' into 0.16-dev-web


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/cda836a0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/cda836a0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/cda836a0

Branch: refs/heads/dev
Commit: cda836a0f5526cbb6e5c73a408a019fce0203dd8
Parents: 52aed20 2513b0f
Author: MrRaindrop <te...@gmail.com>
Authored: Tue Sep 26 11:09:30 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Tue Sep 26 11:09:30 2017 +0800

----------------------------------------------------------------------
 .travis.yml                                     |    52 +-
 POSSIBLE-NOTICES-FOR-BIN-DIST                   |     5 +-
 WeexSDK.podspec                                 |     2 -
 android/build.gradle                            |    13 +-
 android/gradle.properties                       |     5 +-
 .../gradle/wrapper/gradle-wrapper.properties    |     2 +-
 android/jacoco.gradle                           |    43 +
 .../alibaba/weex/benchmark/BenchmarkTest.java   |    29 +-
 .../playground/app/src/main/AndroidManifest.xml |     8 +
 .../alibaba/weex/util/CoverageDataDumper.java   |    36 +
 .../alibaba/weex/util/JacocoCodeCoverage.java   |    93 +
 android/sdk/libs/armeabi/libweexjsb.so          |   Bin 0 -> 22556 bytes
 android/sdk/libs/armeabi/libweexjsc.so          |   Bin 7570392 -> 325660 bytes
 android/sdk/libs/armeabi/libweexjss.so          |   Bin 0 -> 6754016 bytes
 .../java/com/taobao/weex/WXEnvironment.java     |    16 +
 .../main/java/com/taobao/weex/WXSDKEngine.java  |     5 +
 .../java/com/taobao/weex/WXSDKInstance.java     |   122 +-
 .../weex/appfram/pickers/DatePickerImpl.java    |     3 +-
 .../appfram/websocket/WebSocketCloseCodes.java  |     2 +-
 .../com/taobao/weex/bridge/WXBridgeManager.java |    79 +-
 .../java/com/taobao/weex/bridge/WXParams.java   |     9 +
 .../java/com/taobao/weex/common/Constants.java  |    31 +
 .../java/com/taobao/weex/common/WXConfig.java   |     1 +
 .../com/taobao/weex/dom/ImmutableDomObject.java |    21 +-
 .../main/java/com/taobao/weex/dom/WXAttr.java   |   147 +-
 .../com/taobao/weex/dom/WXCellDomObject.java    |    53 +-
 .../java/com/taobao/weex/dom/WXDomObject.java   |    26 +-
 .../main/java/com/taobao/weex/dom/WXEvent.java  |   120 +-
 .../taobao/weex/dom/WXRecyclerDomObject.java    |    58 +-
 .../main/java/com/taobao/weex/dom/WXStyle.java  |    17 -
 .../com/taobao/weex/dom/WXTextDomObject.java    |    24 +-
 .../dom/action/AbstractAddElementAction.java    |    12 +-
 .../com/taobao/weex/dom/action/Actions.java     |     8 +-
 .../taobao/weex/dom/action/AddEventAction.java  |    11 +-
 .../weex/dom/action/CreateBodyAction.java       |    12 +-
 .../weex/dom/action/ReloadPageAction.java       |     6 +-
 .../weex/dom/action/RemoveEventAction.java      |     5 +-
 .../com/taobao/weex/dom/binding/ELUtils.java    |   125 +
 .../taobao/weex/dom/binding/WXStatement.java    |   160 +
 .../com/taobao/weex/el/parse/ArrayStack.java    |    75 +
 .../java/com/taobao/weex/el/parse/Block.java    |    75 +
 .../java/com/taobao/weex/el/parse/Operator.java |   106 +
 .../com/taobao/weex/el/parse/Operators.java     |   499 +
 .../java/com/taobao/weex/el/parse/Parser.java   |   485 +
 .../java/com/taobao/weex/el/parse/Symbol.java   |    37 +
 .../java/com/taobao/weex/el/parse/Token.java    |    89 +
 .../weex/ui/component/AppearanceHelper.java     |     9 +
 .../weex/ui/component/WXBasicComponentType.java |     3 +
 .../taobao/weex/ui/component/WXComponent.java   |   299 +-
 .../com/taobao/weex/ui/component/WXDiv.java     |    74 +-
 .../com/taobao/weex/ui/component/WXHeader.java  |     4 +-
 .../com/taobao/weex/ui/component/WXImage.java   |     7 +
 .../com/taobao/weex/ui/component/WXLoading.java |     5 +-
 .../com/taobao/weex/ui/component/WXRefresh.java |     5 +-
 .../com/taobao/weex/ui/component/WXSlider.java  |     4 +-
 .../com/taobao/weex/ui/component/WXText.java    |    65 +-
 .../taobao/weex/ui/component/WXVContainer.java  |    44 +-
 .../weex/ui/component/binding/Layouts.java      |    92 +
 .../weex/ui/component/binding/Statements.java   |   420 +
 .../ui/component/list/RecyclerTransform.java    |    90 +
 .../taobao/weex/ui/component/list/WXCell.java   |    65 +-
 .../weex/ui/component/list/WXListComponent.java |    53 +-
 .../list/template/CellLifecycleManager.java     |   211 +
 .../list/template/TemplateStickyHelper.java     |   252 +
 .../list/template/TemplateViewHolder.java       |    79 +
 .../list/template/WXRecyclerTemplateList.java   |  1463 +
 .../com/taobao/weex/ui/flat/FlatComponent.java  |    33 +
 .../com/taobao/weex/ui/flat/FlatGUIContext.java |   146 +
 .../taobao/weex/ui/flat/WidgetContainer.java    |    93 +
 .../weex/ui/flat/widget/AndroidViewWidget.java  |    76 +
 .../taobao/weex/ui/flat/widget/BaseWidget.java  |   130 +
 .../taobao/weex/ui/flat/widget/TextWidget.java  |    49 +
 .../com/taobao/weex/ui/flat/widget/Widget.java  |    51 +
 .../taobao/weex/ui/flat/widget/WidgetGroup.java |    54 +
 .../taobao/weex/ui/module/WXTimerModule.java    |     9 +-
 .../weex/ui/view/WXBaseCircleIndicator.java     |   131 +-
 .../com/taobao/weex/ui/view/WXFrameLayout.java  |    53 +-
 .../weex/ui/view/border/BorderCorner.java       |    37 +-
 .../taobao/weex/ui/view/border/BorderUtil.java  |    26 -
 .../weex/ui/view/border/BottomLeftCorner.java   |     7 +-
 .../weex/ui/view/border/BottomRightCorner.java  |     7 +-
 .../weex/ui/view/border/TopLeftCorner.java      |     7 +-
 .../weex/ui/view/border/TopRightCorner.java     |     7 +-
 .../listview/ExtendedLinearLayoutManager.java   |    20 +
 .../weex/ui/view/listview/WXRecyclerView.java   |    50 +
 .../com/taobao/weex/utils/BoxShadowUtil.java    |   510 +
 .../com/taobao/weex/utils/FunctionParser.java   |     6 -
 .../java/com/taobao/weex/utils/LogLevel.java    |     4 +-
 .../java/com/taobao/weex/utils/OsVersion.java   |     2 +-
 .../main/java/com/taobao/weex/utils/Trace.java  |     4 +-
 .../java/com/taobao/weex/utils/WXLogUtils.java  |    14 +
 .../com/taobao/weex/utils/WXResourceUtils.java  |     4 +
 .../java/com/taobao/weex/utils/WXUtils.java     |    21 +
 .../java/com/taobao/weex/utils/WXViewUtils.java |    31 +
 .../com/taobao/weex/el/IfStatementTest.java     |   155 +
 .../java/com/taobao/weex/el/ParserTest.java     |   244 +
 .../com/taobao/weex/ui/component/WXDivTest.java |    12 +-
 .../taobao/weex/ui/component/WXTextTest.java    |    18 +-
 .../ui/component/binding/BindingValueTest.java  |    65 +
 .../ui/component/binding/StatementTest.java     |   184 +
 .../ui/component/list/WXListComponentTest.java  |     3 +-
 .../weex/ui/module/WXTimerModuleTest.java       |    45 +-
 build/config.js                                 |     3 +-
 dangerfile-android.js                           |   108 +
 dangerfile-ios.js                               |   107 +
 dangerfile-jsfm.js                              |   105 +
 dangerfile.js                                   |     6 +-
 doc/source/cn/guide/index.md                    |     9 +-
 doc/source/cn/guide/set-up-env.md               |    68 +-
 doc/source/cn/guide/tools/toolkit.md            |     2 +-
 .../cn/references/advanced/extend-to-android.md |    21 +-
 doc/source/cn/references/common-style.md        |     1 +
 doc/source/cn/references/components/text.md     |     6 +-
 doc/source/cn/references/modules/animation.md   |     7 +-
 doc/source/cn/references/modules/dom.md         |     2 +-
 doc/source/cn/references/weex-variable.md       |    48 +
 doc/source/guide/index.md                       |     4 +-
 doc/source/guide/set-up-env.md                  |    62 +-
 doc/source/guide/tools/toolkit.md               |     5 +-
 doc/source/references/common-style.md           |     1 +
 doc/source/references/components/text.md        |     8 +-
 doc/source/references/modules/animation.md      |     9 +-
 doc/source/references/modules/dom.md            |     2 +-
 doc/source/references/weex-variable.md          |    52 +-
 html5/render/vue/components/input.js            |     2 +-
 html5/runtime/index.js                          |     4 +-
 html5/runtime/vdom/Document.js                  |    15 +-
 html5/runtime/vdom/Element.js                   |    45 +-
 html5/test/unit/default/vm/events.js            |     4 +-
 html5/test/unit/default/vm/vm.js                |     2 +-
 html5/test/unit/runtime/vdom/index.js           |     2 +-
 ios/sdk/WeexSDK.xcodeproj/project.pbxproj       |   151 +-
 .../WeexSDK/Sources/Bridge/WXBridgeContext.m    |     4 +-
 .../Sources/Bridge/WXDebugLoggerBridge.h        |    26 -
 .../Sources/Bridge/WXDebugLoggerBridge.m        |   213 -
 ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m |    91 +-
 .../Component/RecycleList/WXCellSlotComponent.h |    32 +
 .../Component/RecycleList/WXCellSlotComponent.m |    93 +
 .../RecycleList/WXComponent+DataBinding.h       |    31 +
 .../RecycleList/WXComponent+DataBinding.mm      |   458 +
 .../Component/RecycleList/WXJSASTParser.h       |   100 +
 .../Component/RecycleList/WXJSASTParser.mm      |   919 +
 .../RecycleList/WXRecycleListComponent.h        |    25 +
 .../RecycleList/WXRecycleListComponent.m        |   459 +
 .../RecycleList/WXRecycleListDataManager.h      |    34 +
 .../RecycleList/WXRecycleListDataManager.m      |    71 +
 .../Component/RecycleList/WXRecycleListLayout.h |    32 +
 .../Component/RecycleList/WXRecycleListLayout.m |   113 +
 .../RecycleList/WXRecycleListTemplateManager.h  |    33 +
 .../RecycleList/WXRecycleListTemplateManager.m  |    94 +
 .../RecycleList/WXRecycleListUpdateManager.h    |    51 +
 .../RecycleList/WXRecycleListUpdateManager.m    |   262 +
 .../Component/Recycler/WXMultiColumnLayout.m    |    32 +-
 .../Recycler/WXSectionDataController.m          |     2 +-
 .../WeexSDK/Sources/Component/WXCellComponent.m |     4 +-
 .../Sources/Component/WXComponent_internal.h    |    31 +-
 .../Sources/Component/WXImageComponent.m        |    42 +-
 .../WeexSDK/Sources/Component/WXListComponent.m |     4 +
 .../Sources/Component/WXScrollerComponent.h     |     2 +
 .../Sources/Component/WXScrollerComponent.m     |    13 +-
 .../WeexSDK/Sources/Component/WXTextComponent.m |    14 +-
 .../WeexSDK/Sources/Component/WXWebComponent.m  |     1 +
 .../Sources/Display/WXComponent+Display.m       |    16 +-
 ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m    |     8 +-
 .../WeexSDK/Sources/Events/WXComponent+Events.m |    40 +-
 .../WeexSDK/Sources/Layout/WXComponent+Layout.m |     4 +-
 .../WeexSDK/Sources/Manager/WXBridgeManager.h   |    13 +-
 .../WeexSDK/Sources/Manager/WXBridgeManager.m   |    10 +
 .../Sources/Manager/WXComponentFactory.h        |    12 +
 .../Sources/Manager/WXComponentFactory.m        |    30 +-
 .../Sources/Manager/WXComponentManager.h        |    13 +-
 .../Sources/Manager/WXComponentManager.m        |   149 +-
 .../WeexSDK/Sources/Manager/WXTracingManager.h  |     5 +
 .../WeexSDK/Sources/Manager/WXTracingManager.m  |    11 +
 ios/sdk/WeexSDK/Sources/Model/WXComponent.h     |    19 +-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m     |   178 +-
 ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m   |    12 +
 .../WeexSDK/Sources/Module/WXAnimationModule.m  |    26 +-
 .../WeexSDK/Sources/Module/WXModalUIModule.m    |     4 +-
 .../WeexSDK/Sources/Module/WXPrerenderManager.m |    50 +-
 ios/sdk/WeexSDK/Sources/Module/WXTransition.h   |    16 +
 ios/sdk/WeexSDK/Sources/Module/WXTransition.m   |    24 +
 .../WeexSDK/Sources/Module/WXWebSocketModule.m  |     1 -
 ios/sdk/WeexSDK/Sources/Monitor/WXMonitor.h     |     1 +
 ios/sdk/WeexSDK/Sources/Monitor/WXMonitor.m     |     1 +
 .../Sources/Protocol/WXAppMonitorProtocol.h     |     1 +
 ios/sdk/WeexSDK/Sources/Utility/WXConvert.m     |    24 +-
 ios/sdk/WeexSDK/Sources/Utility/WXDefine.h      |     2 +
 ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.h    |    23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.m    |    86 +-
 ios/sdk/WeexSDK/Sources/Utility/WXLog.m         |    15 +-
 ios/sdk/WeexSDK/Sources/Utility/WXUtility.h     |    20 +-
 ios/sdk/WeexSDK/Sources/Utility/WXUtility.m     |     4 +
 .../Sources/View/WXComponent+ViewManagement.m   |     4 +
 .../Sources/WebSocket/SRWebSocket+Weex.h        |    29 -
 .../Sources/WebSocket/SRWebSocket+Weex.m        |    47 -
 .../Sources/WebSocket/WXWebSocketDefaultImpl.h  |    25 -
 .../Sources/WebSocket/WXWebSocketDefaultImpl.m  |   121 -
 ios/sdk/WeexSDK/Sources/WeexSDK.h               |     1 +
 ios/sdk/WeexSDK/dependency/SRWebSocket.h        |   135 -
 ios/sdk/WeexSDK/dependency/SRWebSocket.m        |  1806 -
 package.json                                    |     9 +-
 packages/weex-js-framework/index.js             | 44451 +++++++++--------
 packages/weex-js-framework/index.min.js         |     9 +-
 packages/weex-js-framework/package.json         |     2 +-
 packages/weex-js-runtime/index.js               |   270 +-
 packages/weex-js-runtime/index.min.js           |     6 +-
 packages/weex-js-runtime/index.min.js.gz        |   Bin 13215 -> 0 bytes
 pre-build/native-bundle-main.js                 |    16 +-
 scripts/build_from_source.sh                    |     2 +-
 scripts/generate_apache_release.sh              |     2 +-
 start                                           |     5 +-
 test/pages/components/iconfont.vue              |     6 +-
 test/pages/modules/modal-event.vue              |     2 +-
 test/pages/modules/picker-event.vue             |     6 +-
 test/pages/modules/vue_timer.vue                |    14 +-
 test/pages/modules/we_timer.we                  |    14 +-
 test/run.sh                                     |    25 +-
 test/screenshot/border-android.png              |   Bin 158634 -> 0 bytes
 test/screenshot/border-ios.png                  |   Bin 126185 -> 128088 bytes
 test/screenshot/compositing-ios.png             |   Bin 228306 -> 229534 bytes
 test/screenshot/image-resize-android.png        |   Bin 214440 -> 218804 bytes
 test/screenshot/image-resize-ios.png            |   Bin 138033 -> 138103 bytes
 test/scripts/components/scroll-event.test.js    |     2 +-
 test/scripts/modules/picker-event.test.js       |     4 +-
 225 files changed, 34670 insertions(+), 25587 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/cda836a0/build/config.js
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/cda836a0/html5/render/vue/components/input.js
----------------------------------------------------------------------
diff --cc html5/render/vue/components/input.js
index b9d403d,a3e608b..dcde6f0
--- a/html5/render/vue/components/input.js
+++ b/html5/render/vue/components/input.js
@@@ -19,9 -19,10 +19,9 @@@
  
  /**
   * @fileOverview Input component.
-  * Support v-model only if vue version is large than 2.2.0
+  * Support v-model only if vue version is larger than 2.2.0
   */
 -let extractComponentStyle, createEventMap
 -let extend, mapFormEvents, appendCss
 +let extractComponentStyle, mapFormEvents, appendCss
  
  const ID_PREFIX_PLACEHOLDER_COLOR = 'wipt_plc_'
  const ID_PREFIX_INPUT = 'wipt_'

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/cda836a0/package.json
----------------------------------------------------------------------
diff --cc package.json
index 58a3fcc,8315da2..d52a121
--- a/package.json
+++ b/package.json
@@@ -3,8 -3,8 +3,8 @@@
    "version": "0.12.2",
    "subversion": {
      "browser": "0.5.0",
-     "framework": "0.21.11",
+     "framework": "0.22.4",
 -    "vue-render": "0.12.3",
 +    "vue-render": "0.12.17",
      "transformer": ">=0.1.5 <0.5"
    },
    "description": "A framework for building Mobile cross-platform UI",


[41/47] incubator-weex git commit: * [html5] add feature offset appear.

Posted by gu...@apache.org.
* [html5] add feature offset appear.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/5554d51e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/5554d51e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/5554d51e

Branch: refs/heads/dev
Commit: 5554d51ecd632b1a7826574541efda99240a5105
Parents: 524fbd1
Author: MrRaindrop <te...@gmail.com>
Authored: Mon Sep 25 16:11:35 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Mon Sep 25 16:11:35 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/README.md            |   4 +
 html5/render/vue/mixins/base.js       |   4 +-
 html5/render/vue/utils/component.js   | 160 ++++++++++++++++++-----------
 package.json                          |   2 +-
 packages/weex-vue-render/README.md    |   4 +
 packages/weex-vue-render/package.json |   2 +-
 6 files changed, 112 insertions(+), 64 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5554d51e/html5/render/vue/README.md
----------------------------------------------------------------------
diff --git a/html5/render/vue/README.md b/html5/render/vue/README.md
index d2b8c89..ad7c61f 100644
--- a/html5/render/vue/README.md
+++ b/html5/render/vue/README.md
@@ -176,6 +176,10 @@ vue: {
 
 * not to prevent default behaviour of click events unless the click-binding element is inside a `<a>` link, or it is a `<a>` link and has a `prevent` attribute on it.
 
+#### 0.12.17
+
+* support offset appear.
+
 ## component -> dom map
 
 | component | dom element | children | note |

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5554d51e/html5/render/vue/mixins/base.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/mixins/base.js b/html5/render/vue/mixins/base.js
index 06bc980..28c7703 100644
--- a/html5/render/vue/mixins/base.js
+++ b/html5/render/vue/mixins/base.js
@@ -19,7 +19,6 @@
 import {
   getThrottleLazyload,
   watchAppear,
-  triggerAppear,
   triggerDisappear,
   extend
 } from '../utils'
@@ -73,8 +72,7 @@ export default {
     if (this.$el && (i = j = this.$vnode) && (i = i.data) && (j = j.componentOptions)) {
       this.$el.attrs = extend({}, i.attrs, j.propsData)
     }
-    triggerAppear(this)
-    watchAppear(this)
+    watchAppear(this, true)
   },
 
   destroyed () {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5554d51e/html5/render/vue/utils/component.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/utils/component.js b/html5/render/vue/utils/component.js
index eb8ded7..f1e9ee0 100644
--- a/html5/render/vue/utils/component.js
+++ b/html5/render/vue/utils/component.js
@@ -36,9 +36,52 @@ export function getParentScroller (vm) {
   return _getParentScroller(vm.$parent)
 }
 
-export function hasIntersection (rect, ctRect) {
-  return (rect.left < ctRect.right && rect.right > ctRect.left)
-    && (rect.top < ctRect.bottom && rect.bottom > ctRect.top)
+function horizontalBalance (rect, ctRect) {
+  return rect.left < ctRect.right && rect.right > ctRect.left
+}
+
+function verticalBalance (rect, ctRect) {
+  return rect.top < ctRect.bottom && rect.bottom > ctRect.top
+}
+
+/**
+ * return a data array with two boolean value, which are:
+ * 1. visible in current ct's viewport.
+ * 2. visible with offset in current ct's viewport.
+ */
+export function hasIntersection (rect, ctRect, dir, offset) {
+  dir = dir || 'up'
+  const isHorizontal = dir === 'left' || dir === 'right'
+  const isVertical = dir === 'up' || dir === 'down'
+  if (isHorizontal && !verticalBalance(rect, ctRect)) {
+    return [false, false]
+  }
+  if (isVertical && !horizontalBalance(rect, ctRect)) {
+    return [false, false]
+  }
+  offset = parseInt(offset || 0) * weex.config.env.scale
+  switch (dir) {
+    case 'up':
+      return [
+        rect.top < ctRect.bottom && rect.bottom > ctRect.top,
+        rect.top < ctRect.bottom + offset && rect.bottom > ctRect.top - offset
+      ]
+    case 'down':
+      return [
+        rect.bottom > ctRect.top && rect.top < ctRect.bottom,
+        rect.bottom > ctRect.top - offset && rect.top < ctRect.bottom + offset
+      ]
+    case 'left':
+      return [
+        rect.left < ctRect.right && rect.right > ctRect.left,
+        rect.left < ctRect.right + offset && rect.right > ctRect.left - offset
+      ]
+    case 'right':
+      return [
+        rect.right > ctRect.left && rect.left < ctRect.right,
+        rect.right > ctRect.left - offset && rect.left < ctRect.right + offset
+      ]
+  }
 }
 
 /**
@@ -46,7 +89,7 @@ export function hasIntersection (rect, ctRect) {
  * @param  {HTMLElement}  el    a dom element.
  * @param  {HTMLElement}  container  optional, the container of this el.
  */
-export function isElementVisible (el, container) {
+export function isElementVisible (el, container, dir, offset) {
   if (!el.getBoundingClientRect) { return false }
   const bodyRect = {
     top: 0,
@@ -57,30 +100,11 @@ export function isElementVisible (el, container) {
   const ctRect = (container === document.body)
     ? bodyRect : container
     ? container.getBoundingClientRect() : bodyRect
-  return hasIntersection(
-    el.getBoundingClientRect(),
-    ctRect)
-}
-
-export function isComponentVisible (component) {
-  if (component.$el) {
-    const scroller = getParentScroller(component)
-    if (scroller && scroller.$el) {
-      return hasIntersection(
-        component.$el.getBoundingClientRect(),
-        scroller.$el.getBoundingClientRect()
-      )
-    }
-    else {
-      return isElementVisible(component.$el)
-    }
-  }
-  return false
+  return hasIntersection(el.getBoundingClientRect(), ctRect, dir, offset)
 }
 
 // to trigger the appear/disappear event.
-function triggerEvent (elm, handlers, isShow, dir) {
-  const evt = isShow ? 'appear' : 'disappear'
+function triggerEvent (elm, handlers, evt, dir) {
   let listener = handlers[evt]
   if (listener && listener.fn) {
     listener = listener.fn
@@ -111,16 +135,30 @@ export function getEventHandlers (context) {
   return handlers
 }
 
+function getAppearOffset (el) {
+  return el && el.getAttribute('appear-offset')
+}
+
+function checkHandlers (handlers) {
+  return [
+    !!(handlers.appear || handlers.disappear),
+    !!(handlers.offsetAppear || handlers.offsetDisappear)
+  ]
+}
+
 /**
  * Watch element's visibility to tell whether should trigger a appear/disappear
  * event in scroll handler.
  */
-export function watchAppear (context) {
+export function watchAppear (context, fireNow) {
   const el = context && context.$el
   if (!el) { return }
+  const appearOffset = getAppearOffset(el)
 
   const handlers = getEventHandlers(context)
-  if (!handlers.appear && !handlers.disappear) {
+  const checkResults = checkHandlers(handlers)
+  // no appear or offsetAppear handler was bound.
+  if (!checkResults[0] && !checkResults[1]) {
     return
   }
 
@@ -134,16 +172,23 @@ export function watchAppear (context) {
     isWindow = true
   }
 
+  if (fireNow) {
+    const visibleData = isElementVisible(el, container, null, appearOffset)
+    detectAppear(context, visibleData, null)
+  }
+
   // add current vm to the container's appear watch list.
   if (!container._watchAppearList) {
     container._watchAppearList = []
   }
   container._watchAppearList.push(context)
-  if (container._scrollWatched) { return }
 
   /**
    * Code below will only exec once for binding scroll handler for parent container.
    */
+  if (container._scrollWatched) {
+    return
+  }
   container._scrollWatched = true
   const scrollHandler = throttle(event => {
     /**
@@ -154,42 +199,29 @@ export function watchAppear (context) {
     const scrollTop = isWindow ? window.pageYOffset : container.scrollTop
     const preTop = container._lastScrollTop
     container._lastScrollTop = scrollTop
-    const dir = scrollTop < preTop
+    const dir = (scrollTop < preTop
       ? 'down' : scrollTop > preTop
-      ? 'up' : null
-
+      ? 'up' : container._prevDirection) || null
+    container._prevDirection = dir
     const watchAppearList = container._watchAppearList || []
     const len = watchAppearList.length
     for (let i = 0; i < len; i++) {
       const vm = watchAppearList[i]
-      const visible = isElementVisible(vm.$el, isWindow ? document.body : container)
-      detectAppear(vm, visible, dir)
+      const el = vm.$el
+      const ct = isWindow ? document.body : container
+      const appearOffset = getAppearOffset(el)
+      const visibleData = isElementVisible(el, ct, dir, appearOffset)
+      detectAppear(vm, visibleData, dir)
     }
   }, 25, true)
   container.addEventListener('scroll', scrollHandler, false)
 }
 
 /**
- * trigger a appear event.
- */
-export function triggerAppear (context, visible) {
-  if (!context || !context.$el) { return }
-  if (!visible) {
-    let container = document.body
-    const scroller = getParentScroller(context)
-    if (scroller && scroller.$el) {
-      container = scroller.$el
-    }
-    visible = isElementVisible(context.$el, container)
-  }
-  return detectAppear(context, visible)
-}
-
-/**
  * trigger a disappear event.
  */
 export function triggerDisappear (context) {
-  return detectAppear(context, false)
+  return detectAppear(context, [false, false])
 }
 
 /**
@@ -198,26 +230,36 @@ export function triggerDisappear (context) {
  * @param {boolean} visible
  * @param {string} dir
  */
-export function detectAppear (context, visible, dir = null) {
+export function detectAppear (context, visibleData, dir = null, appearOffset) {
   const el = context && context.$el
+  const [visible, offsetVisible] = visibleData
   if (!el) { return }
   const handlers = getEventHandlers(context)
   /**
    * No matter it's binding appear/disappear or both of them. Always
-   * should test it's visibility and change the context._visible.
+   * should test it's visibility and change the context/._visible.
    * If neithor of them was bound, then just ignore it.
    */
-  if (!handlers['appear'] && !handlers['disappear']) { return }
   /**
    * if the component hasn't appeared for once yet, then it shouldn't trigger
    * a disappear event at all.
    */
-  if (!visible && !context._appearedOnce) { return }
-  if (!context._visible === visible) {
-    if (!context._appearedOnce) {
-      context._appearedOnce = true
+  if (context._appearedOnce || visible) {
+    if (context._visible !== visible) {
+      if (!context._appearedOnce) {
+        context._appearedOnce = true
+      }
+      context._visible = visible
+      triggerEvent(el, handlers, visible ? 'appear' : 'disappear', dir)
+    }
+  }
+  if (context._offsetAppearedOnce || offsetVisible) {
+    if (context._offsetVisible !== offsetVisible) {
+      if (!context._offsetAppearedOnce) {
+        context._offsetAppearedOnce = true
+      }
+      context._offsetVisible = offsetVisible
+      triggerEvent(el, handlers, offsetVisible ? 'offsetAppear' : 'offsetDisappear', dir)
     }
-    context._visible = visible
-    triggerEvent(el, handlers, visible, dir)
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5554d51e/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 49a5d76..d67d637 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
   "subversion": {
     "browser": "0.5.0",
     "framework": "0.21.11",
-    "vue-render": "0.12.16",
+    "vue-render": "0.12.17",
     "transformer": ">=0.1.5 <0.5"
   },
   "description": "A framework for building Mobile cross-platform UI",

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5554d51e/packages/weex-vue-render/README.md
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/README.md b/packages/weex-vue-render/README.md
index d2b8c89..ad7c61f 100644
--- a/packages/weex-vue-render/README.md
+++ b/packages/weex-vue-render/README.md
@@ -176,6 +176,10 @@ vue: {
 
 * not to prevent default behaviour of click events unless the click-binding element is inside a `<a>` link, or it is a `<a>` link and has a `prevent` attribute on it.
 
+#### 0.12.17
+
+* support offset appear.
+
 ## component -> dom map
 
 | component | dom element | children | note |

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5554d51e/packages/weex-vue-render/package.json
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/package.json b/packages/weex-vue-render/package.json
index 57fed3f..c60617b 100644
--- a/packages/weex-vue-render/package.json
+++ b/packages/weex-vue-render/package.json
@@ -1,6 +1,6 @@
 {
   "name": "weex-vue-render",
-  "version": "0.12.16",
+  "version": "0.12.17",
   "description": "Weex built-in components for Vue 2.x.",
   "license": "Apache-2.0",
   "main": "dist/index.common.js",


[36/47] incubator-weex git commit: * [html5] fix loading & refresh: pullingdown wrongly triggered.

Posted by gu...@apache.org.
* [html5] fix loading & refresh: pullingdown wrongly triggered.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/56df42dd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/56df42dd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/56df42dd

Branch: refs/heads/dev
Commit: 56df42ddc13c18ad960c6ef7f4e5c1f9e51d9997
Parents: babd33b
Author: MrRaindrop <te...@gmail.com>
Authored: Fri Sep 15 15:47:12 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Fri Sep 15 15:47:12 2017 +0800

----------------------------------------------------------------------
 .../components/scrollable/mixins/scrollable.js  | 53 +++++++++++---------
 1 file changed, 30 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/56df42dd/html5/render/vue/components/scrollable/mixins/scrollable.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/scrollable/mixins/scrollable.js b/html5/render/vue/components/scrollable/mixins/scrollable.js
index 8f39580..19ffe74 100644
--- a/html5/render/vue/components/scrollable/mixins/scrollable.js
+++ b/html5/render/vue/components/scrollable/mixins/scrollable.js
@@ -225,34 +225,41 @@ export default {
     },
 
     handleTouchMove (event) {
-      if (this._touchParams) {
-        const inner = this.$refs.inner
-        const { startY, reachTop, reachBottom } = this._touchParams
-        if (inner) {
-          const touch = event.changedTouches[0]
-          const offsetY = touch.pageY - startY
-          this._touchParams.offsetY = offsetY
-          if (reachTop && this._refresh) {
-            this._refresh.pullingDown(offsetY)
-          }
-          else if (reachBottom && this._loading) {
-            this._loading.pullingUp(-offsetY)
-          }
+      if (!this._touchParams || !this._refresh && !this._loading) {
+        return
+      }
+      const inner = this.$refs.inner
+      const { startY, reachTop, reachBottom } = this._touchParams
+      if (inner) {
+        const touch = event.changedTouches[0]
+        const offsetY = touch.pageY - startY
+        const dir = offsetY > 0 ? 'down' : 'up'
+        this._touchParams.offsetY = offsetY
+        if (this._refresh && (dir === 'down') && reachTop) {
+          this._refresh.pullingDown(offsetY)
+        }
+        else if (this._loading && (dir === 'up') && reachBottom) {
+          this._loading.pullingUp(-offsetY)
         }
       }
     },
 
     handleTouchEnd (event) {
-      if (this._touchParams) {
-        const inner = this.$refs.inner
-        const { reachTop, reachBottom } = this._touchParams
-        if (inner) {
-          if (reachTop && this._refresh) {
-            this._refresh.pullingEnd()
-          }
-          else if (reachBottom && this._loading) {
-            this._loading.pullingEnd()
-          }
+      if (!this._touchParams || !this._refresh && !this._loading) {
+        return
+      }
+      const inner = this.$refs.inner
+      const { startY, reachTop, reachBottom } = this._touchParams
+      if (inner) {
+        const touch = event.changedTouches[0]
+        const offsetY = touch.pageY - startY
+        const dir = offsetY > 0 ? 'down' : 'up'
+        this._touchParams.offsetY = offsetY
+        if (this._refresh && (dir === 'down') && reachTop) {
+          this._refresh.pullingEnd()
+        }
+        else if (this._loading && (dir === 'up') && reachBottom) {
+          this._loading.pullingEnd()
         }
       }
       delete this._touchParams


[32/47] incubator-weex git commit: * [html5] release v0.12.11 & fix firefox & impl methods of selection range.

Posted by gu...@apache.org.
* [html5] release v0.12.11 & fix firefox & impl methods of selection range.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/f58c820c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/f58c820c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/f58c820c

Branch: refs/heads/dev
Commit: f58c820c3d8b74fb19bfd359e3a0bc00e64ab36f
Parents: 2f3af6f
Author: MrRaindrop <te...@gmail.com>
Authored: Tue Sep 12 15:27:40 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Tue Sep 12 15:27:40 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/README.md            | 9 +++++++++
 package.json                          | 2 +-
 packages/weex-vue-render/README.md    | 9 +++++++++
 packages/weex-vue-render/package.json | 2 +-
 4 files changed, 20 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/f58c820c/html5/render/vue/README.md
----------------------------------------------------------------------
diff --git a/html5/render/vue/README.md b/html5/render/vue/README.md
index d27bdac..d8f241a 100644
--- a/html5/render/vue/README.md
+++ b/html5/render/vue/README.md
@@ -151,6 +151,15 @@ vue: {
 
 * event handling ignore none-vue element.
 
+#### 0.12.10
+
+* fix accessing vm in dom which is not a vue component.
+
+#### 0.12.11
+
+* fix styles in firefox.
+* implement methods about selection range.
+
 ## component -> dom map
 
 | component | dom element | children | note |

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/f58c820c/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index b4b605b..c98bc37 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
   "subversion": {
     "browser": "0.5.0",
     "framework": "0.21.11",
-    "vue-render": "0.12.10",
+    "vue-render": "0.12.11",
     "transformer": ">=0.1.5 <0.5"
   },
   "description": "A framework for building Mobile cross-platform UI",

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/f58c820c/packages/weex-vue-render/README.md
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/README.md b/packages/weex-vue-render/README.md
index d27bdac..d8f241a 100644
--- a/packages/weex-vue-render/README.md
+++ b/packages/weex-vue-render/README.md
@@ -151,6 +151,15 @@ vue: {
 
 * event handling ignore none-vue element.
 
+#### 0.12.10
+
+* fix accessing vm in dom which is not a vue component.
+
+#### 0.12.11
+
+* fix styles in firefox.
+* implement methods about selection range.
+
 ## component -> dom map
 
 | component | dom element | children | note |

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/f58c820c/packages/weex-vue-render/package.json
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/package.json b/packages/weex-vue-render/package.json
index bf978ae..54cefab 100644
--- a/packages/weex-vue-render/package.json
+++ b/packages/weex-vue-render/package.json
@@ -1,6 +1,6 @@
 {
   "name": "weex-vue-render",
-  "version": "0.12.10",
+  "version": "0.12.11",
   "description": "Weex built-in components for Vue 2.x.",
   "license": "Apache-2.0",
   "main": "dist/index.common.js",


[09/47] incubator-weex git commit: * [html5] pack cjs bundle.

Posted by gu...@apache.org.
* [html5] pack cjs bundle.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/52b04970
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/52b04970
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/52b04970

Branch: refs/heads/dev
Commit: 52b04970f38e0121e81d71f79ea96d367011b6ae
Parents: 26646cf
Author: MrRaindrop <te...@gmail.com>
Authored: Wed Aug 23 10:58:52 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Wed Aug 23 10:58:52 2017 +0800

----------------------------------------------------------------------
 build/build.js                        | 8 ++++----
 html5/render/vue/README.md            | 4 ++++
 package.json                          | 2 +-
 packages/weex-vue-render/README.md    | 4 ++++
 packages/weex-vue-render/package.json | 4 ++--
 5 files changed, 15 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/52b04970/build/build.js
----------------------------------------------------------------------
diff --git a/build/build.js b/build/build.js
index 02f1e8c..a191260 100644
--- a/build/build.js
+++ b/build/build.js
@@ -210,12 +210,12 @@ function build (name) {
       return runRollup(config).then(() => {
         let p = Promise.resolve()
         if (name === 'vue') {
-          const esConfig = getConfig(pkgName, false, {
-            format: 'es',
+          const cjsConfig = getConfig(pkgName, false, {
+            format: 'cjs',
             _isProd: true
           })
-          esConfig.dest = esConfig.dest.replace(/\.js$/, '.es.js')
-          p = runRollup(esConfig)
+          cjsConfig.dest = cjsConfig.dest.replace(/\.js$/, '.common.js')
+          p = runRollup(cjsConfig)
         }
         return p.then(function () {
           return runRollup(minifyConfig).then(() => {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/52b04970/html5/render/vue/README.md
----------------------------------------------------------------------
diff --git a/html5/render/vue/README.md b/html5/render/vue/README.md
index eb2d21a..7e507c9 100644
--- a/html5/render/vue/README.md
+++ b/html5/render/vue/README.md
@@ -138,6 +138,10 @@ vue: {
 * fix `modal.toast` on android.
 * fix css prefixer for gradients.
 
+#### 0.12.4
+
+* fix scanning style in production with uglified code.
+
 ## component -> dom map
 
 | component | dom element | children | note |

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/52b04970/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 4579a27..02ad3ed 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
   "subversion": {
     "browser": "0.5.0",
     "framework": "0.21.9",
-    "vue-render": "0.12.3",
+    "vue-render": "0.12.4",
     "transformer": ">=0.1.5 <0.5"
   },
   "description": "A framework for building Mobile cross-platform UI",

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/52b04970/packages/weex-vue-render/README.md
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/README.md b/packages/weex-vue-render/README.md
index eb2d21a..7e507c9 100644
--- a/packages/weex-vue-render/README.md
+++ b/packages/weex-vue-render/README.md
@@ -138,6 +138,10 @@ vue: {
 * fix `modal.toast` on android.
 * fix css prefixer for gradients.
 
+#### 0.12.4
+
+* fix scanning style in production with uglified code.
+
 ## component -> dom map
 
 | component | dom element | children | note |

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/52b04970/packages/weex-vue-render/package.json
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/package.json b/packages/weex-vue-render/package.json
index 8c38634..c6dfb4a 100644
--- a/packages/weex-vue-render/package.json
+++ b/packages/weex-vue-render/package.json
@@ -1,9 +1,9 @@
 {
   "name": "weex-vue-render",
-  "version": "0.12.3",
+  "version": "0.12.4",
   "description": "Weex built-in components for Vue 2.x.",
   "license": "Apache-2.0",
-  "main": "dist/index.js",
+  "main": "dist/index.common.js",
   "repository": {
     "type": "git",
     "url": "git@github.com:apache/incubator-weex.git"


[10/47] incubator-weex git commit: * [html5] add event manager to delegate events.

Posted by gu...@apache.org.
* [html5] add event manager to  delegate events.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/2504db58
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/2504db58
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/2504db58

Branch: refs/heads/dev
Commit: 2504db58d113ae7964d07c934c4fa745b05c2f0c
Parents: 52b0497
Author: MrRaindrop <te...@gmail.com>
Authored: Thu Aug 24 14:52:22 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Thu Aug 24 14:52:22 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/components/a.js                |  19 +--
 html5/render/vue/components/div.js              |   4 +-
 html5/render/vue/components/input.js            |   7 +-
 html5/render/vue/components/scrollable/cell.js  |   3 +-
 .../render/vue/components/scrollable/header.js  |   5 +-
 html5/render/vue/components/scrollable/list.js  |   2 +-
 .../components/scrollable/mixins/scrollable.js  |   6 -
 .../vue/components/scrollable/scroller.js       |   2 +-
 .../vue/components/scrollable/waterfall.js      |   2 +-
 html5/render/vue/components/slider/index.js     |   2 +
 html5/render/vue/config.js                      |   3 +-
 html5/render/vue/core/node.js                   | 117 ++-------------
 html5/render/vue/env/event-manager.js           | 148 +++++++++++++++++++
 html5/render/vue/index.js                       |   4 +
 html5/render/vue/lib/gesture.js                 |   2 +-
 html5/render/vue/utils/event.js                 |  16 ++
 16 files changed, 195 insertions(+), 147 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2504db58/html5/render/vue/components/a.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/a.js b/html5/render/vue/components/a.js
index 1d8946f..ff4a59d 100644
--- a/html5/render/vue/components/a.js
+++ b/html5/render/vue/components/a.js
@@ -28,8 +28,7 @@ let cnt = 0
 function getA (weex) {
   const {
     extractComponentStyle,
-    trimTextVNodes,
-    createEventMap
+    trimTextVNodes
   } = weex
 
   return {
@@ -37,21 +36,6 @@ function getA (weex) {
     props: {
       href: String
     },
-    mounted () {
-      const $el = this.$el
-      const id = $el.id
-
-      /**
-       * if there is a child component already triggered a click handler, then
-       * this link jumping should be prevented.
-       */
-      $el.addEventListener('click', (e) => {
-        const el = e._triggered && e._triggered.el
-        if (el && (el !== $el) && !el.querySelector(`#${id}`)) {
-          e.preventDefault()
-        }
-      })
-    },
     render (createElement) {
       /* istanbul ignore next */
       // if (process.env.NODE_ENV === 'development') {
@@ -64,7 +48,6 @@ function getA (weex) {
           'id': `weex-a-${id}`,
           href: this.href
         },
-        on: createEventMap(this),
         staticClass: 'weex-a weex-ct',
         staticStyle: extractComponentStyle(this)
       }, trimTextVNodes(this.$slots.default))

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2504db58/html5/render/vue/components/div.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/div.js b/html5/render/vue/components/div.js
index 8f05163..8b29a70 100644
--- a/html5/render/vue/components/div.js
+++ b/html5/render/vue/components/div.js
@@ -26,8 +26,7 @@ body > .weex-div {
 function getDiv (weex) {
   const {
     extractComponentStyle,
-    trimTextVNodes,
-    createEventMap
+    trimTextVNodes
   } = weex
 
   return {
@@ -35,7 +34,6 @@ function getDiv (weex) {
     render (createElement) {
       return createElement('html:div', {
         attrs: { 'weex-type': 'div' },
-        on: createEventMap(this),
         staticClass: 'weex-div weex-ct',
         staticStyle: extractComponentStyle(this)
       }, trimTextVNodes(this.$slots.default))

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2504db58/html5/render/vue/components/input.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/input.js b/html5/render/vue/components/input.js
index 0e8d466..b9d403d 100644
--- a/html5/render/vue/components/input.js
+++ b/html5/render/vue/components/input.js
@@ -21,8 +21,7 @@
  * @fileOverview Input component.
  * Support v-model only if vue version is large than 2.2.0
  */
-let extractComponentStyle, createEventMap
-let extend, mapFormEvents, appendCss
+let extractComponentStyle, mapFormEvents, appendCss
 
 const ID_PREFIX_PLACEHOLDER_COLOR = 'wipt_plc_'
 const ID_PREFIX_INPUT = 'wipt_'
@@ -104,7 +103,7 @@ function getInput (weex) {
       if (!this._id) {
         this._id = idCount++
       }
-      const events = extend(createEventMap(this), mapFormEvents(this))
+      const events = mapFormEvents(this)
       return createElement('html:input', {
         attrs: {
           'weex-type': 'input',
@@ -132,8 +131,6 @@ function getInput (weex) {
 export default {
   init (weex) {
     extractComponentStyle = weex.extractComponentStyle
-    createEventMap = weex.createEventMap
-    extend = weex.utils.extend
     mapFormEvents = weex.utils.mapFormEvents
     appendCss = weex.utils.appendCss
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2504db58/html5/render/vue/components/scrollable/cell.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/scrollable/cell.js b/html5/render/vue/components/scrollable/cell.js
index fb6ca1e..e5e8301 100644
--- a/html5/render/vue/components/scrollable/cell.js
+++ b/html5/render/vue/components/scrollable/cell.js
@@ -18,13 +18,12 @@
  */
 
 function getCell (weex) {
-  const { extractComponentStyle, createEventMap } = weex
+  const { extractComponentStyle } = weex
   return {
     name: 'weex-cell',
     render (createElement) {
       return createElement('section', {
         attrs: { 'weex-type': 'cell' },
-        on: createEventMap(this),
         staticClass: 'weex-cell weex-ct',
         staticStyle: extractComponentStyle(this)
       }, this.$slots.default)

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2504db58/html5/render/vue/components/scrollable/header.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/scrollable/header.js b/html5/render/vue/components/scrollable/header.js
index 35fe72a..5abd78e 100644
--- a/html5/render/vue/components/scrollable/header.js
+++ b/html5/render/vue/components/scrollable/header.js
@@ -18,7 +18,7 @@
  */
 
 function getHeader (weex) {
-  const { extractComponentStyle, createEventMap } = weex
+  const { extractComponentStyle } = weex
   const { supportSticky } = weex.utils
 
   return {
@@ -33,7 +33,7 @@ function getHeader (weex) {
 
     mounted () {
       this.initTop = this.$el.offsetTop
-      this.placeholder = window.document.createElement('div')
+      this.placeholder = window.document.createElement('header')
     },
 
     updated () {
@@ -68,7 +68,6 @@ function getHeader (weex) {
       // }
       return createElement('html:header', {
         attrs: { 'weex-type': 'header' },
-        on: createEventMap(this),
         ref: 'header',
         staticClass: 'weex-header weex-ct',
         class: { 'weex-sticky': this.sticky, 'weex-ios-sticky': this.supportSticky },

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2504db58/html5/render/vue/components/scrollable/list.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/scrollable/list.js b/html5/render/vue/components/scrollable/list.js
index aa6740b..77f8926 100644
--- a/html5/render/vue/components/scrollable/list.js
+++ b/html5/render/vue/components/scrollable/list.js
@@ -44,7 +44,7 @@ function getList (weex) {
           return true
         })
         return [
-          h('html:div', {
+          h('article', {
             ref: 'inner',
             staticClass: 'weex-list-inner weex-ct'
           }, this._cells)

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2504db58/html5/render/vue/components/scrollable/mixins/scrollable.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/scrollable/mixins/scrollable.js b/html5/render/vue/components/scrollable/mixins/scrollable.js
index 0d78db9..8f39580 100644
--- a/html5/render/vue/components/scrollable/mixins/scrollable.js
+++ b/html5/render/vue/components/scrollable/mixins/scrollable.js
@@ -211,8 +211,6 @@ export default {
     },
 
     handleTouchStart (event) {
-      // event.preventDefault()
-      // event.stopPropagation()
       if (this._loading || this._refresh) {
         const touch = event.changedTouches[0]
         this._touchParams = {
@@ -227,8 +225,6 @@ export default {
     },
 
     handleTouchMove (event) {
-      // event.preventDefault()
-      // event.stopPropagation()
       if (this._touchParams) {
         const inner = this.$refs.inner
         const { startY, reachTop, reachBottom } = this._touchParams
@@ -247,8 +243,6 @@ export default {
     },
 
     handleTouchEnd (event) {
-      // event.preventDefault()
-      // event.stopPropagation()
       if (this._touchParams) {
         const inner = this.$refs.inner
         const { reachTop, reachBottom } = this._touchParams

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2504db58/html5/render/vue/components/scrollable/scroller.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/scrollable/scroller.js b/html5/render/vue/components/scrollable/scroller.js
index 56e83d4..655edcf 100644
--- a/html5/render/vue/components/scrollable/scroller.js
+++ b/html5/render/vue/components/scrollable/scroller.js
@@ -65,7 +65,7 @@ function getScroller (weex) {
           return true
         })
         return [
-          h('html:div', {
+          h('article', {
             ref: 'inner',
             staticClass: 'weex-scroller-inner weex-ct'
           }, this._cells)

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2504db58/html5/render/vue/components/scrollable/waterfall.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/scrollable/waterfall.js b/html5/render/vue/components/scrollable/waterfall.js
index 82b2295..9052994 100644
--- a/html5/render/vue/components/scrollable/waterfall.js
+++ b/html5/render/vue/components/scrollable/waterfall.js
@@ -124,7 +124,7 @@ function getWaterfall (weex) {
         }, this._columns))
         this._loading && children.push(this._loading)
         return [
-          h('html:div', {
+          h('article', {
             ref: 'inner',
             staticClass: 'weex-waterfall-inner weex-ct'
           }, children)

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2504db58/html5/render/vue/components/slider/index.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/slider/index.js b/html5/render/vue/components/slider/index.js
index cd9d4ec..80699d9 100644
--- a/html5/render/vue/components/slider/index.js
+++ b/html5/render/vue/components/slider/index.js
@@ -18,11 +18,13 @@
  */
 
 import slider from './slider'
+import neighbor from './slider-neighbor'
 import indicator from './indicator'
 
 export default {
   init (weex) {
     weex.install(slider)
+    weex.install(neighbor)
     weex.install(indicator)
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2504db58/html5/render/vue/config.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/config.js b/html5/render/vue/config.js
index bccf1e3..0858b2f 100644
--- a/html5/render/vue/config.js
+++ b/html5/render/vue/config.js
@@ -23,7 +23,6 @@ export default {
     'panmove',
     'panend',
     'swipe',
-    'longpress',
-    'tap'
+    'longpress'
   ]
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2504db58/html5/render/vue/core/node.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/core/node.js b/html5/render/vue/core/node.js
index d515ea5..caf4230 100644
--- a/html5/render/vue/core/node.js
+++ b/html5/render/vue/core/node.js
@@ -17,11 +17,8 @@
  * under the License.
  */
 
-import { isArray, createEvent, createBubblesEvent } from '../utils'
-import config from '../config'
+import { isArray } from '../utils'
 
-// The space used to store the tap event queue
-const _tapQueue = []
 /**
  * remove text nodes in the nodes array.
  * @param  {Array} nodes
@@ -35,20 +32,6 @@ export function trimTextVNodes (vnodes) {
 }
 
 /**
- * is a element in a '<a>' tag?
- * @param {HTMLElement} el
- */
-function isInANode (el) {
-  let parent = el.parentNode
-  while (parent && parent !== document.body) {
-    if (parent.tagName.toLowerCase() === 'a') {
-      return true
-    }
-    parent = parent.parentNode
-  }
-}
-
-/**
  * get listeners from on config and v-on binding.
  * v-on binding has a priority over on config.
  * @param {vnode} vnode
@@ -70,20 +53,13 @@ function getListeners (vnode, evt) {
   return handlers
 }
 
-const supportedEvents = [
-  'longpress', 'appear', 'disappear',
-  'touchstart', 'touchmove', 'touchend',
-  'panstart', 'panmove', 'panend', 'swipe', 'longpress'
-]
-
 /**
  * emit native events to enable v-on.
  * @param {VComponent} context: which one to emit a event on.
- * @param {array | object} extras: extra events. You can pass in multiple arguments here.
+ * @param {array | object} events: extra events. You can pass in multiple arguments here.
  */
-export function createEventMap (context, ...extras) {
+export function createEventMap (context, ...events) {
   const eventMap = {}
-  const gestureEvents = config.gestureEvents
   /**
    * Bind some original type event to your specified type event handler.
    * e.g. bind 'tap' event to 'click' event listener: bindFunc('tap')('click').
@@ -99,17 +75,14 @@ export function createEventMap (context, ...extras) {
       else if (typeof listenTo === 'string') {
         handler = function (e) {
           /**
-           * 1. use '_triggered' to control actural bubbling (allow original bubbling).
-           * 2. use '_for' to distinguish from gesture events generated by other
-           *    not-vue-render librarys.
+           * use '_triggered' to control actural bubbling (allow original bubbling).
            */
-          if (e._triggered
-            || gestureEvents.indexOf(originalType) > -1
-            && e._for !== 'weex') {
+          if (e._triggered) {
             return
           }
-          // but should trigger the closest parent which has bound the
-          // event handler.
+          /**
+           * trigger the closest parent which has bound event handlers.
+           */
           let vm = context
           while (vm) {
             const ons = getListeners(vm.$vnode, listenTo)
@@ -121,18 +94,7 @@ export function createEventMap (context, ...extras) {
                 if (on && on.fn) {
                   on = on.fn
                 }
-                let evt = e
-                if (originalType && evtName !== listenTo) {
-                  if (listenTo === 'click') {
-                    // dispatch real target click event befor calling listeners
-                    evt = createBubblesEvent(e.target, 'click', { _triggered: { el: e.target }})
-                    e.target.dispatchEvent(evt)
-                  }
-                  else {
-                    evt = createEvent(e.target, listenTo)
-                  }
-                }
-                on && on.call(vm, evt)
+                on && on.call(vm, e)
                 idx++
               }
               // once a parent node (or self node) has triggered the handler, then
@@ -140,15 +102,6 @@ export function createEventMap (context, ...extras) {
               e._triggered = {
                 el: vm.$el
               }
-              // when originalType is tap, push a tapEvent to _tapQueue
-              // el is uesed to store a real target which dispach this event
-              if (originalType === 'tap') {
-                const tapEvent = {
-                  el: e.target,
-                  event: e
-                }
-                _tapQueue.push(tapEvent)
-              }
               return
             }
             vm = vm.$parent
@@ -163,20 +116,14 @@ export function createEventMap (context, ...extras) {
   }
 
   /**
-   * 1. Dispatch default supported events directly to user's event listeners. These
-   * listeners will be triggered before extras event handlers.
-   */
-  supportedEvents.forEach(bindFunc())
-
-  /**
-   * 2. component's extra event bindings. This is mostly for the needs of component's
+   * component's extra event bindings. This is mostly for the needs of component's
    * own special behaviours. These handlers will be processed after the user's
    * corresponding event handlers.
    */
-  if (extras) {
-    const len = extras.length
+  if (events) {
+    const len = events.length
     for (let i = 0; i < len; i++) {
-      const extra = extras[i]
+      const extra = events[i]
       if (isArray(extra)) {
         extra.forEach(bindFunc())
       }
@@ -188,43 +135,5 @@ export function createEventMap (context, ...extras) {
     }
   }
 
-  /**
-   * 3. special binding for click event, which should be a fastclick event without
-   * 300ms latency.
-   */
-  bindFunc('tap')('click')
-  /**
-   * Special treatment for click event:
-   * we already use tap to trigger click event, so the click event should:
-   * 1. trigger none of any vm's click listeners.
-   * 2. prevent default behaviour for a `<a>` element.
-   * 3. stop propagation if triggered already.
-   * 4. set a _triggered flag to the event object if triggered already.
-   * This means the click event should always be swallowed in silence.
-   */
-  bindFunc('click')(function (e) {
-    let vm = context
-    if (e._triggered) {
-      return
-    }
-    if (_tapQueue.length > 0) {
-      const _tapEvent = _tapQueue.shift()
-      if (e.target !== _tapEvent.el) {
-        e.preventDefault()
-      }
-      // prevent click events from bubbling,because event bubbling has been handled in the tap event
-      e.stopPropagation()
-    }
-    // if an element(not <a>) handler click event in <a> element,call stopPropagation and preventDefault on event
-    while (vm) {
-      const ons = getListeners(vm.$vnode, 'click')
-      const len = ons.length
-      if (len > 0 && vm.$el) {
-        e._triggered = { el: vm.$el }
-        return isInANode(vm.$el) && e.preventDefault()
-      }
-      vm = vm.$parent
-    }
-  })
   return eventMap
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2504db58/html5/render/vue/env/event-manager.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/env/event-manager.js b/html5/render/vue/env/event-manager.js
new file mode 100644
index 0000000..1a57f84
--- /dev/null
+++ b/html5/render/vue/env/event-manager.js
@@ -0,0 +1,148 @@
+/*
+ * 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 config from '../config'
+import { createEvent, supportsPassive } from '../utils'
+
+const gestureEvents = config.gestureEvents
+const touchEvents = ['touchstart', 'touchmove', 'touchend']
+const needPassive = ['touchmove']
+
+const events = gestureEvents.concat(touchEvents)
+
+// /**
+//  * is a element in a '<a>' tag?
+//  * @param {HTMLElement} el
+//  */
+// function isInANode (el) {
+//   let parent = el.parentNode
+//   while (parent && parent !== document.body) {
+//     if (parent.tagName.toLowerCase() === 'a') {
+//       return true
+//     }
+//     parent = parent.parentNode
+//   }
+// }
+
+/**
+ * if el is a `<a>` element.
+ * @param {HTMLElement} el
+ */
+function isANode (el) {
+  return el.tagName.toLowerCase() === 'a'
+}
+
+/**
+ * get listeners from on config and v-on binding.
+ * v-on binding has a priority over on config.
+ * @param {vnode} vnode
+ * @param {String} evt: event name.
+ */
+function getListeners (vnode, evt) {
+  const handlers = []
+  while (vnode) {
+    if (vnode.data && vnode.data.on) {
+      const handler = vnode.data.on[evt]
+      handler && handlers.push(handler)
+    }
+    if (vnode.componentOptions && vnode.componentOptions.listeners) {
+      const handler = vnode.componentOptions.listeners[evt]
+      handler && handlers.push(handler)
+    }
+    vnode = vnode.parent
+  }
+  return handlers
+}
+
+let _inited = false
+function _init (doc) {
+  if (_inited) {
+    return
+  }
+  if (!doc) {
+    return
+  }
+  _inited = true
+  const _sp = supportsPassive()
+  events.forEach(function (evt) {
+    const option = needPassive.indexOf(evt) > -1 && _sp
+      ? { passive: true }
+      : false
+    doc.addEventListener(evt, function (e) {
+      const el = e.target
+      let vm = el.__vue__
+      let disposed = false
+
+      /**
+       * take full control of redirection of <a> element.
+       */
+      if (evt === 'click') {
+        e.preventDefault()
+      }
+
+      while (vm) {
+        const vnode = vm.$vnode || vm._vnode
+        const elm = vm.$el
+        const ons = getListeners(vnode, evt)
+        const len = ons && ons.length
+
+        if (len > 0) {
+          for (let i = 0; i < len; i++) {
+            let handler = ons[i]
+            if (handler && handler.fn) {
+              handler = handler.fn
+            }
+            // create a no bubble event.
+            const newEvt = createEvent(el, evt)
+            handler && handler.call(vm, newEvt)
+          }
+          e._triggered = { target: vm.$el }
+          disposed = true
+        }
+
+        /**
+         * if the handler is binding on a <a> element, should trigger
+         * the handler first and then jump to href.
+         * NOTE: if target==='_blank' then do no jumping and dispatch the
+         * click event to document.body for further disposing.
+         */
+        if (evt === 'click' && isANode(elm)) {
+          const href = elm.getAttribute('href')
+          const target = elm.getAttribute('target')
+          disposed = true
+          if (target !== '_blank') {
+            location.href = href
+          }
+          else {
+            document.body.dispatchEvent(e)
+          }
+        }
+
+        if (disposed) {
+          return
+        }
+        vm = vm.$parent
+      }
+    }, option)
+  })
+}
+
+export default function init () {
+  _init(document)
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2504db58/html5/render/vue/index.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/index.js b/html5/render/vue/index.js
index 8a00a57..038f67a 100644
--- a/html5/render/vue/index.js
+++ b/html5/render/vue/index.js
@@ -20,6 +20,8 @@ import weex from './env'
 import { setVue } from './env'
 import { base, style, sticky } from './mixins'
 
+import initEventMgr from './env/event-manager'
+
 /**
  * init weex.
  * @param  {Vue$2} Vue: Vue Constructor.
@@ -46,6 +48,8 @@ function init (Vue/*, options = {}*/) {
   Vue.mixin(base)
   Vue.mixin(style)
   Vue.mixin(sticky)
+
+  initEventMgr()
 }
 
 // auto init in dist mode.

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2504db58/html5/render/vue/lib/gesture.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/lib/gesture.js b/html5/render/vue/lib/gesture.js
index 62ad226..5f72b3c 100644
--- a/html5/render/vue/lib/gesture.js
+++ b/html5/render/vue/lib/gesture.js
@@ -384,7 +384,7 @@ function touchendHandler(event) {
     if (gesture.status === 'tapping') {
       gesture.timestamp = Date.now()
       // fire click, not tap.
-      fireEvent(gesture.element, 'tap', {
+      fireEvent(gesture.element, 'click', /* 'tap',  */{
         touch: touch,
         touchEvent: event
       })

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2504db58/html5/render/vue/utils/event.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/utils/event.js b/html5/render/vue/utils/event.js
index c5f8c38..ad14ae8 100644
--- a/html5/render/vue/utils/event.js
+++ b/html5/render/vue/utils/event.js
@@ -28,6 +28,22 @@ function extend (to, ...args) {
   return to
 }
 
+// if support passive event listeners.
+let _supportsPassive = false
+try {
+  document.createElement('div').addEventListener('test', _ => {}, {
+    get passive () {
+      _supportsPassive = true
+    }
+  })
+}
+catch (e) {
+  // do nothing.
+}
+export function supportsPassive () {
+  return _supportsPassive
+}
+
 /**
  * Create Event.
  * @param {DOMString} type


[40/47] incubator-weex git commit: * [html5] fix ci.

Posted by gu...@apache.org.
* [html5] fix ci.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/3c2ad1c3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/3c2ad1c3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/3c2ad1c3

Branch: refs/heads/dev
Commit: 3c2ad1c39b8f328fd49f2314c99fcc48774ee51f
Parents: 524fbd1
Author: MrRaindrop <te...@gmail.com>
Authored: Mon Sep 25 11:18:10 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Mon Sep 25 11:18:10 2017 +0800

----------------------------------------------------------------------
 package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3c2ad1c3/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 49a5d76..e3f224a 100644
--- a/package.json
+++ b/package.json
@@ -166,7 +166,7 @@
     "uglify-js": "^2.8.29",
     "vue": "^2.4.3",
     "vue-loader": "^12.2.1",
-    "vue-template-compiler": "^2.2.6",
+    "vue-template-compiler": "^2.4.3",
     "webpack": "^1.13.1",
     "weex-components": "^0.2.0",
     "weex-gcanvas": "^0.4.2",


[33/47] incubator-weex git commit: * [html5] fix vue2.4.3

Posted by gu...@apache.org.
* [html5] fix vue2.4.3


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/2cf16754
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/2cf16754
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/2cf16754

Branch: refs/heads/dev
Commit: 2cf16754205ec74fd4e646fecf36db84ced5b588
Parents: f58c820
Author: MrRaindrop <te...@gmail.com>
Authored: Thu Sep 14 13:53:26 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Thu Sep 14 13:53:26 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/index.js | 11 +++++++++++
 package.json              |  2 +-
 2 files changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2cf16754/html5/render/vue/index.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/index.js b/html5/render/vue/index.js
index 038f67a..bd0016d 100644
--- a/html5/render/vue/index.js
+++ b/html5/render/vue/index.js
@@ -45,6 +45,17 @@ function init (Vue/*, options = {}*/) {
   Vue.config.isReservedTag = tag => htmlRegex.test(tag)
   Vue.config.parsePlatformTagName = tag => tag.replace(htmlRegex, '')
 
+  function isWeexTag (tag) {
+    return !!weex._components[tag]
+  }
+  const oldGetTagNamespace = Vue.config.getTagNamespace
+  Vue.config.getTagNamespace = function (tag) {
+    if (isWeexTag(tag)) {
+      return
+    }
+    return oldGetTagNamespace(tag)
+  }
+
   Vue.mixin(base)
   Vue.mixin(style)
   Vue.mixin(sticky)

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2cf16754/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index c98bc37..fa2a332 100644
--- a/package.json
+++ b/package.json
@@ -164,7 +164,7 @@
     "sinon": "^2.1.0",
     "sinon-chai": "^2.8.0",
     "uglify-js": "^2.8.29",
-    "vue": "^2.2.6",
+    "vue": "^2.4.3",
     "vue-loader": "^12.2.1",
     "vue-template-compiler": "^2.2.6",
     "webpack": "^1.13.1",


[06/47] incubator-weex git commit: Merge branch '0.16-dev' into 0.16-dev-web

Posted by gu...@apache.org.
Merge branch '0.16-dev' into 0.16-dev-web


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/77ab0f86
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/77ab0f86
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/77ab0f86

Branch: refs/heads/dev
Commit: 77ab0f863ca57a51637a0c391bec42f7254fa0b9
Parents: 486c6f4 4bd54da
Author: MrRaindrop <te...@gmail.com>
Authored: Mon Aug 21 14:19:09 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Mon Aug 21 14:19:09 2017 +0800

----------------------------------------------------------------------
 examples/vue/index.vue                  |   4 +-
 examples/vue/showcase/a-node-click.vue  |  74 ++++++++++
 examples/vue/showcase/tap-penetrate.vue | 206 +++++++++++++++++++++++++++
 html5/render/vue/core/node.js           |  64 ++++++---
 html5/render/vue/utils/event.js         |  32 ++++-
 html5/test/render/vue/core/node.js      |   1 -
 html5/test/render/vue/utils/event.js    |  10 ++
 7 files changed, 364 insertions(+), 27 deletions(-)
----------------------------------------------------------------------



[11/47] incubator-weex git commit: * [html5] update slider version.

Posted by gu...@apache.org.
* [html5] update slider version.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/3153784a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/3153784a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/3153784a

Branch: refs/heads/dev
Commit: 3153784a73c12abd7dc8880d83ebd9de61c90366
Parents: 2504db5
Author: MrRaindrop <te...@gmail.com>
Authored: Thu Aug 24 14:52:56 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Thu Aug 24 14:52:56 2017 +0800

----------------------------------------------------------------------
 packages/weex-vue-plugins/weex-vue-slider/package.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3153784a/packages/weex-vue-plugins/weex-vue-slider/package.json
----------------------------------------------------------------------
diff --git a/packages/weex-vue-plugins/weex-vue-slider/package.json b/packages/weex-vue-plugins/weex-vue-slider/package.json
index 427fdc2..1b0d8a5 100644
--- a/packages/weex-vue-plugins/weex-vue-slider/package.json
+++ b/packages/weex-vue-plugins/weex-vue-slider/package.json
@@ -1,6 +1,6 @@
 {
   "name": "weex-vue-slider",
-  "version": "0.1.2",
+  "version": "0.1.3",
   "description": "Weex built-in 'slider' and 'slider-neighbor' component for Vue 2.x.",
   "license": "Apache-2.0",
   "main": "dist/index.js",


[17/47] incubator-weex git commit: * [html5] fix call loop.

Posted by gu...@apache.org.
* [html5] fix call loop.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/31411dd4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/31411dd4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/31411dd4

Branch: refs/heads/dev
Commit: 31411dd4afd383cb4a25bd666830615c9c14e6d5
Parents: 902a1f7
Author: MrRaindrop <te...@gmail.com>
Authored: Fri Aug 25 15:19:01 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Fri Aug 25 15:19:01 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/README.md            |  2 +-
 html5/render/vue/core/node.js         | 33 +++++++++++++++++++++++++-----
 html5/render/vue/env/event-manager.js | 19 ++++++++---------
 package.json                          |  2 +-
 packages/weex-vue-render/README.md    |  2 +-
 packages/weex-vue-render/package.json |  2 +-
 6 files changed, 41 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/31411dd4/html5/render/vue/README.md
----------------------------------------------------------------------
diff --git a/html5/render/vue/README.md b/html5/render/vue/README.md
index 41df16b..bcdd2de 100644
--- a/html5/render/vue/README.md
+++ b/html5/render/vue/README.md
@@ -142,7 +142,7 @@ vue: {
 
 * fix scanning style in production with uglified code.
 
-#### 0.12.6
+#### 0.12.8
 
 * optimize event binding.
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/31411dd4/html5/render/vue/core/node.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/core/node.js b/html5/render/vue/core/node.js
index d38cafd..4cef067 100644
--- a/html5/render/vue/core/node.js
+++ b/html5/render/vue/core/node.js
@@ -54,6 +54,30 @@ function getListeners (vnode, evt) {
 }
 
 /**
+ * Instead of vue's invoker, this function should check if the binding function
+ * has a _weex_hook flag. If there is one, the handler should not be triggered.
+ * @param {Array | Function} fns
+ */
+export function applyFns (fns, ...args) {
+  if (Array.isArray(fns)) {
+    const cloned = fns.slice()
+    const len = cloned.length
+    for (let i = 0; i < len; i++) {
+      const fn = cloned[i]
+      if (fn._weex_hook) {
+        continue
+      }
+      fn.apply(null, args)
+    }
+  }
+  else {
+    if (!fns._weex_hook) {
+      fns.apply(null, args)
+    }
+  }
+}
+
+/**
  * emit native events to enable v-on.
  * @param {VComponent} context: which one to emit a event on.
  * @param {array | object} events: extra events. You can pass in multiple arguments here.
@@ -90,11 +114,8 @@ export function createEventMap (context, ...events) {
             if (len > 0) {
               let idx = 0
               while (idx < len) {
-                let on = ons[idx]
-                if (on && on.fn) {
-                  on = on.fn
-                }
-                on && on.call(vm, e)
+                const on = ons[idx]
+                applyFns(on.fns, e)
                 idx++
               }
               // once a parent node (or self node) has triggered the handler, then
@@ -107,6 +128,8 @@ export function createEventMap (context, ...events) {
             vm = vm.$parent
           }
         }
+        // flag to distinguish from user-binding listeners.
+        handler._weex_hook = true
       }
       if (!eventMap[evtName]) {
         eventMap[evtName] = []

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/31411dd4/html5/render/vue/env/event-manager.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/env/event-manager.js b/html5/render/vue/env/event-manager.js
index 3ecf618..c19a649 100644
--- a/html5/render/vue/env/event-manager.js
+++ b/html5/render/vue/env/event-manager.js
@@ -19,6 +19,7 @@
 
 import config from '../config'
 import { createEvent, supportsPassive } from '../utils'
+import { applyFns } from '../core'
 
 const gestureEvents = config.gestureEvents
 const nativeEvents = ['click', 'touchstart', 'touchmove', 'touchend']
@@ -112,13 +113,11 @@ function _init (doc) {
 
         if (len > 0) {
           for (let i = 0; i < len; i++) {
-            let handler = ons[i]
-            if (handler && handler.fn) {
-              handler = handler.fn
-            }
-            // create a no bubble event.
-            const newEvt = createEvent(el, evt)
-            handler && handler.call(vm, newEvt)
+            const handler = ons[i]
+            const newEvt = evtName === 'click'
+              ? createEvent(el, evtName)
+              : e
+            applyFns(handler.fns, newEvt)
           }
           e._triggered = { target: vm.$el }
           disposed = true
@@ -127,8 +126,8 @@ function _init (doc) {
         /**
          * if the handler is binding on a <a> element, should trigger
          * the handler first and then jump to href.
-         * NOTE: if target==='_blank' then do no jumping and dispatch the
-         * click event to document.body for further disposing.
+         * NOTE: if target==='_blank' then do no jumping and leave it
+         * to users binding handlers for further disposing.
          */
         if (evtName === 'click' && isANode(elm)) {
           const href = elm.getAttribute('href')
@@ -138,7 +137,7 @@ function _init (doc) {
             location.href = href
           }
           else {
-            document.body.dispatchEvent(e)
+            // do nothing.
           }
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/31411dd4/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 47b84dd..0b79cde 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
   "subversion": {
     "browser": "0.5.0",
     "framework": "0.21.11",
-    "vue-render": "0.12.7",
+    "vue-render": "0.12.8",
     "transformer": ">=0.1.5 <0.5"
   },
   "description": "A framework for building Mobile cross-platform UI",

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/31411dd4/packages/weex-vue-render/README.md
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/README.md b/packages/weex-vue-render/README.md
index 41df16b..bcdd2de 100644
--- a/packages/weex-vue-render/README.md
+++ b/packages/weex-vue-render/README.md
@@ -142,7 +142,7 @@ vue: {
 
 * fix scanning style in production with uglified code.
 
-#### 0.12.6
+#### 0.12.8
 
 * optimize event binding.
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/31411dd4/packages/weex-vue-render/package.json
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/package.json b/packages/weex-vue-render/package.json
index 1262ef1..b29cfdc 100644
--- a/packages/weex-vue-render/package.json
+++ b/packages/weex-vue-render/package.json
@@ -1,6 +1,6 @@
 {
   "name": "weex-vue-render",
-  "version": "0.12.7",
+  "version": "0.12.8",
   "description": "Weex built-in components for Vue 2.x.",
   "license": "Apache-2.0",
   "main": "dist/index.common.js",


[22/47] incubator-weex git commit: * [html5] intercept the a-jump.

Posted by gu...@apache.org.
* [html5] intercept the a-jump.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/b8aae6ff
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/b8aae6ff
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/b8aae6ff

Branch: refs/heads/dev
Commit: b8aae6ffc9e95677641046a7dd47b1e3650028e0
Parents: 0ae0fcf
Author: MrRaindrop <te...@gmail.com>
Authored: Mon Sep 4 18:34:22 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Mon Sep 4 18:34:22 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/env/event-manager.js | 38 +++++++++++++-----------------
 1 file changed, 17 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b8aae6ff/html5/render/vue/env/event-manager.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/env/event-manager.js b/html5/render/vue/env/event-manager.js
index 243daa0..06a00a3 100644
--- a/html5/render/vue/env/event-manager.js
+++ b/html5/render/vue/env/event-manager.js
@@ -27,20 +27,6 @@ const needPassive = ['touchmove']
 
 const events = gestureEvents.concat(nativeEvents)
 
-// /**
-//  * is a element in a '<a>' tag?
-//  * @param {HTMLElement} el
-//  */
-// function isInANode (el) {
-//   let parent = el.parentNode
-//   while (parent && parent !== document.body) {
-//     if (parent.tagName.toLowerCase() === 'a') {
-//       return true
-//     }
-//     parent = parent.parentNode
-//   }
-// }
-
 /**
  * if el is a `<a>` element.
  * @param {HTMLElement} el
@@ -82,7 +68,12 @@ function _init (doc) {
   _inited = true
   const _sp = supportsPassive()
   events.forEach(function (evt) {
-    const option = evt === 'click' 
+    /**
+     * use capture for click handling, therefore there's a chance to handle
+     * it before any other listeners binding on document or document.body.
+     */
+    const option =
+      evt === 'click'
       ? true : needPassive.indexOf(evt) > -1 && _sp
       ? { passive: true } : false
     doc.addEventListener(evt, function (e) {
@@ -133,19 +124,24 @@ function _init (doc) {
          */
         if (evtName === 'click' && isANode(elm)) {
           const href = elm.getAttribute('href')
-          const target = elm.getAttribute('target')
           disposed = true
-          if (target !== '_blank') {
+          /**
+           * Give the chance to the listeners binding on doc or doc.body for
+           * handling the a-jump.
+           * Should set a _should_intercept_a_jump function on window to test
+           * whether we should intercept the a-jump.
+           */
+          if (window._should_intercept_a_jump && window._should_intercept_a_jump(elm)) {
+            // do nothing. leave it to the intercept handler.
+          }
+          else {
             if (!!href) {
               location.href = href
             }
             else {
-              console.warn('[weex-vue-render] If you want to use the A tag jump, set the href attribute')
+              console.warn('[vue-render] If you want to use the A tag jump, set the href attribute')
             }
           }
-          else {
-            // do nothing.
-          }
         }
 
         if (disposed) {


[14/47] incubator-weex git commit: Merge branch '0.16-dev' into 0.16-dev-web

Posted by gu...@apache.org.
Merge branch '0.16-dev' into 0.16-dev-web


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/768b13ae
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/768b13ae
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/768b13ae

Branch: refs/heads/dev
Commit: 768b13ae7d150b438bc1fc2fd392d38dd3a3a3a3
Parents: 316dfa2 53dfdbf
Author: MrRaindrop <te...@gmail.com>
Authored: Thu Aug 24 18:00:00 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Thu Aug 24 18:00:00 2017 +0800

----------------------------------------------------------------------
 .../commons/adapter/FrescoImageComponent.java   |     2 +-
 .../java/com/alibaba/weex/WXPageActivity.java   |     9 +-
 android/sdk/libs/armeabi/libweexjsb.so          |   Bin 0 -> 22556 bytes
 android/sdk/libs/armeabi/libweexjsc.so          |   Bin 7570392 -> 325660 bytes
 android/sdk/libs/armeabi/libweexjss.so          |   Bin 0 -> 6754012 bytes
 .../java/com/taobao/weex/WXEnvironment.java     |    16 +-
 .../main/java/com/taobao/weex/WXSDKEngine.java  |     3 +-
 .../java/com/taobao/weex/WXSDKInstance.java     |    38 +-
 .../taobao/weex/adapter/IDrawableLoader.java    |    11 +-
 .../java/com/taobao/weex/bridge/WXBridge.java   |    14 +
 .../com/taobao/weex/bridge/WXBridgeManager.java |   175 +-
 .../java/com/taobao/weex/common/IWXBridge.java  |     2 +
 .../com/taobao/weex/common/WXErrorCode.java     |    14 +-
 .../taobao/weex/common/WXJSBridgeMsgType.java   |     2 +
 .../com/taobao/weex/dom/action/Actions.java     |     3 +
 .../weex/dom/action/ReloadPageAction.java       |    64 +
 .../taobao/weex/dom/action/TraceableAction.java |     1 +
 .../ui/component/AbstractEditComponent.java     |     4 +-
 .../com/taobao/weex/ui/component/WXImage.java   |    75 +-
 .../com/taobao/weex/ui/component/WXText.java    |    52 +-
 .../ui/component/list/BasicListComponent.java   |     7 +-
 .../com/taobao/weex/ui/view/WXImageView.java    |    16 +-
 .../com/taobao/weex/utils/ImageDrawable.java    |    17 +-
 .../com/taobao/weex/utils/TypefaceUtil.java     |     8 +
 .../java/com/taobao/weex/utils/WXUtils.java     |    52 +-
 .../taobao/weex/bridge/WXWebsocketBridge.java   |     6 +
 dangerfile.js                                   |     1 +
 examples/vue/index.vue                          |     1 -
 examples/vue/transition.vue                     |    75 +
 html5/frameworks/legacy/app/differ.js           |     2 +-
 html5/frameworks/legacy/vm/directive.js         |     2 +-
 .../complex/component-append-tree.output.js     |    22 +
 .../complex/component-append-tree.source.js     |    87 +
 html5/test/case/tester.js                       |    19 +
 ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m |     5 +-
 .../WeexSDK/Sources/Component/WXListComponent.m |    52 +-
 .../WeexSDK/Sources/Component/WXTextComponent.m |    15 +-
 ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.h   |     7 +
 .../WeexSDK/Sources/Module/WXAnimationModule.h  |     4 -
 .../WeexSDK/Sources/Module/WXAnimationModule.m  |     7 -
 ios/sdk/WeexSDK/Sources/Module/WXTransition.h   |     2 -
 ios/sdk/WeexSDK/Sources/Module/WXTransition.m   |   214 +-
 ios/sdk/WeexSDK/Sources/Utility/WXConvert.h     |     1 +
 ios/sdk/WeexSDK/Sources/Utility/WXConvert.m     |    17 +
 .../Sources/View/WXComponent+ViewManagement.m   |     1 -
 ios/sdk/WeexSDKTests/WXConvertTests.m           |    21 +-
 package.json                                    |     5 +-
 packages/weex-js-framework/index.js             | 43740 +++++++++--------
 packages/weex-js-framework/index.min.js         |     9 +-
 pre-build/native-bundle-main.js                 |    16 +-
 test/pages/components/switch-event.vue          |     7 +-
 test/pages/include/wxc-desc.vue                 |    27 +-
 test/pages/modules/vue_timer.vue                |     8 +-
 test/scripts/components/text.test.js            |    61 +-
 test/scripts/dom.test.js                        |     5 +-
 test/scripts/modules/globalEvent.test.js        |    20 +-
 test/scripts/modules/modal-event.test.js        |     2 +-
 test/scripts/modules/timer.test.js              |    51 +-
 test/scripts/util.js                            |     2 +
 59 files changed, 23020 insertions(+), 22079 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/768b13ae/package.json
----------------------------------------------------------------------


[31/47] incubator-weex git commit: * [html5] fix styles in firefox & impl get/set selection range methods.

Posted by gu...@apache.org.
* [html5] fix styles in firefox & impl get/set selection range methods.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/2f3af6f6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/2f3af6f6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/2f3af6f6

Branch: refs/heads/dev
Commit: 2f3af6f6fc97fdc32cfa15c06b8da6d098753553
Parents: 86cd036
Author: MrRaindrop <te...@gmail.com>
Authored: Tue Sep 12 15:20:17 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Tue Sep 12 15:20:17 2017 +0800

----------------------------------------------------------------------
 .../components/scrollable/loading-indicator.js  | 13 +++---
 .../render/vue/components/scrollable/style.css  | 22 ++++++----
 html5/render/vue/components/slider/indicator.js |  2 +
 .../render/vue/components/slider/slideMixin.js  | 13 +++++-
 html5/render/vue/components/slider/slider.css   |  6 +++
 html5/render/vue/components/switch.js           | 12 +++---
 html5/render/vue/components/text.js             |  3 ++
 html5/render/vue/env/event-manager.js           |  4 +-
 html5/render/vue/mixins/input-common.js         | 32 ++++++++++++++
 html5/render/vue/modules/animation.js           | 44 +++++++++++++++-----
 html5/render/vue/modules/modal/style.js         | 20 ++++++---
 html5/render/vue/styles/base.css                | 15 +++++++
 html5/render/vue/styles/reset.css               |  5 ++-
 html5/render/vue/utils/func.js                  |  5 ++-
 html5/render/vue/utils/style.js                 | 13 +++++-
 15 files changed, 166 insertions(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f3af6f6/html5/render/vue/components/scrollable/loading-indicator.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/scrollable/loading-indicator.js b/html5/render/vue/components/scrollable/loading-indicator.js
index aa289bd..4fa2c7b 100644
--- a/html5/render/vue/components/scrollable/loading-indicator.js
+++ b/html5/render/vue/components/scrollable/loading-indicator.js
@@ -24,13 +24,15 @@ const _css = `
   width: 1rem !important;
   height: 1rem !important;
   -webkit-box-align: center;
+  -moz-box-align: center;
   -webkit-align-items: center;
-      -ms-flex-align: center;
-          align-items: center;
+  -ms-flex-align: center;
+  align-items: center;
   -webkit-box-pack: center;
+  -moz-box-pack: center;
   -webkit-justify-content: center;
-      -ms-flex-pack: center;
-          justify-content: center;
+  -ms-flex-pack: center;
+  justify-content: center;
   overflow: visible;
   background: none;
 }
@@ -47,7 +49,8 @@ const _css = `
   position: relative;
   text-indent: -9999em;
   -webkit-animation: weex-spinner 1.1s infinite ease;
-          animation: weex-spinner 1.1s infinite ease;
+  -moz-animation: weex-spinner 1.1s infinite ease;
+  animation: weex-spinner 1.1s infinite ease;
 }
 
 @-webkit-keyframes weex-spinner {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f3af6f6/html5/render/vue/components/scrollable/style.css
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/scrollable/style.css b/html5/render/vue/components/scrollable/style.css
index c90d2ea..f79ff7d 100644
--- a/html5/render/vue/components/scrollable/style.css
+++ b/html5/render/vue/components/scrollable/style.css
@@ -43,8 +43,10 @@ body > .weex-waterfall {
 
 .weex-waterfall-inner-columns {
   -webkit-flex-direction: row;
-      -ms-flex-direction: row;
-          flex-direction: row;
+  -moz-box-orient: horizontal;
+  -moz-box-direction: normal;
+  -ms-flex-direction: row;
+  flex-direction: row;
   -webkit-box-orient: horizontal;
 }
 
@@ -65,8 +67,10 @@ body > .weex-waterfall {
 
 .weex-scroller-horizontal .weex-scroller-inner {
   -webkit-flex-direction: row;
-      -ms-flex-direction: row;
-          flex-direction: row;
+  -ms-flex-direction: row;
+  -moz-box-orient: horizontal;
+  -moz-box-direction: normal;
+  flex-direction: row;
   -webkit-box-orient: horizontal;
   height: 100%;
 }
@@ -79,12 +83,14 @@ body > .weex-waterfall {
 .weex-loading {
   -webkit-box-align: center;
   -webkit-align-items: center;
-      -ms-flex-align: center;
-          align-items: center;
+  -moz-box-align: center;
+  -ms-flex-align: center;
+  align-items: center;
   -webkit-box-pack: center;
   -webkit-justify-content: center;
-      -ms-flex-pack: center;
-          justify-content: center;
+  -moz-box-pack: center;
+  -ms-flex-pack: center;
+  justify-content: center;
   width: 100%;
   overflow: hidden;
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f3af6f6/html5/render/vue/components/slider/indicator.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/slider/indicator.js b/html5/render/vue/components/slider/indicator.js
index 62b95a3..070f3f7 100644
--- a/html5/render/vue/components/slider/indicator.js
+++ b/html5/render/vue/components/slider/indicator.js
@@ -23,6 +23,8 @@ const _css = `
   z-index: 10;
   -webkit-flex-direction: row;
   -ms-flex-direction: row;
+  -moz-box-orient: horizontal;
+  -moz-box-direction: normal;
   flex-direction: row;
   -webkit-box-orient: horizontal;
   margin: 0;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f3af6f6/html5/render/vue/components/slider/slideMixin.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/slider/slideMixin.js b/html5/render/vue/components/slider/slideMixin.js
index f160d58..710fbcb 100644
--- a/html5/render/vue/components/slider/slideMixin.js
+++ b/html5/render/vue/components/slider/slideMixin.js
@@ -190,8 +190,10 @@ export default {
         this.innerOffset += step * this._wrapperWidth
         // transform the whole slides group.
         inner.style.webkitTransition = `-webkit-transform ${TRANSITION_TIME / 1000}s ease-in-out`
+        inner.style.mozTransition = `transform ${TRANSITION_TIME / 1000}s ease-in-out`
         inner.style.transition = `transform ${TRANSITION_TIME / 1000}s ease-in-out`
         inner.style.webkitTransform = `translate3d(${this.innerOffset}px, 0, 0)`
+        inner.style.mozTransform = `translate3d(${this.innerOffset}px, 0, 0)`
         inner.style.transform = `translate3d(${this.innerOffset}px, 0, 0)`
 
         // emit scroll events.
@@ -213,12 +215,14 @@ export default {
 
           setTimeout(() => {
             inner.style.webkitTransition = ''
+            inner.style.mozTransition = ''
             inner.style.transition = ''
             for (let i = this._showStartIdx; i <= this._showEndIdx; i++) {
               const node = this._showNodes[i]
               if (!node) { continue }
               const elm = node.firstElementChild
               elm.style.webkitTransition = ''
+              elm.style.mozTransition = ''
               elm.style.transition = ''
             }
             // clean cloned nodes and rearrange slide cells.
@@ -488,6 +492,7 @@ export default {
       for (let i = this._showStartIdx; i <= this._showEndIdx; i++) {
         const elm = this._showNodes[i].firstElementChild
         elm.style.webkitTransition = `all ${NEIGHBOR_SCALE_TIME / 1000}s ease`
+        elm.style.mozTransition = `all ${NEIGHBOR_SCALE_TIME / 1000}s ease`
         elm.style.transition = `all ${NEIGHBOR_SCALE_TIME / 1000}s ease`
         const transObj = {
           scale: `scale(${i === 0 ? this.currentItemScale : this.neighborScale})`
@@ -531,8 +536,11 @@ export default {
     _handleTouchStart (event) {
       const touch = event.changedTouches[0]
       this._stopAutoPlay()
+      const inner = this.$refs.inner
       this._touchParams = {
-        originalTransform: this.$refs.inner.style.webkitTransform || this.$refs.inner.style.transform,
+        originalTransform: inner.style.webkitTransform
+          || inner.style.mozTransform
+          || inner.style.transform,
         startTouchEvent: touch,
         startX: touch.pageX,
         startY: touch.pageY,
@@ -577,8 +585,9 @@ export default {
         this._emitScrollEvent('scroll', {
           offsetXRatio: offsetX / this._wrapperWidth
         })
-        inner.style.transform = `translate3d(${this.innerOffset + offsetX}px, 0, 0)`
         inner.style.webkitTransform = `translate3d(${this.innerOffset + offsetX}px, 0, 0)`
+        inner.style.mozTransform = `translate3d(${this.innerOffset + offsetX}px, 0, 0)`
+        inner.style.transform = `translate3d(${this.innerOffset + offsetX}px, 0, 0)`
       }
     },
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f3af6f6/html5/render/vue/components/slider/slider.css
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/slider/slider.css b/html5/render/vue/components/slider/slider.css
index 8fe384b..c712278 100644
--- a/html5/render/vue/components/slider/slider.css
+++ b/html5/render/vue/components/slider/slider.css
@@ -27,6 +27,8 @@
   height: 100%;
   overflow: visible;
   -webkit-flex-direction: row;
+  -moz-box-orient: horizontal;
+  -moz-box-direction: normal;
   -ms-flex-direction: row;
   flex-direction: row;
   -webkit-box-orient: horizontal;
@@ -42,9 +44,13 @@
   overflow: hidden;
   -webkit-box-align: center;
   -webkit-align-items: center;
+  -moz-box-align: center;
+  -ms-flex-align: center;
   align-items: center;
   -webkit-box-pack: center;
   -webkit-justify-content: center;
+  -moz-box-pack: center;
+  -ms-flex-pack: center;
   justify-content: center;
 }
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f3af6f6/html5/render/vue/components/switch.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/switch.js b/html5/render/vue/components/switch.js
index 508957b..7f9562a 100644
--- a/html5/render/vue/components/switch.js
+++ b/html5/render/vue/components/switch.js
@@ -25,9 +25,9 @@ const _css = `
   position: relative;
   vertical-align: middle;
   -webkit-user-select: none;
-     -moz-user-select: none;
-      -ms-user-select: none;
-          user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
   box-sizing: content-box;
   background-clip: content-box;
   color: #64bd63;
@@ -38,7 +38,8 @@ const _css = `
   box-shadow: #dfdfdf 0 0 0 0 inset;
   border-radius: 0.8rem;
   -webkit-transition: border 0.4s, box-shadow 0.4s, background-color 1.2s;
-          transition: border 0.4s, box-shadow 0.4s, background-color 1.2s;
+  -moz-transition: border 0.4s, box-shadow 0.4s, background-color 1.2s;
+  transition: border 0.4s, box-shadow 0.4s, background-color 1.2s;
 }
 
 .weex-switch-checked {
@@ -66,7 +67,8 @@ const _css = `
   top: 0;
   left: 0;
   -webkit-transition: background-color 0.4s, left 0.2s;
-          transition: background-color 0.4s, left 0.2s;
+  -moz-transition: background-color 0.4s, left 0.2s;
+  transition: background-color 0.4s, left 0.2s;
 }
 
 .weex-switch-checked > .weex-switch-inner {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f3af6f6/html5/render/vue/components/text.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/components/text.js b/html5/render/vue/components/text.js
index 0ff66f4..7379bc6 100644
--- a/html5/render/vue/components/text.js
+++ b/html5/render/vue/components/text.js
@@ -28,7 +28,10 @@
 const _css = `
 .weex-text {
   display: -webkit-box;
+  display: -moz-box;
   -webkit-box-orient: vertical;
+  -moz-box-orient: vertical;
+  -moz-box-direction: normal;
   position: relative;
   white-space: pre-wrap;  /* not using 'pre': support auto line feed. */
   font-size: 0.426667rem;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f3af6f6/html5/render/vue/env/event-manager.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/env/event-manager.js b/html5/render/vue/env/event-manager.js
index c2d714d..16057ca 100644
--- a/html5/render/vue/env/event-manager.js
+++ b/html5/render/vue/env/event-manager.js
@@ -79,9 +79,9 @@ function _init (doc) {
     doc.addEventListener(evt, function (e) {
       let el = e.target
       let vm = el.__vue__
-      while (!vm && el !== document.body) {
+      while (!vm && el && el !== document.body) {
         el = el.parentElement
-        vm = el.__vue__
+        vm = el && el.__vue__
       }
       if (!vm) {  // not a vue component.
         return

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f3af6f6/html5/render/vue/mixins/input-common.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/mixins/input-common.js b/html5/render/vue/mixins/input-common.js
index db86079..7568ff4 100644
--- a/html5/render/vue/mixins/input-common.js
+++ b/html5/render/vue/mixins/input-common.js
@@ -38,6 +38,38 @@ export default {
     blur () {
       this.$el && this.$el.blur()
     },
+
+    setSelectionRange (start: number, end: number) {
+      try {
+        this.$el.setSelectionRange(start, end)
+      }
+      catch (e) {
+        if (process.env.NODE_ENV === 'development') {
+          console.warn(`[vue-render] setSelectionRange is not supported.`)
+        }
+      }
+    },
+
+    getSelectionRange (callback: Function) {
+      try {
+        const selection = window.getSelection()
+        const str = selection.toString()
+        const selectionStart = this.$el.value.indexOf(str)
+        const selectionEnd = selectionStart === -1 ? selectionStart : selectionStart + str.length
+        callback && callback({
+          selectionStart,
+          selectionEnd
+        })
+      }
+      catch (e) {
+        callback && callback(new Error('[vue-render] getSelection is not supported.'))
+      }
+    },
+
+    getEditSelectionRange (callback: Function) {
+      return this.getSelectionRange(callback)
+    },
+
     // support enter key event
     createKeyboardEvent (events: {}) {
       const customKeyType = this.returnKeyType

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f3af6f6/html5/render/vue/modules/animation.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/modules/animation.js b/html5/render/vue/modules/animation.js
index bf94447..ce747c2 100644
--- a/html5/render/vue/modules/animation.js
+++ b/html5/render/vue/modules/animation.js
@@ -17,6 +17,30 @@
  * under the License.
  */
 const utils = {}
+let endEvent
+let styleName
+
+const EVENT_NAME_MAP = {
+  transition: 'transitionend',
+  WebkitTransition: 'webkitTransitionEnd',
+  MozTransition: 'mozTransitionEnd',
+  OTransition: 'oTransitionEnd',
+  msTransition: 'MSTransitionEnd'
+}
+
+function detectEvents () {
+  const testEl = document.createElement('div')
+  const style = testEl.style
+  for (const name in EVENT_NAME_MAP) {
+    if (name in style) {
+      endEvent = EVENT_NAME_MAP[name]
+      styleName = name
+      break
+    }
+  }
+}
+
+detectEvents()
 
 function transitionOnce (vnode, config, callback) {
   const {
@@ -47,19 +71,17 @@ function transitionOnce (vnode, config, callback) {
   dom && weex.utils.fireLazyload(dom, true)
 
   const transitionEndHandler = function (event) {
-    event.stopPropagation()
-    dom.removeEventListener('webkitTransitionEnd', transitionEndHandler)
-    dom.removeEventListener('transitionend', transitionEndHandler)
-    dom.style.transition = ''
-    dom.style.webkitTransition = ''
+    event && event.stopPropagation()
+    if (endEvent) {
+      dom.removeEventListener(endEvent, transitionEndHandler)
+      dom.style[styleName] = ''
+    }
     callback()
   }
-
-  dom.style.transition = transitionValue
-  dom.style.webkitTransition = transitionValue
-  dom.addEventListener('webkitTransitionEnd', transitionEndHandler)
-  dom.addEventListener('transitionend', transitionEndHandler)
-
+  if (endEvent) {
+    dom.style[styleName] = transitionValue
+    dom.addEventListener(endEvent, transitionEndHandler)
+  }
   nextFrame(() => {
     dom.style.cssText
       += toCSSText(autoPrefix(normalizeStyle(camelizeKeys(config.styles))) || {})

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f3af6f6/html5/render/vue/modules/modal/style.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/modules/modal/style.js b/html5/render/vue/modules/modal/style.js
index 510bb6c..2b005e1 100644
--- a/html5/render/vue/modules/modal/style.js
+++ b/html5/render/vue/modules/modal/style.js
@@ -32,11 +32,14 @@ export default `
   text-align: center;
   opacity: 0.7;
   -webkit-transition: all 0.4s ease-in-out;
-          transition: all 0.4s ease-in-out;
+  -moz-transition: all 0.4s ease-in-out;
+  -ms-transition: all 0.4s ease-in-out;
+  transition: all 0.4s ease-in-out;
   border-radius: 0.066667rem;
   -webkit-transform: translateX(-50%);
+  -moz-transform: translateX(-50%);
   -ms-transform: translateX(-50%);
-      transform: translateX(-50%);
+  transform: translateX(-50%);
 }
 
 .weex-toast.hide {
@@ -77,8 +80,9 @@ export default `
   min-height: 2.666667rem;
   border-radius: 0.066667rem;
   -webkit-transform: translate(-50%, -50%);
+  -moz-transform: translate(-50%, -50%);
   -ms-transform: translate(-50%, -50%);
-      transform: translate(-50%, -50%);
+  transform: translate(-50%, -50%);
   background-color: #fff;
 }
 
@@ -89,20 +93,26 @@ export default `
 .weex-modal-node .content {
   display: -webkit-box;
   display: -webkit-flex;
+  display: -moz-box;
   display: -ms-flexbox;
   display: flex;
   -webkit-box-orient: vertical;
   -webkit-flex-direction: column;
+  -moz-box-orient: vertical;
+  -moz-box-direction: normal;
   -ms-flex-direction: column;
       flex-direction: column;
   -webkit-box-align: center;
   -webkit-align-items: center;
   -ms-flex-align: center;
-      align-items: center;
+  -moz-box-align: center;
+  -ms-flex-align: center;
+  align-items: center;
   -webkit-box-pack: center;
   -webkit-justify-content: center;
+  -moz-box-pack: center;
   -ms-flex-pack: center;
-      justify-content: center;
+  justify-content: center;
   width: 100%;
   min-height: 1.866667rem;
   box-sizing: border-box;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f3af6f6/html5/render/vue/styles/base.css
----------------------------------------------------------------------
diff --git a/html5/render/vue/styles/base.css b/html5/render/vue/styles/base.css
index 96beb83..f4263ea 100644
--- a/html5/render/vue/styles/base.css
+++ b/html5/render/vue/styles/base.css
@@ -26,6 +26,8 @@
 .weex-flex-ct {
   display: -webkit-box;
   display: -webkit-flex;
+  display: -moz-box;
+  display: -ms-flexbox;
   display: flex;
 }
 
@@ -33,21 +35,29 @@
   box-sizing: border-box;
   display: -webkit-box;
   display: -webkit-flex;
+  display: -moz-box;
+  display: -ms-flexbox;
   display: flex;
   position: relative;
   -webkit-box-orient: vertical;
   -webkit-flex-direction: column;
+  -moz-box-orient: vertical;
+  -moz-box-direction: normal;
+  -ms-flex-direction: column;
   flex-direction: column;
   -webkit-flex-shrink: 0;
   -ms-flex-negative: 0;
   flex-shrink: 0;
   -webkit-flex-grow: 0;
+  -moz-box-flex: 0;
   -ms-flex-grow: 0;
   flex-grow: 0;
   -webkit-flex-basis: auto;
+  -ms-flex-preferred-size: auto;
   flex-basis: auto;
   -webkit-box-align: stretch;
   -webkit-align-items: stretch;
+  -moz-box-align: stretch;
   -ms-flex-align: stretch;
   align-items: stretch;
   -webkit-align-content: flex-start;
@@ -62,6 +72,9 @@
 .weex-ct.horizontal {
   -webkit-box-orient: horizontal;
   -webkit-flex-direction: row;
+  -moz-box-orient: horizontal;
+  -moz-box-direction: normal;
+  -ms-flex-direction: row;
   flex-direction: row;
 }
 
@@ -73,9 +86,11 @@
   -ms-flex-negative: 0;
   flex-shrink: 0;
   -webkit-flex-grow: 0;
+  -moz-box-flex: 0;
   -ms-flex-grow: 0;
   flex-grow: 0;
   -webkit-flex-basis: auto;
+  -ms-flex-preferred-size: auto;
   flex-basis: auto;
   border: 0 solid black;
   margin: 0;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f3af6f6/html5/render/vue/styles/reset.css
----------------------------------------------------------------------
diff --git a/html5/render/vue/styles/reset.css b/html5/render/vue/styles/reset.css
index cb334a0..b61de0f 100644
--- a/html5/render/vue/styles/reset.css
+++ b/html5/render/vue/styles/reset.css
@@ -43,8 +43,9 @@
 .weex-root *::after {
   box-sizing: border-box;
   -webkit-text-size-adjust: none;
-      -ms-text-size-adjust: none;
-          text-size-adjust: none;
+  -moz-text-size-adjust: none;
+  -ms-text-size-adjust: none;
+  text-size-adjust: none;
 }
 
 .weex-root a,

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f3af6f6/html5/render/vue/utils/func.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/utils/func.js b/html5/render/vue/utils/func.js
index d4112c47..4e77430 100644
--- a/html5/render/vue/utils/func.js
+++ b/html5/render/vue/utils/func.js
@@ -254,7 +254,10 @@ export function appendCss (css: string, cssId: string, replace: boolean) {
   style.appendChild(document.createTextNode(css))
 }
 export function nextFrame (callback: any) {
-  const runner = window.requestAnimationFrame || window.webkitRequestAnimationFrame || (cb => setTimeout(cb, 16))
+  const runner = window.requestAnimationFrame
+    || window.webkitRequestAnimationFrame
+    || window.mozRequestAnimationFrame
+    || (cb => setTimeout(cb, 16))
   runner(callback)
 }
 export function toCSSText (object: any) {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f3af6f6/html5/render/vue/utils/style.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/utils/style.js b/html5/render/vue/utils/style.js
index 482e01a..a992617 100644
--- a/html5/render/vue/utils/style.js
+++ b/html5/render/vue/utils/style.js
@@ -153,6 +153,8 @@ export function autoPrefix (style: {}): {} {
   const flex = prefixed.flex
   if (flex) {
     prefixed.WebkitBoxFlex = flex
+    prefixed.MozBoxFlex = flex
+    prefixed.MsFlex = flex
   }
   return prefixed
 }
@@ -195,7 +197,9 @@ export function normalizeStyle (style: {}) {
 export function getTransformObj (elm: HTMLElement): any {
   let styleObj = {}
   if (!elm) { return styleObj }
-  const transformStr = elm.style.webkitTransform || elm.style.transform
+  const transformStr = elm.style.webkitTransform
+    || elm.style.mozTransform
+    || elm.style.transform
   if (transformStr && transformStr.match(/(?: *(?:translate|rotate|scale)[^(]*\([^(]+\))+/i)) {
     styleObj = transformStr.trim().replace(/, +/g, ',').split(' ').reduce(function (pre, str) {
       ['translate', 'scale', 'rotate'].forEach(function (name) {
@@ -243,6 +247,7 @@ export function addTransform (elm: HTMLElement, style: {}, replace: boolean): vo
   }
   const resStr = getTransformStr(styleObj)
   elm.style.webkitTransform = resStr
+  elm.style.mozTransform = resStr
   elm.style.transform = resStr
 }
 
@@ -260,6 +265,7 @@ export function addTranslateX (elm: HTMLElement, toAdd: number): void {
   })
   const resStr = getTransformStr(styleObj)
   elm.style.webkitTransform = resStr
+  elm.style.mozTransform = resStr
   elm.style.transform = resStr
 }
 
@@ -270,7 +276,9 @@ export function addTranslateX (elm: HTMLElement, toAdd: number): void {
 export function copyTransform (from: HTMLElement, to: HTMLElement, key: string | void): void {
   let str
   if (!key) {
-    str = from.style.webkitTransform || from.style.transform
+    str = from.style.webkitTransform
+      || from.style.mozTransform
+      || from.style.transform
   }
   else {
     const fromObj = getTransformObj(from)
@@ -280,6 +288,7 @@ export function copyTransform (from: HTMLElement, to: HTMLElement, key: string |
     str = getTransformStr(toObj)
   }
   to.style.webkitTransform = str
+  to.style.mozTransform = str
   to.style.transform = str
 }
 


[42/47] incubator-weex git commit: Merge branch 'html5-feature-offset-appear' into 0.16-dev-web

Posted by gu...@apache.org.
Merge branch 'html5-feature-offset-appear' into 0.16-dev-web


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/51ceff10
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/51ceff10
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/51ceff10

Branch: refs/heads/dev
Commit: 51ceff10aec22a99fbd2b006ec4cd34c555653bc
Parents: 3c2ad1c 5554d51
Author: MrRaindrop <te...@gmail.com>
Authored: Mon Sep 25 16:12:23 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Mon Sep 25 16:12:23 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/README.md            |   4 +
 html5/render/vue/mixins/base.js       |   4 +-
 html5/render/vue/utils/component.js   | 160 ++++++++++++++++++-----------
 package.json                          |   2 +-
 packages/weex-vue-render/README.md    |   4 +
 packages/weex-vue-render/package.json |   2 +-
 6 files changed, 112 insertions(+), 64 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/51ceff10/package.json
----------------------------------------------------------------------


[45/47] incubator-weex git commit: * [html5] pair versions for vue & vue-template-compiler.

Posted by gu...@apache.org.
* [html5] pair versions for vue & vue-template-compiler.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/aab1d745
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/aab1d745
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/aab1d745

Branch: refs/heads/dev
Commit: aab1d7455b474e949630b44f7e695a5d20225c65
Parents: cda836a
Author: MrRaindrop <te...@gmail.com>
Authored: Tue Sep 26 11:23:25 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Tue Sep 26 11:23:25 2017 +0800

----------------------------------------------------------------------
 package.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/aab1d745/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index d52a121..1c7024d 100644
--- a/package.json
+++ b/package.json
@@ -164,9 +164,9 @@
     "sinon": "^2.1.0",
     "sinon-chai": "^2.8.0",
     "uglify-js": "^2.8.29",
-    "vue": "^2.4.3",
+    "vue": "2.4.3",
     "vue-loader": "^12.2.1",
-    "vue-template-compiler": "^2.4.3",
+    "vue-template-compiler": "2.4.3",
     "webpack": "^1.13.1",
     "weex-components": "^0.2.0",
     "weex-gcanvas": "^0.4.2",


[08/47] incubator-weex git commit: * [html5] fix style scanning in uglified code bundle.

Posted by gu...@apache.org.
* [html5] fix style scanning in uglified code bundle.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/26646cf3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/26646cf3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/26646cf3

Branch: refs/heads/dev
Commit: 26646cf383399a3b035786636087d079bdd3ef4b
Parents: 214c6e3
Author: MrRaindrop <te...@gmail.com>
Authored: Tue Aug 22 14:17:52 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Tue Aug 22 14:17:52 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/mixins/style.js | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/26646cf3/html5/render/vue/mixins/style.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/mixins/style.js b/html5/render/vue/mixins/style.js
index 647119d..ba11ed5 100644
--- a/html5/render/vue/mixins/style.js
+++ b/html5/render/vue/mixins/style.js
@@ -67,16 +67,14 @@ function getIdentifiedBeforeCreate () {
       for (; thisHookIdx < len; thisHookIdx++) {
         if (hooks[thisHookIdx]._styleMixin) { break }
       }
-      for (let i = thisHookIdx + 1; i < len; i++) {
-        const func = hooks[i]
-        if (func.name === 'injectStyle') {
-          hooks[i] = function () {
-            // call the original injectStyle hook.
-            func.call(this)
-            // scan the new appended styleSheet.
-            extend(weex._styleMap, getHeadStyleMap())
-            hooks[i] = func
-          }
+      if (thisHookIdx !== len - 1) {
+        const func = hooks[len - 1]
+        hooks[len - 1] = function () {
+          // call the original injectStyle hook.
+          func.call(this)
+          // scan the new appended styleSheet.
+          extend(weex._styleMap, getHeadStyleMap())
+          hooks[len - 1] = func
         }
       }
     }


[26/47] incubator-weex git commit: * [html5] add prevent attr for a and support href of javascript:void(0)

Posted by gu...@apache.org.
* [html5] add prevent attr for a and support href of javascript:void(0)


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/386a0c61
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/386a0c61
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/386a0c61

Branch: refs/heads/dev
Commit: 386a0c611184da024fe1132e26d857cd4c4839a0
Parents: ec5b791
Author: MrRaindrop <te...@gmail.com>
Authored: Fri Sep 8 12:52:21 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Fri Sep 8 12:52:21 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/env/event-manager.js | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/386a0c61/html5/render/vue/env/event-manager.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/env/event-manager.js b/html5/render/vue/env/event-manager.js
index 06a00a3..70166bc 100644
--- a/html5/render/vue/env/event-manager.js
+++ b/html5/render/vue/env/event-manager.js
@@ -124,6 +124,8 @@ function _init (doc) {
          */
         if (evtName === 'click' && isANode(elm)) {
           const href = elm.getAttribute('href')
+          const voidHrefReg = /^\s*javascript\s*:\s*void\s*(?:\(\s*0\s*\)|0)\s*;?\s*$/
+          const prevent = elm.getAttribute('prevent')
           disposed = true
           /**
            * Give the chance to the listeners binding on doc or doc.body for
@@ -131,16 +133,15 @@ function _init (doc) {
            * Should set a _should_intercept_a_jump function on window to test
            * whether we should intercept the a-jump.
            */
-          if (window._should_intercept_a_jump && window._should_intercept_a_jump(elm)) {
+          if (window._should_intercept_a_jump && window._should_intercept_a_jump(elm)
+            || href.match(voidHrefReg)
+            || prevent === '' || prevent === 'true') {
             // do nothing. leave it to the intercept handler.
           }
-          else {
-            if (!!href) {
-              location.href = href
-            }
-            else {
-              console.warn('[vue-render] If you want to use the A tag jump, set the href attribute')
-            }
+          else if (href) {
+            location.href = href
+          } else if (process.env.NODE_ENV === 'development') {
+            console.warn('[vue-render] If you want to use the A tag jump, set the href attribute')
           }
         }
 


[20/47] incubator-weex git commit: Merge pull request #1 from erha19/html5-bugfix-event

Posted by gu...@apache.org.
Merge pull request #1 from erha19/html5-bugfix-event

* [html5] add _triggered on event when evtName is click

Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/125f17d3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/125f17d3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/125f17d3

Branch: refs/heads/dev
Commit: 125f17d3a2a7fc10f8645f189066d60d0f2668d9
Parents: 1ceb374 aeb55f3
Author: _HS <te...@gmail.com>
Authored: Mon Sep 4 17:59:18 2017 +0800
Committer: GitHub <no...@github.com>
Committed: Mon Sep 4 17:59:18 2017 +0800

----------------------------------------------------------------------
 examples/vue/showcase/a-node-click.vue |  6 +++---
 html5/render/vue/env/event-manager.js  | 15 +++++++++++----
 2 files changed, 14 insertions(+), 7 deletions(-)
----------------------------------------------------------------------



[07/47] incubator-weex git commit: * [html5] add meta.setViewport.

Posted by gu...@apache.org.
* [html5] add meta.setViewport.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/214c6e33
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/214c6e33
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/214c6e33

Branch: refs/heads/dev
Commit: 214c6e33d15dae42a415b6c3f5e2ac2dc2f6301b
Parents: 77ab0f8
Author: MrRaindrop <te...@gmail.com>
Authored: Mon Aug 21 14:35:12 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Mon Aug 21 14:35:12 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/env/weex.js               | 21 +++++++++++++++
 html5/render/vue/modules/index.js          |  4 ++-
 html5/render/vue/modules/meta.js           | 36 +++++++++++++++++++++++++
 packages/weex-vue-render/src/index.core.js |  3 +++
 4 files changed, 63 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/214c6e33/html5/render/vue/env/weex.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/env/weex.js b/html5/render/vue/env/weex.js
index 199e8ae..7d88268 100644
--- a/html5/render/vue/env/weex.js
+++ b/html5/render/vue/env/weex.js
@@ -47,6 +47,27 @@ const weex = {
     return this.registerApiModule(...args)
   },
 
+  support (feature = '') {
+    const match = (feature + '').match(/@(component|module)\/(\w+)(.\w+)?/)
+    if (match) {
+      const type = match[1]
+      const mod = match[2]
+      let method = match[3]
+      method = method && method.replace(/^\./, '')
+      switch (type) {
+        case 'component':
+          return !!this._components[mod]
+        case 'module':
+          const module = this.requireModule(mod)
+          return module && method ? !!module[method] : !!module
+      }
+    }
+    else {
+      console.warn(`[vue-render] invalid argument for weex.support: ${feature}`)
+      return null
+    }
+  },
+
   /**
    * Register a new vue instance in this weex instance. Put its root element into weex.document.body.children, so
    * that user can use weex.document.body to walk through all dom structures in all vue instances in the page.

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/214c6e33/html5/render/vue/modules/index.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/modules/index.js b/html5/render/vue/modules/index.js
index c0e2fc1..48d1136 100644
--- a/html5/render/vue/modules/index.js
+++ b/html5/render/vue/modules/index.js
@@ -33,6 +33,7 @@ import modal from './modal'
 import navigatorModule from './navigator'
 import webview from './webview'
 import websocket from './websocket'
+import meta from './meta'
 
 export default [
   geolocation,
@@ -46,5 +47,6 @@ export default [
   dom,
   globalEvent,
   navigatorModule,
-  webview
+  webview,
+  meta
 ]

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/214c6e33/html5/render/vue/modules/meta.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/modules/meta.js b/html5/render/vue/modules/meta.js
new file mode 100644
index 0000000..ed5f0ff
--- /dev/null
+++ b/html5/render/vue/modules/meta.js
@@ -0,0 +1,36 @@
+/*
+ * 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.
+ */
+
+const meta = {
+  /**
+   * setViewport
+   * Changing viewport width at runtime is not supported. Please use weex-viewport meta
+   * tag to specify your viewport in your html file.
+   */
+  setViewport (options) {
+    console.warn(`[vue-render] meta.setViewport doesn't works as expected in web platform.`
+    + ` Please use <meta name="weex-viewport" content="xxx"> to specify your viewport width.`)
+  }
+}
+
+export default {
+  init (weex) {
+    weex.registerModule('meta', meta)
+  }
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/214c6e33/packages/weex-vue-render/src/index.core.js
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/src/index.core.js b/packages/weex-vue-render/src/index.core.js
index dc49562..5e84c86 100644
--- a/packages/weex-vue-render/src/index.core.js
+++ b/packages/weex-vue-render/src/index.core.js
@@ -5,6 +5,8 @@ import text from '../../../html5/render/vue/components/text'
 import image from '../../../html5/render/vue/components/image'
 import scrollable from '../../../html5/render/vue/components/scrollable'
 
+import meta from '../../../html5/render/vue/modules/meta'
+
 const preInit = weex.init
 
 weex.init = function () {
@@ -13,6 +15,7 @@ weex.init = function () {
   weex.install(text)
   weex.install(image)
   weex.install(scrollable)
+  weex.install(meta)
 }
 
 if (global.Vue) {


[24/47] incubator-weex git commit: Merge branch '0.16-dev' into 0.16-dev-web

Posted by gu...@apache.org.
Merge branch '0.16-dev' into 0.16-dev-web


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/b0741d80
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/b0741d80
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/b0741d80

Branch: refs/heads/dev
Commit: b0741d806e55285523fcf1ba0cd5a8dc0872ed84
Parents: 60ce630 42da9dd
Author: MrRaindrop <te...@gmail.com>
Authored: Tue Sep 5 11:16:29 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Tue Sep 5 11:16:29 2017 +0800

----------------------------------------------------------------------
 .../commons/adapter/FrescoImageComponent.java   |   2 +-
 .../java/com/alibaba/weex/WXPageActivity.java   |   5 +-
 android/sdk/build.gradle                        |   6 +
 android/sdk/libs/armeabi/libweexjsb.so          | Bin 22556 -> 0 bytes
 android/sdk/libs/armeabi/libweexjsc.so          | Bin 325660 -> 7570392 bytes
 android/sdk/libs/armeabi/libweexjss.so          | Bin 6754012 -> 0 bytes
 .../java/com/taobao/weex/WXSDKInstance.java     |  23 ++-
 .../java/com/taobao/weex/common/Constants.java  |   1 +
 .../com/taobao/weex/common/IWXDebugProxy.java   |   2 +
 .../weex/ui/component/AppearanceHelper.java     |   9 +-
 .../com/taobao/weex/ui/component/WXImage.java   |  75 +++----
 .../taobao/weex/ui/component/WXScroller.java    |   2 +-
 .../com/taobao/weex/ui/component/WXText.java    |  29 ++-
 .../taobao/weex/ui/component/WXVContainer.java  |   6 +
 .../ui/component/list/BasicListComponent.java   | 204 +++++++++----------
 .../ui/component/list/SimpleListComponent.java  |   6 +-
 .../ui/component/list/StickyHeaderHelper.java   |  71 ++++---
 .../weex/ui/component/list/WXListComponent.java |  83 +++-----
 .../com/taobao/weex/ui/view/WXImageView.java    |  16 +-
 .../com/taobao/weex/utils/ImageDrawable.java    |  17 +-
 .../java/com/taobao/weex/utils/WXUtils.java     |  64 +++---
 dangerfile.js                                   |   2 +-
 doc/_config.yml                                 |   2 +
 doc/_config_cn.yml                              |   2 +
 doc/source/cn/guide/integrate-to-your-app.md    |   6 +-
 doc/source/cn/guide/tools/index.md              |   1 +
 doc/source/cn/guide/tools/plugin.md             |  77 +++++++
 doc/source/cn/references/common-style.md        |  59 +++++-
 doc/source/cn/references/modules/animation.md   |  37 ++--
 doc/source/guide/integrate-to-your-app.md       |   6 +-
 doc/source/guide/tools/index.md                 |   1 +
 doc/source/guide/tools/plugin.md                |  68 +++++++
 doc/source/references/common-style.md           |  57 ++++++
 doc/source/references/modules/animation.md      |  46 ++---
 doc/themes/weex/languages/en.yml                |   2 +-
 .../weex/layout/_partial/after-footer.ejs       |  10 +
 doc/themes/weex/layout/_partial/header.ejs      |   3 +
 doc/themes/weex/layout/_partial/sidebar.ejs     |   3 +
 doc/themes/weex/source/css/index.scss           |  42 +++-
 ios/playground/WeexDemo/Scanner/WXScannerVC.m   |   2 +-
 .../WeexDemo/WXConfigCenterDefaultImpl.m        |   6 +-
 ios/sdk/WeexSDK.xcodeproj/project.pbxproj       |  20 +-
 .../WeexSDK/Sources/Component/WXAComponent.m    |   1 +
 .../Sources/Component/WXComponent_internal.h    |   3 +-
 .../Sources/Component/WXCycleSliderComponent.m  |  56 +++++
 .../WeexSDK/Sources/Component/WXEditComponent.m |   9 +-
 .../Sources/Component/WXImageComponent.m        |   4 +
 .../Sources/Component/WXSliderComponent.m       |  53 +++++
 .../Component/WXSliderNeighborComponent.m       |  14 ++
 .../Sources/Component/WXSwitchComponent.m       |   2 +
 .../Sources/Component/WXTextAreaComponent.m     |   4 +
 .../WeexSDK/Sources/Component/WXTextComponent.m |  19 +-
 ios/sdk/WeexSDK/Sources/Component/WXTransform.m |   2 +-
 .../Sources/Controller/WXBaseViewController.m   |   4 +-
 ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m    |   1 +
 .../Sources/Manager/WXComponentManager.h        |   8 +
 .../Sources/Manager/WXComponentManager.m        |  26 ++-
 .../Sources/Manager/WXDatePickerManager.m       |   8 +
 .../WeexSDK/Sources/Manager/WXTracingManager.m  |   2 +-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m     |  38 ++--
 ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m   |   7 +-
 ios/sdk/WeexSDK/Sources/Module/WXPickerModule.m |  44 ++++
 .../WeexSDK/Sources/Module/WXPrerenderManager.h |  21 ++
 .../WeexSDK/Sources/Module/WXPrerenderManager.m | 120 ++++++++---
 .../WeexSDK/Sources/Module/WXVoiceOverModule.h  |  25 +++
 .../WeexSDK/Sources/Module/WXVoiceOverModule.m  | 148 ++++++++++++++
 ios/sdk/WeexSDK/Sources/Utility/WXConvert.m     |   2 +-
 ios/sdk/WeexSDK/Sources/WeexSDK.h               |   2 +
 test/mocha.opts                                 |   2 -
 test/pages/attributes/dom-operation.vue         |  33 +++
 test/pages/components/a-src.vue                 |  86 ++++++++
 test/pages/components/a-support-href1.vue       |  58 ++++++
 test/pages/components/a-support-href2.vue       |  58 ++++++
 test/pages/components/hyperlink.vue             |  31 ---
 test/pages/components/hyperlink_target.vue      |  23 ---
 test/pages/components/image-onload.vue          |  65 ++++++
 test/pages/components/image-resize.vue          |  97 +++++++++
 test/pages/components/list-scroll.vue           |  33 +++
 test/pages/components/refresh-loading.vue       |  20 +-
 test/pages/components/scroller-scroll.vue       |  31 +++
 test/pages/components/slider-infinite.vue       |  54 +++++
 test/pages/components/textarea-placeholder.vue  |  62 ++++++
 test/pages/components/video-property.vue        |  97 +++++++++
 test/pages/components/web-event.vue             |  55 ++++-
 test/pages/dom-operation.vue                    |  33 ---
 test/pages/image-onload.vue                     |  31 ---
 test/pages/include/navbar.vue                   | 121 +++++++++++
 test/pages/include/navpage.vue                  |  62 ++++++
 test/pages/index.vue                            |  30 ---
 test/pages/list-scroll.vue                      |  33 ---
 test/pages/modules/dom-common.vue               |  87 ++++++++
 test/pages/modules/dom-update.vue               |  78 +++++++
 test/pages/modules/downgrade-event.vue          |   2 +-
 test/pages/modules/modal-event.vue              |  75 +++++--
 test/pages/modules/navigator-event.vue          | 101 +++++++++
 test/pages/modules/stream-result.vue            | 185 +++++++++++++----
 test/pages/modules/viewport-basic.vue           |  62 ++++++
 test/pages/scroller-scroll.vue                  |  31 ---
 test/pages/slider-infinite.vue                  |  54 -----
 test/screenshot/image-resize-android.png        | Bin 0 -> 214440 bytes
 test/screenshot/image-resize-ios.png            | Bin 0 -> 138033 bytes
 test/scripts/attributes/compositing.test.js     |   5 +-
 test/scripts/attributes/dom.test.js             |  98 +++++++++
 test/scripts/components/a-src.test.js           |  65 ++++++
 test/scripts/components/hyperlink.test.js       |  44 ----
 test/scripts/components/iconfont.test.js        |   2 +-
 test/scripts/components/image-onload.test.js    |  32 +--
 test/scripts/components/image-resize.test.js    |  43 ++++
 test/scripts/components/input-event.test.js     |   2 +-
 test/scripts/components/recycler.test.js        |  20 +-
 test/scripts/components/refresh-loading.test.js |  12 +-
 test/scripts/components/scroll-event.test.js    |  11 +-
 test/scripts/components/scroller-fixed.test.js  |   2 +-
 test/scripts/components/slider-common.test.js   |   4 +-
 test/scripts/components/slider-infinite.test.js |   4 +-
 test/scripts/components/switch-event.test.js    |   2 +-
 test/scripts/components/text.test.js            |   8 +-
 .../components/textarea-maxlength.test.js       |   3 +-
 .../components/textarea-placeholder.test.js     |  69 +++++++
 test/scripts/components/video-property.test.js  |  45 ++++
 test/scripts/components/web-event.test.js       |  22 +-
 test/scripts/css/border.test.js                 |   3 +-
 test/scripts/dom.test.js                        |  97 ---------
 test/scripts/index.test.js                      |  77 -------
 .../scripts/modules/animation-translate.test.js |   5 +-
 test/scripts/modules/clipboard-event.test.js    |   5 +-
 test/scripts/modules/dom-common.test.js         |  36 ++++
 test/scripts/modules/dom-update.test.js         |  51 +++++
 test/scripts/modules/gesture-longpress.test.js  |   5 +-
 test/scripts/modules/globalEvent.test.js        |   2 +-
 test/scripts/modules/modal-event.test.js        |  18 +-
 test/scripts/modules/navigator-event.test.js    |  51 +++++
 test/scripts/modules/picker-event.test.js       |   5 +-
 test/scripts/modules/stream-result.test.js      |  20 +-
 test/scripts/modules/timer.test.js              |   5 +-
 test/scripts/modules/viewport-basic.test.js     |  45 ++++
 test/scripts/util.js                            |  58 +++++-
 137 files changed, 3375 insertions(+), 1087 deletions(-)
----------------------------------------------------------------------



[03/47] incubator-weex git commit: * [html5] build for esm.

Posted by gu...@apache.org.
* [html5] build for esm.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/7e2d4ef9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/7e2d4ef9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/7e2d4ef9

Branch: refs/heads/dev
Commit: 7e2d4ef9fe74638e788854e22ecc28932e3f72ae
Parents: a105b22
Author: MrRaindrop <te...@gmail.com>
Authored: Sat Aug 12 15:15:09 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Mon Aug 21 11:15:10 2017 +0800

----------------------------------------------------------------------
 build/build.js                             | 17 ++++++++++++++---
 build/config.js                            | 12 ++++++++++--
 packages/weex-vue-render/src/index.core.js | 17 +++++++++++++----
 packages/weex-vue-render/src/index.js      | 17 +++++++++++++----
 4 files changed, 50 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7e2d4ef9/build/build.js
----------------------------------------------------------------------
diff --git a/build/build.js b/build/build.js
index 9ddf8a1..02f1e8c 100644
--- a/build/build.js
+++ b/build/build.js
@@ -207,9 +207,20 @@ function build (name) {
   else {
     console.log(`\n => start to build ${name} (${pkgName})\n`)
     return new Promise((resolve, reject) => {
-      runRollup(config).then(() => {
-        runRollup(minifyConfig).then(() => {
-          zip(minifyConfig.dest, resolve)
+      return runRollup(config).then(() => {
+        let p = Promise.resolve()
+        if (name === 'vue') {
+          const esConfig = getConfig(pkgName, false, {
+            format: 'es',
+            _isProd: true
+          })
+          esConfig.dest = esConfig.dest.replace(/\.js$/, '.es.js')
+          p = runRollup(esConfig)
+        }
+        return p.then(function () {
+          return runRollup(minifyConfig).then(() => {
+            zip(minifyConfig.dest, resolve)
+          })
         })
       })
     })

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7e2d4ef9/build/config.js
----------------------------------------------------------------------
diff --git a/build/config.js b/build/config.js
index a863919..3efccb2 100644
--- a/build/config.js
+++ b/build/config.js
@@ -157,8 +157,16 @@ console.log('START WEEX VUE RENDER CORE: ${subversion['vue-render']}, Build ${no
   }
 }
 
-function getConfig (name, minify) {
+function getConfig (name, minify, params) {
   const opt = configs[name]
+  let isProd
+  if (params) {
+    isProd = params._isProd
+    delete params._isProd
+    for (const k in params) {
+      opt[k] = params[k]
+    }
+  }
   const config = {
     moduleName: opt.moduleName,
     entry: opt.entry,
@@ -169,7 +177,7 @@ function getConfig (name, minify) {
       json(),
       replace({
         'process.env.VIEWPORT_WIDTH': 750,
-        'process.env.NODE_ENV': JSON.stringify(minify ? 'production' : 'development'),
+        'process.env.NODE_ENV': JSON.stringify(isProd ? 'production' : minify ? 'production' : 'development'),
         'process.env.VUE_ENV': JSON.stringify('WEEX'),
         'process.env.NODE_DEBUG': false
       }),

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7e2d4ef9/packages/weex-vue-render/src/index.core.js
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/src/index.core.js b/packages/weex-vue-render/src/index.core.js
index 3bc8edb..dc49562 100644
--- a/packages/weex-vue-render/src/index.core.js
+++ b/packages/weex-vue-render/src/index.core.js
@@ -5,9 +5,18 @@ import text from '../../../html5/render/vue/components/text'
 import image from '../../../html5/render/vue/components/image'
 import scrollable from '../../../html5/render/vue/components/scrollable'
 
-weex.install(div)
-weex.install(text)
-weex.install(image)
-weex.install(scrollable)
+const preInit = weex.init
+
+weex.init = function () {
+  preInit.apply(weex, arguments)
+  weex.install(div)
+  weex.install(text)
+  weex.install(image)
+  weex.install(scrollable)
+}
+
+if (global.Vue) {
+  weex.init(global.Vue)
+}
 
 export default weex

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7e2d4ef9/packages/weex-vue-render/src/index.js
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/src/index.js b/packages/weex-vue-render/src/index.js
index efbbaeb..178da4c 100644
--- a/packages/weex-vue-render/src/index.js
+++ b/packages/weex-vue-render/src/index.js
@@ -3,10 +3,19 @@ import weex from '../../../html5/render/vue'
 import components from '../../../html5/render/vue/components'
 import modules from '../../../html5/render/vue/modules'
 
-const plugins = components.concat(modules)
+const preInit = weex.init
 
-plugins.forEach(function (plugin) {
-  weex.install(plugin)
-})
+weex.init = function () {
+  preInit.apply(weex, arguments)
+  const plugins = components.concat(modules)
+
+  plugins.forEach(function (plugin) {
+    weex.install(plugin)
+  })
+}
+
+if (global.Vue) {
+  weex.init(global.Vue)
+}
 
 export default weex


[12/47] incubator-weex git commit: * [html5] trigger cilck with tap.

Posted by gu...@apache.org.
* [html5] trigger cilck with tap.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/b3dd01f2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/b3dd01f2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/b3dd01f2

Branch: refs/heads/dev
Commit: b3dd01f20815594fe7d1bc824ef577099e731f9f
Parents: 3153784
Author: MrRaindrop <te...@gmail.com>
Authored: Thu Aug 24 16:44:51 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Thu Aug 24 16:44:51 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/config.js            |  3 ++-
 html5/render/vue/env/event-manager.js | 11 +++++++++--
 html5/render/vue/lib/gesture.js       |  2 +-
 3 files changed, 12 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b3dd01f2/html5/render/vue/config.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/config.js b/html5/render/vue/config.js
index 0858b2f..bccf1e3 100644
--- a/html5/render/vue/config.js
+++ b/html5/render/vue/config.js
@@ -23,6 +23,7 @@ export default {
     'panmove',
     'panend',
     'swipe',
-    'longpress'
+    'longpress',
+    'tap'
   ]
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b3dd01f2/html5/render/vue/env/event-manager.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/env/event-manager.js b/html5/render/vue/env/event-manager.js
index 1a57f84..7a074d5 100644
--- a/html5/render/vue/env/event-manager.js
+++ b/html5/render/vue/env/event-manager.js
@@ -21,10 +21,10 @@ import config from '../config'
 import { createEvent, supportsPassive } from '../utils'
 
 const gestureEvents = config.gestureEvents
-const touchEvents = ['touchstart', 'touchmove', 'touchend']
+const nativeEvents = ['click', 'touchstart', 'touchmove', 'touchend']
 const needPassive = ['touchmove']
 
-const events = gestureEvents.concat(touchEvents)
+const events = gestureEvents.concat(nativeEvents)
 
 // /**
 //  * is a element in a '<a>' tag?
@@ -96,6 +96,13 @@ function _init (doc) {
         e.preventDefault()
       }
 
+      if (evt === 'tap' && evt._for !== 'weex') {
+        return
+      }
+      else if (evt === 'tap') {
+        evt = 'click'
+      }
+
       while (vm) {
         const vnode = vm.$vnode || vm._vnode
         const elm = vm.$el

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b3dd01f2/html5/render/vue/lib/gesture.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/lib/gesture.js b/html5/render/vue/lib/gesture.js
index 5f72b3c..62ad226 100644
--- a/html5/render/vue/lib/gesture.js
+++ b/html5/render/vue/lib/gesture.js
@@ -384,7 +384,7 @@ function touchendHandler(event) {
     if (gesture.status === 'tapping') {
       gesture.timestamp = Date.now()
       // fire click, not tap.
-      fireEvent(gesture.element, 'click', /* 'tap',  */{
+      fireEvent(gesture.element, 'tap', {
         touch: touch,
         touchEvent: event
       })


[43/47] incubator-weex git commit: * [html5] fix vue-render tests.

Posted by gu...@apache.org.
* [html5] fix vue-render tests.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/52aed200
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/52aed200
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/52aed200

Branch: refs/heads/dev
Commit: 52aed20005c438a40dbb97c670d27858fa1e3d90
Parents: 51ceff1
Author: MrRaindrop <te...@gmail.com>
Authored: Tue Sep 26 10:30:40 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Tue Sep 26 10:30:40 2017 +0800

----------------------------------------------------------------------
 build/karma.vue.conf.js                    |  1 +
 html5/render/vue/utils/component.js        |  7 +++----
 html5/test/render/vue/components/switch.js |  5 +----
 html5/test/render/vue/components/text.js   |  4 ++--
 html5/test/render/vue/components/web.js    |  4 ++--
 html5/test/render/vue/helper/index.js      | 11 +++++++++++
 html5/test/render/vue/utils/component.js   |  5 -----
 7 files changed, 20 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/52aed200/build/karma.vue.conf.js
----------------------------------------------------------------------
diff --git a/build/karma.vue.conf.js b/build/karma.vue.conf.js
index 693c241..1bb24d3 100644
--- a/build/karma.vue.conf.js
+++ b/build/karma.vue.conf.js
@@ -72,6 +72,7 @@ module.exports = function (config) {
       '../html5/test/render/vue/utils/*.js',
       '../html5/test/render/vue/core/*.js',
       '../html5/test/render/vue/!(utils|core)/*.js'
+      // '../html5/test/render/vue/components/switch.js',
     ],
     exclude: [
       '../html5/test/render/vue/core/node.js',

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/52aed200/html5/render/vue/utils/component.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/utils/component.js b/html5/render/vue/utils/component.js
index f1e9ee0..7e96585 100644
--- a/html5/render/vue/utils/component.js
+++ b/html5/render/vue/utils/component.js
@@ -152,7 +152,7 @@ function checkHandlers (handlers) {
  */
 export function watchAppear (context, fireNow) {
   const el = context && context.$el
-  if (!el) { return }
+  if (!el || el.nodeType !== 1) { return }
   const appearOffset = getAppearOffset(el)
 
   const handlers = getEventHandlers(context)
@@ -163,7 +163,7 @@ export function watchAppear (context, fireNow) {
   }
 
   let isWindow = false
-  let container = window
+  let container = document.body
   const scroller = getParentScroller(context)
   if (scroller && scroller.$el) {
     container = scroller.$el
@@ -208,9 +208,8 @@ export function watchAppear (context, fireNow) {
     for (let i = 0; i < len; i++) {
       const vm = watchAppearList[i]
       const el = vm.$el
-      const ct = isWindow ? document.body : container
       const appearOffset = getAppearOffset(el)
-      const visibleData = isElementVisible(el, ct, dir, appearOffset)
+      const visibleData = isElementVisible(el, container, dir, appearOffset)
       detectAppear(vm, visibleData, dir)
     }
   }, 25, true)

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/52aed200/html5/test/render/vue/components/switch.js
----------------------------------------------------------------------
diff --git a/html5/test/render/vue/components/switch.js b/html5/test/render/vue/components/switch.js
index 89e3734..123bb8e 100644
--- a/html5/test/render/vue/components/switch.js
+++ b/html5/test/render/vue/components/switch.js
@@ -28,9 +28,7 @@ init('<switch> component', (Vue, helper) => {
 
   it('simple <switch> component', () => {
     const vm = compile(`<switch></switch>`)
-
-    // console.log(vm.$el)
-    expect(vm.$el.tagName).to.be.equal('SPAN')
+    expect(vm.$el.tagName.toLowerCase()).to.be.equal('span')
     expect(utils.toArray(vm.$el.classList)).to.include('weex-switch')
     expect(vm.$el.innerHTML).to.be.equal('<small class="weex-switch-inner"></small>')
   })
@@ -39,7 +37,6 @@ init('<switch> component', (Vue, helper) => {
     const vmA = compile(`<switch disabled="true"></switch>`)
     const vmB = compile(`<switch disabled></switch>`)
     const vmC = compile(`<switch disabled="disabled"></switch>`)
-
     expect(vmA.$el.className).to.match(/weex\-switch\-disabled/)
     expect(vmB.$el.className).to.match(/weex\-switch\-disabled/)
     expect(vmC.$el.className).to.match(/weex\-switch\-disabled/)

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/52aed200/html5/test/render/vue/components/text.js
----------------------------------------------------------------------
diff --git a/html5/test/render/vue/components/text.js b/html5/test/render/vue/components/text.js
index 105cb49..e45432b 100644
--- a/html5/test/render/vue/components/text.js
+++ b/html5/test/render/vue/components/text.js
@@ -30,14 +30,14 @@ init('<text> component', (Vue, helper) => {
   it('create simple text component', () => {
     const vm = compile(`<text>abc</text>`)
 
-    expect(vm.$el.tagName).to.be.equal('P')
+    expect(vm.$el.tagName.toLowerCase()).to.be.equal('p')
     expect(vm.$el.innerHTML).to.be.equal('abc')
   })
 
   it('empty text component', () => {
     const vm = compile(`<text></text>`)
 
-    expect(vm.$el.tagName).to.be.equal('P')
+    expect(vm.$el.tagName.toLowerCase()).to.be.equal('p')
     expect(vm.$el.innerHTML).to.be.equal('')
   })
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/52aed200/html5/test/render/vue/components/web.js
----------------------------------------------------------------------
diff --git a/html5/test/render/vue/components/web.js b/html5/test/render/vue/components/web.js
index 6895b35..6ee488f 100644
--- a/html5/test/render/vue/components/web.js
+++ b/html5/test/render/vue/components/web.js
@@ -29,14 +29,14 @@ init('<web> component', (Vue, helper) => {
     const vm = compile(`<web></web>`)
 
     // console.log(vm.$el)
-    expect(vm.$el.tagName).to.be.equal('IFRAME')
+    expect(vm.$el.tagName.toLowerCase()).to.be.equal('iframe')
     expect(utils.toArray(vm.$el.classList)).to.include.members(['weex-web', 'weex-el'])
   })
 
   it('use src attribute', () => {
     const vm = compile(`<web src="https://x.cn"></web>`)
 
-    expect(vm.$el.tagName).to.be.equal('IFRAME')
+    expect(vm.$el.tagName.toLowerCase()).to.be.equal('iframe')
     expect(vm.$el.getAttribute('src')).to.be.equal('https://x.cn')
     expect(utils.toArray(vm.$el.classList)).to.include.members(['weex-web', 'weex-el'])
   })

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/52aed200/html5/test/render/vue/helper/index.js
----------------------------------------------------------------------
diff --git a/html5/test/render/vue/helper/index.js b/html5/test/render/vue/helper/index.js
index 883b70c..641e34e 100644
--- a/html5/test/render/vue/helper/index.js
+++ b/html5/test/render/vue/helper/index.js
@@ -39,6 +39,17 @@ export function init (title, fn) {
       Vue.config.isReservedTag = tag => htmlRegex.test(tag)
       Vue.config.parsePlatformTagName = tag => tag.replace(htmlRegex, '')
 
+      function isWeexTag (tag) {
+        return !!weex._components[tag]
+      }
+      const oldGetTagNamespace = Vue.config.getTagNamespace
+      Vue.config.getTagNamespace = function (tag) {
+        if (isWeexTag(tag)) {
+          return
+        }
+        return oldGetTagNamespace(tag)
+      }
+
       Vue.mixin(base)
       Vue.mixin(style)
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/52aed200/html5/test/render/vue/utils/component.js
----------------------------------------------------------------------
diff --git a/html5/test/render/vue/utils/component.js b/html5/test/render/vue/utils/component.js
index fc70be2..a921800 100644
--- a/html5/test/render/vue/utils/component.js
+++ b/html5/test/render/vue/utils/component.js
@@ -47,11 +47,6 @@ init('utils component', (Vue, helper) => {
       expect(getParentScroller).to.be.a('function')
       expect(getParentScroller(vm)).to.be.a('undefined')
     })
-    it('isComponentVisible', () => {
-      const { isComponentVisible } = components
-      expect(isComponentVisible).to.be.a('function')
-      expect(isComponentVisible(vm)).to.be.true
-    })
   })
   describe('watchAppear', () => {
     it('should work when mounted and updated.', function (done) {


[15/47] incubator-weex git commit: * [html5] fix click.

Posted by gu...@apache.org.
* [html5] fix click.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/5bc58516
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/5bc58516
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/5bc58516

Branch: refs/heads/dev
Commit: 5bc585168ec5586901e1865a738ac521ec8a861b
Parents: 768b13a
Author: MrRaindrop <te...@gmail.com>
Authored: Thu Aug 24 21:37:14 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Thu Aug 24 21:37:14 2017 +0800

----------------------------------------------------------------------
 build/karma.vue.conf.js               |  1 +
 html5/render/vue/core/node.js         |  2 +-
 html5/render/vue/env/event-manager.js | 17 +++++++++--------
 html5/render/vue/lib/gesture.js       |  2 +-
 4 files changed, 12 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5bc58516/build/karma.vue.conf.js
----------------------------------------------------------------------
diff --git a/build/karma.vue.conf.js b/build/karma.vue.conf.js
index 6220025..693c241 100644
--- a/build/karma.vue.conf.js
+++ b/build/karma.vue.conf.js
@@ -74,6 +74,7 @@ module.exports = function (config) {
       '../html5/test/render/vue/!(utils|core)/*.js'
     ],
     exclude: [
+      '../html5/test/render/vue/core/node.js',
       '../html5/test/render/vue/helper/*.js',
       '../html5/test/render/vue/vender/**/*.js',
       '../html5/test/render/vue/data/**/*.js'

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5bc58516/html5/render/vue/core/node.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/core/node.js b/html5/render/vue/core/node.js
index caf4230..d38cafd 100644
--- a/html5/render/vue/core/node.js
+++ b/html5/render/vue/core/node.js
@@ -85,7 +85,7 @@ export function createEventMap (context, ...events) {
            */
           let vm = context
           while (vm) {
-            const ons = getListeners(vm.$vnode, listenTo)
+            const ons = getListeners(vm._vnode || vm.$vnode, listenTo)
             const len = ons.length
             if (len > 0) {
               let idx = 0

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5bc58516/html5/render/vue/env/event-manager.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/env/event-manager.js b/html5/render/vue/env/event-manager.js
index 7a074d5..3ecf618 100644
--- a/html5/render/vue/env/event-manager.js
+++ b/html5/render/vue/env/event-manager.js
@@ -88,25 +88,26 @@ function _init (doc) {
       const el = e.target
       let vm = el.__vue__
       let disposed = false
-
+      let evtName = e.type
       /**
        * take full control of redirection of <a> element.
        */
-      if (evt === 'click') {
+      if (evtName === 'click') {
         e.preventDefault()
+        return
       }
 
-      if (evt === 'tap' && evt._for !== 'weex') {
+      if (evtName === 'tap' && e._for !== 'weex') {
         return
       }
-      else if (evt === 'tap') {
-        evt = 'click'
+      else if (evtName === 'tap') {
+        evtName = 'click'
       }
 
       while (vm) {
-        const vnode = vm.$vnode || vm._vnode
+        const vnode = vm._vnode || vm.$vnode
         const elm = vm.$el
-        const ons = getListeners(vnode, evt)
+        const ons = getListeners(vnode, evtName)
         const len = ons && ons.length
 
         if (len > 0) {
@@ -129,7 +130,7 @@ function _init (doc) {
          * NOTE: if target==='_blank' then do no jumping and dispatch the
          * click event to document.body for further disposing.
          */
-        if (evt === 'click' && isANode(elm)) {
+        if (evtName === 'click' && isANode(elm)) {
           const href = elm.getAttribute('href')
           const target = elm.getAttribute('target')
           disposed = true

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5bc58516/html5/render/vue/lib/gesture.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/lib/gesture.js b/html5/render/vue/lib/gesture.js
index 62ad226..5294cb2 100644
--- a/html5/render/vue/lib/gesture.js
+++ b/html5/render/vue/lib/gesture.js
@@ -70,7 +70,7 @@ function getCommonAncestor(el1, el2) {
  */
 function fireEvent(element, type, extra) {
   var event = doc.createEvent('HTMLEvents')
-  event.initEvent(type, false, true)
+  event.initEvent(type, true, true)
 
   if (typeof extra === 'object') {
     for (var p in extra) {


[35/47] incubator-weex git commit: * [html5] reset env.deviceHeight after window's resizing.

Posted by gu...@apache.org.
* [html5] reset env.deviceHeight after window's resizing.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/babd33bf
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/babd33bf
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/babd33bf

Branch: refs/heads/dev
Commit: babd33bf5257cce55fe429b0137b2ce218281cc4
Parents: 89b131f
Author: MrRaindrop <te...@gmail.com>
Authored: Thu Sep 14 20:55:09 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Thu Sep 14 20:55:09 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/README.md            | 4 ++++
 html5/render/vue/env/viewport.js      | 8 ++++++++
 package.json                          | 2 +-
 packages/weex-vue-render/README.md    | 4 ++++
 packages/weex-vue-render/package.json | 2 +-
 5 files changed, 18 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/babd33bf/html5/render/vue/README.md
----------------------------------------------------------------------
diff --git a/html5/render/vue/README.md b/html5/render/vue/README.md
index 31b6226..4433261 100644
--- a/html5/render/vue/README.md
+++ b/html5/render/vue/README.md
@@ -164,6 +164,10 @@ vue: {
 
 * fix NS (svg) bug in vue.js@v2.4.3
 
+#### 0.12.13
+
+* reset `env.deviceHeight` after window's resizing.
+
 ## component -> dom map
 
 | component | dom element | children | note |

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/babd33bf/html5/render/vue/env/viewport.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/env/viewport.js b/html5/render/vue/env/viewport.js
index 33efd6a..bec967f 100644
--- a/html5/render/vue/env/viewport.js
+++ b/html5/render/vue/env/viewport.js
@@ -118,10 +118,18 @@ export function init (viewportWidth: number = width): ?{
     screenWidth = doc.documentElement.clientWidth
     screenHeight = doc.documentElement.clientHeight
 
+    const resetDeviceHeight = function () {
+      screenHeight = doc.documentElement.clientHeight
+      const env = window.weex && window.weex.config.env
+      info.deviceHeight = env.deviceHeight = screenHeight * dpr
+    }
+
     // set root font for rem.
     setRootFont(screenWidth)
     setMetaViewport(viewportWidth)
 
+    window.addEventListener('resize', resetDeviceHeight)
+
     /**
      * why not to use window.screen.width to get screenWidth ? Because in some
      * old webkit browser on android system it get the device pixel width, which

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/babd33bf/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 534cc67..57cde71 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
   "subversion": {
     "browser": "0.5.0",
     "framework": "0.21.11",
-    "vue-render": "0.12.12",
+    "vue-render": "0.12.13",
     "transformer": ">=0.1.5 <0.5"
   },
   "description": "A framework for building Mobile cross-platform UI",

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/babd33bf/packages/weex-vue-render/README.md
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/README.md b/packages/weex-vue-render/README.md
index 31b6226..4433261 100644
--- a/packages/weex-vue-render/README.md
+++ b/packages/weex-vue-render/README.md
@@ -164,6 +164,10 @@ vue: {
 
 * fix NS (svg) bug in vue.js@v2.4.3
 
+#### 0.12.13
+
+* reset `env.deviceHeight` after window's resizing.
+
 ## component -> dom map
 
 | component | dom element | children | note |

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/babd33bf/packages/weex-vue-render/package.json
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/package.json b/packages/weex-vue-render/package.json
index 8ff879e..c86c16b 100644
--- a/packages/weex-vue-render/package.json
+++ b/packages/weex-vue-render/package.json
@@ -1,6 +1,6 @@
 {
   "name": "weex-vue-render",
-  "version": "0.12.12",
+  "version": "0.12.13",
   "description": "Weex built-in components for Vue 2.x.",
   "license": "Apache-2.0",
   "main": "dist/index.common.js",


[46/47] incubator-weex git commit: * [ios] fix type convert warnings

Posted by gu...@apache.org.
* [ios] fix type convert warnings


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/5b7c9a4e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/5b7c9a4e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/5b7c9a4e

Branch: refs/heads/dev
Commit: 5b7c9a4e683300f63869c4fa50b21ec087570bdf
Parents: 2513b0f
Author: acton393 <zh...@gmail.com>
Authored: Tue Sep 26 11:56:49 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Tue Sep 26 11:56:49 2017 +0800

----------------------------------------------------------------------
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5b7c9a4e/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK/Sources/Model/WXComponent.m b/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
index 9e95e9b..7ad52f3 100644
--- a/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
@@ -150,7 +150,7 @@
         copyId = __copy % (1024*1024);
         __copy++;
     }
-    NSString *copyRef = [NSString stringWithFormat:@"%ldcopy_of%@", copyId, _isTemplate ? self.ref : self->_templateComponent.ref];
+    NSString *copyRef = [NSString stringWithFormat:@"%zdcopy_of%@", copyId, _isTemplate ? self.ref : self->_templateComponent.ref];
     WXComponent *component = [[[self class] allocWithZone:zone] initWithRef:copyRef type:self.type styles:self.styles attributes:self.attributes events:self.events weexInstance:self.weexInstance];
     if (_isTemplate) {
         component->_templateComponent = self;


[47/47] incubator-weex git commit: Merge branch '0.16-dev' of https://git-wip-us.apache.org/repos/asf/incubator-weex into 0.16-dev

Posted by gu...@apache.org.
Merge branch '0.16-dev' of https://git-wip-us.apache.org/repos/asf/incubator-weex into 0.16-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/915935b0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/915935b0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/915935b0

Branch: refs/heads/dev
Commit: 915935b09163d2ea88d2db7ba83979e6d9f2cf1c
Parents: aab1d74 5b7c9a4
Author: MrRaindrop <te...@gmail.com>
Authored: Tue Sep 26 12:22:44 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Tue Sep 26 12:22:44 2017 +0800

----------------------------------------------------------------------
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------



[05/47] incubator-weex git commit: Revert "* [html5] release vue-render 0.12.2"

Posted by gu...@apache.org.
Revert "* [html5] release vue-render 0.12.2"

This reverts commit bb844b90aa013ca946c6ffdce57a1281f5340374.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/486c6f4d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/486c6f4d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/486c6f4d

Branch: refs/heads/dev
Commit: 486c6f4dffcb9865739731c34fbabf276395dd16
Parents: bb844b9
Author: MrRaindrop <te...@gmail.com>
Authored: Mon Aug 21 11:31:55 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Mon Aug 21 11:31:55 2017 +0800

----------------------------------------------------------------------
 package.json | 5 -----
 1 file changed, 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/486c6f4d/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 2148df1..4579a27 100644
--- a/package.json
+++ b/package.json
@@ -3,13 +3,8 @@
   "version": "0.12.2",
   "subversion": {
     "browser": "0.5.0",
-<<<<<<< HEAD
     "framework": "0.21.9",
     "vue-render": "0.12.3",
-=======
-    "framework": "0.20.6",
-    "vue-render": "0.12.2",
->>>>>>> 850811c... * [html5] release vue-render 0.12.2
     "transformer": ">=0.1.5 <0.5"
   },
   "description": "A framework for building Mobile cross-platform UI",


[13/47] incubator-weex git commit: * [html5] udpate publish info.

Posted by gu...@apache.org.
* [html5] udpate publish info.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/316dfa28
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/316dfa28
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/316dfa28

Branch: refs/heads/dev
Commit: 316dfa28a7f2e96540959dc06fb6ca55e2f38822
Parents: b3dd01f
Author: MrRaindrop <te...@gmail.com>
Authored: Thu Aug 24 16:57:01 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Thu Aug 24 17:06:14 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/README.md            | 4 ++++
 package.json                          | 4 ++--
 packages/weex-vue-render/README.md    | 4 ++++
 packages/weex-vue-render/package.json | 2 +-
 4 files changed, 11 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/316dfa28/html5/render/vue/README.md
----------------------------------------------------------------------
diff --git a/html5/render/vue/README.md b/html5/render/vue/README.md
index 7e507c9..41df16b 100644
--- a/html5/render/vue/README.md
+++ b/html5/render/vue/README.md
@@ -142,6 +142,10 @@ vue: {
 
 * fix scanning style in production with uglified code.
 
+#### 0.12.6
+
+* optimize event binding.
+
 ## component -> dom map
 
 | component | dom element | children | note |

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/316dfa28/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 02ad3ed..1648235 100644
--- a/package.json
+++ b/package.json
@@ -3,8 +3,8 @@
   "version": "0.12.2",
   "subversion": {
     "browser": "0.5.0",
-    "framework": "0.21.9",
-    "vue-render": "0.12.4",
+    "framework": "0.21.11",
+    "vue-render": "0.12.6",
     "transformer": ">=0.1.5 <0.5"
   },
   "description": "A framework for building Mobile cross-platform UI",

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/316dfa28/packages/weex-vue-render/README.md
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/README.md b/packages/weex-vue-render/README.md
index 7e507c9..41df16b 100644
--- a/packages/weex-vue-render/README.md
+++ b/packages/weex-vue-render/README.md
@@ -142,6 +142,10 @@ vue: {
 
 * fix scanning style in production with uglified code.
 
+#### 0.12.6
+
+* optimize event binding.
+
 ## component -> dom map
 
 | component | dom element | children | note |

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/316dfa28/packages/weex-vue-render/package.json
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/package.json b/packages/weex-vue-render/package.json
index c6dfb4a..51a68d9 100644
--- a/packages/weex-vue-render/package.json
+++ b/packages/weex-vue-render/package.json
@@ -1,6 +1,6 @@
 {
   "name": "weex-vue-render",
-  "version": "0.12.4",
+  "version": "0.12.6",
   "description": "Weex built-in components for Vue 2.x.",
   "license": "Apache-2.0",
   "main": "dist/index.common.js",


[37/47] incubator-weex git commit: * [html5] release v0.12.14

Posted by gu...@apache.org.
* [html5] release v0.12.14


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/6ec5a50b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/6ec5a50b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/6ec5a50b

Branch: refs/heads/dev
Commit: 6ec5a50bc4c9309f3f39a01b7e91808185cfc406
Parents: 56df42d
Author: MrRaindrop <te...@gmail.com>
Authored: Fri Sep 15 17:21:02 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Fri Sep 15 17:21:02 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/README.md            | 4 ++++
 package.json                          | 2 +-
 packages/weex-vue-render/README.md    | 4 ++++
 packages/weex-vue-render/package.json | 2 +-
 4 files changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ec5a50b/html5/render/vue/README.md
----------------------------------------------------------------------
diff --git a/html5/render/vue/README.md b/html5/render/vue/README.md
index 4433261..0554334 100644
--- a/html5/render/vue/README.md
+++ b/html5/render/vue/README.md
@@ -168,6 +168,10 @@ vue: {
 
 * reset `env.deviceHeight` after window's resizing.
 
+#### 0.12.14
+
+* fix loading & refresh: pulling down wrongly triggered.
+
 ## component -> dom map
 
 | component | dom element | children | note |

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ec5a50b/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 57cde71..7176a73 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
   "subversion": {
     "browser": "0.5.0",
     "framework": "0.21.11",
-    "vue-render": "0.12.13",
+    "vue-render": "0.12.14",
     "transformer": ">=0.1.5 <0.5"
   },
   "description": "A framework for building Mobile cross-platform UI",

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ec5a50b/packages/weex-vue-render/README.md
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/README.md b/packages/weex-vue-render/README.md
index 4433261..0554334 100644
--- a/packages/weex-vue-render/README.md
+++ b/packages/weex-vue-render/README.md
@@ -168,6 +168,10 @@ vue: {
 
 * reset `env.deviceHeight` after window's resizing.
 
+#### 0.12.14
+
+* fix loading & refresh: pulling down wrongly triggered.
+
 ## component -> dom map
 
 | component | dom element | children | note |

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6ec5a50b/packages/weex-vue-render/package.json
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/package.json b/packages/weex-vue-render/package.json
index c86c16b..b07535d 100644
--- a/packages/weex-vue-render/package.json
+++ b/packages/weex-vue-render/package.json
@@ -1,6 +1,6 @@
 {
   "name": "weex-vue-render",
-  "version": "0.12.13",
+  "version": "0.12.14",
   "description": "Weex built-in components for Vue 2.x.",
   "license": "Apache-2.0",
   "main": "dist/index.common.js",


[28/47] incubator-weex git commit: * [html5] release v0.12.9 & fix clicking on none-vue element.

Posted by gu...@apache.org.
* [html5] release v0.12.9 & fix clicking on none-vue element.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/73d2f134
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/73d2f134
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/73d2f134

Branch: refs/heads/dev
Commit: 73d2f134fa14b2600983e6647ed15d0f4f8e2fb9
Parents: eb81e1c
Author: MrRaindrop <te...@gmail.com>
Authored: Mon Sep 11 16:15:59 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Mon Sep 11 16:15:59 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/README.md            | 4 ++++
 html5/render/vue/env/event-manager.js | 3 +++
 package.json                          | 2 +-
 packages/weex-vue-render/README.md    | 4 ++++
 packages/weex-vue-render/package.json | 6 +-----
 5 files changed, 13 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/73d2f134/html5/render/vue/README.md
----------------------------------------------------------------------
diff --git a/html5/render/vue/README.md b/html5/render/vue/README.md
index 2c915a6..d27bdac 100644
--- a/html5/render/vue/README.md
+++ b/html5/render/vue/README.md
@@ -147,6 +147,10 @@ vue: {
 * optimize event binding.
 * fix a-jump interception condition.
 
+#### 0.12.9
+
+* event handling ignore none-vue element.
+
 ## component -> dom map
 
 | component | dom element | children | note |

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/73d2f134/html5/render/vue/env/event-manager.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/env/event-manager.js b/html5/render/vue/env/event-manager.js
index a72f9b6..914981d 100644
--- a/html5/render/vue/env/event-manager.js
+++ b/html5/render/vue/env/event-manager.js
@@ -81,6 +81,9 @@ function _init (doc) {
       let vm = el.__vue__
       let disposed = false
       let evtName = e.type
+      if (!vm) {  // not a vue component.
+        return
+      }
       /**
        * take full control of redirection of <a> element.
        */

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/73d2f134/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index 0b79cde..8346fc2 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
   "subversion": {
     "browser": "0.5.0",
     "framework": "0.21.11",
-    "vue-render": "0.12.8",
+    "vue-render": "0.12.9",
     "transformer": ">=0.1.5 <0.5"
   },
   "description": "A framework for building Mobile cross-platform UI",

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/73d2f134/packages/weex-vue-render/README.md
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/README.md b/packages/weex-vue-render/README.md
index 2c915a6..d27bdac 100644
--- a/packages/weex-vue-render/README.md
+++ b/packages/weex-vue-render/README.md
@@ -147,6 +147,10 @@ vue: {
 * optimize event binding.
 * fix a-jump interception condition.
 
+#### 0.12.9
+
+* event handling ignore none-vue element.
+
 ## component -> dom map
 
 | component | dom element | children | note |

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/73d2f134/packages/weex-vue-render/package.json
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/package.json b/packages/weex-vue-render/package.json
index b29cfdc..220744f 100644
--- a/packages/weex-vue-render/package.json
+++ b/packages/weex-vue-render/package.json
@@ -1,6 +1,6 @@
 {
   "name": "weex-vue-render",
-  "version": "0.12.8",
+  "version": "0.12.9",
   "description": "Weex built-in components for Vue 2.x.",
   "license": "Apache-2.0",
   "main": "dist/index.common.js",
@@ -24,9 +24,5 @@
     "httpurl": "^0.1.1",
     "query-string": "^4.3.2",
     "inline-style-prefixer": "^3.0.2"
-  },
-  "peerDependencies": {
-    "vue": "^2.0",
-    "vue-loader": "^12.0"
   }
 }


[18/47] incubator-weex git commit: * [html5] add _triggered on event when evtName is click

Posted by gu...@apache.org.
* [html5] add _triggered on event when evtName is click


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/aeb55f30
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/aeb55f30
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/aeb55f30

Branch: refs/heads/dev
Commit: aeb55f304c2f05bc6e9f8f24047aeff1a12f4f60
Parents: 31411dd
Author: erha19 <fa...@gmail.com>
Authored: Mon Aug 28 23:33:09 2017 +0800
Committer: erha19 <fa...@gmail.com>
Committed: Mon Aug 28 23:33:09 2017 +0800

----------------------------------------------------------------------
 examples/vue/showcase/a-node-click.vue |  6 +++---
 html5/render/vue/env/event-manager.js  | 15 +++++++++++----
 2 files changed, 14 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/aeb55f30/examples/vue/showcase/a-node-click.vue
----------------------------------------------------------------------
diff --git a/examples/vue/showcase/a-node-click.vue b/examples/vue/showcase/a-node-click.vue
index bf4d5a4..26d5282 100644
--- a/examples/vue/showcase/a-node-click.vue
+++ b/examples/vue/showcase/a-node-click.vue
@@ -1,9 +1,9 @@
 <template>
   <list class="list">
     <cell class="cell" @click="clickCell">
-      <xlink style="width: 400px;height: 400px;background-color: yellow;" :href = "url">
-        <div class="ct" @click="click">
-          <text >CLICK ME</text>
+      <xlink style="width: 400px;height: 400px;background-color: yellow;" target="_blank" :href = "url">
+        <div class="ct"  @click="click">
+          <text>CLICK ME</text>
         </div>
       </xlink>
     </cell>

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/aeb55f30/html5/render/vue/env/event-manager.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/env/event-manager.js b/html5/render/vue/env/event-manager.js
index c19a649..243daa0 100644
--- a/html5/render/vue/env/event-manager.js
+++ b/html5/render/vue/env/event-manager.js
@@ -82,9 +82,9 @@ function _init (doc) {
   _inited = true
   const _sp = supportsPassive()
   events.forEach(function (evt) {
-    const option = needPassive.indexOf(evt) > -1 && _sp
-      ? { passive: true }
-      : false
+    const option = evt === 'click' 
+      ? true : needPassive.indexOf(evt) > -1 && _sp
+      ? { passive: true } : false
     doc.addEventListener(evt, function (e) {
       const el = e.target
       let vm = el.__vue__
@@ -94,6 +94,8 @@ function _init (doc) {
        * take full control of redirection of <a> element.
        */
       if (evtName === 'click') {
+        // use '_triggered' to control bubbles event.
+        e._triggered = { target: vm.$el }
         e.preventDefault()
         return
       }
@@ -134,7 +136,12 @@ function _init (doc) {
           const target = elm.getAttribute('target')
           disposed = true
           if (target !== '_blank') {
-            location.href = href
+            if (!!href) {
+              location.href = href
+            }
+            else {
+              console.warn('[weex-vue-render] If you want to use the A tag jump, set the href attribute')
+            }
           }
           else {
             // do nothing.


[29/47] incubator-weex git commit: * [html5] fix accessing vm in doms without __vue__.

Posted by gu...@apache.org.
* [html5] fix accessing vm in doms without __vue__.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/19f0c01c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/19f0c01c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/19f0c01c

Branch: refs/heads/dev
Commit: 19f0c01cfb3c5520a46a0b3ee77a137ded381321
Parents: 73d2f13
Author: MrRaindrop <te...@gmail.com>
Authored: Tue Sep 12 10:38:59 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Tue Sep 12 10:38:59 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/env/event-manager.js | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19f0c01c/html5/render/vue/env/event-manager.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/env/event-manager.js b/html5/render/vue/env/event-manager.js
index 914981d..c2d714d 100644
--- a/html5/render/vue/env/event-manager.js
+++ b/html5/render/vue/env/event-manager.js
@@ -77,13 +77,17 @@ function _init (doc) {
       ? true : needPassive.indexOf(evt) > -1 && _sp
       ? { passive: true } : false
     doc.addEventListener(evt, function (e) {
-      const el = e.target
+      let el = e.target
       let vm = el.__vue__
-      let disposed = false
-      let evtName = e.type
+      while (!vm && el !== document.body) {
+        el = el.parentElement
+        vm = el.__vue__
+      }
       if (!vm) {  // not a vue component.
         return
       }
+      let disposed = false
+      let evtName = e.type
       /**
        * take full control of redirection of <a> element.
        */


[39/47] incubator-weex git commit: * [html5] release v0.12.16.

Posted by gu...@apache.org.
* [html5] release v0.12.16.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/524fbd13
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/524fbd13
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/524fbd13

Branch: refs/heads/dev
Commit: 524fbd131ad557d797274dfd0cb5aea2e78c20ce
Parents: b7fa6b0
Author: MrRaindrop <te...@gmail.com>
Authored: Sun Sep 24 12:01:19 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Sun Sep 24 12:01:19 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/README.md            | 2 +-
 html5/render/vue/env/event-manager.js | 5 ++---
 package.json                          | 2 +-
 packages/weex-vue-render/README.md    | 2 +-
 packages/weex-vue-render/package.json | 2 +-
 5 files changed, 6 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/524fbd13/html5/render/vue/README.md
----------------------------------------------------------------------
diff --git a/html5/render/vue/README.md b/html5/render/vue/README.md
index 31646a2..d2b8c89 100644
--- a/html5/render/vue/README.md
+++ b/html5/render/vue/README.md
@@ -172,7 +172,7 @@ vue: {
 
 * fix loading & refresh: pulling down wrongly triggered.
 
-#### 0.12.15
+#### 0.12.16
 
 * not to prevent default behaviour of click events unless the click-binding element is inside a `<a>` link, or it is a `<a>` link and has a `prevent` attribute on it.
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/524fbd13/html5/render/vue/env/event-manager.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/env/event-manager.js b/html5/render/vue/env/event-manager.js
index e637b7d..4c777d0 100644
--- a/html5/render/vue/env/event-manager.js
+++ b/html5/render/vue/env/event-manager.js
@@ -131,13 +131,12 @@ function _init (doc) {
           if (window._should_intercept_a_jump && window._should_intercept_a_jump(elm)) {
             // e._triggered should not be true since we left the intercepter to handle the event.
             e._triggered = false
-            e.preventDefault()
             disposed = true
           }
           else if (href.match(voidHrefReg)
             || prevent === '' || prevent === 'true') {
-              e._triggered = false
-              e.preventDefault()
+            e._triggered = false
+            e.preventDefault()
           }
           else {
             e._triggered = { target: elm }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/524fbd13/package.json
----------------------------------------------------------------------
diff --git a/package.json b/package.json
index cd90c76..49a5d76 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,7 @@
   "subversion": {
     "browser": "0.5.0",
     "framework": "0.21.11",
-    "vue-render": "0.12.15",
+    "vue-render": "0.12.16",
     "transformer": ">=0.1.5 <0.5"
   },
   "description": "A framework for building Mobile cross-platform UI",

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/524fbd13/packages/weex-vue-render/README.md
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/README.md b/packages/weex-vue-render/README.md
index 31646a2..d2b8c89 100644
--- a/packages/weex-vue-render/README.md
+++ b/packages/weex-vue-render/README.md
@@ -172,7 +172,7 @@ vue: {
 
 * fix loading & refresh: pulling down wrongly triggered.
 
-#### 0.12.15
+#### 0.12.16
 
 * not to prevent default behaviour of click events unless the click-binding element is inside a `<a>` link, or it is a `<a>` link and has a `prevent` attribute on it.
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/524fbd13/packages/weex-vue-render/package.json
----------------------------------------------------------------------
diff --git a/packages/weex-vue-render/package.json b/packages/weex-vue-render/package.json
index a08b4ce..57fed3f 100644
--- a/packages/weex-vue-render/package.json
+++ b/packages/weex-vue-render/package.json
@@ -1,6 +1,6 @@
 {
   "name": "weex-vue-render",
-  "version": "0.12.15",
+  "version": "0.12.16",
   "description": "Weex built-in components for Vue 2.x.",
   "license": "Apache-2.0",
   "main": "dist/index.common.js",


[27/47] incubator-weex git commit: * [html5] fix lint.

Posted by gu...@apache.org.
* [html5] fix lint.


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/eb81e1ca
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/eb81e1ca
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/eb81e1ca

Branch: refs/heads/dev
Commit: eb81e1cacae448967b262906963a21e2dad089f0
Parents: 386a0c6
Author: MrRaindrop <te...@gmail.com>
Authored: Fri Sep 8 14:11:03 2017 +0800
Committer: MrRaindrop <te...@gmail.com>
Committed: Fri Sep 8 14:11:03 2017 +0800

----------------------------------------------------------------------
 html5/render/vue/env/event-manager.js | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/eb81e1ca/html5/render/vue/env/event-manager.js
----------------------------------------------------------------------
diff --git a/html5/render/vue/env/event-manager.js b/html5/render/vue/env/event-manager.js
index 70166bc..a72f9b6 100644
--- a/html5/render/vue/env/event-manager.js
+++ b/html5/render/vue/env/event-manager.js
@@ -140,7 +140,8 @@ function _init (doc) {
           }
           else if (href) {
             location.href = href
-          } else if (process.env.NODE_ENV === 'development') {
+          }
+          else if (process.env.NODE_ENV === 'development') {
             console.warn('[vue-render] If you want to use the A tag jump, set the href attribute')
           }
         }