You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ha...@apache.org on 2017/12/28 03:28:13 UTC
[09/52] [partial] incubator-weex git commit: - [example] remove
legacy .we examples
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/8668b0f9/android/playground/app/src/main/assets/vue-web/vue/components/input.js
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/assets/vue-web/vue/components/input.js b/android/playground/app/src/main/assets/vue-web/vue/components/input.js
new file mode 100644
index 0000000..7a08db8
--- /dev/null
+++ b/android/playground/app/src/main/assets/vue-web/vue/components/input.js
@@ -0,0 +1,1283 @@
+// NOTE: for vue2.0 and platform:web only.
+
+/******/ (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 App = __webpack_require__(43)
+ App.el = '#root'
+ new Vue(App)
+
+
+/***/ }),
+
+/***/ 4:
+/***/ (function(module, exports) {
+
+ /*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+ */
+ // css base code, injected by the css-loader
+ module.exports = function() {
+ var list = [];
+
+ // return the list of modules as css string
+ list.toString = function toString() {
+ var result = [];
+ for(var i = 0; i < this.length; i++) {
+ var item = this[i];
+ if(item[2]) {
+ result.push("@media " + item[2] + "{" + item[1] + "}");
+ } else {
+ result.push(item[1]);
+ }
+ }
+ return result.join("");
+ };
+
+ // import a list of modules into the list
+ list.i = function(modules, mediaQuery) {
+ if(typeof modules === "string")
+ modules = [[null, modules, ""]];
+ var alreadyImportedModules = {};
+ for(var i = 0; i < this.length; i++) {
+ var id = this[i][0];
+ if(typeof id === "number")
+ alreadyImportedModules[id] = true;
+ }
+ for(i = 0; i < modules.length; i++) {
+ var item = modules[i];
+ // skip already imported module
+ // this implementation is not 100% perfect for weird media query combinations
+ // when a module is imported multiple times with different media queries.
+ // I hope this will never occur (Hey this way we have smaller bundles)
+ if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
+ if(mediaQuery && !item[2]) {
+ item[2] = mediaQuery;
+ } else if(mediaQuery) {
+ item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
+ }
+ list.push(item);
+ }
+ }
+ };
+ return list;
+ };
+
+
+/***/ }),
+
+/***/ 5:
+/***/ (function(module, exports, __webpack_require__) {
+
+ /*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+ Modified by Evan You @yyx990803
+ */
+
+ var hasDocument = typeof document !== 'undefined'
+
+ if (false) {
+ if (!hasDocument) {
+ throw new Error(
+ 'vue-style-loader cannot be used in a non-browser environment. ' +
+ "Use { target: 'node' } in your Webpack config to indicate a server-rendering environment."
+ ) }
+ }
+
+ var listToStyles = __webpack_require__(6)
+
+ /*
+ type StyleObject = {
+ id: number;
+ parts: Array<StyleObjectPart>
+ }
+
+ type StyleObjectPart = {
+ css: string;
+ media: string;
+ sourceMap: ?string
+ }
+ */
+
+ var stylesInDom = {/*
+ [id: number]: {
+ id: number,
+ refs: number,
+ parts: Array<(obj?: StyleObjectPart) => void>
+ }
+ */}
+
+ var head = hasDocument && (document.head || document.getElementsByTagName('head')[0])
+ var singletonElement = null
+ var singletonCounter = 0
+ var isProduction = false
+ var noop = function () {}
+
+ // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
+ // tags it will allow on a page
+ var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\b/.test(navigator.userAgent.toLowerCase())
+
+ module.exports = function (parentId, list, _isProduction) {
+ isProduction = _isProduction
+
+ var styles = listToStyles(parentId, list)
+ addStylesToDom(styles)
+
+ return function update (newList) {
+ var mayRemove = []
+ for (var i = 0; i < styles.length; i++) {
+ var item = styles[i]
+ var domStyle = stylesInDom[item.id]
+ domStyle.refs--
+ mayRemove.push(domStyle)
+ }
+ if (newList) {
+ styles = listToStyles(parentId, newList)
+ addStylesToDom(styles)
+ } else {
+ styles = []
+ }
+ for (var i = 0; i < mayRemove.length; i++) {
+ var domStyle = mayRemove[i]
+ if (domStyle.refs === 0) {
+ for (var j = 0; j < domStyle.parts.length; j++) {
+ domStyle.parts[j]()
+ }
+ delete stylesInDom[domStyle.id]
+ }
+ }
+ }
+ }
+
+ function addStylesToDom (styles /* Array<StyleObject> */) {
+ for (var i = 0; i < styles.length; i++) {
+ var item = styles[i]
+ var domStyle = stylesInDom[item.id]
+ if (domStyle) {
+ domStyle.refs++
+ for (var j = 0; j < domStyle.parts.length; j++) {
+ domStyle.parts[j](item.parts[j])
+ }
+ for (; j < item.parts.length; j++) {
+ domStyle.parts.push(addStyle(item.parts[j]))
+ }
+ if (domStyle.parts.length > item.parts.length) {
+ domStyle.parts.length = item.parts.length
+ }
+ } else {
+ var parts = []
+ for (var j = 0; j < item.parts.length; j++) {
+ parts.push(addStyle(item.parts[j]))
+ }
+ stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }
+ }
+ }
+ }
+
+ function createStyleElement () {
+ var styleElement = document.createElement('style')
+ styleElement.type = 'text/css'
+ head.appendChild(styleElement)
+ return styleElement
+ }
+
+ function addStyle (obj /* StyleObjectPart */) {
+ var update, remove
+ var styleElement = document.querySelector('style[data-vue-ssr-id~="' + obj.id + '"]')
+
+ if (styleElement) {
+ if (isProduction) {
+ // has SSR styles and in production mode.
+ // simply do nothing.
+ return noop
+ } else {
+ // has SSR styles but in dev mode.
+ // for some reason Chrome can't handle source map in server-rendered
+ // style tags - source maps in <style> only works if the style tag is
+ // created and inserted dynamically. So we remove the server rendered
+ // styles and inject new ones.
+ styleElement.parentNode.removeChild(styleElement)
+ }
+ }
+
+ if (isOldIE) {
+ // use singleton mode for IE9.
+ var styleIndex = singletonCounter++
+ styleElement = singletonElement || (singletonElement = createStyleElement())
+ update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)
+ remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)
+ } else {
+ // use multi-style-tag mode in all other cases
+ styleElement = createStyleElement()
+ update = applyToTag.bind(null, styleElement)
+ remove = function () {
+ styleElement.parentNode.removeChild(styleElement)
+ }
+ }
+
+ update(obj)
+
+ return function updateStyle (newObj /* StyleObjectPart */) {
+ if (newObj) {
+ if (newObj.css === obj.css &&
+ newObj.media === obj.media &&
+ newObj.sourceMap === obj.sourceMap) {
+ return
+ }
+ update(obj = newObj)
+ } else {
+ remove()
+ }
+ }
+ }
+
+ var replaceText = (function () {
+ var textStore = []
+
+ return function (index, replacement) {
+ textStore[index] = replacement
+ return textStore.filter(Boolean).join('\n')
+ }
+ })()
+
+ function applyToSingletonTag (styleElement, index, remove, obj) {
+ var css = remove ? '' : obj.css
+
+ if (styleElement.styleSheet) {
+ styleElement.styleSheet.cssText = replaceText(index, css)
+ } else {
+ var cssNode = document.createTextNode(css)
+ var childNodes = styleElement.childNodes
+ if (childNodes[index]) styleElement.removeChild(childNodes[index])
+ if (childNodes.length) {
+ styleElement.insertBefore(cssNode, childNodes[index])
+ } else {
+ styleElement.appendChild(cssNode)
+ }
+ }
+ }
+
+ function applyToTag (styleElement, obj) {
+ var css = obj.css
+ var media = obj.media
+ var sourceMap = obj.sourceMap
+
+ if (media) {
+ styleElement.setAttribute('media', media)
+ }
+
+ if (sourceMap) {
+ // https://developer.chrome.com/devtools/docs/javascript-debugging
+ // this makes source maps inside style tags work properly in Chrome
+ css += '\n/*# sourceURL=' + sourceMap.sources[0] + ' */'
+ // http://stackoverflow.com/a/26603875
+ css += '\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'
+ }
+
+ if (styleElement.styleSheet) {
+ styleElement.styleSheet.cssText = css
+ } else {
+ while (styleElement.firstChild) {
+ styleElement.removeChild(styleElement.firstChild)
+ }
+ styleElement.appendChild(document.createTextNode(css))
+ }
+ }
+
+
+/***/ }),
+
+/***/ 6:
+/***/ (function(module, exports) {
+
+ /**
+ * Translates the list format produced by css-loader into something
+ * easier to manipulate.
+ */
+ module.exports = function listToStyles (parentId, list) {
+ var styles = []
+ var newStyles = {}
+ for (var i = 0; i < list.length; i++) {
+ var item = list[i]
+ var id = item[0]
+ var css = item[1]
+ var media = item[2]
+ var sourceMap = item[3]
+ var part = {
+ id: parentId + ':' + i,
+ css: css,
+ media: media,
+ sourceMap: sourceMap
+ }
+ if (!newStyles[id]) {
+ styles.push(newStyles[id] = { id: id, parts: [part] })
+ } else {
+ newStyles[id].parts.push(part)
+ }
+ }
+ return styles
+ }
+
+
+/***/ }),
+
+/***/ 7:
+/***/ (function(module, exports) {
+
+ /* globals __VUE_SSR_CONTEXT__ */
+
+ // this module is a runtime utility for cleaner component module output and will
+ // be included in the final webpack user bundle
+
+ module.exports = function normalizeComponent (
+ rawScriptExports,
+ compiledTemplate,
+ injectStyles,
+ scopeId,
+ moduleIdentifier /* server only */
+ ) {
+ var esModule
+ var scriptExports = rawScriptExports = rawScriptExports || {}
+
+ // ES6 modules interop
+ var type = typeof rawScriptExports.default
+ if (type === 'object' || type === 'function') {
+ esModule = rawScriptExports
+ scriptExports = rawScriptExports.default
+ }
+
+ // Vue.extend constructor export interop
+ var options = typeof scriptExports === 'function'
+ ? scriptExports.options
+ : scriptExports
+
+ // render functions
+ if (compiledTemplate) {
+ options.render = compiledTemplate.render
+ options.staticRenderFns = compiledTemplate.staticRenderFns
+ }
+
+ // scopedId
+ if (scopeId) {
+ options._scopeId = scopeId
+ }
+
+ var hook
+ if (moduleIdentifier) { // server build
+ hook = function (context) {
+ // 2.3 injection
+ context =
+ context || // cached call
+ (this.$vnode && this.$vnode.ssrContext) || // stateful
+ (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
+ // 2.2 with runInNewContext: true
+ if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
+ context = __VUE_SSR_CONTEXT__
+ }
+ // inject component styles
+ if (injectStyles) {
+ injectStyles.call(this, context)
+ }
+ // register component module identifier for async chunk inferrence
+ if (context && context._registeredComponents) {
+ context._registeredComponents.add(moduleIdentifier)
+ }
+ }
+ // used by ssr in case component is cached and beforeCreate
+ // never gets called
+ options._ssrRegister = hook
+ } else if (injectStyles) {
+ hook = injectStyles
+ }
+
+ if (hook) {
+ var functional = options.functional
+ var existing = functional
+ ? options.render
+ : options.beforeCreate
+ if (!functional) {
+ // inject component registration as beforeCreate hook
+ options.beforeCreate = existing
+ ? [].concat(existing, hook)
+ : [hook]
+ } else {
+ // register for functioal component in vue file
+ options.render = function renderWithStyleInjection (h, context) {
+ hook.call(context)
+ return existing(h, context)
+ }
+ }
+ }
+
+ return {
+ esModule: esModule,
+ exports: scriptExports,
+ options: options
+ }
+ }
+
+
+/***/ }),
+
+/***/ 43:
+/***/ (function(module, exports, __webpack_require__) {
+
+ var disposed = false
+ function injectStyle (ssrContext) {
+ if (disposed) return
+ __webpack_require__(44)
+ }
+ var Component = __webpack_require__(7)(
+ /* script */
+ __webpack_require__(46),
+ /* template */
+ __webpack_require__(47),
+ /* styles */
+ injectStyle,
+ /* scopeId */
+ "data-v-de6618e8",
+ /* moduleIdentifier (server only) */
+ null
+ )
+ Component.options.__file = "/Users/Hanks/Codes/work/incubator-weex/examples/vue/components/input.vue"
+ if (Component.esModule && Object.keys(Component.esModule).some(function (key) {return key !== "default" && key.substr(0, 2) !== "__"})) {console.error("named exports are not supported in *.vue files.")}
+ if (Component.options.functional) {console.error("[vue-loader] input.vue: functional components are not supported with templates, they should use render functions.")}
+
+ /* hot reload */
+ if (false) {(function () {
+ var hotAPI = require("vue-hot-reload-api")
+ hotAPI.install(require("vue"), false)
+ if (!hotAPI.compatible) return
+ module.hot.accept()
+ if (!module.hot.data) {
+ hotAPI.createRecord("data-v-de6618e8", Component.options)
+ } else {
+ hotAPI.reload("data-v-de6618e8", Component.options)
+ }
+ module.hot.dispose(function (data) {
+ disposed = true
+ })
+ })()}
+
+ module.exports = Component.exports
+
+
+/***/ }),
+
+/***/ 44:
+/***/ (function(module, exports, __webpack_require__) {
+
+ // style-loader: Adds some css to the DOM by adding a <style> tag
+
+ // load the styles
+ var content = __webpack_require__(45);
+ if(typeof content === 'string') content = [[module.id, content, '']];
+ if(content.locals) module.exports = content.locals;
+ // add the styles to the DOM
+ var update = __webpack_require__(5)("ab21e8f8", content, false);
+ // Hot Module Replacement
+ if(false) {
+ // When the styles change, update the <style> tags
+ if(!content.locals) {
+ module.hot.accept("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\"vue\":true,\"id\":\"data-v-de6618e8\",\"scoped\":true,\"hasInlineConfig\":false}!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./input.vue", function() {
+ var newContent = require("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\"vue\":true,\"id\":\"data-v-de6618e8\",\"scoped\":true,\"hasInlineConfig\":false}!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./input.vue");
+ if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
+ update(newContent);
+ });
+ }
+ // When the module is disposed, remove the <style> tags
+ module.hot.dispose(function() { update(); });
+ }
+
+/***/ }),
+
+/***/ 45:
+/***/ (function(module, exports, __webpack_require__) {
+
+ exports = module.exports = __webpack_require__(4)();
+ // imports
+
+
+ // module
+ exports.push([module.id, "\n.input[data-v-de6618e8] {\n font-size: 60px;\n height: 80px;\n width: 750px;\n}\n.button[data-v-de6618e8] {\n font-size: 36;\n width: 200;\n color: #41B883;\n text-align: center;\n padding-top: 10;\n padding-bottom: 10;\n border-width: 2;\n border-style: solid;\n margin-right: 20;\n border-color: rgb(162, 217, 192);\n background-color: rgba(162, 217, 192, 0.2);\n}\n", ""]);
+
+ // exports
+
+
+/***/ }),
+
+/***/ 46:
+/***/ (function(module, exports) {
+
+ 'use strict';
+
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+
+ module.exports = {
+ data: function data() {
+ return {
+ txtInput: '',
+ txtChange: '',
+ txtReturnType: '',
+ txtSelection: '',
+ autofocus: false
+ };
+ },
+ methods: {
+ ready: function ready() {
+ var self = this;
+ setTimeout(function () {
+ self.autofocus = true;
+ }, 1000);
+ },
+ onchange: function onchange(event) {
+ this.txtChange = event.value;
+ console.log('onchange', event.value);
+ },
+ onreturn: function onreturn(event) {
+ this.txtReturnType = event.returnKeyType;
+ console.log('onreturn', event.type);
+ },
+ oninput: function oninput(event) {
+ this.txtInput = event.value;
+ console.log('oninput', event.value);
+ },
+ focus: function focus() {
+ this.$refs['input1'].focus();
+ },
+ blur: function blur() {
+ this.$refs['input1'].blur();
+ },
+ setRange: function setRange() {
+ console.log(this.$refs["inputselection"]);
+ this.$refs["inputselection"].setSelectionRange(2, 6);
+ },
+ getSelectionRange: function getSelectionRange() {
+ console.log(this.$refs["inputselection"]);
+ var self = this;
+ this.$refs["inputselection"].getSelectionRange(function (e) {
+ self.txtSelection = e.selectionStart + '-' + e.selectionEnd;
+ });
+ }
+ }
+ };
+
+/***/ }),
+
+/***/ 47:
+/***/ (function(module, exports, __webpack_require__) {
+
+ module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+ return _c('div', [_c('div', [_c('text', {
+ staticStyle: _vm.$processStyle({
+ "font-size": "40px"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("oninput: " + _vm._s(_vm.txtInput))]), _vm._v(" "), _c('text', {
+ staticStyle: _vm.$processStyle({
+ "font-size": "40px"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("onchange: " + _vm._s(_vm.txtChange))]), _vm._v(" "), _c('text', {
+ staticStyle: _vm.$processStyle({
+ "font-size": "40px"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("onreturntype: " + _vm._s(_vm.txtReturnType))]), _vm._v(" "), _c('text', {
+ staticStyle: _vm.$processStyle({
+ "font-size": "40px"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("selection: " + _vm._s(_vm.txtSelection))])]), _vm._v(" "), _c('scroller', [_c('div', [_c('div', {
+ staticStyle: _vm.$processStyle({
+ "background-color": "#286090"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_c('text', {
+ staticClass: "title",
+ staticStyle: _vm.$processStyle({
+ "height": "80",
+ "padding": "20",
+ "color": "#FFFFFF"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("input type = text")])]), _vm._v(" "), _c('input', {
+ staticClass: "input",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "type": "text",
+ "placeholder": "Input Text",
+ "autofocus": true,
+ "value": ""
+ },
+ on: {
+ "change": _vm.onchange,
+ "input": _vm.oninput
+ }
+ })]), _vm._v(" "), _c('div', [_c('div', {
+ staticStyle: _vm.$processStyle({
+ "background-color": "#286090"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_c('text', {
+ staticClass: "title",
+ staticStyle: _vm.$processStyle({
+ "height": "80",
+ "padding": "20",
+ "color": "#FFFFFF"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("input type = password")])]), _vm._v(" "), _c('input', {
+ staticClass: "input",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "type": "password",
+ "placeholder": "Input Password"
+ },
+ on: {
+ "change": _vm.onchange,
+ "input": _vm.oninput
+ }
+ })]), _vm._v(" "), _c('div', [_c('div', {
+ staticStyle: _vm.$processStyle({
+ "background-color": "#286090"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_c('text', {
+ staticClass: "title",
+ staticStyle: _vm.$processStyle({
+ "height": "80",
+ "padding": "20",
+ "color": "#FFFFFF"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("input type = url")])]), _vm._v(" "), _c('input', {
+ staticClass: "input",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "type": "url",
+ "placeholder": "Input URL"
+ },
+ on: {
+ "change": _vm.onchange,
+ "input": _vm.oninput
+ }
+ })]), _vm._v(" "), _c('div', [_c('div', {
+ staticStyle: _vm.$processStyle({
+ "background-color": "#286090"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_c('text', {
+ staticClass: "title",
+ staticStyle: _vm.$processStyle({
+ "height": "80",
+ "padding": "20",
+ "color": "#FFFFFF"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("input type = email")])]), _vm._v(" "), _c('input', {
+ staticClass: "input",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "type": "email",
+ "placeholder": "Input Email"
+ },
+ on: {
+ "change": _vm.onchange,
+ "input": _vm.oninput
+ }
+ })]), _vm._v(" "), _c('div', [_c('div', {
+ staticStyle: _vm.$processStyle({
+ "background-color": "#286090"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_c('text', {
+ staticClass: "title",
+ staticStyle: _vm.$processStyle({
+ "height": "80",
+ "padding": "20",
+ "color": "#FFFFFF"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("input type = tel")])]), _vm._v(" "), _c('input', {
+ staticClass: "input",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "type": "tel",
+ "placeholder": "Input Tel"
+ },
+ on: {
+ "change": _vm.onchange,
+ "input": _vm.oninput
+ }
+ })]), _vm._v(" "), _c('div', [_c('div', {
+ staticStyle: _vm.$processStyle({
+ "background-color": "#286090"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_c('text', {
+ staticClass: "title",
+ staticStyle: _vm.$processStyle({
+ "height": "80",
+ "padding": "20",
+ "color": "#FFFFFF"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("input type = time")])]), _vm._v(" "), _c('input', {
+ staticClass: "input",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "type": "time",
+ "placeholder": "Input Time"
+ },
+ on: {
+ "change": _vm.onchange,
+ "input": _vm.oninput
+ }
+ })]), _vm._v(" "), _c('div', [_c('div', {
+ staticStyle: _vm.$processStyle({
+ "background-color": "#286090"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_c('text', {
+ staticClass: "title",
+ staticStyle: _vm.$processStyle({
+ "height": "80",
+ "padding": "20",
+ "color": "#FFFFFF"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("input type = number")])]), _vm._v(" "), _c('input', {
+ staticClass: "input",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "type": "number",
+ "placeholder": "Input number"
+ },
+ on: {
+ "change": _vm.onchange,
+ "input": _vm.oninput
+ }
+ })]), _vm._v(" "), _c('div', [_c('div', {
+ staticStyle: _vm.$processStyle({
+ "background-color": "#286090"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_c('text', {
+ staticClass: "title",
+ staticStyle: _vm.$processStyle({
+ "height": "80",
+ "padding": "20",
+ "color": "#FFFFFF"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("input type = date")])]), _vm._v(" "), _c('input', {
+ staticClass: "input",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "type": "date",
+ "placeholder": "Input Date",
+ "max": "2017-12-12",
+ "min": "2015-01-01"
+ },
+ on: {
+ "change": _vm.onchange,
+ "input": _vm.oninput
+ }
+ })]), _vm._v(" "), _c('div', [_c('div', {
+ staticStyle: _vm.$processStyle({
+ "background-color": "#286090"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_c('text', {
+ staticClass: "title",
+ staticStyle: _vm.$processStyle({
+ "height": "80",
+ "padding": "20",
+ "color": "#FFFFFF"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("input return-key-type = default")])]), _vm._v(" "), _c('input', {
+ staticClass: "input",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "type": "text",
+ "placeholder": "please input",
+ "return-key-type": "default"
+ },
+ on: {
+ "change": _vm.onchange,
+ "return": _vm.onreturn,
+ "input": _vm.oninput
+ }
+ })]), _vm._v(" "), _c('div', [_c('div', {
+ staticStyle: _vm.$processStyle({
+ "background-color": "#286090"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_c('text', {
+ staticClass: "title",
+ staticStyle: _vm.$processStyle({
+ "height": "80",
+ "padding": "20",
+ "color": "#FFFFFF"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("input return-key-type = go")])]), _vm._v(" "), _c('input', {
+ staticClass: "input",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "type": "text",
+ "placeholder": "please input",
+ "return-key-type": "go"
+ },
+ on: {
+ "change": _vm.onchange,
+ "return": _vm.onreturn,
+ "input": _vm.oninput
+ }
+ })]), _vm._v(" "), _c('div', [_c('div', {
+ staticStyle: _vm.$processStyle({
+ "background-color": "#286090"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_c('text', {
+ staticClass: "title",
+ staticStyle: _vm.$processStyle({
+ "height": "80",
+ "padding": "20",
+ "color": "#FFFFFF"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("input return-key-type = next")])]), _vm._v(" "), _c('input', {
+ staticClass: "input",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "type": "text",
+ "placeholder": "please input",
+ "return-key-type": "next"
+ },
+ on: {
+ "change": _vm.onchange,
+ "return": _vm.onreturn,
+ "input": _vm.oninput
+ }
+ })]), _vm._v(" "), _c('div', [_c('div', {
+ staticStyle: _vm.$processStyle({
+ "background-color": "#286090"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_c('text', {
+ staticClass: "title",
+ staticStyle: _vm.$processStyle({
+ "height": "80",
+ "padding": "20",
+ "color": "#FFFFFF"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("input return-key-type = search")])]), _vm._v(" "), _c('input', {
+ staticClass: "input",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "type": "text",
+ "placeholder": "please input",
+ "return-key-type": "search"
+ },
+ on: {
+ "change": _vm.onchange,
+ "return": _vm.onreturn,
+ "input": _vm.oninput
+ }
+ })]), _vm._v(" "), _c('div', [_c('div', {
+ staticStyle: _vm.$processStyle({
+ "background-color": "#286090"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_c('text', {
+ staticClass: "title",
+ staticStyle: _vm.$processStyle({
+ "height": "80",
+ "padding": "20",
+ "color": "#FFFFFF"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("input return-key-type = send")])]), _vm._v(" "), _c('input', {
+ staticClass: "input",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "type": "text",
+ "placeholder": "please input",
+ "return-key-type": "send"
+ },
+ on: {
+ "change": _vm.onchange,
+ "return": _vm.onreturn,
+ "input": _vm.oninput
+ }
+ })]), _vm._v(" "), _c('div', [_c('div', {
+ staticStyle: _vm.$processStyle({
+ "background-color": "#286090"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_c('text', {
+ staticClass: "title",
+ staticStyle: _vm.$processStyle({
+ "height": "80",
+ "padding": "20",
+ "color": "#FFFFFF"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("input return-key-type = done")])]), _vm._v(" "), _c('input', {
+ staticClass: "input",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "type": "text",
+ "placeholder": "please input",
+ "return-key-type": "done"
+ },
+ on: {
+ "change": _vm.onchange,
+ "return": _vm.onreturn,
+ "input": _vm.oninput
+ }
+ })]), _vm._v(" "), _c('div', [_c('div', {
+ staticStyle: _vm.$processStyle({
+ "background-color": "#286090"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_c('text', {
+ staticClass: "title",
+ staticStyle: _vm.$processStyle({
+ "height": "80",
+ "padding": "20",
+ "color": "#FFFFFF"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("function focus() & blur()")])]), _vm._v(" "), _c('div', {
+ staticStyle: _vm.$processStyle({
+ "flex-direction": "row",
+ "margin-bottom": "16px",
+ "justify-content": "space-between"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_c('text', {
+ staticClass: "button",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "value": "Focus",
+ "type": "primary"
+ },
+ on: {
+ "click": _vm.focus
+ }
+ }), _vm._v(" "), _c('text', {
+ staticClass: "button",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "value": "Blur",
+ "type": "primary"
+ },
+ on: {
+ "click": _vm.blur
+ }
+ })]), _vm._v(" "), _c('input', {
+ ref: "input1",
+ staticClass: "input",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "type": "text",
+ "placeholder": "Input1",
+ "value": ""
+ }
+ })]), _vm._v(" "), _c('div', [_c('div', {
+ staticStyle: _vm.$processStyle({
+ "background-color": "#286090"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_c('text', {
+ staticClass: "title",
+ staticStyle: _vm.$processStyle({
+ "height": "80",
+ "padding": "20",
+ "color": "#FFFFFF"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("input selection")])]), _vm._v(" "), _c('div', {
+ staticStyle: _vm.$processStyle({
+ "flex-direction": "row",
+ "margin-bottom": "16px",
+ "justify-content": "space-between"
+ }),
+ style: (_vm.$processStyle(undefined))
+ }, [_c('text', {
+ staticClass: "button",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "value": "setRange",
+ "type": "primary"
+ },
+ on: {
+ "click": _vm.setRange
+ }
+ }), _vm._v(" "), _c('text', {
+ staticClass: "button",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "value": "getSelectionRange",
+ "type": "primary"
+ },
+ on: {
+ "click": _vm.getSelectionRange
+ }
+ })]), _vm._v(" "), _c('input', {
+ ref: "inputselection",
+ staticClass: "input",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "type": "text",
+ "placeholder": "please input",
+ "value": "123456789"
+ },
+ on: {
+ "change": _vm.onchange,
+ "return": _vm.onreturn,
+ "input": _vm.oninput
+ }
+ })])])], 1)
+ },staticRenderFns: []}
+ module.exports.render._withStripped = true
+ if (false) {
+ module.hot.accept()
+ if (module.hot.data) {
+ require("vue-hot-reload-api").rerender("data-v-de6618e8", module.exports)
+ }
+ }
+
+/***/ })
+
+/******/ });
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/8668b0f9/android/playground/app/src/main/assets/vue-web/vue/components/list.js
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/assets/vue-web/vue/components/list.js b/android/playground/app/src/main/assets/vue-web/vue/components/list.js
new file mode 100644
index 0000000..e1e9797
--- /dev/null
+++ b/android/playground/app/src/main/assets/vue-web/vue/components/list.js
@@ -0,0 +1,705 @@
+// NOTE: for vue2.0 and platform:web only.
+
+/******/ (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 App = __webpack_require__(48)
+ App.el = '#root'
+ new Vue(App)
+
+
+/***/ }),
+
+/***/ 4:
+/***/ (function(module, exports) {
+
+ /*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+ */
+ // css base code, injected by the css-loader
+ module.exports = function() {
+ var list = [];
+
+ // return the list of modules as css string
+ list.toString = function toString() {
+ var result = [];
+ for(var i = 0; i < this.length; i++) {
+ var item = this[i];
+ if(item[2]) {
+ result.push("@media " + item[2] + "{" + item[1] + "}");
+ } else {
+ result.push(item[1]);
+ }
+ }
+ return result.join("");
+ };
+
+ // import a list of modules into the list
+ list.i = function(modules, mediaQuery) {
+ if(typeof modules === "string")
+ modules = [[null, modules, ""]];
+ var alreadyImportedModules = {};
+ for(var i = 0; i < this.length; i++) {
+ var id = this[i][0];
+ if(typeof id === "number")
+ alreadyImportedModules[id] = true;
+ }
+ for(i = 0; i < modules.length; i++) {
+ var item = modules[i];
+ // skip already imported module
+ // this implementation is not 100% perfect for weird media query combinations
+ // when a module is imported multiple times with different media queries.
+ // I hope this will never occur (Hey this way we have smaller bundles)
+ if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
+ if(mediaQuery && !item[2]) {
+ item[2] = mediaQuery;
+ } else if(mediaQuery) {
+ item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
+ }
+ list.push(item);
+ }
+ }
+ };
+ return list;
+ };
+
+
+/***/ }),
+
+/***/ 5:
+/***/ (function(module, exports, __webpack_require__) {
+
+ /*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+ Modified by Evan You @yyx990803
+ */
+
+ var hasDocument = typeof document !== 'undefined'
+
+ if (false) {
+ if (!hasDocument) {
+ throw new Error(
+ 'vue-style-loader cannot be used in a non-browser environment. ' +
+ "Use { target: 'node' } in your Webpack config to indicate a server-rendering environment."
+ ) }
+ }
+
+ var listToStyles = __webpack_require__(6)
+
+ /*
+ type StyleObject = {
+ id: number;
+ parts: Array<StyleObjectPart>
+ }
+
+ type StyleObjectPart = {
+ css: string;
+ media: string;
+ sourceMap: ?string
+ }
+ */
+
+ var stylesInDom = {/*
+ [id: number]: {
+ id: number,
+ refs: number,
+ parts: Array<(obj?: StyleObjectPart) => void>
+ }
+ */}
+
+ var head = hasDocument && (document.head || document.getElementsByTagName('head')[0])
+ var singletonElement = null
+ var singletonCounter = 0
+ var isProduction = false
+ var noop = function () {}
+
+ // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
+ // tags it will allow on a page
+ var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\b/.test(navigator.userAgent.toLowerCase())
+
+ module.exports = function (parentId, list, _isProduction) {
+ isProduction = _isProduction
+
+ var styles = listToStyles(parentId, list)
+ addStylesToDom(styles)
+
+ return function update (newList) {
+ var mayRemove = []
+ for (var i = 0; i < styles.length; i++) {
+ var item = styles[i]
+ var domStyle = stylesInDom[item.id]
+ domStyle.refs--
+ mayRemove.push(domStyle)
+ }
+ if (newList) {
+ styles = listToStyles(parentId, newList)
+ addStylesToDom(styles)
+ } else {
+ styles = []
+ }
+ for (var i = 0; i < mayRemove.length; i++) {
+ var domStyle = mayRemove[i]
+ if (domStyle.refs === 0) {
+ for (var j = 0; j < domStyle.parts.length; j++) {
+ domStyle.parts[j]()
+ }
+ delete stylesInDom[domStyle.id]
+ }
+ }
+ }
+ }
+
+ function addStylesToDom (styles /* Array<StyleObject> */) {
+ for (var i = 0; i < styles.length; i++) {
+ var item = styles[i]
+ var domStyle = stylesInDom[item.id]
+ if (domStyle) {
+ domStyle.refs++
+ for (var j = 0; j < domStyle.parts.length; j++) {
+ domStyle.parts[j](item.parts[j])
+ }
+ for (; j < item.parts.length; j++) {
+ domStyle.parts.push(addStyle(item.parts[j]))
+ }
+ if (domStyle.parts.length > item.parts.length) {
+ domStyle.parts.length = item.parts.length
+ }
+ } else {
+ var parts = []
+ for (var j = 0; j < item.parts.length; j++) {
+ parts.push(addStyle(item.parts[j]))
+ }
+ stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }
+ }
+ }
+ }
+
+ function createStyleElement () {
+ var styleElement = document.createElement('style')
+ styleElement.type = 'text/css'
+ head.appendChild(styleElement)
+ return styleElement
+ }
+
+ function addStyle (obj /* StyleObjectPart */) {
+ var update, remove
+ var styleElement = document.querySelector('style[data-vue-ssr-id~="' + obj.id + '"]')
+
+ if (styleElement) {
+ if (isProduction) {
+ // has SSR styles and in production mode.
+ // simply do nothing.
+ return noop
+ } else {
+ // has SSR styles but in dev mode.
+ // for some reason Chrome can't handle source map in server-rendered
+ // style tags - source maps in <style> only works if the style tag is
+ // created and inserted dynamically. So we remove the server rendered
+ // styles and inject new ones.
+ styleElement.parentNode.removeChild(styleElement)
+ }
+ }
+
+ if (isOldIE) {
+ // use singleton mode for IE9.
+ var styleIndex = singletonCounter++
+ styleElement = singletonElement || (singletonElement = createStyleElement())
+ update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)
+ remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)
+ } else {
+ // use multi-style-tag mode in all other cases
+ styleElement = createStyleElement()
+ update = applyToTag.bind(null, styleElement)
+ remove = function () {
+ styleElement.parentNode.removeChild(styleElement)
+ }
+ }
+
+ update(obj)
+
+ return function updateStyle (newObj /* StyleObjectPart */) {
+ if (newObj) {
+ if (newObj.css === obj.css &&
+ newObj.media === obj.media &&
+ newObj.sourceMap === obj.sourceMap) {
+ return
+ }
+ update(obj = newObj)
+ } else {
+ remove()
+ }
+ }
+ }
+
+ var replaceText = (function () {
+ var textStore = []
+
+ return function (index, replacement) {
+ textStore[index] = replacement
+ return textStore.filter(Boolean).join('\n')
+ }
+ })()
+
+ function applyToSingletonTag (styleElement, index, remove, obj) {
+ var css = remove ? '' : obj.css
+
+ if (styleElement.styleSheet) {
+ styleElement.styleSheet.cssText = replaceText(index, css)
+ } else {
+ var cssNode = document.createTextNode(css)
+ var childNodes = styleElement.childNodes
+ if (childNodes[index]) styleElement.removeChild(childNodes[index])
+ if (childNodes.length) {
+ styleElement.insertBefore(cssNode, childNodes[index])
+ } else {
+ styleElement.appendChild(cssNode)
+ }
+ }
+ }
+
+ function applyToTag (styleElement, obj) {
+ var css = obj.css
+ var media = obj.media
+ var sourceMap = obj.sourceMap
+
+ if (media) {
+ styleElement.setAttribute('media', media)
+ }
+
+ if (sourceMap) {
+ // https://developer.chrome.com/devtools/docs/javascript-debugging
+ // this makes source maps inside style tags work properly in Chrome
+ css += '\n/*# sourceURL=' + sourceMap.sources[0] + ' */'
+ // http://stackoverflow.com/a/26603875
+ css += '\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'
+ }
+
+ if (styleElement.styleSheet) {
+ styleElement.styleSheet.cssText = css
+ } else {
+ while (styleElement.firstChild) {
+ styleElement.removeChild(styleElement.firstChild)
+ }
+ styleElement.appendChild(document.createTextNode(css))
+ }
+ }
+
+
+/***/ }),
+
+/***/ 6:
+/***/ (function(module, exports) {
+
+ /**
+ * Translates the list format produced by css-loader into something
+ * easier to manipulate.
+ */
+ module.exports = function listToStyles (parentId, list) {
+ var styles = []
+ var newStyles = {}
+ for (var i = 0; i < list.length; i++) {
+ var item = list[i]
+ var id = item[0]
+ var css = item[1]
+ var media = item[2]
+ var sourceMap = item[3]
+ var part = {
+ id: parentId + ':' + i,
+ css: css,
+ media: media,
+ sourceMap: sourceMap
+ }
+ if (!newStyles[id]) {
+ styles.push(newStyles[id] = { id: id, parts: [part] })
+ } else {
+ newStyles[id].parts.push(part)
+ }
+ }
+ return styles
+ }
+
+
+/***/ }),
+
+/***/ 7:
+/***/ (function(module, exports) {
+
+ /* globals __VUE_SSR_CONTEXT__ */
+
+ // this module is a runtime utility for cleaner component module output and will
+ // be included in the final webpack user bundle
+
+ module.exports = function normalizeComponent (
+ rawScriptExports,
+ compiledTemplate,
+ injectStyles,
+ scopeId,
+ moduleIdentifier /* server only */
+ ) {
+ var esModule
+ var scriptExports = rawScriptExports = rawScriptExports || {}
+
+ // ES6 modules interop
+ var type = typeof rawScriptExports.default
+ if (type === 'object' || type === 'function') {
+ esModule = rawScriptExports
+ scriptExports = rawScriptExports.default
+ }
+
+ // Vue.extend constructor export interop
+ var options = typeof scriptExports === 'function'
+ ? scriptExports.options
+ : scriptExports
+
+ // render functions
+ if (compiledTemplate) {
+ options.render = compiledTemplate.render
+ options.staticRenderFns = compiledTemplate.staticRenderFns
+ }
+
+ // scopedId
+ if (scopeId) {
+ options._scopeId = scopeId
+ }
+
+ var hook
+ if (moduleIdentifier) { // server build
+ hook = function (context) {
+ // 2.3 injection
+ context =
+ context || // cached call
+ (this.$vnode && this.$vnode.ssrContext) || // stateful
+ (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
+ // 2.2 with runInNewContext: true
+ if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
+ context = __VUE_SSR_CONTEXT__
+ }
+ // inject component styles
+ if (injectStyles) {
+ injectStyles.call(this, context)
+ }
+ // register component module identifier for async chunk inferrence
+ if (context && context._registeredComponents) {
+ context._registeredComponents.add(moduleIdentifier)
+ }
+ }
+ // used by ssr in case component is cached and beforeCreate
+ // never gets called
+ options._ssrRegister = hook
+ } else if (injectStyles) {
+ hook = injectStyles
+ }
+
+ if (hook) {
+ var functional = options.functional
+ var existing = functional
+ ? options.render
+ : options.beforeCreate
+ if (!functional) {
+ // inject component registration as beforeCreate hook
+ options.beforeCreate = existing
+ ? [].concat(existing, hook)
+ : [hook]
+ } else {
+ // register for functioal component in vue file
+ options.render = function renderWithStyleInjection (h, context) {
+ hook.call(context)
+ return existing(h, context)
+ }
+ }
+ }
+
+ return {
+ esModule: esModule,
+ exports: scriptExports,
+ options: options
+ }
+ }
+
+
+/***/ }),
+
+/***/ 48:
+/***/ (function(module, exports, __webpack_require__) {
+
+ var disposed = false
+ function injectStyle (ssrContext) {
+ if (disposed) return
+ __webpack_require__(49)
+ }
+ var Component = __webpack_require__(7)(
+ /* script */
+ __webpack_require__(51),
+ /* template */
+ __webpack_require__(52),
+ /* styles */
+ injectStyle,
+ /* scopeId */
+ "data-v-c84ace68",
+ /* moduleIdentifier (server only) */
+ null
+ )
+ Component.options.__file = "/Users/Hanks/Codes/work/incubator-weex/examples/vue/components/list.vue"
+ if (Component.esModule && Object.keys(Component.esModule).some(function (key) {return key !== "default" && key.substr(0, 2) !== "__"})) {console.error("named exports are not supported in *.vue files.")}
+ if (Component.options.functional) {console.error("[vue-loader] list.vue: functional components are not supported with templates, they should use render functions.")}
+
+ /* hot reload */
+ if (false) {(function () {
+ var hotAPI = require("vue-hot-reload-api")
+ hotAPI.install(require("vue"), false)
+ if (!hotAPI.compatible) return
+ module.hot.accept()
+ if (!module.hot.data) {
+ hotAPI.createRecord("data-v-c84ace68", Component.options)
+ } else {
+ hotAPI.reload("data-v-c84ace68", Component.options)
+ }
+ module.hot.dispose(function (data) {
+ disposed = true
+ })
+ })()}
+
+ module.exports = Component.exports
+
+
+/***/ }),
+
+/***/ 49:
+/***/ (function(module, exports, __webpack_require__) {
+
+ // style-loader: Adds some css to the DOM by adding a <style> tag
+
+ // load the styles
+ var content = __webpack_require__(50);
+ if(typeof content === 'string') content = [[module.id, content, '']];
+ if(content.locals) module.exports = content.locals;
+ // add the styles to the DOM
+ var update = __webpack_require__(5)("415fe453", content, false);
+ // Hot Module Replacement
+ if(false) {
+ // When the styles change, update the <style> tags
+ if(!content.locals) {
+ module.hot.accept("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\"vue\":true,\"id\":\"data-v-c84ace68\",\"scoped\":true,\"hasInlineConfig\":false}!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./list.vue", function() {
+ var newContent = require("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\"vue\":true,\"id\":\"data-v-c84ace68\",\"scoped\":true,\"hasInlineConfig\":false}!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./list.vue");
+ if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
+ update(newContent);
+ });
+ }
+ // When the module is disposed, remove the <style> tags
+ module.hot.dispose(function() { update(); });
+ }
+
+/***/ }),
+
+/***/ 50:
+/***/ (function(module, exports, __webpack_require__) {
+
+ exports = module.exports = __webpack_require__(4)();
+ // imports
+
+
+ // module
+ exports.push([module.id, "\n.list[data-v-c84ace68] {\n height:850px\n}\n.count[data-v-c84ace68] {\n font-size: 48px;\n margin:10px;\n}\n.indicator[data-v-c84ace68] {\n height: 40px;\n width: 40px;\n color:#45b5f0;\n}\n.row[data-v-c84ace68] {\n width: 750px;\n}\n.item[data-v-c84ace68] {\n justify-content: center;\n border-bottom-width: 2px;\n border-bottom-color: #c0c0c0;\n height: 100px;\n padding:20px;\n}\n.item[data-v-c84ace68]:active {\n background-color: #00BDFF;\n}\n.item-title[data-v-c84ace68] {\n}\n", ""]);
+
+ // exports
+
+
+/***/ }),
+
+/***/ 51:
+/***/ (function(module, exports) {
+
+ 'use strict';
+
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+
+ module.exports = {
+ methods: {
+ onappear: function onappear(idx, e) {
+ var appearId = this.rows[idx].id;
+ console.log('+++++', appearId);
+ var appearIds = this.appearIds;
+ appearIds.push(appearId);
+ this.getMinAndMaxIds(appearIds);
+ },
+ ondisappear: function ondisappear(idx, e) {
+ var disAppearId = this.rows[idx].id;
+ console.log('+++++', disAppearId);
+ var appearIds = this.appearIds;
+ var index = appearIds.indexOf(disAppearId);
+ if (index > -1) {
+ appearIds.splice(index, 1);
+ }
+ this.getMinAndMaxIds(appearIds);
+ },
+ getMinAndMaxIds: function getMinAndMaxIds(appearIds) {
+ appearIds.sort(function (a, b) {
+ return a - b;
+ });
+ this.appearIds = appearIds;
+ this.appearMax = appearIds[appearIds.length - 1];
+ this.appearMin = appearIds[0];
+ }
+ },
+ data: function data() {
+ return {
+ appearMin: 1,
+ appearMax: 1,
+ appearIds: [],
+ rows: [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }, { id: 5 }, { id: 6 }, { id: 7 }, { id: 8 }, { id: 9 }, { id: 10 }, { id: 11 }, { id: 12 }, { id: 13 }, { id: 14 }, { id: 15 }, { id: 16 }, { id: 17 }, { id: 18 }, { id: 19 }, { id: 20 }, { id: 21 }, { id: 22 }, { id: 23 }, { id: 24 }, { id: 25 }, { id: 26 }, { id: 27 }, { id: 28 }, { id: 29 }]
+ };
+ }
+ };
+
+/***/ }),
+
+/***/ 52:
+/***/ (function(module, exports, __webpack_require__) {
+
+ module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+ return _c('div', [_c('list', {
+ staticClass: "list",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined))
+ }, _vm._l((_vm.rows), function(v, i) {
+ return _c('cell', {
+ key: i,
+ staticClass: "row",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "append": "tree",
+ "index": i
+ },
+ on: {
+ "appear": function($event) {
+ _vm.onappear(i, $event)
+ },
+ "disappear": function($event) {
+ _vm.ondisappear(i, $event)
+ }
+ }
+ }, [_c('div', {
+ staticClass: "item",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined))
+ }, [_c('text', {
+ staticClass: "item-title",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._v("row " + _vm._s(v.id))])])])
+ })), _vm._v(" "), _c('text', {
+ staticClass: "count",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "value": 'Appear items: ' + _vm.appearMin + ' ~ ' + _vm.appearMax
+ }
+ })], 1)
+ },staticRenderFns: []}
+ module.exports.render._withStripped = true
+ if (false) {
+ module.hot.accept()
+ if (module.hot.data) {
+ require("vue-hot-reload-api").rerender("data-v-c84ace68", module.exports)
+ }
+ }
+
+/***/ })
+
+/******/ });
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/8668b0f9/android/playground/app/src/main/assets/vue-web/vue/components/marquee.js
----------------------------------------------------------------------
diff --git a/android/playground/app/src/main/assets/vue-web/vue/components/marquee.js b/android/playground/app/src/main/assets/vue-web/vue/components/marquee.js
new file mode 100644
index 0000000..13bc55b
--- /dev/null
+++ b/android/playground/app/src/main/assets/vue-web/vue/components/marquee.js
@@ -0,0 +1,1034 @@
+// NOTE: for vue2.0 and platform:web only.
+
+/******/ (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 App = __webpack_require__(53)
+ App.el = '#root'
+ new Vue(App)
+
+
+/***/ }),
+/* 1 */,
+/* 2 */,
+/* 3 */,
+/* 4 */
+/***/ (function(module, exports) {
+
+ /*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+ */
+ // css base code, injected by the css-loader
+ module.exports = function() {
+ var list = [];
+
+ // return the list of modules as css string
+ list.toString = function toString() {
+ var result = [];
+ for(var i = 0; i < this.length; i++) {
+ var item = this[i];
+ if(item[2]) {
+ result.push("@media " + item[2] + "{" + item[1] + "}");
+ } else {
+ result.push(item[1]);
+ }
+ }
+ return result.join("");
+ };
+
+ // import a list of modules into the list
+ list.i = function(modules, mediaQuery) {
+ if(typeof modules === "string")
+ modules = [[null, modules, ""]];
+ var alreadyImportedModules = {};
+ for(var i = 0; i < this.length; i++) {
+ var id = this[i][0];
+ if(typeof id === "number")
+ alreadyImportedModules[id] = true;
+ }
+ for(i = 0; i < modules.length; i++) {
+ var item = modules[i];
+ // skip already imported module
+ // this implementation is not 100% perfect for weird media query combinations
+ // when a module is imported multiple times with different media queries.
+ // I hope this will never occur (Hey this way we have smaller bundles)
+ if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
+ if(mediaQuery && !item[2]) {
+ item[2] = mediaQuery;
+ } else if(mediaQuery) {
+ item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
+ }
+ list.push(item);
+ }
+ }
+ };
+ return list;
+ };
+
+
+/***/ }),
+/* 5 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ /*
+ MIT License http://www.opensource.org/licenses/mit-license.php
+ Author Tobias Koppers @sokra
+ Modified by Evan You @yyx990803
+ */
+
+ var hasDocument = typeof document !== 'undefined'
+
+ if (false) {
+ if (!hasDocument) {
+ throw new Error(
+ 'vue-style-loader cannot be used in a non-browser environment. ' +
+ "Use { target: 'node' } in your Webpack config to indicate a server-rendering environment."
+ ) }
+ }
+
+ var listToStyles = __webpack_require__(6)
+
+ /*
+ type StyleObject = {
+ id: number;
+ parts: Array<StyleObjectPart>
+ }
+
+ type StyleObjectPart = {
+ css: string;
+ media: string;
+ sourceMap: ?string
+ }
+ */
+
+ var stylesInDom = {/*
+ [id: number]: {
+ id: number,
+ refs: number,
+ parts: Array<(obj?: StyleObjectPart) => void>
+ }
+ */}
+
+ var head = hasDocument && (document.head || document.getElementsByTagName('head')[0])
+ var singletonElement = null
+ var singletonCounter = 0
+ var isProduction = false
+ var noop = function () {}
+
+ // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
+ // tags it will allow on a page
+ var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\b/.test(navigator.userAgent.toLowerCase())
+
+ module.exports = function (parentId, list, _isProduction) {
+ isProduction = _isProduction
+
+ var styles = listToStyles(parentId, list)
+ addStylesToDom(styles)
+
+ return function update (newList) {
+ var mayRemove = []
+ for (var i = 0; i < styles.length; i++) {
+ var item = styles[i]
+ var domStyle = stylesInDom[item.id]
+ domStyle.refs--
+ mayRemove.push(domStyle)
+ }
+ if (newList) {
+ styles = listToStyles(parentId, newList)
+ addStylesToDom(styles)
+ } else {
+ styles = []
+ }
+ for (var i = 0; i < mayRemove.length; i++) {
+ var domStyle = mayRemove[i]
+ if (domStyle.refs === 0) {
+ for (var j = 0; j < domStyle.parts.length; j++) {
+ domStyle.parts[j]()
+ }
+ delete stylesInDom[domStyle.id]
+ }
+ }
+ }
+ }
+
+ function addStylesToDom (styles /* Array<StyleObject> */) {
+ for (var i = 0; i < styles.length; i++) {
+ var item = styles[i]
+ var domStyle = stylesInDom[item.id]
+ if (domStyle) {
+ domStyle.refs++
+ for (var j = 0; j < domStyle.parts.length; j++) {
+ domStyle.parts[j](item.parts[j])
+ }
+ for (; j < item.parts.length; j++) {
+ domStyle.parts.push(addStyle(item.parts[j]))
+ }
+ if (domStyle.parts.length > item.parts.length) {
+ domStyle.parts.length = item.parts.length
+ }
+ } else {
+ var parts = []
+ for (var j = 0; j < item.parts.length; j++) {
+ parts.push(addStyle(item.parts[j]))
+ }
+ stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }
+ }
+ }
+ }
+
+ function createStyleElement () {
+ var styleElement = document.createElement('style')
+ styleElement.type = 'text/css'
+ head.appendChild(styleElement)
+ return styleElement
+ }
+
+ function addStyle (obj /* StyleObjectPart */) {
+ var update, remove
+ var styleElement = document.querySelector('style[data-vue-ssr-id~="' + obj.id + '"]')
+
+ if (styleElement) {
+ if (isProduction) {
+ // has SSR styles and in production mode.
+ // simply do nothing.
+ return noop
+ } else {
+ // has SSR styles but in dev mode.
+ // for some reason Chrome can't handle source map in server-rendered
+ // style tags - source maps in <style> only works if the style tag is
+ // created and inserted dynamically. So we remove the server rendered
+ // styles and inject new ones.
+ styleElement.parentNode.removeChild(styleElement)
+ }
+ }
+
+ if (isOldIE) {
+ // use singleton mode for IE9.
+ var styleIndex = singletonCounter++
+ styleElement = singletonElement || (singletonElement = createStyleElement())
+ update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)
+ remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)
+ } else {
+ // use multi-style-tag mode in all other cases
+ styleElement = createStyleElement()
+ update = applyToTag.bind(null, styleElement)
+ remove = function () {
+ styleElement.parentNode.removeChild(styleElement)
+ }
+ }
+
+ update(obj)
+
+ return function updateStyle (newObj /* StyleObjectPart */) {
+ if (newObj) {
+ if (newObj.css === obj.css &&
+ newObj.media === obj.media &&
+ newObj.sourceMap === obj.sourceMap) {
+ return
+ }
+ update(obj = newObj)
+ } else {
+ remove()
+ }
+ }
+ }
+
+ var replaceText = (function () {
+ var textStore = []
+
+ return function (index, replacement) {
+ textStore[index] = replacement
+ return textStore.filter(Boolean).join('\n')
+ }
+ })()
+
+ function applyToSingletonTag (styleElement, index, remove, obj) {
+ var css = remove ? '' : obj.css
+
+ if (styleElement.styleSheet) {
+ styleElement.styleSheet.cssText = replaceText(index, css)
+ } else {
+ var cssNode = document.createTextNode(css)
+ var childNodes = styleElement.childNodes
+ if (childNodes[index]) styleElement.removeChild(childNodes[index])
+ if (childNodes.length) {
+ styleElement.insertBefore(cssNode, childNodes[index])
+ } else {
+ styleElement.appendChild(cssNode)
+ }
+ }
+ }
+
+ function applyToTag (styleElement, obj) {
+ var css = obj.css
+ var media = obj.media
+ var sourceMap = obj.sourceMap
+
+ if (media) {
+ styleElement.setAttribute('media', media)
+ }
+
+ if (sourceMap) {
+ // https://developer.chrome.com/devtools/docs/javascript-debugging
+ // this makes source maps inside style tags work properly in Chrome
+ css += '\n/*# sourceURL=' + sourceMap.sources[0] + ' */'
+ // http://stackoverflow.com/a/26603875
+ css += '\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'
+ }
+
+ if (styleElement.styleSheet) {
+ styleElement.styleSheet.cssText = css
+ } else {
+ while (styleElement.firstChild) {
+ styleElement.removeChild(styleElement.firstChild)
+ }
+ styleElement.appendChild(document.createTextNode(css))
+ }
+ }
+
+
+/***/ }),
+/* 6 */
+/***/ (function(module, exports) {
+
+ /**
+ * Translates the list format produced by css-loader into something
+ * easier to manipulate.
+ */
+ module.exports = function listToStyles (parentId, list) {
+ var styles = []
+ var newStyles = {}
+ for (var i = 0; i < list.length; i++) {
+ var item = list[i]
+ var id = item[0]
+ var css = item[1]
+ var media = item[2]
+ var sourceMap = item[3]
+ var part = {
+ id: parentId + ':' + i,
+ css: css,
+ media: media,
+ sourceMap: sourceMap
+ }
+ if (!newStyles[id]) {
+ styles.push(newStyles[id] = { id: id, parts: [part] })
+ } else {
+ newStyles[id].parts.push(part)
+ }
+ }
+ return styles
+ }
+
+
+/***/ }),
+/* 7 */
+/***/ (function(module, exports) {
+
+ /* globals __VUE_SSR_CONTEXT__ */
+
+ // this module is a runtime utility for cleaner component module output and will
+ // be included in the final webpack user bundle
+
+ module.exports = function normalizeComponent (
+ rawScriptExports,
+ compiledTemplate,
+ injectStyles,
+ scopeId,
+ moduleIdentifier /* server only */
+ ) {
+ var esModule
+ var scriptExports = rawScriptExports = rawScriptExports || {}
+
+ // ES6 modules interop
+ var type = typeof rawScriptExports.default
+ if (type === 'object' || type === 'function') {
+ esModule = rawScriptExports
+ scriptExports = rawScriptExports.default
+ }
+
+ // Vue.extend constructor export interop
+ var options = typeof scriptExports === 'function'
+ ? scriptExports.options
+ : scriptExports
+
+ // render functions
+ if (compiledTemplate) {
+ options.render = compiledTemplate.render
+ options.staticRenderFns = compiledTemplate.staticRenderFns
+ }
+
+ // scopedId
+ if (scopeId) {
+ options._scopeId = scopeId
+ }
+
+ var hook
+ if (moduleIdentifier) { // server build
+ hook = function (context) {
+ // 2.3 injection
+ context =
+ context || // cached call
+ (this.$vnode && this.$vnode.ssrContext) || // stateful
+ (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
+ // 2.2 with runInNewContext: true
+ if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
+ context = __VUE_SSR_CONTEXT__
+ }
+ // inject component styles
+ if (injectStyles) {
+ injectStyles.call(this, context)
+ }
+ // register component module identifier for async chunk inferrence
+ if (context && context._registeredComponents) {
+ context._registeredComponents.add(moduleIdentifier)
+ }
+ }
+ // used by ssr in case component is cached and beforeCreate
+ // never gets called
+ options._ssrRegister = hook
+ } else if (injectStyles) {
+ hook = injectStyles
+ }
+
+ if (hook) {
+ var functional = options.functional
+ var existing = functional
+ ? options.render
+ : options.beforeCreate
+ if (!functional) {
+ // inject component registration as beforeCreate hook
+ options.beforeCreate = existing
+ ? [].concat(existing, hook)
+ : [hook]
+ } else {
+ // register for functioal component in vue file
+ options.render = function renderWithStyleInjection (h, context) {
+ hook.call(context)
+ return existing(h, context)
+ }
+ }
+ }
+
+ return {
+ esModule: esModule,
+ exports: scriptExports,
+ options: options
+ }
+ }
+
+
+/***/ }),
+/* 8 */,
+/* 9 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ var disposed = false
+ function injectStyle (ssrContext) {
+ if (disposed) return
+ __webpack_require__(10)
+ }
+ var Component = __webpack_require__(7)(
+ /* script */
+ __webpack_require__(12),
+ /* template */
+ __webpack_require__(13),
+ /* styles */
+ injectStyle,
+ /* scopeId */
+ "data-v-66798af2",
+ /* moduleIdentifier (server only) */
+ null
+ )
+ Component.options.__file = "/Users/Hanks/Codes/work/incubator-weex/examples/vue/include/panel.vue"
+ if (Component.esModule && Object.keys(Component.esModule).some(function (key) {return key !== "default" && key.substr(0, 2) !== "__"})) {console.error("named exports are not supported in *.vue files.")}
+ if (Component.options.functional) {console.error("[vue-loader] panel.vue: functional components are not supported with templates, they should use render functions.")}
+
+ /* hot reload */
+ if (false) {(function () {
+ var hotAPI = require("vue-hot-reload-api")
+ hotAPI.install(require("vue"), false)
+ if (!hotAPI.compatible) return
+ module.hot.accept()
+ if (!module.hot.data) {
+ hotAPI.createRecord("data-v-66798af2", Component.options)
+ } else {
+ hotAPI.reload("data-v-66798af2", Component.options)
+ }
+ module.hot.dispose(function (data) {
+ disposed = true
+ })
+ })()}
+
+ module.exports = Component.exports
+
+
+/***/ }),
+/* 10 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ // style-loader: Adds some css to the DOM by adding a <style> tag
+
+ // load the styles
+ var content = __webpack_require__(11);
+ if(typeof content === 'string') content = [[module.id, content, '']];
+ if(content.locals) module.exports = content.locals;
+ // add the styles to the DOM
+ var update = __webpack_require__(5)("392aaf4e", content, false);
+ // Hot Module Replacement
+ if(false) {
+ // When the styles change, update the <style> tags
+ if(!content.locals) {
+ module.hot.accept("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\"vue\":true,\"id\":\"data-v-66798af2\",\"scoped\":true,\"hasInlineConfig\":false}!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./panel.vue", function() {
+ var newContent = require("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\"vue\":true,\"id\":\"data-v-66798af2\",\"scoped\":true,\"hasInlineConfig\":false}!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./panel.vue");
+ if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
+ update(newContent);
+ });
+ }
+ // When the module is disposed, remove the <style> tags
+ module.hot.dispose(function() { update(); });
+ }
+
+/***/ }),
+/* 11 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ exports = module.exports = __webpack_require__(4)();
+ // imports
+
+
+ // module
+ exports.push([module.id, "\n.panel[data-v-66798af2] {\n margin-bottom: 20px;\n background-color: #fff;\n /*border: 1px solid transparent;*/\n /*border-radius: 10px;*/\n /*-webkit-box-shadow: 0 1px 1px rgba(0,0,0,.05);*/\n /*box-shadow: 0 1px 1px rgba(0,0,0,.05);*/\n border-color: #dddddd;\n border-width: 1px;\n}\n.panel-default[data-v-66798af2] {\n}\n.panel-primary[data-v-66798af2] {\n border-color: rgb(40, 96, 144);\n}\n.panel-success[data-v-66798af2] {\n border-color: rgb(76, 174, 76);\n}\n.panel-info[data-v-66798af2] {\n border-color: rgb(70, 184, 218);\n}\n.panel-warning[data-v-66798af2] {\n border-color: rgb(238, 162, 54);\n}\n.panel-danger[data-v-66798af2] {\n border-color: rgb(212, 63, 58);\n}\n.panel-header[data-v-66798af2] {\n background-color: #f5f5f5;\n font-size: 40px;\n /*padding-left: 12px;*/\n /*padding-right: 12px;*/\n /*padding-top: 20px;*/\n /*padding-bottom: 20px;*/\n color: #333;\n}\n.panel-header-default[data-v-66798af2] {\n}\n.panel-header-
primary[data-v-66798af2] {\n background-color: rgb(40, 96, 144);\n color: #ffffff;\n}\n.panel-header-success[data-v-66798af2] {\n background-color: rgb(92, 184, 92);\n color: #ffffff;\n}\n.panel-header-info[data-v-66798af2] {\n background-color: rgb(91, 192, 222);\n color: #ffffff;\n}\n.panel-header-warning[data-v-66798af2] {\n background-color: rgb(240, 173, 78);\n color: #ffffff;\n}\n.panel-header-danger[data-v-66798af2] {\n background-color: rgb(217, 83, 79);\n color: #ffffff;\n}\n.panel-body[data-v-66798af2] {\n padding-left: 12px;\n padding-right: 12px;\n padding-top: 20px;\n padding-bottom: 20px;\n}\n.panel-body-default[data-v-66798af2] {\n}\n.panel-body-primary[data-v-66798af2] {\n}\n.panel-body-success[data-v-66798af2] {\n}\n.panel-body-info[data-v-66798af2] {\n}\n.panel-body-warning[data-v-66798af2] {\n}\n.panel-body-danger[data-v-66798af2] {\n}\n", ""]);
+
+ // exports
+
+
+/***/ }),
+/* 12 */
+/***/ (function(module, exports) {
+
+ 'use strict';
+
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+
+ module.exports = {
+ props: {
+ type: { default: 'default' },
+ title: { default: '' },
+ paddingBody: { default: 20 },
+ paddingHead: { default: 20 },
+ dataClass: { default: '' }, // FIXME transfer class
+ border: { default: 0 }
+ }
+ };
+
+/***/ }),
+/* 13 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+ return _c('div', {
+ class: ['panel', 'panel-' + _vm.type],
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle({
+ borderWidth: _vm.border
+ }))
+ }, [_c('text', {
+ class: ['panel-header', 'panel-header-' + _vm.type],
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle({
+ paddingTop: _vm.paddingHead,
+ paddingBottom: _vm.paddingHead,
+ paddingLeft: _vm.paddingHead * 1.5,
+ paddingRight: _vm.paddingHead * 1.5
+ }))
+ }, [_vm._v(_vm._s(_vm.title))]), _vm._v(" "), _c('div', {
+ class: ['panel-body', 'panel-body-' + _vm.type],
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle({
+ paddingTop: _vm.paddingBody,
+ paddingBottom: _vm.paddingBody,
+ paddingLeft: _vm.paddingBody * 1.5,
+ paddingRight: _vm.paddingBody * 1.5
+ }))
+ }, [_vm._t("default")], 2)])
+ },staticRenderFns: []}
+ module.exports.render._withStripped = true
+ if (false) {
+ module.hot.accept()
+ if (module.hot.data) {
+ require("vue-hot-reload-api").rerender("data-v-66798af2", module.exports)
+ }
+ }
+
+/***/ }),
+/* 14 */,
+/* 15 */,
+/* 16 */,
+/* 17 */,
+/* 18 */,
+/* 19 */,
+/* 20 */,
+/* 21 */,
+/* 22 */,
+/* 23 */,
+/* 24 */,
+/* 25 */,
+/* 26 */,
+/* 27 */,
+/* 28 */,
+/* 29 */,
+/* 30 */,
+/* 31 */,
+/* 32 */,
+/* 33 */,
+/* 34 */,
+/* 35 */,
+/* 36 */,
+/* 37 */,
+/* 38 */,
+/* 39 */,
+/* 40 */,
+/* 41 */,
+/* 42 */,
+/* 43 */,
+/* 44 */,
+/* 45 */,
+/* 46 */,
+/* 47 */,
+/* 48 */,
+/* 49 */,
+/* 50 */,
+/* 51 */,
+/* 52 */,
+/* 53 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ var disposed = false
+ var Component = __webpack_require__(7)(
+ /* script */
+ __webpack_require__(54),
+ /* template */
+ __webpack_require__(60),
+ /* styles */
+ null,
+ /* scopeId */
+ null,
+ /* moduleIdentifier (server only) */
+ null
+ )
+ Component.options.__file = "/Users/Hanks/Codes/work/incubator-weex/examples/vue/components/marquee.vue"
+ if (Component.esModule && Object.keys(Component.esModule).some(function (key) {return key !== "default" && key.substr(0, 2) !== "__"})) {console.error("named exports are not supported in *.vue files.")}
+ if (Component.options.functional) {console.error("[vue-loader] marquee.vue: functional components are not supported with templates, they should use render functions.")}
+
+ /* hot reload */
+ if (false) {(function () {
+ var hotAPI = require("vue-hot-reload-api")
+ hotAPI.install(require("vue"), false)
+ if (!hotAPI.compatible) return
+ module.hot.accept()
+ if (!module.hot.data) {
+ hotAPI.createRecord("data-v-d0289538", Component.options)
+ } else {
+ hotAPI.reload("data-v-d0289538", Component.options)
+ }
+ module.hot.dispose(function (data) {
+ disposed = true
+ })
+ })()}
+
+ module.exports = Component.exports
+
+
+/***/ }),
+/* 54 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+
+ module.exports = {
+ data: function data() {
+ return {
+ marquee: {
+ height: 30,
+ duration: 1500,
+ interval: 2000,
+ list: [{ text: 'Introducing Bots on Messenger' }, { text: 'Capturing 3D 360-Stereo VR Video' }, { text: 'The Future of Video on Facebook' }, { text: 'Announcing Vue.js 2.0' }, { text: 'Not Your Average Virtual-DOM' }, { text: 'Templates, JSX, or Hyperscript?' }]
+ }
+ };
+ },
+ components: {
+ panel: __webpack_require__(9),
+ marquee: __webpack_require__(55)
+ },
+ methods: {
+ marqueeChange: function marqueeChange(e) {
+ console.log(e);
+ }
+ }
+ };
+
+/***/ }),
+/* 55 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ var disposed = false
+ function injectStyle (ssrContext) {
+ if (disposed) return
+ __webpack_require__(56)
+ }
+ var Component = __webpack_require__(7)(
+ /* script */
+ __webpack_require__(58),
+ /* template */
+ __webpack_require__(59),
+ /* styles */
+ injectStyle,
+ /* scopeId */
+ "data-v-58176c90",
+ /* moduleIdentifier (server only) */
+ null
+ )
+ Component.options.__file = "/Users/Hanks/Codes/work/incubator-weex/examples/vue/include/marquee.vue"
+ if (Component.esModule && Object.keys(Component.esModule).some(function (key) {return key !== "default" && key.substr(0, 2) !== "__"})) {console.error("named exports are not supported in *.vue files.")}
+ if (Component.options.functional) {console.error("[vue-loader] marquee.vue: functional components are not supported with templates, they should use render functions.")}
+
+ /* hot reload */
+ if (false) {(function () {
+ var hotAPI = require("vue-hot-reload-api")
+ hotAPI.install(require("vue"), false)
+ if (!hotAPI.compatible) return
+ module.hot.accept()
+ if (!module.hot.data) {
+ hotAPI.createRecord("data-v-58176c90", Component.options)
+ } else {
+ hotAPI.reload("data-v-58176c90", Component.options)
+ }
+ module.hot.dispose(function (data) {
+ disposed = true
+ })
+ })()}
+
+ module.exports = Component.exports
+
+
+/***/ }),
+/* 56 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ // style-loader: Adds some css to the DOM by adding a <style> tag
+
+ // load the styles
+ var content = __webpack_require__(57);
+ if(typeof content === 'string') content = [[module.id, content, '']];
+ if(content.locals) module.exports = content.locals;
+ // add the styles to the DOM
+ var update = __webpack_require__(5)("5521c87a", content, false);
+ // Hot Module Replacement
+ if(false) {
+ // When the styles change, update the <style> tags
+ if(!content.locals) {
+ module.hot.accept("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\"vue\":true,\"id\":\"data-v-58176c90\",\"scoped\":true,\"hasInlineConfig\":false}!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./marquee.vue", function() {
+ var newContent = require("!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\"vue\":true,\"id\":\"data-v-58176c90\",\"scoped\":true,\"hasInlineConfig\":false}!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./marquee.vue");
+ if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];
+ update(newContent);
+ });
+ }
+ // When the module is disposed, remove the <style> tags
+ module.hot.dispose(function() { update(); });
+ }
+
+/***/ }),
+/* 57 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ exports = module.exports = __webpack_require__(4)();
+ // imports
+
+
+ // module
+ exports.push([module.id, "\n.wrap[data-v-58176c90] {\n overflow: hidden;\n position: relative;\n}\n.anim[data-v-58176c90] {\n flex-direction: column;\n position: absolute;\n transform: translateY(0) translateZ(0);\n}\n", ""]);
+
+ // exports
+
+
+/***/ }),
+/* 58 */
+/***/ (function(module, exports) {
+
+ 'use strict';
+
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+
+ var _animation = weex.requireModule('animation');
+
+ module.exports = {
+ props: {
+ step: { default: 0 },
+ count: { default: 0 },
+ index: { default: 1 },
+ duration: { default: 0 },
+ interval: { default: 0 },
+ outofview: { default: false }
+ },
+ created: function created() {
+ if (this.interval > 0 && this.step > 0 && this.duration > 0) {
+ this.run();
+ }
+ },
+ methods: {
+ run: function run() {
+ if (this.outofview) {
+ setTimeout(this.run.bind(this), this.interval);
+ } else {
+ setTimeout(function () {
+ this.animation(this.run.bind(this));
+ }.bind(this), this.interval);
+ }
+ },
+ animation: function animation(cb) {
+ var offset = -this.step * this.index;
+ _animation.transition(this.$refs.anim, {
+ styles: {
+ transform: 'translateY(' + offset + 'px) translateZ(0)'
+ },
+ timingFunction: 'ease',
+ duration: this.duration
+ }, function () {
+ this.index = (this.index + 1) % this.count;
+ this.$emit('change', {
+ index: this.index,
+ count: this.count
+ });
+ cb && cb();
+ }.bind(this));
+ },
+ appeared: function appeared() {
+ this.outofview = false;
+ },
+ disappeared: function disappeared() {
+ this.outofview = true;
+ }
+ }
+ };
+
+/***/ }),
+/* 59 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+ return _c('div', {
+ staticClass: "wrap",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ on: {
+ "appear": _vm.appeared,
+ "disappear": _vm.disappeared
+ }
+ }, [_c('div', {
+ ref: "anim",
+ staticClass: "anim",
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined))
+ }, [_vm._t("default")], 2)])
+ },staticRenderFns: []}
+ module.exports.render._withStripped = true
+ if (false) {
+ module.hot.accept()
+ if (module.hot.data) {
+ require("vue-hot-reload-api").rerender("data-v-58176c90", module.exports)
+ }
+ }
+
+/***/ }),
+/* 60 */
+/***/ (function(module, exports, __webpack_require__) {
+
+ module.exports={render:function (){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;
+ return _c('scroller', [_c('panel', {
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle(undefined)),
+ attrs: {
+ "title": "Marquee",
+ "type": "primary"
+ }
+ }, [_c('marquee', {
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle({
+ width: 700,
+ height: _vm.marquee.height * 2,
+ backgroundColor: 'rgb(223, 240, 216)',
+ borderRadius: 8,
+ paddingLeft: 10,
+ paddingRight: 10
+ })),
+ attrs: {
+ "step": _vm.marquee.height * 2,
+ "count": _vm.marquee.list.length,
+ "interval": _vm.marquee.interval,
+ "duration": _vm.marquee.duration
+ },
+ on: {
+ "change": _vm.marqueeChange
+ }
+ }, _vm._l((_vm.marquee.list), function(item, i) {
+ return _c('div', {
+ key: i,
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle({
+ height: _vm.marquee.height * _vm.marquee.length,
+ paddingTop: _vm.marquee.height * 0.5,
+ paddingBottom: _vm.marquee.height * 0.5,
+ overflow: 'hidden'
+ }))
+ }, [_c('text', {
+ staticStyle: _vm.$processStyle(undefined),
+ style: (_vm.$processStyle({
+ height: _vm.marquee.height,
+ color: 'rgb(60, 118, 61)',
+ fontSize: 28
+ }))
+ }, [_vm._v(_vm._s(item.text))])])
+ }))], 1)], 1)
+ },staticRenderFns: []}
+ module.exports.render._withStripped = true
+ if (false) {
+ module.hot.accept()
+ if (module.hot.data) {
+ require("vue-hot-reload-api").rerender("data-v-d0289538", module.exports)
+ }
+ }
+
+/***/ })
+/******/ ]);
\ No newline at end of file