You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ac...@apache.org on 2018/01/17 11:20:33 UTC

[21/51] [partial] incubator-weex git commit: * [example] update examples in weex playground app

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43564f3b/android/playground/app/src/main/assets/vue/components/waterfall.js
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/assets/vue/components/waterfall.js b/android/playground/app/src/main/assets/vue/components/waterfall.js
deleted file mode 100644
index 3b05481..0000000
--- a/android/playground/app/src/main/assets/vue/components/waterfall.js
+++ /dev/null
@@ -1,863 +0,0 @@
-// { "framework": "Vue" }
-
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId])
-/******/ 			return installedModules[moduleId].exports;
-
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			exports: {},
-/******/ 			id: moduleId,
-/******/ 			loaded: false
-/******/ 		};
-
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-
-/******/ 		// Flag the module as loaded
-/******/ 		module.loaded = true;
-
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-
-
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(0);
-/******/ })
-/************************************************************************/
-/******/ ({
-
-/***/ 0:
-/***/ (function(module, exports, __webpack_require__) {
-
-	var __vue_exports__, __vue_options__
-	var __vue_styles__ = []
-
-	/* styles */
-	__vue_styles__.push(__webpack_require__(87)
-	)
-
-	/* script */
-	__vue_exports__ = __webpack_require__(88)
-
-	/* template */
-	var __vue_template__ = __webpack_require__(89)
-	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
-	if (
-	  typeof __vue_exports__.default === "object" ||
-	  typeof __vue_exports__.default === "function"
-	) {
-	if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")}
-	__vue_options__ = __vue_exports__ = __vue_exports__.default
-	}
-	if (typeof __vue_options__ === "function") {
-	  __vue_options__ = __vue_options__.options
-	}
-	__vue_options__.__file = "/Users/Hanks/Codes/work/incubator-weex/examples/vue/components/waterfall.vue"
-	__vue_options__.render = __vue_template__.render
-	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-	__vue_options__._scopeId = "data-v-127cc93e"
-	__vue_options__.style = __vue_options__.style || {}
-	__vue_styles__.forEach(function (module) {
-	  for (var name in module) {
-	    __vue_options__.style[name] = module[name]
-	  }
-	})
-	if (typeof __register_static_styles__ === "function") {
-	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
-	}
-
-	module.exports = __vue_exports__
-	module.exports.el = 'true'
-	new Vue(module.exports)
-
-
-/***/ }),
-
-/***/ 87:
-/***/ (function(module, exports) {
-
-	module.exports = {
-	  "page": {
-	    "backgroundColor": "#EFEFEF"
-	  },
-	  "refresh": {
-	    "height": 128,
-	    "width": 750,
-	    "flexDirection": "row",
-	    "alignItems": "center",
-	    "justifyContent": "center"
-	  },
-	  "refreshText": {
-	    "color": "#888888",
-	    "fontWeight": "bold"
-	  },
-	  "indicator": {
-	    "color": "#888888",
-	    "height": 40,
-	    "width": 40,
-	    "marginRight": 30
-	  },
-	  "header": {
-	    "backgroundColor": "#ffffff"
-	  },
-	  "banner": {
-	    "height": 377,
-	    "flexDirection": "row"
-	  },
-	  "bannerInfo": {
-	    "width": 270,
-	    "alignItems": "center",
-	    "justifyContent": "center"
-	  },
-	  "avatar": {
-	    "width": 148,
-	    "height": 108,
-	    "borderRadius": 54,
-	    "borderWidth": 4,
-	    "borderColor": "#FFFFFF",
-	    "marginBottom": 14
-	  },
-	  "name": {
-	    "fontWeight": "bold",
-	    "fontSize": 32,
-	    "color": "#ffffff",
-	    "lineHeight": 32,
-	    "textAlign": "center",
-	    "marginBottom": 16
-	  },
-	  "titleWrap": {
-	    "width": 100,
-	    "height": 24,
-	    "marginBottom": 10,
-	    "backgroundColor": "rgba(255,255,255,0.8)",
-	    "borderRadius": 12,
-	    "justifyContent": "center",
-	    "alignItems": "center"
-	  },
-	  "title": {
-	    "fontSize": 20,
-	    "color": "#000000"
-	  },
-	  "bannerPhotoWrap": {
-	    "width": 449,
-	    "height": 305,
-	    "backgroundColor": "#FFFFFF",
-	    "borderRadius": 12,
-	    "marginTop": 35,
-	    "paddingTop": 12,
-	    "paddingRight": 12,
-	    "paddingBottom": 12,
-	    "paddingLeft": 12,
-	    "flexDirection": "row",
-	    "justifyContent": "space-between",
-	    "flexWrap": "wrap"
-	  },
-	  "bannerPhoto": {
-	    "width": 137,
-	    "height": 137,
-	    "marginBottom": 6
-	  },
-	  "stickyHeader": {
-	    "position": "sticky",
-	    "height": 94,
-	    "flexDirection": "row",
-	    "paddingBottom": 6
-	  },
-	  "stickyWrapper": {
-	    "flexDirection": "row",
-	    "backgroundColor": "#00cc99",
-	    "justifyContent": "center",
-	    "alignItems": "center",
-	    "flex": 1
-	  },
-	  "stickyTextImageWrapper": {
-	    "flex": 1,
-	    "justifyContent": "center",
-	    "alignItems": "center",
-	    "flexDirection": "row"
-	  },
-	  "stickyText": {
-	    "color": "#FFFFFF",
-	    "fontWeight": "bold",
-	    "fontSize": 32,
-	    "marginRight": 12
-	  },
-	  "stickyImage": {
-	    "width": 64,
-	    "height": 64,
-	    "borderRadius": 32
-	  },
-	  "cell": {
-	    "paddingTop": 6,
-	    "paddingBottom": 6
-	  },
-	  "item": {
-	    "backgroundColor": "#FFFFFF",
-	    "alignItems": "center"
-	  },
-	  "itemName": {
-	    "fontSize": 28,
-	    "color": "#333333",
-	    "lineHeight": 42,
-	    "textAlign": "left",
-	    "marginTop": 24
-	  },
-	  "itemPhoto": {
-	    "marginTop": 18,
-	    "width": 220,
-	    "height": 220,
-	    "marginBottom": 18
-	  },
-	  "itemDesc": {
-	    "fontSize": 24,
-	    "marginTop": 12,
-	    "marginRight": 12,
-	    "marginBottom": 12,
-	    "marginLeft": 12,
-	    "color": "#999999",
-	    "lineHeight": 36,
-	    "textAlign": "left"
-	  },
-	  "itemClickBehaviour": {
-	    "fontSize": 36,
-	    "color": "#00cc99",
-	    "lineHeight": 36,
-	    "textAlign": "center",
-	    "marginTop": 6,
-	    "marginLeft": 24,
-	    "marginRight": 24,
-	    "marginBottom": 30
-	  },
-	  "fixedItem": {
-	    "position": "fixed",
-	    "width": 78,
-	    "height": 78,
-	    "backgroundColor": "#00cc99",
-	    "right": 32,
-	    "bottom": 32,
-	    "borderRadius": 39,
-	    "alignItems": "center",
-	    "justifyContent": "center"
-	  },
-	  "fixedText": {
-	    "fontSize": 36,
-	    "color": "#FFFFFF",
-	    "lineHeight": 36
-	  }
-	}
-
-/***/ }),
-
-/***/ 88:
-/***/ (function(module, exports) {
-
-	'use strict';
-
-	Object.defineProperty(exports, "__esModule", {
-	  value: true
-	});
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-
-	exports.default = {
-	  data: function data() {
-	    var items = [{
-	      src: 'https://gw.alicdn.com/tps/TB1Jl1CPFXXXXcJXXXXXXXXXXXX-370-370.jpg',
-	      name: 'Thomas Carlyle',
-	      desc: 'Genius only means hard-working all one\'s life',
-	      behaviourName: 'Change count',
-	      behaviour: 'changeColumnCount'
-	    }, {
-	      src: 'https://gw.alicdn.com/tps/TB1Hv1JPFXXXXa3XXXXXXXXXXXX-370-370.jpg',
-	      desc: 'The man who has made up his mind to win will never say "impossible "',
-	      behaviourName: 'Change gap',
-	      behaviour: 'changeColumnGap'
-	    }, {
-	      src: 'https://gw.alicdn.com/tps/TB1eNKuPFXXXXc_XpXXXXXXXXXX-370-370.jpg',
-	      desc: 'There is no such thing as a great talent without great will - power',
-	      behaviourName: 'Show scrollbar',
-	      behaviour: 'showScrollbar'
-	    }, {
-	      src: 'https://gw.alicdn.com/tps/TB1DCh8PFXXXXX7aXXXXXXXXXXX-370-370.jpg',
-	      name: 'Addison',
-	      desc: 'Cease to struggle and you cease to live',
-	      behaviourName: 'Change width',
-	      behaviour: 'changeColumnWidth'
-	    }, {
-	      src: 'https://gw.alicdn.com/tps/TB1ACygPFXXXXXwXVXXXXXXXXXX-370-370.jpg',
-	      desc: 'A strong man will struggle with the storms of fate',
-	      behaviourName: 'Listen appear',
-	      behaviour: 'listenAppear'
-	    }, {
-	      src: 'https://gw.alicdn.com/tps/TB1IGShPFXXXXaqXVXXXXXXXXXX-370-370.jpg',
-	      name: 'Ruskin',
-	      desc: 'Living without an aim is like sailing without a compass',
-	      behaviourName: 'Set scrollable',
-	      behaviour: 'setScrollable'
-	    }, {
-	      src: 'https://gw.alicdn.com/tps/TB1xU93PFXXXXXHaXXXXXXXXXXX-240-240.jpg',
-	      behaviourName: 'waterfall padding',
-	      behaviour: 'setPadding'
-	    }, {
-	      src: 'https://gw.alicdn.com/tps/TB19hu0PFXXXXaXaXXXXXXXXXXX-240-240.jpg',
-	      name: 'Balzac',
-	      desc: 'There is no such thing as a great talent without great will - power',
-	      behaviourName: 'listen scroll',
-	      behaviour: 'listenScroll'
-	    }, {
-	      src: 'https://gw.alicdn.com/tps/TB1ux2vPFXXXXbkXXXXXXXXXXXX-240-240.jpg',
-	      behaviourName: 'Remove cell',
-	      behaviour: 'removeCell'
-	    }, {
-	      src: 'https://gw.alicdn.com/tps/TB1tCCWPFXXXXa7aXXXXXXXXXXX-240-240.jpg',
-	      behaviourName: 'Move cell',
-	      behaviour: 'moveCell'
-	    }];
-
-	    var repeatItems = [];
-	    for (var i = 0; i < 3; i++) {
-	      repeatItems.push.apply(repeatItems, items);
-	    }
-
-	    return {
-	      padding: 0,
-	      refreshing: false,
-	      refreshText: '↓   pull to refresh...',
-	      columnCount: 2,
-	      columnGap: 12,
-	      columnWidth: 'auto',
-	      contentOffset: '0',
-	      showHeader: true,
-	      showScrollbar: false,
-	      scrollable: true,
-	      showStickyHeader: false,
-	      appearImage: null,
-	      disappearImage: null,
-	      stickyHeaderType: 'none',
-	      banner: {
-	        photos: [{ src: 'https://gw.alicdn.com/tps/TB1JyaCPFXXXXc9XXXXXXXXXXXX-140-140.jpg' }, { src: 'https://gw.alicdn.com/tps/TB1MwSFPFXXXXbdXXXXXXXXXXXX-140-140.jpg' }, { src: 'https://gw.alicdn.com/tps/TB1U8avPFXXXXaDXpXXXXXXXXXX-140-140.jpg' }, { src: 'https://gw.alicdn.com/tps/TB17Xh8PFXXXXbkaXXXXXXXXXXX-140-140.jpg' }, { src: 'https://gw.alicdn.com/tps/TB1cTmLPFXXXXXRXXXXXXXXXXXX-140-140.jpg' }, { src: 'https://gw.alicdn.com/tps/TB1oCefPFXXXXbVXVXXXXXXXXXX-140-140.jpg' }]
-	      },
-	      items: repeatItems
-	    };
-	  },
-
-	  methods: {
-	    recylerScroll: function recylerScroll(e) {
-	      this.contentOffset = e.contentOffset.y;
-	    },
-	    showOrRemoveHeader: function showOrRemoveHeader() {
-	      this.showHeader = !this.showHeader;
-	    },
-	    onItemclick: function onItemclick(behaviour, index) {
-	      console.log('click...' + behaviour + ' at index ' + index);
-	      switch (behaviour) {
-	        case 'changeColumnCount':
-	          this.changeColumnCount();
-	          break;
-	        case 'changeColumnGap':
-	          this.changeColumnGap();
-	          break;
-	        case 'changeColumnWidth':
-	          this.changeColumnWidth();
-	          break;
-	        case 'showScrollbar':
-	          this.showOrHideScrollbar();
-	          break;
-	        case 'listenAppear':
-	          this.listenAppearAndDisappear();
-	          break;
-	        case 'setScrollable':
-	          this.setScrollable();
-	          break;
-	        case 'setPadding':
-	          this.setRecyclerPadding();
-	          break;
-	        case 'listenScroll':
-	          this.listenScrollEvent();
-	          break;
-	        case 'removeCell':
-	          this.removeCell(index);
-	          break;
-	        case 'moveCell':
-	          this.moveCell(index);
-	          break;
-	      }
-	    },
-
-	    itemAppear: function itemAppear(src) {
-	      this.appearImage = src;
-	    },
-
-	    itemDisappear: function itemDisappear(src) {
-	      this.disappearImage = src;
-	    },
-
-	    changeColumnCount: function changeColumnCount() {
-	      if (this.columnCount === 2) {
-	        this.columnCount = 3;
-	      } else {
-	        this.columnCount = 2;
-	      }
-	    },
-
-	    changeColumnGap: function changeColumnGap() {
-	      if (this.columnGap === 12) {
-	        this.columnGap = 'normal';
-	      } else {
-	        this.columnGap = 12;
-	      }
-	    },
-
-	    changeColumnWidth: function changeColumnWidth() {
-	      if (this.columnWidth === 'auto') {
-	        this.columnWidth = 600;
-	      } else {
-	        this.columnWidth = 'auto';
-	      }
-	    },
-
-	    showOrHideScrollbar: function showOrHideScrollbar() {
-	      this.showScrollbar = !this.showScrollbar;
-	    },
-
-	    setScrollable: function setScrollable() {
-	      this.scrollable = !this.scrollable;
-	    },
-
-	    listenAppearAndDisappear: function listenAppearAndDisappear() {
-	      this.stickyHeaderType = this.stickyHeaderType === 'appear' ? 'none' : 'appear';
-	    },
-
-	    listenScrollEvent: function listenScrollEvent() {
-	      this.stickyHeaderType = this.stickyHeaderType === 'scroll' ? 'none' : 'scroll';
-	    },
-
-	    scrollToTop: function scrollToTop() {
-	      // weex.requireModule('dom').scrollToElement(this.$refs.cell0)
-	      weex.requireModule('dom').scrollToElement(this.$refs.header);
-	    },
-
-	    setRecyclerPadding: function setRecyclerPadding() {
-	      debugger;
-	      this.padding = this.padding == 0 ? 12 : 0;
-	    },
-
-	    removeCell: function removeCell(index) {
-	      this.items.splice(index, 1);
-	    },
-
-	    moveCell: function moveCell(index) {
-
-	      if (index == 0) {
-	        this.items.splice(this.items.length - 1, 0, this.items.splice(index, 1)[0]);
-	      } else {
-	        this.items.splice(0, 0, this.items.splice(index, 1)[0]);
-	      }
-	    },
-
-	    onrefresh: function onrefresh(event) {
-	      var _this = this;
-
-	      this.refreshing = true;
-	      this.refreshText = "loading...";
-	      setTimeout(function () {
-	        _this.refreshing = false;
-	        _this.refreshText = '↓   pull to refresh...';
-	      }, 2000);
-	    },
-	    onpullingdown: function onpullingdown(event) {
-	      // console.log(`${event.pullingDistance}`)
-	      if (event.pullingDistance < -64) {
-	        this.refreshText = '↑   release to refresh...';
-	      } else {
-	        this.refreshText = '↓   pull to refresh...';
-	      }
-	    }
-	  }
-	};
-
-/***/ }),
-
-/***/ 89:
-/***/ (function(module, exports) {
-
-	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _c('waterfall', {
-	    staticClass: ["page"],
-	    style: {
-	      padding: _vm.padding
-	    },
-	    attrs: {
-	      "columnWidth": _vm.columnWidth,
-	      "columnCount": _vm.columnCount,
-	      "columnGap": _vm.columnGap,
-	      "showScrollbar": _vm.showScrollbar,
-	      "scrollable": _vm.scrollable
-	    },
-	    on: {
-	      "scroll": _vm.recylerScroll
-	    }
-	  }, [_c('refresh', {
-	    staticClass: ["refresh"],
-	    attrs: {
-	      "display": _vm.refreshing ? 'show' : 'hide'
-	    },
-	    on: {
-	      "refresh": _vm.onrefresh,
-	      "pullingdown": _vm.onpullingdown
-	    }
-	  }, [_c('loading-indicator', {
-	    staticClass: ["indicator"]
-	  }), _c('text', {
-	    staticClass: ["refreshText"]
-	  }, [_vm._v(_vm._s(_vm.refreshText))])]), (_vm.showHeader) ? _c('header', {
-	    ref: "header",
-	    staticClass: ["header"]
-	  }, [_c('div', {
-	    staticClass: ["banner"],
-	    attrs: {
-	      "src": "https://gw.alicdn.com/tps/TB1ESN1PFXXXXX1apXXXXXXXXXX-1000-600.jpg",
-	      "resize": "cover"
-	    }
-	  }, [_c('div', {
-	    staticClass: ["bannerInfo"]
-	  }, [_c('image', {
-	    staticClass: ["avatar"],
-	    attrs: {
-	      "src": "https://gw.alicdn.com/tps/TB1EP9bPFXXXXbpXVXXXXXXXXXX-150-110.jpg",
-	      "resize": "cover"
-	    }
-	  }), _c('text', {
-	    staticClass: ["name"]
-	  }, [_vm._v("Adam Cat")]), _c('div', {
-	    staticClass: ["titleWrap"]
-	  }, [_c('text', {
-	    staticClass: ["title"]
-	  }, [_vm._v("Genius")])])]), _c('div', {
-	    staticClass: ["bannerPhotoWrap"]
-	  }, _vm._l((_vm.banner.photos), function(photo) {
-	    return _c('image', {
-	      staticClass: ["bannerPhoto"],
-	      attrs: {
-	        "src": photo.src
-	      }
-	    })
-	  }))])]) : _vm._e(), _c('header', {
-	    staticClass: ["stickyHeader"]
-	  }, [(_vm.stickyHeaderType === 'none') ? _c('div', {
-	    staticClass: ["stickyWrapper"]
-	  }, [_c('text', {
-	    staticClass: ["stickyText"]
-	  }, [_vm._v("Sticky Header")])]) : _vm._e(), (_vm.stickyHeaderType === 'appear') ? _c('div', {
-	    staticClass: ["stickyWrapper"]
-	  }, [_c('div', {
-	    staticClass: ["stickyTextImageWrapper"]
-	  }, [_c('text', {
-	    staticClass: ["stickyText"]
-	  }, [_vm._v("Last Appear:")]), _c('image', {
-	    staticClass: ["stickyImage"],
-	    attrs: {
-	      "src": _vm.appearImage
-	    }
-	  })]), _c('div', {
-	    staticClass: ["stickyTextImageWrapper"]
-	  }, [_c('text', {
-	    staticClass: ["stickyText"]
-	  }, [_vm._v("Last Disappear:")]), _c('image', {
-	    staticClass: ["stickyImage"],
-	    attrs: {
-	      "src": _vm.disappearImage
-	    }
-	  })])]) : _vm._e(), (_vm.stickyHeaderType === 'scroll') ? _c('div', {
-	    staticClass: ["stickyWrapper"]
-	  }, [_c('text', {
-	    staticClass: ["stickyText"]
-	  }, [_vm._v("Content Offset:" + _vm._s(_vm.contentOffset))])]) : _vm._e()]), _vm._l((_vm.items), function(item, index) {
-	    return _c('cell', {
-	      key: index,
-	      ref: ("cell" + index),
-	      refInFor: true,
-	      staticClass: ["cell"],
-	      appendAsTree: true,
-	      attrs: {
-	        "append": "tree"
-	      }
-	    }, [_c('div', {
-	      staticClass: ["item"],
-	      on: {
-	        "click": function($event) {
-	          _vm.onItemclick(item.behaviour, index)
-	        },
-	        "appear": function($event) {
-	          _vm.itemAppear(item.src)
-	        },
-	        "disappear": function($event) {
-	          _vm.itemDisappear(item.src)
-	        }
-	      }
-	    }, [(item.name) ? _c('text', {
-	      staticClass: ["itemName"]
-	    }, [_vm._v(_vm._s(item.name))]) : _vm._e(), _c('image', {
-	      staticClass: ["itemPhoto"],
-	      attrs: {
-	        "src": item.src
-	      }
-	    }), (item.desc) ? _c('text', {
-	      staticClass: ["itemDesc"]
-	    }, [_vm._v(_vm._s(item.desc))]) : _vm._e(), (item.behaviourName) ? _c('text', {
-	      staticClass: ["itemClickBehaviour"]
-	    }, [_vm._v(" " + _vm._s(item.behaviourName))]) : _vm._e()])])
-	  }), _c('div', {
-	    staticClass: ["fixedItem"],
-	    on: {
-	      "click": _vm.scrollToTop
-	    }
-	  }, [_c('text', {
-	    staticClass: ["fixedText"]
-	  }, [_vm._v("Top")])])], 2)
-	},staticRenderFns: []}
-	module.exports.render._withStripped = true
-
-/***/ })
-
-/******/ });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43564f3b/android/playground/app/src/main/assets/vue/components/web.js
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/assets/vue/components/web.js b/android/playground/app/src/main/assets/vue/components/web.js
deleted file mode 100644
index d026a59..0000000
--- a/android/playground/app/src/main/assets/vue/components/web.js
+++ /dev/null
@@ -1,467 +0,0 @@
-// { "framework": "Vue" }
-
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId])
-/******/ 			return installedModules[moduleId].exports;
-
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			exports: {},
-/******/ 			id: moduleId,
-/******/ 			loaded: false
-/******/ 		};
-
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-
-/******/ 		// Flag the module as loaded
-/******/ 		module.loaded = true;
-
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-
-
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(0);
-/******/ })
-/************************************************************************/
-/******/ ({
-
-/***/ 0:
-/***/ (function(module, exports, __webpack_require__) {
-
-	var __vue_exports__, __vue_options__
-	var __vue_styles__ = []
-
-	/* styles */
-	__vue_styles__.push(__webpack_require__(90)
-	)
-
-	/* script */
-	__vue_exports__ = __webpack_require__(91)
-
-	/* template */
-	var __vue_template__ = __webpack_require__(92)
-	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
-	if (
-	  typeof __vue_exports__.default === "object" ||
-	  typeof __vue_exports__.default === "function"
-	) {
-	if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")}
-	__vue_options__ = __vue_exports__ = __vue_exports__.default
-	}
-	if (typeof __vue_options__ === "function") {
-	  __vue_options__ = __vue_options__.options
-	}
-	__vue_options__.__file = "/Users/Hanks/Codes/work/incubator-weex/examples/vue/components/web.vue"
-	__vue_options__.render = __vue_template__.render
-	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-	__vue_options__._scopeId = "data-v-cba25c3a"
-	__vue_options__.style = __vue_options__.style || {}
-	__vue_styles__.forEach(function (module) {
-	  for (var name in module) {
-	    __vue_options__.style[name] = module[name]
-	  }
-	})
-	if (typeof __register_static_styles__ === "function") {
-	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
-	}
-
-	module.exports = __vue_exports__
-	module.exports.el = 'true'
-	new Vue(module.exports)
-
-
-/***/ }),
-
-/***/ 7:
-/***/ (function(module, exports, __webpack_require__) {
-
-	var __vue_exports__, __vue_options__
-	var __vue_styles__ = []
-
-	/* styles */
-	__vue_styles__.push(__webpack_require__(8)
-	)
-
-	/* script */
-	__vue_exports__ = __webpack_require__(9)
-
-	/* template */
-	var __vue_template__ = __webpack_require__(10)
-	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
-	if (
-	  typeof __vue_exports__.default === "object" ||
-	  typeof __vue_exports__.default === "function"
-	) {
-	if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")}
-	__vue_options__ = __vue_exports__ = __vue_exports__.default
-	}
-	if (typeof __vue_options__ === "function") {
-	  __vue_options__ = __vue_options__.options
-	}
-	__vue_options__.__file = "/Users/Hanks/Codes/work/incubator-weex/examples/vue/include/button.vue"
-	__vue_options__.render = __vue_template__.render
-	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-	__vue_options__._scopeId = "data-v-71b34881"
-	__vue_options__.style = __vue_options__.style || {}
-	__vue_styles__.forEach(function (module) {
-	  for (var name in module) {
-	    __vue_options__.style[name] = module[name]
-	  }
-	})
-	if (typeof __register_static_styles__ === "function") {
-	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
-	}
-
-	module.exports = __vue_exports__
-
-
-/***/ }),
-
-/***/ 8:
-/***/ (function(module, exports) {
-
-	module.exports = {
-	  "btn": {
-	    "marginBottom": 0,
-	    "alignItems": "center",
-	    "justifyContent": "center",
-	    "borderWidth": 1,
-	    "borderStyle": "solid",
-	    "borderColor": "#333333"
-	  },
-	  "btn-default": {
-	    "color": "rgb(51,51,51)"
-	  },
-	  "btn-primary": {
-	    "backgroundColor": "rgb(40,96,144)",
-	    "borderColor": "rgb(40,96,144)"
-	  },
-	  "btn-success": {
-	    "backgroundColor": "rgb(92,184,92)",
-	    "borderColor": "rgb(76,174,76)"
-	  },
-	  "btn-info": {
-	    "backgroundColor": "rgb(91,192,222)",
-	    "borderColor": "rgb(70,184,218)"
-	  },
-	  "btn-warning": {
-	    "backgroundColor": "rgb(240,173,78)",
-	    "borderColor": "rgb(238,162,54)"
-	  },
-	  "btn-danger": {
-	    "backgroundColor": "rgb(217,83,79)",
-	    "borderColor": "rgb(212,63,58)"
-	  },
-	  "btn-link": {
-	    "borderColor": "rgba(0,0,0,0)",
-	    "borderRadius": 0
-	  },
-	  "btn-txt-default": {
-	    "color": "rgb(51,51,51)"
-	  },
-	  "btn-txt-primary": {
-	    "color": "rgb(255,255,255)"
-	  },
-	  "btn-txt-success": {
-	    "color": "rgb(255,255,255)"
-	  },
-	  "btn-txt-info": {
-	    "color": "rgb(255,255,255)"
-	  },
-	  "btn-txt-warning": {
-	    "color": "rgb(255,255,255)"
-	  },
-	  "btn-txt-danger": {
-	    "color": "rgb(255,255,255)"
-	  },
-	  "btn-txt-link": {
-	    "color": "rgb(51,122,183)"
-	  },
-	  "btn-sz-large": {
-	    "width": 300,
-	    "height": 100,
-	    "paddingTop": 25,
-	    "paddingBottom": 25,
-	    "paddingLeft": 40,
-	    "paddingRight": 40,
-	    "borderRadius": 15
-	  },
-	  "btn-sz-middle": {
-	    "width": 240,
-	    "height": 80,
-	    "paddingTop": 15,
-	    "paddingBottom": 15,
-	    "paddingLeft": 30,
-	    "paddingRight": 30,
-	    "borderRadius": 10
-	  },
-	  "btn-sz-small": {
-	    "width": 170,
-	    "height": 60,
-	    "paddingTop": 12,
-	    "paddingBottom": 12,
-	    "paddingLeft": 25,
-	    "paddingRight": 25,
-	    "borderRadius": 7
-	  },
-	  "btn-txt-sz-large": {
-	    "fontSize": 45
-	  },
-	  "btn-txt-sz-middle": {
-	    "fontSize": 35
-	  },
-	  "btn-txt-sz-small": {
-	    "fontSize": 30
-	  }
-	}
-
-/***/ }),
-
-/***/ 9:
-/***/ (function(module, exports) {
-
-	'use strict';
-
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-
-	module.exports = {
-	  props: {
-	    type: { default: 'default' },
-	    size: { default: 'large' },
-	    value: { default: '' }
-	  }
-	};
-
-/***/ }),
-
-/***/ 10:
-/***/ (function(module, exports) {
-
-	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _c('div', {
-	    class: ['btn', 'btn-' + _vm.type, 'btn-sz-' + _vm.size]
-	  }, [_c('text', {
-	    class: ['btn-txt', 'btn-txt-' + _vm.type, 'btn-txt-sz-' + _vm.size]
-	  }, [_vm._v(_vm._s(_vm.value))])])
-	},staticRenderFns: []}
-	module.exports.render._withStripped = true
-
-/***/ }),
-
-/***/ 90:
-/***/ (function(module, exports) {
-
-	module.exports = {
-	  "wrapper": {
-	    "width": 750,
-	    "position": "absolute",
-	    "top": 0,
-	    "left": 0,
-	    "right": 0,
-	    "bottom": 0
-	  },
-	  "content": {
-	    "position": "absolute",
-	    "top": 0,
-	    "left": 0,
-	    "right": 0,
-	    "bottom": 0,
-	    "marginTop": 0,
-	    "marginBottom": 70
-	  },
-	  "toolbar": {
-	    "flexDirection": "row",
-	    "position": "fixed",
-	    "bottom": 0,
-	    "left": 0,
-	    "right": 0,
-	    "height": 70
-	  }
-	}
-
-/***/ }),
-
-/***/ 91:
-/***/ (function(module, exports, __webpack_require__) {
-
-	'use strict';
-
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-
-	var webview = weex.requireModule('webview');
-	module.exports = {
-	  components: {
-	    button: __webpack_require__(7)
-	  },
-	  methods: {
-	    goback: function goback() {
-	      var el = this.$refs.webview;
-	      webview.goBack(el);
-	    },
-	    goforward: function goforward() {
-	      var el = this.$refs.webview;
-	      webview.goForward(el);
-	    },
-	    refresh: function refresh() {
-	      var el = this.$refs.webview;
-	      webview.reload(el);
-	    },
-	    startload: function startload(e) {},
-	    finishload: function finishload(e) {},
-	    failload: function failload(e) {}
-	  }
-	};
-
-/***/ }),
-
-/***/ 92:
-/***/ (function(module, exports) {
-
-	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _c('div', {
-	    staticClass: ["wrapper"]
-	  }, [_c('div', {
-	    staticClass: ["toolbar"],
-	    appendAsTree: true,
-	    attrs: {
-	      "append": "tree"
-	    }
-	  }, [_c('button', {
-	    staticStyle: {
-	      marginLeft: "30px",
-	      width: "210px",
-	      marginTop: "5px",
-	      marginBottom: "5px"
-	    },
-	    attrs: {
-	      "type": "primary",
-	      "size": "small",
-	      "value": "back"
-	    },
-	    nativeOn: {
-	      "click": function($event) {
-	        _vm.goback($event)
-	      }
-	    }
-	  }), _c('button', {
-	    staticStyle: {
-	      marginLeft: "30px",
-	      width: "210px",
-	      marginTop: "5px",
-	      marginBottom: "5px"
-	    },
-	    attrs: {
-	      "type": "primary",
-	      "size": "small",
-	      "value": "forward"
-	    },
-	    nativeOn: {
-	      "click": function($event) {
-	        _vm.goforward($event)
-	      }
-	    }
-	  }), _c('button', {
-	    staticStyle: {
-	      marginLeft: "30px",
-	      width: "210px",
-	      marginTop: "5px",
-	      marginBottom: "5px"
-	    },
-	    attrs: {
-	      "type": "primary",
-	      "size": "small",
-	      "value": "refresh"
-	    },
-	    nativeOn: {
-	      "click": function($event) {
-	        _vm.refresh($event)
-	      }
-	    }
-	  })], 1), _c('web', {
-	    ref: "webview",
-	    staticClass: ["content"],
-	    attrs: {
-	      "src": "http://alibaba.github.io/weex/index.html"
-	    },
-	    on: {
-	      "pagestart": _vm.startload,
-	      "pagefinish": _vm.finishload,
-	      "error": _vm.failload
-	    }
-	  })])
-	},staticRenderFns: []}
-	module.exports.render._withStripped = true
-
-/***/ })
-
-/******/ });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43564f3b/android/playground/app/src/main/assets/vue/hello.js
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/assets/vue/hello.js b/android/playground/app/src/main/assets/vue/hello.js
deleted file mode 100644
index f8b9369..0000000
--- a/android/playground/app/src/main/assets/vue/hello.js
+++ /dev/null
@@ -1,102 +0,0 @@
-// { "framework": "Vue" }
-
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId])
-/******/ 			return installedModules[moduleId].exports;
-
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			exports: {},
-/******/ 			id: moduleId,
-/******/ 			loaded: false
-/******/ 		};
-
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-
-/******/ 		// Flag the module as loaded
-/******/ 		module.loaded = true;
-
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-
-
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(0);
-/******/ })
-/************************************************************************/
-/******/ ({
-
-/***/ 0:
-/***/ (function(module, exports, __webpack_require__) {
-
-	var __vue_exports__, __vue_options__
-	var __vue_styles__ = []
-
-	/* template */
-	var __vue_template__ = __webpack_require__(93)
-	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
-	if (
-	  typeof __vue_exports__.default === "object" ||
-	  typeof __vue_exports__.default === "function"
-	) {
-	if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")}
-	__vue_options__ = __vue_exports__ = __vue_exports__.default
-	}
-	if (typeof __vue_options__ === "function") {
-	  __vue_options__ = __vue_options__.options
-	}
-	__vue_options__.__file = "/Users/Hanks/Codes/work/incubator-weex/examples/vue/hello.vue"
-	__vue_options__.render = __vue_template__.render
-	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-	__vue_options__.style = __vue_options__.style || {}
-	__vue_styles__.forEach(function (module) {
-	  for (var name in module) {
-	    __vue_options__.style[name] = module[name]
-	  }
-	})
-	if (typeof __register_static_styles__ === "function") {
-	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
-	}
-
-	module.exports = __vue_exports__
-	module.exports.el = 'true'
-	new Vue(module.exports)
-
-
-/***/ }),
-
-/***/ 93:
-/***/ (function(module, exports) {
-
-	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _vm._m(0)
-	},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _c('div', [_c('text', {
-	    staticStyle: {
-	      fontSize: "100px"
-	    }
-	  }, [_vm._v("Hello World.")])])
-	}]}
-	module.exports.render._withStripped = true
-
-/***/ })
-
-/******/ });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43564f3b/android/playground/app/src/main/assets/vue/iconfont.js
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/assets/vue/iconfont.js b/android/playground/app/src/main/assets/vue/iconfont.js
deleted file mode 100644
index 5b7f90e..0000000
--- a/android/playground/app/src/main/assets/vue/iconfont.js
+++ /dev/null
@@ -1,342 +0,0 @@
-// { "framework": "Vue" }
-
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId])
-/******/ 			return installedModules[moduleId].exports;
-
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			exports: {},
-/******/ 			id: moduleId,
-/******/ 			loaded: false
-/******/ 		};
-
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-
-/******/ 		// Flag the module as loaded
-/******/ 		module.loaded = true;
-
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-
-
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(0);
-/******/ })
-/************************************************************************/
-/******/ ({
-
-/***/ 0:
-/***/ (function(module, exports, __webpack_require__) {
-
-	var __vue_exports__, __vue_options__
-	var __vue_styles__ = []
-
-	/* styles */
-	__vue_styles__.push(__webpack_require__(94)
-	)
-
-	/* script */
-	__vue_exports__ = __webpack_require__(95)
-
-	/* template */
-	var __vue_template__ = __webpack_require__(96)
-	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
-	if (
-	  typeof __vue_exports__.default === "object" ||
-	  typeof __vue_exports__.default === "function"
-	) {
-	if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")}
-	__vue_options__ = __vue_exports__ = __vue_exports__.default
-	}
-	if (typeof __vue_options__ === "function") {
-	  __vue_options__ = __vue_options__.options
-	}
-	__vue_options__.__file = "/Users/Hanks/Codes/work/incubator-weex/examples/vue/iconfont.vue"
-	__vue_options__.render = __vue_template__.render
-	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-	__vue_options__._scopeId = "data-v-f9298a60"
-	__vue_options__.style = __vue_options__.style || {}
-	__vue_styles__.forEach(function (module) {
-	  for (var name in module) {
-	    __vue_options__.style[name] = module[name]
-	  }
-	})
-	if (typeof __register_static_styles__ === "function") {
-	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
-	}
-
-	module.exports = __vue_exports__
-	module.exports.el = 'true'
-	new Vue(module.exports)
-
-
-/***/ }),
-
-/***/ 94:
-/***/ (function(module, exports) {
-
-	module.exports = {
-	  "title1": {
-	    "color": "#FF0000",
-	    "fontSize": 36,
-	    "fontFamily": "iconfont1"
-	  },
-	  "title2": {
-	    "color": "#808080",
-	    "fontSize": 36,
-	    "fontFamily": "iconfont2"
-	  },
-	  "title3": {
-	    "color": "#FFC0CB",
-	    "fontSize": 36,
-	    "fontFamily": "iconfont3"
-	  },
-	  "title4": {
-	    "color": "#FF0000",
-	    "fontSize": 36,
-	    "fontFamily": "iconfont4"
-	  }
-	}
-
-/***/ }),
-
-/***/ 95:
-/***/ (function(module, exports) {
-
-	'use strict';
-
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-
-	module.exports = {
-	  created: function created() {
-
-	    var domModule = weex.requireModule('dom');
-	    //目前支持ttf、woff文件,不支持svg、eot类型,moreItem at http://www.iconfont.cn/
-
-	    domModule.addRule('fontFace', {
-	      'fontFamily': "iconfont2",
-	      'src': "url('http://at.alicdn.com/t/font_1469606063_76593.ttf')"
-	    });
-	    domModule.addRule('fontFace', {
-	      'fontFamily': "iconfont3",
-	      'src': "url('http://at.alicdn.com/t/font_1469606522_9417143.woff')"
-	    });
-
-	    domModule.addRule('fontFace', {
-	      'fontFamily': "iconfont4",
-	      'src': "url('http://at.alicdn.com/t/font_zn5b3jswpofuhaor.ttf')"
-	    });
-
-	    // you can use the absolute path or the local:// scheme path
-	    //  domModule.addRule('fontFace', {
-	    //   'fontFamily': "iconfont4",
-	    //   'src': "url('file:///storage/emulated/0/Android/data/com.alibaba.weex/cache/http:__at.alicdn.com_t_font_1469606063_76593.ttf')"
-	    // });
-	  }
-	};
-
-/***/ }),
-
-/***/ 96:
-/***/ (function(module, exports) {
-
-	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _vm._m(0)
-	},staticRenderFns: [function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _c('scroller', {
-	    staticStyle: {
-	      alignItems: "center"
-	    }
-	  }, [_c('div', {
-	    staticStyle: {
-	      marginTop: "20px"
-	    }
-	  }, [_c('text', {
-	    staticStyle: {
-	      color: "red",
-	      fontSize: "50px"
-	    }
-	  }, [_vm._v("only support font for ttf and woff")])]), _c('text', {
-	    staticClass: ["title2"],
-	    staticStyle: {
-	      marginTop: "50px",
-	      width: "500px"
-	    }
-	  }, [_vm._v("http ttf: ")]), _c('text', {
-	    staticClass: ["title3"],
-	    staticStyle: {
-	      marginTop: "50px",
-	      width: "500px"
-	    }
-	  }, [_vm._v("http woff: ")]), _c('div', {
-	    staticStyle: {
-	      flexDirection: "row",
-	      marginTop: "50px"
-	    }
-	  }, [_c('text', {
-	    staticStyle: {
-	      fontFamily: "iconfont4",
-	      fontSize: "50",
-	      color: "green"
-	    }
-	  }, [_vm._v("")]), _c('text', {
-	    staticStyle: {
-	      fontFamily: "iconfont4",
-	      fontSize: "50"
-	    }
-	  }, [_vm._v("")]), _c('text', {
-	    staticStyle: {
-	      fontFamily: "iconfont4",
-	      fontSize: "60",
-	      color: "blue"
-	    }
-	  }, [_vm._v("")]), _c('text', {
-	    staticStyle: {
-	      fontFamily: "iconfont4",
-	      fontSize: "60",
-	      color: "green"
-	    }
-	  }, [_vm._v("")])]), _c('div', {
-	    staticStyle: {
-	      flexDirection: "row",
-	      marginTop: "50px"
-	    }
-	  }, [_c('text', {
-	    staticStyle: {
-	      fontFamily: "iconfont4",
-	      fontSize: "50",
-	      color: "green"
-	    }
-	  }, [_vm._v("")]), _c('text', {
-	    staticStyle: {
-	      fontFamily: "iconfont4",
-	      fontSize: "50"
-	    }
-	  }, [_vm._v("")]), _c('text', {
-	    staticStyle: {
-	      fontFamily: "iconfont4",
-	      fontSize: "60",
-	      color: "blue"
-	    }
-	  }, [_vm._v("")]), _c('text', {
-	    staticStyle: {
-	      fontFamily: "iconfont4",
-	      fontSize: "60",
-	      color: "green"
-	    }
-	  }, [_vm._v("")])]), _c('div', [_c('text', {
-	    staticStyle: {
-	      fontFamily: "iconfont4",
-	      fontSize: "100",
-	      marginTop: "50px"
-	    }
-	  }, [_vm._v("")])]), _c('div', [_c('text', {
-	    staticStyle: {
-	      fontFamily: "iconfont4",
-	      fontSize: "100",
-	      color: "green",
-	      marginTop: "50px"
-	    }
-	  }, [_vm._v("")]), _c('text', {
-	    staticStyle: {
-	      fontFamily: "iconfont4",
-	      fontSize: "100",
-	      marginTop: "50px"
-	    }
-	  })]), _c('div', {
-	    staticStyle: {
-	      flexDirection: "row"
-	    }
-	  }, [_c('text', {
-	    staticStyle: {
-	      fontFamily: "iconfont4",
-	      fontSize: "70",
-	      width: "750px"
-	    }
-	  }, [_vm._v("")])])])
-	}]}
-	module.exports.render._withStripped = true
-
-/***/ })
-
-/******/ });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43564f3b/android/playground/app/src/main/assets/vue/index.js
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/assets/vue/index.js b/android/playground/app/src/main/assets/vue/index.js
deleted file mode 100644
index 863d378..0000000
--- a/android/playground/app/src/main/assets/vue/index.js
+++ /dev/null
@@ -1,546 +0,0 @@
-// { "framework": "Vue" }
-
-/******/ (function(modules) { // webpackBootstrap
-/******/ 	// The module cache
-/******/ 	var installedModules = {};
-
-/******/ 	// The require function
-/******/ 	function __webpack_require__(moduleId) {
-
-/******/ 		// Check if module is in cache
-/******/ 		if(installedModules[moduleId])
-/******/ 			return installedModules[moduleId].exports;
-
-/******/ 		// Create a new module (and put it into the cache)
-/******/ 		var module = installedModules[moduleId] = {
-/******/ 			exports: {},
-/******/ 			id: moduleId,
-/******/ 			loaded: false
-/******/ 		};
-
-/******/ 		// Execute the module function
-/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-
-/******/ 		// Flag the module as loaded
-/******/ 		module.loaded = true;
-
-/******/ 		// Return the exports of the module
-/******/ 		return module.exports;
-/******/ 	}
-
-
-/******/ 	// expose the modules object (__webpack_modules__)
-/******/ 	__webpack_require__.m = modules;
-
-/******/ 	// expose the module cache
-/******/ 	__webpack_require__.c = installedModules;
-
-/******/ 	// __webpack_public_path__
-/******/ 	__webpack_require__.p = "";
-
-/******/ 	// Load entry module and return exports
-/******/ 	return __webpack_require__(0);
-/******/ })
-/************************************************************************/
-/******/ ({
-
-/***/ 0:
-/***/ (function(module, exports, __webpack_require__) {
-
-	var __vue_exports__, __vue_options__
-	var __vue_styles__ = []
-
-	/* script */
-	__vue_exports__ = __webpack_require__(97)
-
-	/* template */
-	var __vue_template__ = __webpack_require__(109)
-	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
-	if (
-	  typeof __vue_exports__.default === "object" ||
-	  typeof __vue_exports__.default === "function"
-	) {
-	if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")}
-	__vue_options__ = __vue_exports__ = __vue_exports__.default
-	}
-	if (typeof __vue_options__ === "function") {
-	  __vue_options__ = __vue_options__.options
-	}
-	__vue_options__.__file = "/Users/Hanks/Codes/work/incubator-weex/examples/vue/index.vue"
-	__vue_options__.render = __vue_template__.render
-	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-	__vue_options__.style = __vue_options__.style || {}
-	__vue_styles__.forEach(function (module) {
-	  for (var name in module) {
-	    __vue_options__.style[name] = module[name]
-	  }
-	})
-	if (typeof __register_static_styles__ === "function") {
-	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
-	}
-
-	module.exports = __vue_exports__
-	module.exports.el = 'true'
-	new Vue(module.exports)
-
-
-/***/ }),
-
-/***/ 41:
-/***/ (function(module, exports) {
-
-	/*
-	 * 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.
-	 */
-	exports.getBaseURL = function (vm) {
-	  var bundleUrl = weex.config.bundleUrl;
-	  var nativeBase;
-	  var isAndroidAssets = bundleUrl.indexOf('your_current_IP') >= 0 || bundleUrl.indexOf('file://assets/')>=0;
-	  var isiOSAssets = bundleUrl.indexOf('file:///') >= 0 && bundleUrl.indexOf('WeexDemo.app') > 0;
-	  if (isAndroidAssets) {
-	    nativeBase = 'file://assets/';
-	  }
-	  else if (isiOSAssets) {
-	    // file:///var/mobile/Containers/Bundle/Application/{id}/WeexDemo.app/
-	    // file:///Users/{user}/Library/Developer/CoreSimulator/Devices/{id}/data/Containers/Bundle/Application/{id}/WeexDemo.app/
-	    nativeBase = bundleUrl.substring(0, bundleUrl.lastIndexOf('/') + 1);
-	  }
-	  else {
-	    var host = 'localhost:12580';
-	    var matches = /\/\/([^\/]+?)\//.exec(weex.config.bundleUrl);
-	    if (matches && matches.length >= 2) {
-	      host = matches[1];
-	    }
-	    nativeBase = 'http://' + host + '/' + vm.dir + '/build/';
-	  }
-	  var h5Base = './vue.html?page=./' + vm.dir + '/build/';
-	  // in Native
-	  var base = nativeBase;
-	  if (typeof window === 'object') {
-	    // in Browser or WebView
-	    base = h5Base;
-	  }
-	  return base
-	}
-
-
-/***/ }),
-
-/***/ 97:
-/***/ (function(module, exports, __webpack_require__) {
-
-	'use strict';
-
-	var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
-
-	//
-	//
-	//
-	//
-
-	module.exports = {
-	  data: function data() {
-	    var root = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' ? 'vue-web/vue' : 'vue';
-
-	    return {
-	      items: [
-	      // common
-	      { name: root + '/hello', title: 'Hello World' }, { name: root + '/style/index', title: 'Common Style' }, { name: root + '/animation', title: 'Animation' }, { name: root + '/transition', title: 'Transition' },
-
-	      // component
-	      { name: root + '/components/text', title: 'Text' }, { name: root + '/iconfont', title: 'iconfont' }, { name: root + '/components/image', title: 'Image' }, { name: root + '/components/input', title: 'Input' }, { name: root + '/components/scroller', title: 'Scroller' }, { name: root + '/components/list', title: 'List' }, { name: root + '/components/waterfall', title: 'Waterfall' }, { name: root + '/components/slider', title: 'Slider' }, { name: root + '/components/a', title: 'A' }, { name: root + '/components/video', title: 'Video' }, { name: root + '/components/countdown', title: 'Countdown' }, { name: root + '/components/marquee', title: 'Marquee' }, { name: root + '/components/web', title: 'Web' }, { name: root + '/components/navigator', title: 'Navigator' }, { name: root + '/components/tabbar', title: 'Tabbar' },
-
-	      // module
-	      { name: root + '/modules/instance-api', title: 'Instance API' }, { name: root + '/modules/modal', title: 'Modal' }, { name: root + '/modules/webSocket', title: 'WebSocket' }, { name: root + '/modules/stream', title: 'Stream' }, { name: root + '/modules/storage', title: 'Storage' }, { name: root + '/modules/picker', title: 'picker' },
-	      // {name: 'module/clipboard', title: 'Clipboard'}, // 0.8 , developing
-
-	      // showcase
-	      { name: root + '/showcase/boxshadow', title: 'boxshadow' }, { name: root + '/showcase/progress', title: 'Progress Bar' }, { name: root + '/showcase/itemlist', title: 'List (Advanced)' }, { name: root + '/showcase/calculator', title: 'Calculator' }, { name: root + '/showcase/tap-penetrate', title: 'TapPenetrate' }, { name: root + '/showcase/a-node-click', title: 'ANodeClick' },
-	      // {name: root + '/showcase/minesweeper', title: 'Minesweeper'},
-	      // {name: root + '/showcase/ui', title: 'UI Gallery'},
-	      // {name: root + '/showcase/dropdown/dropdown-demo', title: 'Dropdown'}
-
-	      // market
-	      { name: root + '/market/gcanvas', title: 'Gcanvas' }]
-	    };
-	  },
-	  components: {
-	    exampleList: __webpack_require__(98)
-	  },
-	  created: function created() {
-	    var root = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' ? 'vue-web/vue' : 'vue';
-	    var platform = this.$getConfig().env.platform.toLowerCase();
-	    if (platform === 'ios') {
-	      this.items.push({ name: root + '/showcase/compositing', title: 'Compositing' });
-	    }
-	  }
-	};
-
-/***/ }),
-
-/***/ 98:
-/***/ (function(module, exports, __webpack_require__) {
-
-	var __vue_exports__, __vue_options__
-	var __vue_styles__ = []
-
-	/* script */
-	__vue_exports__ = __webpack_require__(99)
-
-	/* template */
-	var __vue_template__ = __webpack_require__(108)
-	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
-	if (
-	  typeof __vue_exports__.default === "object" ||
-	  typeof __vue_exports__.default === "function"
-	) {
-	if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")}
-	__vue_options__ = __vue_exports__ = __vue_exports__.default
-	}
-	if (typeof __vue_options__ === "function") {
-	  __vue_options__ = __vue_options__.options
-	}
-	__vue_options__.__file = "/Users/Hanks/Codes/work/incubator-weex/examples/vue/include/example-list.vue"
-	__vue_options__.render = __vue_template__.render
-	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-	__vue_options__.style = __vue_options__.style || {}
-	__vue_styles__.forEach(function (module) {
-	  for (var name in module) {
-	    __vue_options__.style[name] = module[name]
-	  }
-	})
-	if (typeof __register_static_styles__ === "function") {
-	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
-	}
-
-	module.exports = __vue_exports__
-
-
-/***/ }),
-
-/***/ 99:
-/***/ (function(module, exports, __webpack_require__) {
-
-	'use strict';
-
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-
-	var getBaseURL = __webpack_require__(41).getBaseURL;
-	module.exports = {
-	  props: {
-	    dir: {
-	      default: 'examples'
-	    }, // examples, test ...
-	    items: {
-	      default: [{ name: 'hello', title: 'Hello World', url: '' }]
-	    }
-	  },
-	  components: {
-	    exampleListItem: __webpack_require__(100)
-	  },
-	  created: function created() {
-	    var base = getBaseURL(this);
-	    for (var i in this.items) {
-	      var item = this.items[i];
-	      if (!item.url) {
-	        item.url = base + item.name + '.js';
-	      }
-	    }
-	  }
-	};
-
-/***/ }),
-
-/***/ 100:
-/***/ (function(module, exports, __webpack_require__) {
-
-	var __vue_exports__, __vue_options__
-	var __vue_styles__ = []
-
-	/* styles */
-	__vue_styles__.push(__webpack_require__(101)
-	)
-
-	/* script */
-	__vue_exports__ = __webpack_require__(102)
-
-	/* template */
-	var __vue_template__ = __webpack_require__(107)
-	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
-	if (
-	  typeof __vue_exports__.default === "object" ||
-	  typeof __vue_exports__.default === "function"
-	) {
-	if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")}
-	__vue_options__ = __vue_exports__ = __vue_exports__.default
-	}
-	if (typeof __vue_options__ === "function") {
-	  __vue_options__ = __vue_options__.options
-	}
-	__vue_options__.__file = "/Users/Hanks/Codes/work/incubator-weex/examples/vue/include/example-list-item.vue"
-	__vue_options__.render = __vue_template__.render
-	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-	__vue_options__._scopeId = "data-v-8b7b5d80"
-	__vue_options__.style = __vue_options__.style || {}
-	__vue_styles__.forEach(function (module) {
-	  for (var name in module) {
-	    __vue_options__.style[name] = module[name]
-	  }
-	})
-	if (typeof __register_static_styles__ === "function") {
-	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
-	}
-
-	module.exports = __vue_exports__
-
-
-/***/ }),
-
-/***/ 101:
-/***/ (function(module, exports) {
-
-	module.exports = {
-	  "item-txt": {
-	    "fontSize": 48,
-	    "color": "#555555"
-	  }
-	}
-
-/***/ }),
-
-/***/ 102:
-/***/ (function(module, exports, __webpack_require__) {
-
-	'use strict';
-
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-
-	var event = weex.requireModule('event');
-	module.exports = {
-	  props: {
-	    title: { default: '456' },
-	    url: { default: '' }
-	  },
-	  components: {
-	    listItem: __webpack_require__(103)
-	  },
-	  methods: {
-	    redirect: function redirect() {
-	      event.openURL(this.url);
-	    }
-	  }
-	};
-
-/***/ }),
-
-/***/ 103:
-/***/ (function(module, exports, __webpack_require__) {
-
-	var __vue_exports__, __vue_options__
-	var __vue_styles__ = []
-
-	/* styles */
-	__vue_styles__.push(__webpack_require__(104)
-	)
-
-	/* script */
-	__vue_exports__ = __webpack_require__(105)
-
-	/* template */
-	var __vue_template__ = __webpack_require__(106)
-	__vue_options__ = __vue_exports__ = __vue_exports__ || {}
-	if (
-	  typeof __vue_exports__.default === "object" ||
-	  typeof __vue_exports__.default === "function"
-	) {
-	if (Object.keys(__vue_exports__).some(function (key) { return key !== "default" && key !== "__esModule" })) {console.error("named exports are not supported in *.vue files.")}
-	__vue_options__ = __vue_exports__ = __vue_exports__.default
-	}
-	if (typeof __vue_options__ === "function") {
-	  __vue_options__ = __vue_options__.options
-	}
-	__vue_options__.__file = "/Users/Hanks/Codes/work/incubator-weex/examples/vue/include/list-item.vue"
-	__vue_options__.render = __vue_template__.render
-	__vue_options__.staticRenderFns = __vue_template__.staticRenderFns
-	__vue_options__._scopeId = "data-v-32b0ed3a"
-	__vue_options__.style = __vue_options__.style || {}
-	__vue_styles__.forEach(function (module) {
-	  for (var name in module) {
-	    __vue_options__.style[name] = module[name]
-	  }
-	})
-	if (typeof __register_static_styles__ === "function") {
-	  __register_static_styles__(__vue_options__._scopeId, __vue_styles__)
-	}
-
-	module.exports = __vue_exports__
-
-
-/***/ }),
-
-/***/ 104:
-/***/ (function(module, exports) {
-
-	module.exports = {
-	  "item": {
-	    "paddingTop": 25,
-	    "paddingBottom": 25,
-	    "paddingLeft": 35,
-	    "paddingRight": 35,
-	    "height": 160,
-	    "justifyContent": "center",
-	    "borderBottomWidth": 1,
-	    "borderColor": "#dddddd"
-	  }
-	}
-
-/***/ }),
-
-/***/ 105:
-/***/ (function(module, exports) {
-
-	'use strict';
-
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-	//
-
-	module.exports = {
-	  props: {
-	    bgColor: { default: '#ffffff' }
-	  },
-	  methods: {
-	    click: function click() {
-	      this.$emit('click');
-	    },
-	    touchstart: function touchstart() {
-	      // FIXME android touch
-	      // TODO adaptive opposite bgColor
-	      // this.bgColor = '#e6e6e6';
-	    },
-	    touchend: function touchend() {
-	      // FIXME android touchend not triggered
-	      // this.bgColor = '#ffffff';
-	    }
-	  }
-	};
-
-/***/ }),
-
-/***/ 106:
-/***/ (function(module, exports) {
-
-	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _c('div', {
-	    staticClass: ["item"],
-	    style: {
-	      backgroundColor: _vm.bgColor
-	    },
-	    on: {
-	      "click": _vm.click,
-	      "touchstart": _vm.touchstart,
-	      "touchend": _vm.touchend
-	    }
-	  }, [_vm._t("default")], 2)
-	},staticRenderFns: []}
-	module.exports.render._withStripped = true
-
-/***/ }),
-
-/***/ 107:
-/***/ (function(module, exports) {
-
-	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _c('list-item', {
-	    on: {
-	      "click": _vm.redirect
-	    }
-	  }, [_c('text', {
-	    staticClass: ["item-txt"]
-	  }, [_vm._v(_vm._s(_vm.title))])])
-	},staticRenderFns: []}
-	module.exports.render._withStripped = true
-
-/***/ }),
-
-/***/ 108:
-/***/ (function(module, exports) {
-
-	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _c('list', _vm._l((_vm.items), function(item, i) {
-	    return _c('cell', {
-	      key: i,
-	      appendAsTree: true,
-	      attrs: {
-	        "append": "tree"
-	      }
-	    }, [_c('example-list-item', {
-	      attrs: {
-	        "title": item.title,
-	        "url": item.url
-	      }
-	    })], 1)
-	  }))
-	},staticRenderFns: []}
-	module.exports.render._withStripped = true
-
-/***/ }),
-
-/***/ 109:
-/***/ (function(module, exports) {
-
-	module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
-	  return _c('example-list', {
-	    attrs: {
-	      "items": _vm.items,
-	      "dir": "examples"
-	    }
-	  })
-	},staticRenderFns: []}
-	module.exports.render._withStripped = true
-
-/***/ })
-
-/******/ });
\ No newline at end of file