weex-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jinji...@apache.org
Subject [39/50] [abbrv] incubator-weex git commit: * [ios] add bundle js
Date Tue, 24 Jan 2017 08:18:54 GMT
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/f4fd0820/ios/playground/bundlejs/component/scroller-demo.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/scroller-demo.js b/ios/playground/bundlejs/component/scroller-demo.js
new file mode 100644
index 0000000..48dd6ee
--- /dev/null
+++ b/ios/playground/bundlejs/component/scroller-demo.js
@@ -0,0 +1,1317 @@
+/******/ (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__) {
+
+	;__weex_define__("@weex-component/bac99fb3b97adcec652c299dcd306bce", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	  __webpack_require__(1);
+	  __weex_module__.exports = {
+	    methods: {
+	    },
+	    data: function () {return {
+	      sections: [
+	        {
+	          title: 'Header 1',
+	          items: [
+	            {id: 1},
+	            {id: 2},
+	            {id: 3},
+	            {id: 4},
+	            {id: 5}
+	          ]
+	        },
+	        {
+	          title: 'Header 2',
+	          items: [
+	            {id: 6},
+	            {id: 7},
+	            {id: 8},
+	            {id: 9},
+	            {id: 10},
+	            {id: 11}
+	          ]
+	        },
+	        {
+	          title: 'Header 3',
+	          items: [
+	            {id: 12},
+	            {id: 13},
+	            {id: 14},
+	            {id: 15},
+	            {id: 16},
+	            {id: 17},
+	            {id: 18}
+	          ]
+	        },
+	        {
+	          title: 'Header 4',
+	          items: [
+	            {id: 19},
+	            {id: 20},
+	            {id: 21},
+	            {id: 22}
+	          ]
+	        },
+	        {
+	          title: 'Header 5',
+	          items: [
+	            {id: 23},
+	            {id: 24},
+	            {id: 25},
+	            {id: 26},
+	            {id: 27}
+	          ]
+	        },
+	        {
+	          title: 'Header 6',
+	          items: [
+	            {id: 28},
+	            {id: 29},
+	            {id: 30},
+	            {id: 31},
+	            {id: 32}
+	          ]
+	        }
+	      ]
+	    }}
+	  }
+
+	;__weex_module__.exports.template={
+	  "type": "scroller",
+	  "classList": [
+	    "list"
+	  ],
+	  "children": [
+	    {
+	      "type": "div",
+	      "classList": [
+	        "section"
+	      ],
+	      "repeat": function () {return this.sections},
+	      "children": [
+	        {
+	          "type": "div",
+	          "classList": [
+	            "header"
+	          ],
+	          "children": [
+	            {
+	              "type": "text",
+	              "classList": [
+	                "header-title"
+	              ],
+	              "attr": {
+	                "value": function () {return this.title}
+	              }
+	            }
+	          ]
+	        },
+	        {
+	          "type": "div",
+	          "classList": [
+	            "item"
+	          ],
+	          "repeat": function () {return this.items},
+	          "children": [
+	            {
+	              "type": "text",
+	              "classList": [
+	                "item-title"
+	              ],
+	              "attr": {
+	                "value": function () {return 'row ' + (this.id)}
+	              }
+	            }
+	          ]
+	        }
+	      ]
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "header": {
+	    "backgroundColor": "#45b5f0",
+	    "padding": 20,
+	    "height": 88,
+	    "justifyContent": "center"
+	  },
+	  "header-title": {
+	    "color": "#FFFFFF",
+	    "fontWeight": "bold"
+	  },
+	  "item": {
+	    "justifyContent": "center",
+	    "borderBottomWidth": 2,
+	    "borderBottomColor": "#c0c0c0",
+	    "height": 100,
+	    "padding": 20
+	  }
+	}
+	})
+	;__weex_bootstrap__("@weex-component/bac99fb3b97adcec652c299dcd306bce", {
+	  "transformerVersion": "0.3.1"
+	},undefined)
+
+/***/ },
+/* 1 */
+/***/ function(module, exports, __webpack_require__) {
+
+	;__weex_define__("@weex-component/index", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	  __webpack_require__(2);
+	  __webpack_require__(3);
+	  __webpack_require__(4);
+	  __webpack_require__(5);
+	  __webpack_require__(6);
+	  __webpack_require__(7);
+	  __webpack_require__(8);
+	  __webpack_require__(9);
+	  __webpack_require__(10);
+	  __webpack_require__(11);
+	  __webpack_require__(12);
+
+	})
+
+/***/ },
+/* 2 */
+/***/ function(module, exports) {
+
+	;__weex_define__("@weex-component/wxc-button", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	  __weex_module__.exports = {
+	    data: function () {return {
+	      type: 'default',
+	      size: 'large',
+	      value: ''
+	    }},
+	    methods: {
+	    }
+	  }
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]},
+	  "children": [
+	    {
+	      "type": "text",
+	      "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]},
+	      "attr": {
+	        "value": function () {return this.value}
+	      }
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "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
+	  }
+	}
+	})
+
+/***/ },
+/* 3 */
+/***/ function(module, exports) {
+
+	;__weex_define__("@weex-component/wxc-hn", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	  __weex_module__.exports = {
+	    data: function () {return {
+	      level: 1,
+	      value: ''
+	    }},
+	    methods: {}
+	  }
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": function () {return ['h' + (this.level)]},
+	  "style": {
+	    "justifyContent": "center"
+	  },
+	  "children": [
+	    {
+	      "type": "text",
+	      "classList": function () {return ['txt-h' + (this.level)]},
+	      "attr": {
+	        "value": function () {return this.value}
+	      }
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "h1": {
+	    "height": 110,
+	    "paddingTop": 20,
+	    "paddingBottom": 20
+	  },
+	  "h2": {
+	    "height": 110,
+	    "paddingTop": 20,
+	    "paddingBottom": 20
+	  },
+	  "h3": {
+	    "height": 110,
+	    "paddingTop": 20,
+	    "paddingBottom": 20
+	  },
+	  "txt-h1": {
+	    "fontSize": 70
+	  },
+	  "txt-h2": {
+	    "fontSize": 52
+	  },
+	  "txt-h3": {
+	    "fontSize": 42
+	  }
+	}
+	})
+
+/***/ },
+/* 4 */
+/***/ function(module, exports) {
+
+	;__weex_define__("@weex-component/wxc-list-item", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	  __weex_module__.exports = {
+	    data: function () {return {
+	      bgColor: '#ffffff'
+	    }},
+	    methods: {
+	      touchstart: function() {
+	        // FIXME android touch
+	        // TODO adaptive opposite bgColor
+	//        this.bgColor = '#e6e6e6';
+	      },
+	      touchend: function() {
+	        // FIXME android touchend not triggered
+	//        this.bgColor = '#ffffff';
+	      }
+	    }
+	  }
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": [
+	    "item"
+	  ],
+	  "events": {
+	    "touchstart": "touchstart",
+	    "touchend": "touchend"
+	  },
+	  "style": {
+	    "backgroundColor": function () {return this.bgColor}
+	  },
+	  "children": [
+	    {
+	      "type": "content"
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "item": {
+	    "paddingTop": 25,
+	    "paddingBottom": 25,
+	    "paddingLeft": 35,
+	    "paddingRight": 35,
+	    "height": 160,
+	    "justifyContent": "center",
+	    "borderBottomWidth": 1,
+	    "borderColor": "#dddddd"
+	  }
+	}
+	})
+
+/***/ },
+/* 5 */
+/***/ function(module, exports) {
+
+	;__weex_define__("@weex-component/wxc-panel", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	  __weex_module__.exports = {
+	    data: function () {return {
+	      type: 'default',
+	      title: '',
+	      paddingBody: 20,
+	      paddingHead: 20,
+	      dataClass: '', // FIXME transfer class
+	      border: 0
+	    }},
+	    ready: function() {
+	    }
+	  }
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": function () {return ['panel', 'panel-' + (this.type)]},
+	  "style": {
+	    "borderWidth": function () {return this.border}
+	  },
+	  "children": [
+	    {
+	      "type": "text",
+	      "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]},
+	      "style": {
+	        "paddingTop": function () {return this.paddingHead},
+	        "paddingBottom": function () {return this.paddingHead},
+	        "paddingLeft": function () {return this.paddingHead*1.5},
+	        "paddingRight": function () {return this.paddingHead*1.5}
+	      },
+	      "attr": {
+	        "value": function () {return this.title}
+	      }
+	    },
+	    {
+	      "type": "div",
+	      "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]},
+	      "style": {
+	        "paddingTop": function () {return this.paddingBody},
+	        "paddingBottom": function () {return this.paddingBody},
+	        "paddingLeft": function () {return this.paddingBody*1.5},
+	        "paddingRight": function () {return this.paddingBody*1.5}
+	      },
+	      "children": [
+	        {
+	          "type": "content"
+	        }
+	      ]
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "panel": {
+	    "marginBottom": 20,
+	    "backgroundColor": "#ffffff",
+	    "borderColor": "#dddddd",
+	    "borderWidth": 1
+	  },
+	  "panel-primary": {
+	    "borderColor": "rgb(40,96,144)"
+	  },
+	  "panel-success": {
+	    "borderColor": "rgb(76,174,76)"
+	  },
+	  "panel-info": {
+	    "borderColor": "rgb(70,184,218)"
+	  },
+	  "panel-warning": {
+	    "borderColor": "rgb(238,162,54)"
+	  },
+	  "panel-danger": {
+	    "borderColor": "rgb(212,63,58)"
+	  },
+	  "panel-header": {
+	    "backgroundColor": "#f5f5f5",
+	    "fontSize": 40,
+	    "color": "#333333"
+	  },
+	  "panel-header-primary": {
+	    "backgroundColor": "rgb(40,96,144)",
+	    "color": "#ffffff"
+	  },
+	  "panel-header-success": {
+	    "backgroundColor": "rgb(92,184,92)",
+	    "color": "#ffffff"
+	  },
+	  "panel-header-info": {
+	    "backgroundColor": "rgb(91,192,222)",
+	    "color": "#ffffff"
+	  },
+	  "panel-header-warning": {
+	    "backgroundColor": "rgb(240,173,78)",
+	    "color": "#ffffff"
+	  },
+	  "panel-header-danger": {
+	    "backgroundColor": "rgb(217,83,79)",
+	    "color": "#ffffff"
+	  },
+	  "panel-body": {}
+	}
+	})
+
+/***/ },
+/* 6 */
+/***/ function(module, exports) {
+
+	;__weex_define__("@weex-component/wxc-tip", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	  __weex_module__.exports = {
+	    data: function () {return {
+	      type: 'success',
+	      value: ''
+	    }}
+	  }
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": function () {return ['tip', 'tip-' + (this.type)]},
+	  "children": [
+	    {
+	      "type": "text",
+	      "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]},
+	      "attr": {
+	        "value": function () {return this.value}
+	      }
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "tip": {
+	    "paddingLeft": 36,
+	    "paddingRight": 36,
+	    "paddingTop": 36,
+	    "paddingBottom": 36,
+	    "borderRadius": 10
+	  },
+	  "tip-txt": {
+	    "fontSize": 28
+	  },
+	  "tip-success": {
+	    "backgroundColor": "#dff0d8",
+	    "borderColor": "#d6e9c6"
+	  },
+	  "tip-txt-success": {
+	    "color": "#3c763d"
+	  },
+	  "tip-info": {
+	    "backgroundColor": "#d9edf7",
+	    "borderColor": "#bce8f1"
+	  },
+	  "tip-txt-info": {
+	    "color": "#31708f"
+	  },
+	  "tip-warning": {
+	    "backgroundColor": "#fcf8e3",
+	    "borderColor": "#faebcc"
+	  },
+	  "tip-txt-warning": {
+	    "color": "#8a6d3b"
+	  },
+	  "tip-danger": {
+	    "backgroundColor": "#f2dede",
+	    "borderColor": "#ebccd1"
+	  },
+	  "tip-txt-danger": {
+	    "color": "#a94442"
+	  }
+	}
+	})
+
+/***/ },
+/* 7 */
+/***/ function(module, exports) {
+
+	;__weex_define__("@weex-component/wxc-countdown", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	__weex_module__.exports = {
+	    data: function () {return {
+	        now: 0,
+	        remain: 0,
+	        time: {
+	            elapse: 0,
+	            D: '0',
+	            DD: '0',
+	            h: '0',
+	            hh: '00',
+	            H: '0',
+	            HH: '0',
+	            m: '0',
+	            mm: '00',
+	            M: '0',
+	            MM: '0',
+	            s: '0',
+	            ss: '00',
+	            S: '0',
+	            SS: '0'
+	        },
+	        outofview: false
+	    }},
+	    ready: function() {
+	        if (this.remain <= 0) {
+	            return;
+	        }
+	        // this.isWeb = this.$getConfig().env.platform === 'Web';
+	        this.now = Date.now();
+	        this.nextTick();
+	    },
+	    methods: {
+	        nextTick: function() {
+	            if (this.outofview) {
+	                setTimeout(this.nextTick.bind(this), 1000);
+	            } else {
+	                this.time.elapse = parseInt((Date.now() - this.now) / 1000);
+
+	                if (this.calc()) {
+	                    this.$emit('tick', Object.assign({}, this.time));
+	                    setTimeout(this.nextTick.bind(this), 1000);
+	                } else {
+	                    this.$emit('alarm', Object.assign({}, this.time));
+	                }
+	                this._app.updateActions(); 
+	            }
+	        },
+	        format: function(str) {
+	            if (str.length >= 2) {
+	                return str;
+	            } else {
+	                return '0' + str;
+	            }
+	        },
+	        calc: function() {
+	            var remain = this.remain - this.time.elapse;
+	            if (remain < 0) {
+	                remain = 0;
+	            }
+	            this.time.D = String(parseInt(remain / 86400));
+	            this.time.DD = this.format(this.time.D);
+	            this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600));
+	            this.time.hh = this.format(this.time.h);
+	            this.time.H = String(parseInt(remain / 3600));
+	            this.time.HH = this.format(this.time.H);
+	            this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60));
+	            this.time.mm = this.format(this.time.m);
+	            this.time.M = String(parseInt(remain / 60));
+	            this.time.MM = this.format(this.time.M);
+	            this.time.s = String(remain - parseInt(this.time.M) * 60);
+	            this.time.ss = this.format(this.time.s);
+	            this.time.S = String(remain);
+	            this.time.SS = this.format(this.time.S);
+	            // console.log(remain, this.D, this.h, this.hh, this.H, this.HH, this.m, this.MM, this.s, this.ss, this.S, this.SS);
+	            return remain > 0;
+	        },
+	        appeared: function() {
+	            this.outofview = false;
+	        },
+	        disappeared: function() {
+	            this.outofview = true;
+	        }
+	    }
+	}
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "style": {
+	    "overflow": "hidden",
+	    "flexDirection": "row"
+	  },
+	  "events": {
+	    "appear": "appeared",
+	    "disappear": "disappeared"
+	  },
+	  "children": [
+	    {
+	      "type": "content"
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "wrap": {
+	    "overflow": "hidden"
+	  }
+	}
+	})
+
+/***/ },
+/* 8 */
+/***/ function(module, exports) {
+
+	;__weex_define__("@weex-component/wxc-marquee", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	__weex_module__.exports = {
+	    data: function () {return {
+	        step: 0,
+	        count: 0,
+	        index: 1,
+	        duration: 0,
+	        interval: 0,
+	        outofview: false
+	    }},
+	    ready: function () {
+	        if (this.interval > 0
+	                && this.step > 0
+	                && this.duration > 0) {
+	            this.nextTick();    
+	        }
+	    },
+	    methods: {
+	        nextTick: function() {
+	            var self = this;
+	            if (this.outofview) {
+	                setTimeout(self.nextTick.bind(self), self.interval);
+	            } else {
+	                setTimeout(function() {
+	                    self.animation(self.nextTick.bind(self));
+	                }, self.interval);
+	            }
+	        },
+	        animation: function(cb) {
+	            var self = this;
+	            var offset = -self.step * self.index;
+	            var $animation = __weex_require__('@weex-module/animation');
+	            $animation.transition(this.$el('anim'), {
+	              styles: {
+	                transform: 'translateY(' + String(offset) + 'px) translateZ(0)'
+	              },
+	              timingFunction: 'ease',
+	              duration: self.duration
+	            }, function() {
+	                self.index = (self.index + 1) % (self.count);
+	                self.$emit('change', {
+	                    index: self.index,
+	                    count: self.count
+	                });
+	                cb && cb();
+	            });
+	        },
+	        appeared: function() {
+	            this.outofview = false;
+	        },
+	        disappeared: function() {
+	            this.outofview = true;
+	        }
+	    }
+	}
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": [
+	    "wrap"
+	  ],
+	  "events": {
+	    "appear": "appeared",
+	    "disappear": "disappeared"
+	  },
+	  "children": [
+	    {
+	      "type": "div",
+	      "id": "anim",
+	      "classList": [
+	        "anim"
+	      ],
+	      "children": [
+	        {
+	          "type": "content"
+	        }
+	      ]
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "wrap": {
+	    "overflow": "hidden",
+	    "position": "relative"
+	  },
+	  "anim": {
+	    "flexDirection": "column",
+	    "position": "absolute",
+	    "transform": "translateY(0) translateZ(0)"
+	  }
+	}
+	})
+
+/***/ },
+/* 9 */
+/***/ function(module, exports) {
+
+	;__weex_define__("@weex-component/wxc-navbar", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	    __weex_module__.exports = {
+	        data: function () {return {
+	          dataRole: 'navbar',
+
+	          //导航条背景色
+	          backgroundColor: 'black',
+
+	          //导航条高度
+	          height: 88,
+
+	          //导航条标题 
+	          title: "",
+
+	          //导航条标题颜色
+	          titleColor: 'black',
+
+	          //右侧按钮图片
+	          rightItemSrc: '',
+
+	          //右侧按钮标题
+	          rightItemTitle: '',
+
+	          //右侧按钮标题颜色
+	          rightItemColor: 'black',
+
+	          //左侧按钮图片
+	          leftItemSrc: '',
+
+	          //左侧按钮标题
+	          leftItemTitle: '',
+
+	          //左侧按钮颜色
+	          leftItemColor: 'black',
+	        }},
+	        methods: {
+	          onclickrightitem: function (e) {
+	            this.$dispatch('naviBar.rightItem.click', {});
+	          },
+	          onclickleftitem: function (e) {
+	            this.$dispatch('naviBar.leftItem.click', {});
+	          }
+	        }
+	    }
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": [
+	    "container"
+	  ],
+	  "style": {
+	    "height": function () {return this.height},
+	    "backgroundColor": function () {return this.backgroundColor}
+	  },
+	  "attr": {
+	    "dataRole": function () {return this.dataRole}
+	  },
+	  "children": [
+	    {
+	      "type": "text",
+	      "classList": [
+	        "right-text"
+	      ],
+	      "style": {
+	        "color": function () {return this.rightItemColor}
+	      },
+	      "attr": {
+	        "naviItemPosition": "right",
+	        "value": function () {return this.rightItemTitle}
+	      },
+	      "shown": function () {return !this.rightItemSrc},
+	      "events": {
+	        "click": "onclickrigthitem"
+	      }
+	    },
+	    {
+	      "type": "image",
+	      "classList": [
+	        "right-image"
+	      ],
+	      "attr": {
+	        "naviItemPosition": "right",
+	        "src": function () {return this.rightItemSrc}
+	      },
+	      "shown": function () {return this.rightItemSrc},
+	      "events": {
+	        "click": "onclickrightitem"
+	      }
+	    },
+	    {
+	      "type": "text",
+	      "classList": [
+	        "left-text"
+	      ],
+	      "style": {
+	        "color": function () {return this.leftItemColor}
+	      },
+	      "attr": {
+	        "naviItemPosition": "left",
+	        "value": function () {return this.leftItemTitle}
+	      },
+	      "shown": function () {return !this.leftItemSrc},
+	      "events": {
+	        "click": "onclickleftitem"
+	      }
+	    },
+	    {
+	      "type": "image",
+	      "classList": [
+	        "left-image"
+	      ],
+	      "attr": {
+	        "naviItemPosition": "left",
+	        "src": function () {return this.leftItemSrc}
+	      },
+	      "shown": function () {return this.leftItemSrc},
+	      "events": {
+	        "click": "onclickleftitem"
+	      }
+	    },
+	    {
+	      "type": "text",
+	      "classList": [
+	        "center-text"
+	      ],
+	      "style": {
+	        "color": function () {return this.titleColor}
+	      },
+	      "attr": {
+	        "naviItemPosition": "center",
+	        "value": function () {return this.title}
+	      }
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "container": {
+	    "flexDirection": "row",
+	    "position": "fixed",
+	    "top": 0,
+	    "left": 0,
+	    "right": 0,
+	    "width": 750
+	  },
+	  "right-text": {
+	    "position": "absolute",
+	    "bottom": 28,
+	    "right": 32,
+	    "textAlign": "right",
+	    "fontSize": 32,
+	    "fontFamily": "'Open Sans', sans-serif"
+	  },
+	  "left-text": {
+	    "position": "absolute",
+	    "bottom": 28,
+	    "left": 32,
+	    "textAlign": "left",
+	    "fontSize": 32,
+	    "fontFamily": "'Open Sans', sans-serif"
+	  },
+	  "center-text": {
+	    "position": "absolute",
+	    "bottom": 25,
+	    "left": 172,
+	    "right": 172,
+	    "textAlign": "center",
+	    "fontSize": 36,
+	    "fontWeight": "bold"
+	  },
+	  "left-image": {
+	    "position": "absolute",
+	    "bottom": 20,
+	    "left": 28,
+	    "width": 50,
+	    "height": 50
+	  },
+	  "right-image": {
+	    "position": "absolute",
+	    "bottom": 20,
+	    "right": 28,
+	    "width": 50,
+	    "height": 50
+	  }
+	}
+	})
+
+/***/ },
+/* 10 */
+/***/ function(module, exports, __webpack_require__) {
+
+	;__weex_define__("@weex-component/wxc-navpage", [], function(__weex_require__, __weex_exports__, __weex_module__){
+	__webpack_require__(9);
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": [
+	    "wrapper"
+	  ],
+	  "children": [
+	    {
+	      "type": "wxc-navbar",
+	      "attr": {
+	        "dataRole": function () {return this.dataRole},
+	        "height": function () {return this.height},
+	        "backgroundColor": function () {return this.backgroundColor},
+	        "title": function () {return this.title},
+	        "titleColor": function () {return this.titleColor},
+	        "leftItemSrc": function () {return this.leftItemSrc},
+	        "leftItemTitle": function () {return this.leftItemTitle},
+	        "leftItemColor": function () {return this.leftItemColor},
+	        "rightItemSrc": function () {return this.rightItemSrc},
+	        "rightItemTitle": function () {return this.rightItemTitle},
+	        "rightItemColor": function () {return this.rightItemColor}
+	      }
+	    },
+	    {
+	      "type": "div",
+	      "classList": [
+	        "wrapper"
+	      ],
+	      "style": {
+	        "marginTop": function () {return this.height}
+	      },
+	      "children": [
+	        {
+	          "type": "content"
+	        }
+	      ]
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "wrapper": {
+	    "position": "absolute",
+	    "top": 0,
+	    "left": 0,
+	    "right": 0,
+	    "bottom": 0,
+	    "width": 750
+	  }
+	}
+	})
+
+/***/ },
+/* 11 */
+/***/ function(module, exports, __webpack_require__) {
+
+	;__weex_define__("@weex-component/wxc-tabbar", [], function(__weex_require__, __weex_exports__, __weex_module__){
+	__webpack_require__(12);
+
+	;
+	    __weex_module__.exports = {
+	        data: function () {return {
+	          tabItems: [ ],
+	          selectedIndex: 0,
+	          selectedColor: '#ff0000',
+	          unselectedColor: '#000000',
+	        }},
+	        created: function () {
+	          this.selected(this.selectedIndex);
+
+	          this.$on('tabItem.onClick',function(e){
+	            var detail= e.detail;
+	            this.selectedIndex = detail.index;
+	            this.selected(detail.index);
+
+	            var params = {
+	              index: detail.index
+	            };
+	            this.$dispatch('tabBar.onClick', params);
+	          });
+	        },
+	        methods: {
+	            selected: function(index) {
+	              for(var i = 0; i < this.tabItems.length; i++) {
+	                var tabItem = this.tabItems[i];
+	                if(i == index){
+	                  tabItem.icon = tabItem.selectedImage;
+	                  tabItem.titleColor = this.selectedColor;
+	                  tabItem.visibility = 'visible';
+	                }
+	                else {
+	                  tabItem.icon = tabItem.image;
+	                  tabItem.titleColor = this.unselectedColor;
+	                  tabItem.visibility = 'hidden';
+	                }
+	              }
+	            },  
+	        }
+	    }
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": [
+	    "wrapper"
+	  ],
+	  "children": [
+	    {
+	      "type": "embed",
+	      "classList": [
+	        "content"
+	      ],
+	      "style": {
+	        "visibility": function () {return this.visibility}
+	      },
+	      "repeat": function () {return this.tabItems},
+	      "attr": {
+	        "src": function () {return this.src},
+	        "type": "weex"
+	      }
+	    },
+	    {
+	      "type": "div",
+	      "classList": [
+	        "tabbar"
+	      ],
+	      "append": "tree",
+	      "children": [
+	        {
+	          "type": "wxc-tabitem",
+	          "repeat": function () {return this.tabItems},
+	          "attr": {
+	            "index": function () {return this.index},
+	            "icon": function () {return this.icon},
+	            "title": function () {return this.title},
+	            "titleColor": function () {return this.titleColor}
+	          }
+	        }
+	      ]
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "wrapper": {
+	    "width": 750,
+	    "position": "absolute",
+	    "top": 0,
+	    "left": 0,
+	    "right": 0,
+	    "bottom": 0
+	  },
+	  "content": {
+	    "position": "absolute",
+	    "top": 0,
+	    "left": 0,
+	    "right": 0,
+	    "bottom": 0,
+	    "marginTop": 0,
+	    "marginBottom": 88
+	  },
+	  "tabbar": {
+	    "flexDirection": "row",
+	    "position": "fixed",
+	    "bottom": 0,
+	    "left": 0,
+	    "right": 0,
+	    "height": 88
+	  }
+	}
+	})
+
+/***/ },
+/* 12 */
+/***/ function(module, exports) {
+
+	;__weex_define__("@weex-component/wxc-tabitem", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	    __weex_module__.exports = {
+	        data: function () {return {
+	          index: 0,
+	          title: '',
+	          titleColor: '#000000',
+	          icon: '',
+	          backgroundColor: '#ffffff',
+	        }},
+	        methods: {
+	          onclickitem: function (e) {
+	            var vm = this;
+	            var params = {
+	              index: vm.index
+	            };
+	            vm.$dispatch('tabItem.onClick', params);
+	          }
+	        }
+	    }
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": [
+	    "container"
+	  ],
+	  "style": {
+	    "backgroundColor": function () {return this.backgroundColor}
+	  },
+	  "events": {
+	    "click": "onclickitem"
+	  },
+	  "children": [
+	    {
+	      "type": "image",
+	      "classList": [
+	        "top-line"
+	      ],
+	      "attr": {
+	        "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png"
+	      }
+	    },
+	    {
+	      "type": "image",
+	      "classList": [
+	        "tab-icon"
+	      ],
+	      "attr": {
+	        "src": function () {return this.icon}
+	      }
+	    },
+	    {
+	      "type": "text",
+	      "classList": [
+	        "tab-text"
+	      ],
+	      "style": {
+	        "color": function () {return this.titleColor}
+	      },
+	      "attr": {
+	        "value": function () {return this.title}
+	      }
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "container": {
+	    "flex": 1,
+	    "flexDirection": "column",
+	    "alignItems": "center",
+	    "justifyContent": "center",
+	    "height": 88
+	  },
+	  "top-line": {
+	    "position": "absolute",
+	    "top": 0,
+	    "left": 0,
+	    "right": 0,
+	    "height": 2
+	  },
+	  "tab-icon": {
+	    "marginTop": 5,
+	    "width": 40,
+	    "height": 40
+	  },
+	  "tab-text": {
+	    "marginTop": 5,
+	    "textAlign": "center",
+	    "fontSize": 20
+	  }
+	}
+	})
+
+/***/ }
+/******/ ]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/f4fd0820/ios/playground/bundlejs/component/slider/index.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/slider/index.js b/ios/playground/bundlejs/component/slider/index.js
new file mode 100644
index 0000000..bbd1cda
--- /dev/null
+++ b/ios/playground/bundlejs/component/slider/index.js
@@ -0,0 +1,1741 @@
+/******/ (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__) {
+
+	;__weex_define__("@weex-component/559cd2049da887ae8989e25df99c5cab", [], function(__weex_require__, __weex_exports__, __weex_module__){
+	__webpack_require__(13);
+
+	;
+	  __webpack_require__(1);
+	  var img0 = '//gw.alicdn.com/tps/i2/TB1DpsmMpXXXXabaXXX20ySQVXX-512-512.png_400x400.jpg';
+	  var img1 = '//gw.alicdn.com/tps/i1/TB1M3sQMpXXXXakXXXXApNeJVXX-360-360.png';
+	  __weex_module__.exports = {
+	    data: function () {return {
+	      eventCnt: 0,
+	      togglePlayMsg: 'pause',
+	      sliders: [
+	        {
+	          interval: 1000,
+	          autoPlay: true,
+	          sliderPages: [
+	            {
+	              items: [
+	                {
+	                  image: img0,
+	                  link: '//h5.m.taobao.com/1'
+	                },
+	                {
+	                  image: img0,
+	                  link: '//h5.m.taobao.com/1'
+	                }
+	              ]
+	            },
+	            {
+	              items: [
+	                {
+	                  image: img1,
+	                  link: '//h5.m.taobao.com/1'
+	                },
+	                {
+	                  image: img1,
+	                  link: '//h5.m.taobao.com/1'
+	                }
+	              ]
+	            },
+	            {
+	              items: [
+	                {
+	                  image: img0,
+	                  link: '//h5.m.taobao.com/1'
+	                },
+	                {
+	                  image: img1,
+	                  link: '//h5.m.taobao.com/1'
+	                }
+	              ]
+	            }
+	          ]
+	        },
+	        {
+	          interval: 3000,
+	          autoPlay: true,
+	          sliderPages: [
+	            {
+	              items: [
+	                {
+	                  image: img0,
+	                  link: '//h5.m.taobao.com/1'
+	                },
+	                {
+	                  image: img0,
+	                  link: '//h5.m.taobao.com/1'
+	                }
+	              ]
+	            },
+	            {
+	              items: [
+	                {
+	                  image: img1,
+	                  link: '//h5.m.taobao.com/1'
+	                },
+	                {
+	                  image: img1,
+	                  link: '//h5.m.taobao.com/1'
+	                }
+	              ]
+	            },
+	            {
+	              items: [
+	                {
+	                  image: img0,
+	                  link: '//h5.m.taobao.com/1'
+	                },
+	                {
+	                  image: img1,
+	                  link: '//h5.m.taobao.com/1'
+	                }
+	              ]
+	            }
+	          ]
+	        },
+	        {
+	          interval: 5000,
+	          autoPlay: true,
+	          sliderPages: [
+	            {
+	              items: [
+	                {
+	                  image: img0,
+	                  link: '//h5.m.taobao.com/1'
+	                },
+	                {
+	                  image: img0,
+	                  link: '//h5.m.taobao.com/1'
+	                }
+	              ]
+	            },
+	            {
+	              items: [
+	                {
+	                  image: img1,
+	                  link: '//h5.m.taobao.com/1'
+	                },
+	                {
+	                  image: img1,
+	                  link: '//h5.m.taobao.com/1'
+	                }
+	              ]
+	            },
+	            {
+	              items: [
+	                {
+	                  image: img0,
+	                  link: '//h5.m.taobao.com/1'
+	                },
+	                {
+	                  image: img1,
+	                  link: '//h5.m.taobao.com/1'
+	                }
+	              ]
+	            }
+	          ]
+	        }
+	      ]
+	    }},
+	    methods: {
+	      ready: function() {
+	      },
+	      togglePlay: function() {
+	        var autoPlay = this.sliders[0].autoPlay
+	        autoPlay = !autoPlay
+	        this.sliders[0].autoPlay = autoPlay
+	        this.togglePlayMsg = autoPlay ? 'pause' : 'play'
+	      },
+	      handleSliderChange: function() {
+	        var nowCnt = this.eventCnt + 1
+	        this.eventCnt = nowCnt
+	      },
+	      setInterval1: function() {
+	        this.sliders[0].interval = 1000;
+	      },
+	      setInterval3: function() {
+	        this.sliders[0].interval = 3000;
+	      },
+	      setInterval5: function() {
+	        this.sliders[0].interval = 5000;
+	      }
+	    }
+	  };
+
+	;__weex_module__.exports.template={
+	  "type": "scroller",
+	  "classList": [
+	    "body"
+	  ],
+	  "children": [
+	    {
+	      "type": "wxc-panel",
+	      "attr": {
+	        "title": "auto-play",
+	        "type": "primary"
+	      },
+	      "children": [
+	        {
+	          "type": "wxc-panel",
+	          "attr": {
+	            "title": "auto-play = false",
+	            "paddingBody": "0"
+	          },
+	          "children": [
+	            {
+	              "type": "slider",
+	              "classList": [
+	                "slider"
+	              ],
+	              "append": "tree",
+	              "attr": {
+	                "interval": function () {return this.sliders[1].interval},
+	                "autoPlay": "false"
+	              },
+	              "children": [
+	                {
+	                  "type": "indicator",
+	                  "classList": [
+	                    "indicator"
+	                  ]
+	                },
+	                {
+	                  "type": "slider-page",
+	                  "repeat": function () {return this.sliders[1].sliderPages}
+	                }
+	              ]
+	            }
+	          ]
+	        },
+	        {
+	          "type": "wxc-panel",
+	          "attr": {
+	            "title": "auto-play = true",
+	            "paddingBody": "0"
+	          },
+	          "children": [
+	            {
+	              "type": "slider",
+	              "classList": [
+	                "slider"
+	              ],
+	              "append": "tree",
+	              "attr": {
+	                "interval": function () {return this.sliders[0].interval},
+	                "autoPlay": function () {return this.sliders[0].autoPlay}
+	              },
+	              "children": [
+	                {
+	                  "type": "indicator",
+	                  "classList": [
+	                    "indicator"
+	                  ]
+	                },
+	                {
+	                  "type": "slider-page",
+	                  "repeat": function () {return this.sliders[0].sliderPages}
+	                }
+	              ]
+	            }
+	          ]
+	        }
+	      ]
+	    },
+	    {
+	      "type": "wxc-panel",
+	      "attr": {
+	        "title": function () {return 'Event, ' + (this.eventCnt) + ' change'},
+	        "type": "primary"
+	      },
+	      "children": [
+	        {
+	          "type": "slider",
+	          "classList": [
+	            "slider"
+	          ],
+	          "append": "tree",
+	          "attr": {
+	            "interval": function () {return this.sliders[0].interval},
+	            "autoPlay": function () {return this.sliders[0].autoPlay}
+	          },
+	          "events": {
+	            "change": "handleSliderChange"
+	          },
+	          "children": [
+	            {
+	              "type": "indicator",
+	              "classList": [
+	                "indicator"
+	              ]
+	            },
+	            {
+	              "type": "slider-page",
+	              "repeat": function () {return this.sliders[0].sliderPages}
+	            }
+	          ]
+	        }
+	      ]
+	    },
+	    {
+	      "type": "wxc-panel",
+	      "attr": {
+	        "title": "Indicator",
+	        "type": "primary"
+	      },
+	      "children": [
+	        {
+	          "type": "wxc-panel",
+	          "attr": {
+	            "title": "default style",
+	            "paddingBody": "0"
+	          },
+	          "children": [
+	            {
+	              "type": "slider",
+	              "classList": [
+	                "slider"
+	              ],
+	              "append": "tree",
+	              "attr": {
+	                "interval": function () {return this.sliders[0].interval},
+	                "autoPlay": function () {return this.sliders[0].autoPlay}
+	              },
+	              "events": {
+	                "change": "handleSliderChange"
+	              },
+	              "children": [
+	                {
+	                  "type": "indicator",
+	                  "classList": [
+	                    "indicator"
+	                  ]
+	                },
+	                {
+	                  "type": "slider-page",
+	                  "repeat": function () {return this.sliders[0].sliderPages}
+	                }
+	              ]
+	            }
+	          ]
+	        },
+	        {
+	          "type": "wxc-panel",
+	          "attr": {
+	            "title": "width & height",
+	            "paddingBody": "0"
+	          },
+	          "children": [
+	            {
+	              "type": "slider",
+	              "classList": [
+	                "slider"
+	              ],
+	              "append": "tree",
+	              "attr": {
+	                "interval": function () {return this.sliders[0].interval},
+	                "autoPlay": function () {return this.sliders[0].autoPlay}
+	              },
+	              "children": [
+	                {
+	                  "type": "indicator",
+	                  "style": {
+	                    "itemColor": "#dddddd",
+	                    "width": 714,
+	                    "height": 460
+	                  }
+	                },
+	                {
+	                  "type": "slider-page",
+	                  "repeat": function () {return this.sliders[0].sliderPages}
+	                }
+	              ]
+	            }
+	          ]
+	        },
+	        {
+	          "type": "wxc-panel",
+	          "attr": {
+	            "title": "left & top",
+	            "paddingBody": "0"
+	          },
+	          "children": [
+	            {
+	              "type": "slider",
+	              "classList": [
+	                "slider"
+	              ],
+	              "append": "tree",
+	              "attr": {
+	                "interval": function () {return this.sliders[1].interval},
+	                "autoPlay": function () {return this.sliders[1].autoPlay}
+	              },
+	              "children": [
+	                {
+	                  "type": "indicator",
+	                  "classList": [
+	                    "indicator"
+	                  ],
+	                  "style": {
+	                    "top": -140,
+	                    "left": -240
+	                  }
+	                },
+	                {
+	                  "type": "slider-page",
+	                  "repeat": function () {return this.sliders[1].sliderPages}
+	                }
+	              ]
+	            }
+	          ]
+	        },
+	        {
+	          "type": "wxc-panel",
+	          "attr": {
+	            "title": "itemColor & itemSelectedColor",
+	            "paddingBody": "0"
+	          },
+	          "children": [
+	            {
+	              "type": "slider",
+	              "classList": [
+	                "slider"
+	              ],
+	              "append": "tree",
+	              "attr": {
+	                "interval": function () {return this.sliders[2].interval},
+	                "autoPlay": function () {return this.sliders[2].autoPlay}
+	              },
+	              "children": [
+	                {
+	                  "type": "indicator",
+	                  "classList": [
+	                    "indicator"
+	                  ],
+	                  "style": {
+	                    "itemSelectedColor": "rgb(217, 83, 79)"
+	                  }
+	                },
+	                {
+	                  "type": "slider-page",
+	                  "repeat": function () {return this.sliders[2].sliderPages}
+	                }
+	              ]
+	            }
+	          ]
+	        },
+	        {
+	          "type": "wxc-panel",
+	          "attr": {
+	            "title": "itemSize",
+	            "paddingBody": "0"
+	          },
+	          "children": [
+	            {
+	              "type": "slider",
+	              "classList": [
+	                "slider"
+	              ],
+	              "append": "tree",
+	              "attr": {
+	                "interval": function () {return this.sliders[1].interval},
+	                "autoPlay": function () {return this.sliders[1].autoPlay}
+	              },
+	              "children": [
+	                {
+	                  "type": "indicator",
+	                  "style": {
+	                    "itemColor": "#dddddd",
+	                    "itemSize": 40,
+	                    "top": 140,
+	                    "left": 180,
+	                    "width": 700,
+	                    "height": 380
+	                  }
+	                },
+	                {
+	                  "type": "slider-page",
+	                  "repeat": function () {return this.sliders[1].sliderPages}
+	                }
+	              ]
+	            }
+	          ]
+	        }
+	      ]
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "body": {
+	    "backgroundColor": "#ffffff"
+	  },
+	  "slider": {
+	    "flexDirection": "row",
+	    "width": 690,
+	    "height": 360
+	  },
+	  "indicator": {
+	    "position": "absolute",
+	    "width": 690,
+	    "height": 420,
+	    "top": 140,
+	    "left": 240,
+	    "itemColor": "#dddddd",
+	    "itemSelectedColor": "rgb(40, 96, 144)"
+	  }
+	}
+	})
+	;__weex_bootstrap__("@weex-component/559cd2049da887ae8989e25df99c5cab", {
+	  "transformerVersion": "0.3.1"
+	},undefined)
+
+/***/ },
+/* 1 */
+/***/ function(module, exports, __webpack_require__) {
+
+	;__weex_define__("@weex-component/index", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	  __webpack_require__(2);
+	  __webpack_require__(3);
+	  __webpack_require__(4);
+	  __webpack_require__(5);
+	  __webpack_require__(6);
+	  __webpack_require__(7);
+	  __webpack_require__(8);
+	  __webpack_require__(9);
+	  __webpack_require__(10);
+	  __webpack_require__(11);
+	  __webpack_require__(12);
+
+	})
+
+/***/ },
+/* 2 */
+/***/ function(module, exports) {
+
+	;__weex_define__("@weex-component/wxc-button", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	  __weex_module__.exports = {
+	    data: function () {return {
+	      type: 'default',
+	      size: 'large',
+	      value: ''
+	    }},
+	    methods: {
+	    }
+	  }
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": function () {return ['btn', 'btn-' + (this.type), 'btn-sz-' + (this.size)]},
+	  "children": [
+	    {
+	      "type": "text",
+	      "classList": function () {return ['btn-txt', 'btn-txt-' + (this.type), 'btn-txt-sz-' + (this.size)]},
+	      "attr": {
+	        "value": function () {return this.value}
+	      }
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "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
+	  }
+	}
+	})
+
+/***/ },
+/* 3 */
+/***/ function(module, exports) {
+
+	;__weex_define__("@weex-component/wxc-hn", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	  __weex_module__.exports = {
+	    data: function () {return {
+	      level: 1,
+	      value: ''
+	    }},
+	    methods: {}
+	  }
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": function () {return ['h' + (this.level)]},
+	  "style": {
+	    "justifyContent": "center"
+	  },
+	  "children": [
+	    {
+	      "type": "text",
+	      "classList": function () {return ['txt-h' + (this.level)]},
+	      "attr": {
+	        "value": function () {return this.value}
+	      }
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "h1": {
+	    "height": 110,
+	    "paddingTop": 20,
+	    "paddingBottom": 20
+	  },
+	  "h2": {
+	    "height": 110,
+	    "paddingTop": 20,
+	    "paddingBottom": 20
+	  },
+	  "h3": {
+	    "height": 110,
+	    "paddingTop": 20,
+	    "paddingBottom": 20
+	  },
+	  "txt-h1": {
+	    "fontSize": 70
+	  },
+	  "txt-h2": {
+	    "fontSize": 52
+	  },
+	  "txt-h3": {
+	    "fontSize": 42
+	  }
+	}
+	})
+
+/***/ },
+/* 4 */
+/***/ function(module, exports) {
+
+	;__weex_define__("@weex-component/wxc-list-item", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	  __weex_module__.exports = {
+	    data: function () {return {
+	      bgColor: '#ffffff'
+	    }},
+	    methods: {
+	      touchstart: function() {
+	        // FIXME android touch
+	        // TODO adaptive opposite bgColor
+	//        this.bgColor = '#e6e6e6';
+	      },
+	      touchend: function() {
+	        // FIXME android touchend not triggered
+	//        this.bgColor = '#ffffff';
+	      }
+	    }
+	  }
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": [
+	    "item"
+	  ],
+	  "events": {
+	    "touchstart": "touchstart",
+	    "touchend": "touchend"
+	  },
+	  "style": {
+	    "backgroundColor": function () {return this.bgColor}
+	  },
+	  "children": [
+	    {
+	      "type": "content"
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "item": {
+	    "paddingTop": 25,
+	    "paddingBottom": 25,
+	    "paddingLeft": 35,
+	    "paddingRight": 35,
+	    "height": 160,
+	    "justifyContent": "center",
+	    "borderBottomWidth": 1,
+	    "borderColor": "#dddddd"
+	  }
+	}
+	})
+
+/***/ },
+/* 5 */
+/***/ function(module, exports) {
+
+	;__weex_define__("@weex-component/wxc-panel", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	  __weex_module__.exports = {
+	    data: function () {return {
+	      type: 'default',
+	      title: '',
+	      paddingBody: 20,
+	      paddingHead: 20,
+	      dataClass: '', // FIXME transfer class
+	      border: 0
+	    }},
+	    ready: function() {
+	    }
+	  }
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": function () {return ['panel', 'panel-' + (this.type)]},
+	  "style": {
+	    "borderWidth": function () {return this.border}
+	  },
+	  "children": [
+	    {
+	      "type": "text",
+	      "classList": function () {return ['panel-header', 'panel-header-' + (this.type)]},
+	      "style": {
+	        "paddingTop": function () {return this.paddingHead},
+	        "paddingBottom": function () {return this.paddingHead},
+	        "paddingLeft": function () {return this.paddingHead*1.5},
+	        "paddingRight": function () {return this.paddingHead*1.5}
+	      },
+	      "attr": {
+	        "value": function () {return this.title}
+	      }
+	    },
+	    {
+	      "type": "div",
+	      "classList": function () {return ['panel-body', 'panel-body-' + (this.type)]},
+	      "style": {
+	        "paddingTop": function () {return this.paddingBody},
+	        "paddingBottom": function () {return this.paddingBody},
+	        "paddingLeft": function () {return this.paddingBody*1.5},
+	        "paddingRight": function () {return this.paddingBody*1.5}
+	      },
+	      "children": [
+	        {
+	          "type": "content"
+	        }
+	      ]
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "panel": {
+	    "marginBottom": 20,
+	    "backgroundColor": "#ffffff",
+	    "borderColor": "#dddddd",
+	    "borderWidth": 1
+	  },
+	  "panel-primary": {
+	    "borderColor": "rgb(40,96,144)"
+	  },
+	  "panel-success": {
+	    "borderColor": "rgb(76,174,76)"
+	  },
+	  "panel-info": {
+	    "borderColor": "rgb(70,184,218)"
+	  },
+	  "panel-warning": {
+	    "borderColor": "rgb(238,162,54)"
+	  },
+	  "panel-danger": {
+	    "borderColor": "rgb(212,63,58)"
+	  },
+	  "panel-header": {
+	    "backgroundColor": "#f5f5f5",
+	    "fontSize": 40,
+	    "color": "#333333"
+	  },
+	  "panel-header-primary": {
+	    "backgroundColor": "rgb(40,96,144)",
+	    "color": "#ffffff"
+	  },
+	  "panel-header-success": {
+	    "backgroundColor": "rgb(92,184,92)",
+	    "color": "#ffffff"
+	  },
+	  "panel-header-info": {
+	    "backgroundColor": "rgb(91,192,222)",
+	    "color": "#ffffff"
+	  },
+	  "panel-header-warning": {
+	    "backgroundColor": "rgb(240,173,78)",
+	    "color": "#ffffff"
+	  },
+	  "panel-header-danger": {
+	    "backgroundColor": "rgb(217,83,79)",
+	    "color": "#ffffff"
+	  },
+	  "panel-body": {}
+	}
+	})
+
+/***/ },
+/* 6 */
+/***/ function(module, exports) {
+
+	;__weex_define__("@weex-component/wxc-tip", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	  __weex_module__.exports = {
+	    data: function () {return {
+	      type: 'success',
+	      value: ''
+	    }}
+	  }
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": function () {return ['tip', 'tip-' + (this.type)]},
+	  "children": [
+	    {
+	      "type": "text",
+	      "classList": function () {return ['tip-txt', 'tip-txt-' + (this.type)]},
+	      "attr": {
+	        "value": function () {return this.value}
+	      }
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "tip": {
+	    "paddingLeft": 36,
+	    "paddingRight": 36,
+	    "paddingTop": 36,
+	    "paddingBottom": 36,
+	    "borderRadius": 10
+	  },
+	  "tip-txt": {
+	    "fontSize": 28
+	  },
+	  "tip-success": {
+	    "backgroundColor": "#dff0d8",
+	    "borderColor": "#d6e9c6"
+	  },
+	  "tip-txt-success": {
+	    "color": "#3c763d"
+	  },
+	  "tip-info": {
+	    "backgroundColor": "#d9edf7",
+	    "borderColor": "#bce8f1"
+	  },
+	  "tip-txt-info": {
+	    "color": "#31708f"
+	  },
+	  "tip-warning": {
+	    "backgroundColor": "#fcf8e3",
+	    "borderColor": "#faebcc"
+	  },
+	  "tip-txt-warning": {
+	    "color": "#8a6d3b"
+	  },
+	  "tip-danger": {
+	    "backgroundColor": "#f2dede",
+	    "borderColor": "#ebccd1"
+	  },
+	  "tip-txt-danger": {
+	    "color": "#a94442"
+	  }
+	}
+	})
+
+/***/ },
+/* 7 */
+/***/ function(module, exports) {
+
+	;__weex_define__("@weex-component/wxc-countdown", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	__weex_module__.exports = {
+	    data: function () {return {
+	        now: 0,
+	        remain: 0,
+	        time: {
+	            elapse: 0,
+	            D: '0',
+	            DD: '0',
+	            h: '0',
+	            hh: '00',
+	            H: '0',
+	            HH: '0',
+	            m: '0',
+	            mm: '00',
+	            M: '0',
+	            MM: '0',
+	            s: '0',
+	            ss: '00',
+	            S: '0',
+	            SS: '0'
+	        },
+	        outofview: false
+	    }},
+	    ready: function() {
+	        if (this.remain <= 0) {
+	            return;
+	        }
+	        // this.isWeb = this.$getConfig().env.platform === 'Web';
+	        this.now = Date.now();
+	        this.nextTick();
+	    },
+	    methods: {
+	        nextTick: function() {
+	            if (this.outofview) {
+	                setTimeout(this.nextTick.bind(this), 1000);
+	            } else {
+	                this.time.elapse = parseInt((Date.now() - this.now) / 1000);
+
+	                if (this.calc()) {
+	                    this.$emit('tick', Object.assign({}, this.time));
+	                    setTimeout(this.nextTick.bind(this), 1000);
+	                } else {
+	                    this.$emit('alarm', Object.assign({}, this.time));
+	                }
+	                this._app.updateActions(); 
+	            }
+	        },
+	        format: function(str) {
+	            if (str.length >= 2) {
+	                return str;
+	            } else {
+	                return '0' + str;
+	            }
+	        },
+	        calc: function() {
+	            var remain = this.remain - this.time.elapse;
+	            if (remain < 0) {
+	                remain = 0;
+	            }
+	            this.time.D = String(parseInt(remain / 86400));
+	            this.time.DD = this.format(this.time.D);
+	            this.time.h = String(parseInt((remain - parseInt(this.time.D) * 86400) / 3600));
+	            this.time.hh = this.format(this.time.h);
+	            this.time.H = String(parseInt(remain / 3600));
+	            this.time.HH = this.format(this.time.H);
+	            this.time.m = String(parseInt((remain - parseInt(this.time.H) * 3600) / 60));
+	            this.time.mm = this.format(this.time.m);
+	            this.time.M = String(parseInt(remain / 60));
+	            this.time.MM = this.format(this.time.M);
+	            this.time.s = String(remain - parseInt(this.time.M) * 60);
+	            this.time.ss = this.format(this.time.s);
+	            this.time.S = String(remain);
+	            this.time.SS = this.format(this.time.S);
+	            // console.log(remain, this.D, this.h, this.hh, this.H, this.HH, this.m, this.MM, this.s, this.ss, this.S, this.SS);
+	            return remain > 0;
+	        },
+	        appeared: function() {
+	            this.outofview = false;
+	        },
+	        disappeared: function() {
+	            this.outofview = true;
+	        }
+	    }
+	}
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "style": {
+	    "overflow": "hidden",
+	    "flexDirection": "row"
+	  },
+	  "events": {
+	    "appear": "appeared",
+	    "disappear": "disappeared"
+	  },
+	  "children": [
+	    {
+	      "type": "content"
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "wrap": {
+	    "overflow": "hidden"
+	  }
+	}
+	})
+
+/***/ },
+/* 8 */
+/***/ function(module, exports) {
+
+	;__weex_define__("@weex-component/wxc-marquee", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	__weex_module__.exports = {
+	    data: function () {return {
+	        step: 0,
+	        count: 0,
+	        index: 1,
+	        duration: 0,
+	        interval: 0,
+	        outofview: false
+	    }},
+	    ready: function () {
+	        if (this.interval > 0
+	                && this.step > 0
+	                && this.duration > 0) {
+	            this.nextTick();    
+	        }
+	    },
+	    methods: {
+	        nextTick: function() {
+	            var self = this;
+	            if (this.outofview) {
+	                setTimeout(self.nextTick.bind(self), self.interval);
+	            } else {
+	                setTimeout(function() {
+	                    self.animation(self.nextTick.bind(self));
+	                }, self.interval);
+	            }
+	        },
+	        animation: function(cb) {
+	            var self = this;
+	            var offset = -self.step * self.index;
+	            var $animation = __weex_require__('@weex-module/animation');
+	            $animation.transition(this.$el('anim'), {
+	              styles: {
+	                transform: 'translateY(' + String(offset) + 'px) translateZ(0)'
+	              },
+	              timingFunction: 'ease',
+	              duration: self.duration
+	            }, function() {
+	                self.index = (self.index + 1) % (self.count);
+	                self.$emit('change', {
+	                    index: self.index,
+	                    count: self.count
+	                });
+	                cb && cb();
+	            });
+	        },
+	        appeared: function() {
+	            this.outofview = false;
+	        },
+	        disappeared: function() {
+	            this.outofview = true;
+	        }
+	    }
+	}
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": [
+	    "wrap"
+	  ],
+	  "events": {
+	    "appear": "appeared",
+	    "disappear": "disappeared"
+	  },
+	  "children": [
+	    {
+	      "type": "div",
+	      "id": "anim",
+	      "classList": [
+	        "anim"
+	      ],
+	      "children": [
+	        {
+	          "type": "content"
+	        }
+	      ]
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "wrap": {
+	    "overflow": "hidden",
+	    "position": "relative"
+	  },
+	  "anim": {
+	    "flexDirection": "column",
+	    "position": "absolute",
+	    "transform": "translateY(0) translateZ(0)"
+	  }
+	}
+	})
+
+/***/ },
+/* 9 */
+/***/ function(module, exports) {
+
+	;__weex_define__("@weex-component/wxc-navbar", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	    __weex_module__.exports = {
+	        data: function () {return {
+	          dataRole: 'navbar',
+
+	          //导航条背景色
+	          backgroundColor: 'black',
+
+	          //导航条高度
+	          height: 88,
+
+	          //导航条标题 
+	          title: "",
+
+	          //导航条标题颜色
+	          titleColor: 'black',
+
+	          //右侧按钮图片
+	          rightItemSrc: '',
+
+	          //右侧按钮标题
+	          rightItemTitle: '',
+
+	          //右侧按钮标题颜色
+	          rightItemColor: 'black',
+
+	          //左侧按钮图片
+	          leftItemSrc: '',
+
+	          //左侧按钮标题
+	          leftItemTitle: '',
+
+	          //左侧按钮颜色
+	          leftItemColor: 'black',
+	        }},
+	        methods: {
+	          onclickrightitem: function (e) {
+	            this.$dispatch('naviBar.rightItem.click', {});
+	          },
+	          onclickleftitem: function (e) {
+	            this.$dispatch('naviBar.leftItem.click', {});
+	          }
+	        }
+	    }
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": [
+	    "container"
+	  ],
+	  "style": {
+	    "height": function () {return this.height},
+	    "backgroundColor": function () {return this.backgroundColor}
+	  },
+	  "attr": {
+	    "dataRole": function () {return this.dataRole}
+	  },
+	  "children": [
+	    {
+	      "type": "text",
+	      "classList": [
+	        "right-text"
+	      ],
+	      "style": {
+	        "color": function () {return this.rightItemColor}
+	      },
+	      "attr": {
+	        "naviItemPosition": "right",
+	        "value": function () {return this.rightItemTitle}
+	      },
+	      "shown": function () {return !this.rightItemSrc},
+	      "events": {
+	        "click": "onclickrigthitem"
+	      }
+	    },
+	    {
+	      "type": "image",
+	      "classList": [
+	        "right-image"
+	      ],
+	      "attr": {
+	        "naviItemPosition": "right",
+	        "src": function () {return this.rightItemSrc}
+	      },
+	      "shown": function () {return this.rightItemSrc},
+	      "events": {
+	        "click": "onclickrightitem"
+	      }
+	    },
+	    {
+	      "type": "text",
+	      "classList": [
+	        "left-text"
+	      ],
+	      "style": {
+	        "color": function () {return this.leftItemColor}
+	      },
+	      "attr": {
+	        "naviItemPosition": "left",
+	        "value": function () {return this.leftItemTitle}
+	      },
+	      "shown": function () {return !this.leftItemSrc},
+	      "events": {
+	        "click": "onclickleftitem"
+	      }
+	    },
+	    {
+	      "type": "image",
+	      "classList": [
+	        "left-image"
+	      ],
+	      "attr": {
+	        "naviItemPosition": "left",
+	        "src": function () {return this.leftItemSrc}
+	      },
+	      "shown": function () {return this.leftItemSrc},
+	      "events": {
+	        "click": "onclickleftitem"
+	      }
+	    },
+	    {
+	      "type": "text",
+	      "classList": [
+	        "center-text"
+	      ],
+	      "style": {
+	        "color": function () {return this.titleColor}
+	      },
+	      "attr": {
+	        "naviItemPosition": "center",
+	        "value": function () {return this.title}
+	      }
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "container": {
+	    "flexDirection": "row",
+	    "position": "fixed",
+	    "top": 0,
+	    "left": 0,
+	    "right": 0,
+	    "width": 750
+	  },
+	  "right-text": {
+	    "position": "absolute",
+	    "bottom": 28,
+	    "right": 32,
+	    "textAlign": "right",
+	    "fontSize": 32,
+	    "fontFamily": "'Open Sans', sans-serif"
+	  },
+	  "left-text": {
+	    "position": "absolute",
+	    "bottom": 28,
+	    "left": 32,
+	    "textAlign": "left",
+	    "fontSize": 32,
+	    "fontFamily": "'Open Sans', sans-serif"
+	  },
+	  "center-text": {
+	    "position": "absolute",
+	    "bottom": 25,
+	    "left": 172,
+	    "right": 172,
+	    "textAlign": "center",
+	    "fontSize": 36,
+	    "fontWeight": "bold"
+	  },
+	  "left-image": {
+	    "position": "absolute",
+	    "bottom": 20,
+	    "left": 28,
+	    "width": 50,
+	    "height": 50
+	  },
+	  "right-image": {
+	    "position": "absolute",
+	    "bottom": 20,
+	    "right": 28,
+	    "width": 50,
+	    "height": 50
+	  }
+	}
+	})
+
+/***/ },
+/* 10 */
+/***/ function(module, exports, __webpack_require__) {
+
+	;__weex_define__("@weex-component/wxc-navpage", [], function(__weex_require__, __weex_exports__, __weex_module__){
+	__webpack_require__(9);
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": [
+	    "wrapper"
+	  ],
+	  "children": [
+	    {
+	      "type": "wxc-navbar",
+	      "attr": {
+	        "dataRole": function () {return this.dataRole},
+	        "height": function () {return this.height},
+	        "backgroundColor": function () {return this.backgroundColor},
+	        "title": function () {return this.title},
+	        "titleColor": function () {return this.titleColor},
+	        "leftItemSrc": function () {return this.leftItemSrc},
+	        "leftItemTitle": function () {return this.leftItemTitle},
+	        "leftItemColor": function () {return this.leftItemColor},
+	        "rightItemSrc": function () {return this.rightItemSrc},
+	        "rightItemTitle": function () {return this.rightItemTitle},
+	        "rightItemColor": function () {return this.rightItemColor}
+	      }
+	    },
+	    {
+	      "type": "div",
+	      "classList": [
+	        "wrapper"
+	      ],
+	      "style": {
+	        "marginTop": function () {return this.height}
+	      },
+	      "children": [
+	        {
+	          "type": "content"
+	        }
+	      ]
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "wrapper": {
+	    "position": "absolute",
+	    "top": 0,
+	    "left": 0,
+	    "right": 0,
+	    "bottom": 0,
+	    "width": 750
+	  }
+	}
+	})
+
+/***/ },
+/* 11 */
+/***/ function(module, exports, __webpack_require__) {
+
+	;__weex_define__("@weex-component/wxc-tabbar", [], function(__weex_require__, __weex_exports__, __weex_module__){
+	__webpack_require__(12);
+
+	;
+	    __weex_module__.exports = {
+	        data: function () {return {
+	          tabItems: [ ],
+	          selectedIndex: 0,
+	          selectedColor: '#ff0000',
+	          unselectedColor: '#000000',
+	        }},
+	        created: function () {
+	          this.selected(this.selectedIndex);
+
+	          this.$on('tabItem.onClick',function(e){
+	            var detail= e.detail;
+	            this.selectedIndex = detail.index;
+	            this.selected(detail.index);
+
+	            var params = {
+	              index: detail.index
+	            };
+	            this.$dispatch('tabBar.onClick', params);
+	          });
+	        },
+	        methods: {
+	            selected: function(index) {
+	              for(var i = 0; i < this.tabItems.length; i++) {
+	                var tabItem = this.tabItems[i];
+	                if(i == index){
+	                  tabItem.icon = tabItem.selectedImage;
+	                  tabItem.titleColor = this.selectedColor;
+	                  tabItem.visibility = 'visible';
+	                }
+	                else {
+	                  tabItem.icon = tabItem.image;
+	                  tabItem.titleColor = this.unselectedColor;
+	                  tabItem.visibility = 'hidden';
+	                }
+	              }
+	            },  
+	        }
+	    }
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": [
+	    "wrapper"
+	  ],
+	  "children": [
+	    {
+	      "type": "embed",
+	      "classList": [
+	        "content"
+	      ],
+	      "style": {
+	        "visibility": function () {return this.visibility}
+	      },
+	      "repeat": function () {return this.tabItems},
+	      "attr": {
+	        "src": function () {return this.src},
+	        "type": "weex"
+	      }
+	    },
+	    {
+	      "type": "div",
+	      "classList": [
+	        "tabbar"
+	      ],
+	      "append": "tree",
+	      "children": [
+	        {
+	          "type": "wxc-tabitem",
+	          "repeat": function () {return this.tabItems},
+	          "attr": {
+	            "index": function () {return this.index},
+	            "icon": function () {return this.icon},
+	            "title": function () {return this.title},
+	            "titleColor": function () {return this.titleColor}
+	          }
+	        }
+	      ]
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "wrapper": {
+	    "width": 750,
+	    "position": "absolute",
+	    "top": 0,
+	    "left": 0,
+	    "right": 0,
+	    "bottom": 0
+	  },
+	  "content": {
+	    "position": "absolute",
+	    "top": 0,
+	    "left": 0,
+	    "right": 0,
+	    "bottom": 0,
+	    "marginTop": 0,
+	    "marginBottom": 88
+	  },
+	  "tabbar": {
+	    "flexDirection": "row",
+	    "position": "fixed",
+	    "bottom": 0,
+	    "left": 0,
+	    "right": 0,
+	    "height": 88
+	  }
+	}
+	})
+
+/***/ },
+/* 12 */
+/***/ function(module, exports) {
+
+	;__weex_define__("@weex-component/wxc-tabitem", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	    __weex_module__.exports = {
+	        data: function () {return {
+	          index: 0,
+	          title: '',
+	          titleColor: '#000000',
+	          icon: '',
+	          backgroundColor: '#ffffff',
+	        }},
+	        methods: {
+	          onclickitem: function (e) {
+	            var vm = this;
+	            var params = {
+	              index: vm.index
+	            };
+	            vm.$dispatch('tabItem.onClick', params);
+	          }
+	        }
+	    }
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": [
+	    "container"
+	  ],
+	  "style": {
+	    "backgroundColor": function () {return this.backgroundColor}
+	  },
+	  "events": {
+	    "click": "onclickitem"
+	  },
+	  "children": [
+	    {
+	      "type": "image",
+	      "classList": [
+	        "top-line"
+	      ],
+	      "attr": {
+	        "src": "http://gtms03.alicdn.com/tps/i3/TB1mdsiMpXXXXXpXXXXNw4JIXXX-640-4.png"
+	      }
+	    },
+	    {
+	      "type": "image",
+	      "classList": [
+	        "tab-icon"
+	      ],
+	      "attr": {
+	        "src": function () {return this.icon}
+	      }
+	    },
+	    {
+	      "type": "text",
+	      "classList": [
+	        "tab-text"
+	      ],
+	      "style": {
+	        "color": function () {return this.titleColor}
+	      },
+	      "attr": {
+	        "value": function () {return this.title}
+	      }
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "container": {
+	    "flex": 1,
+	    "flexDirection": "column",
+	    "alignItems": "center",
+	    "justifyContent": "center",
+	    "height": 88
+	  },
+	  "top-line": {
+	    "position": "absolute",
+	    "top": 0,
+	    "left": 0,
+	    "right": 0,
+	    "height": 2
+	  },
+	  "tab-icon": {
+	    "marginTop": 5,
+	    "width": 40,
+	    "height": 40
+	  },
+	  "tab-text": {
+	    "marginTop": 5,
+	    "textAlign": "center",
+	    "fontSize": 20
+	  }
+	}
+	})
+
+/***/ },
+/* 13 */
+/***/ function(module, exports, __webpack_require__) {
+
+	;__weex_define__("@weex-component/slider-page", [], function(__weex_require__, __weex_exports__, __weex_module__){
+	__webpack_require__(14);
+
+	;
+	  __weex_module__.exports = {
+	    data: function () {return {
+	      items: [],
+	      sliderItems: []
+	    }},
+	    methods: {
+	      ready: function() {
+	        this.sliderItems = this.getSliderItems()
+	      },
+	      getSliderItems: function() {
+	        return this.items.map(function(item, index) {
+	          return item;
+	        }.bind(this));
+	      }
+	    }
+	  };
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": [
+	    "slider-page"
+	  ],
+	  "children": [
+	    {
+	      "type": "slider-item",
+	      "repeat": function () {return this.sliderItems}
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "slider-page": {
+	    "flexDirection": "row",
+	    "justifyContent": "space-between",
+	    "width": 714,
+	    "height": 420
+	  }
+	}
+	})
+
+/***/ },
+/* 14 */
+/***/ function(module, exports) {
+
+	;__weex_define__("@weex-component/slider-item", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	  __weex_module__.exports = {
+	    data: function () {return {
+	      image: '',
+	      link: '',
+	      href: ''
+	    }},
+	    methods: {
+	      ready: function() {
+	        this.href = this.link;
+	      }
+	    }
+	  };
+
+	;__weex_module__.exports.template={
+	  "type": "image",
+	  "classList": [
+	    "slider-item"
+	  ],
+	  "attr": {
+	    "src": function () {return this.image}
+	  }
+	}
+	;__weex_module__.exports.style={
+	  "slider-item": {
+	    "width": 348,
+	    "height": 400
+	  }
+	}
+	})
+
+/***/ }
+/******/ ]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/f4fd0820/ios/playground/bundlejs/component/slider/slider-item.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/slider/slider-item.js b/ios/playground/bundlejs/component/slider/slider-item.js
new file mode 100644
index 0000000..9f479b0
--- /dev/null
+++ b/ios/playground/bundlejs/component/slider/slider-item.js
@@ -0,0 +1,84 @@
+/******/ (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) {
+
+	;__weex_define__("@weex-component/ef1dc1be90047f8ba2262dbf1d8cf6e9", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	  __weex_module__.exports = {
+	    data: function () {return {
+	      image: '',
+	      link: '',
+	      href: ''
+	    }},
+	    methods: {
+	      ready: function() {
+	        this.href = this.link;
+	      }
+	    }
+	  };
+
+	;__weex_module__.exports.template={
+	  "type": "image",
+	  "classList": [
+	    "slider-item"
+	  ],
+	  "attr": {
+	    "src": function () {return this.image}
+	  }
+	}
+	;__weex_module__.exports.style={
+	  "slider-item": {
+	    "width": 348,
+	    "height": 400
+	  }
+	}
+	})
+	;__weex_bootstrap__("@weex-component/ef1dc1be90047f8ba2262dbf1d8cf6e9", {
+	  "transformerVersion": "0.3.1"
+	},undefined)
+
+/***/ }
+/******/ ]);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/f4fd0820/ios/playground/bundlejs/component/slider/slider-page.js
----------------------------------------------------------------------
diff --git a/ios/playground/bundlejs/component/slider/slider-page.js b/ios/playground/bundlejs/component/slider/slider-page.js
new file mode 100644
index 0000000..06fcec4
--- /dev/null
+++ b/ios/playground/bundlejs/component/slider/slider-page.js
@@ -0,0 +1,134 @@
+/******/ (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__) {
+
+	;__weex_define__("@weex-component/5ad7a924dc9da8e1fdbbc4b0828fdb93", [], function(__weex_require__, __weex_exports__, __weex_module__){
+	__webpack_require__(14);
+
+	;
+	  __weex_module__.exports = {
+	    data: function () {return {
+	      items: [],
+	      sliderItems: []
+	    }},
+	    methods: {
+	      ready: function() {
+	        this.sliderItems = this.getSliderItems()
+	      },
+	      getSliderItems: function() {
+	        return this.items.map(function(item, index) {
+	          return item;
+	        }.bind(this));
+	      }
+	    }
+	  };
+
+	;__weex_module__.exports.template={
+	  "type": "div",
+	  "classList": [
+	    "slider-page"
+	  ],
+	  "children": [
+	    {
+	      "type": "slider-item",
+	      "repeat": function () {return this.sliderItems}
+	    }
+	  ]
+	}
+	;__weex_module__.exports.style={
+	  "slider-page": {
+	    "flexDirection": "row",
+	    "justifyContent": "space-between",
+	    "width": 714,
+	    "height": 420
+	  }
+	}
+	})
+	;__weex_bootstrap__("@weex-component/5ad7a924dc9da8e1fdbbc4b0828fdb93", {
+	  "transformerVersion": "0.3.1"
+	},undefined)
+
+/***/ },
+
+/***/ 14:
+/***/ function(module, exports) {
+
+	;__weex_define__("@weex-component/slider-item", [], function(__weex_require__, __weex_exports__, __weex_module__){
+
+	;
+	  __weex_module__.exports = {
+	    data: function () {return {
+	      image: '',
+	      link: '',
+	      href: ''
+	    }},
+	    methods: {
+	      ready: function() {
+	        this.href = this.link;
+	      }
+	    }
+	  };
+
+	;__weex_module__.exports.template={
+	  "type": "image",
+	  "classList": [
+	    "slider-item"
+	  ],
+	  "attr": {
+	    "src": function () {return this.image}
+	  }
+	}
+	;__weex_module__.exports.style={
+	  "slider-item": {
+	    "width": 348,
+	    "height": 400
+	  }
+	}
+	})
+
+/***/ }
+
+/******/ });
\ No newline at end of file


Mime
View raw message