// { "framework": "Vue" }
"use weex:vue";

!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=9)}([function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){e.exports=!n(3)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t){var n=e.exports={version:"2.5.3"};"number"==typeof __e&&(__e=n)},function(e,t,n){var o=n(6),r=n(7);e.exports=function(e){return o(r(e))}},function(e,t,n){var o=n(30);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==o(e)?e.split(""):Object(e)}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on  "+e);return e}},function(e,t){var n=Math.ceil,o=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?o:n)(e)}},function(e,t,n){"use strict";var o,r=n(10),i=(o=r)&&o.__esModule?o:{default:o},c=n(42);Vue.filter("url",c.createURL),Vue.mixin({methods:{i18n:c.i18n,createURL:c.createURL,jumpTo:c.jumpTo}}),i.default.el="#root",new Vue(i.default)},function(e,t,n){var o,r,i=[];i.push(n(11)),o=n(12);var c=n(41);if(r=o=o||{},"object"!=typeof o.default&&"function"!=typeof o.default||(Object.keys(o).some(function(e){return"default"!==e&&"__esModule"!==e})&&console.error("named exports are not supported in *.vue files."),r=o=o.default),"function"==typeof r&&(r=r.options),r.__file="/Users/Hanks/Codes/work/weex-vue-examples/src/pages/Lesson.vue",r.render=c.render,r.staticRenderFns=c.staticRenderFns,r._scopeId="data-v-0ade5a48",r.style=r.style||{},i.forEach(function(e){for(var t in e)r.style[t]=e[t]}),"object"==typeof weex&&weex&&weex.document)try{weex.document.registerStyleSheets(r._scopeId,i)}catch(e){}e.exports=o},function(e,t){e.exports={banner:{height:"350",boxShadow:"0 5px 10px rgba(0, 0, 0, 0.2)",marginBottom:"10"},center:{alignItems:"center",justifyContent:"center"},title:{textAlign:"center",marginTop:"60",marginBottom:"60",color:"#606060"},lesson:{borderBottomWidth:"1",borderBottomStyle:"solid",borderBottomColor:"#EEEEEE",flexDirection:"row",alignItems:"center"},"lesson-zh":{width:"600"},"lesson-en":{width:"630"},"lesson-index":{color:"#777777",textAlign:"right",paddingRight:"30"},"lesson-title":{paddingTop:"35",paddingBottom:"35"},"lesson-index-zh":{fontSize:"46",width:"120"},"lesson-title-zh":{fontSize:"42",width:"480"},"lesson-index-en":{fontSize:"42",width:"100"},"lesson-title-en":{fontSize:"38",width:"530"},footer:{height:"120",paddingTop:"40"},copyright:{fontSize:"22",color:"#A0A0A0",textAlign:"center"}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o,r=n(13),i=(o=r)&&o.__esModule?o:{default:o};var c={mainColor:"#00B4FF",poster:"https://gw.alicdn.com/tfs/TB17hlIdgoQMeJjy0FpXXcTxpXa-328-328.png",posterBg:"#E5F7FF",title:{zh:"学习 Weex",en:"Learn Weex"},copyright:{zh:"来自 http://weex-project.io/cn/",en:"From http://weex-project.io/"},lessons:[{title:{zh:"快速上手",en:"Get Started"},docLink:{zh:"http://weex-project.io/cn/guide/index.html",en:"http://weex-project.io/guide/index.html"}},{title:{zh:"工作原理",en:"How it works"},docLink:{zh:"http://weex-project.io/cn/guide/intro/how-it-works.html",en:"http://weex-project.io/guide/intro/how-it-works.html"}},{title:{zh:"用 Weex 构建移动应用",en:"Mobile App Architecture"},docLink:{zh:"http://weex-project.io/cn/guide/intro/app-architecture.html",en:"http://weex-project.io/guide/intro/app-architecture.html"}},{title:{zh:"Weex 页面结构",en:"Weex Page Architecture"},docLink:{zh:"http://weex-project.io/cn/guide/intro/page-architecture.html",en:"http://weex-project.io/guide/intro/page-architecture.html"}},{title:{zh:"集成 Weex 到已有应用",en:"Integrate to Your App"},docLink:{zh:"http://weex-project.io/cn/guide/integrate-to-your-app.html",en:"http://weex-project.io/guide/integrate-to-your-app.html"}},{title:{zh:"和 Web 平台的差异",en:"Platform difference with Web"},docLink:{zh:"http://weex-project.io/cn/references/platform-difference.html",en:"http://weex-project.io/references/platform-difference.html"}},{title:{zh:"搭建开发环境",en:"Set Up Dev Environment"},docLink:{zh:"http://weex-project.io/cn/guide/set-up-env.html",en:"http://weex-project.io/guide/set-up-env.html"}},{title:{zh:"使用 Vue 开发页面",en:"Using Vue"},docLink:{zh:"http://weex-project.io/cn/guide/intro/using-vue.html",en:"http://weex-project.io/guide/intro/using-vue.html"}},{title:{zh:"Vue 在 Weex 中的差异",en:"Vue.js Difference with Web"},docLink:{zh:"http://weex-project.io/cn/references/vue/difference-with-web.html",en:"http://weex-project.io/references/vue/difference-with-web.html"}},{title:{zh:"通用样式",en:"Common Styles"},docLink:{zh:"http://weex-project.io/cn/references/common-style.html",en:"http://weex-project.io/references/common-style.html"}},{title:{zh:"通用事件",en:"Common Events"},docLink:{zh:"http://weex-project.io/cn/references/common-event.html",en:"http://weex-project.io/references/common-event.html"}},{title:{zh:"手势",en:"Gestures"},docLink:{zh:"http://weex-project.io/cn/references/gesture.html",en:"http://weex-project.io/references/gesture.html"}},{title:{zh:"Weex 实例变量",en:'The "weex" Variable'},docLink:{zh:"http://weex-project.io/cn/references/weex-variable.html",en:"http://weex-project.io/references/weex-variable.html"}},{title:{zh:"内置组件",en:"Build-in Components"},docLink:{zh:"http://weex-project.io/cn/references/components/index.html",en:"http://weex-project.io/references/components/index.html"}},{title:{zh:"内置模块",en:"Build-in Modules"},docLink:{zh:"http://weex-project.io/cn/references/modules/index.html",en:"http://weex-project.io/references/modules/index.html"}},{title:{zh:"Android 扩展",en:"Extend to Android"},docLink:{zh:"http://weex-project.io/cn/references/advanced/extend-to-android.html",en:"http://weex-project.io/references/advanced/extend-to-android.html"}},{title:{zh:"iOS 扩展",en:"Extend to iOS"},docLink:{zh:"http://weex-project.io/cn/references/advanced/extend-to-ios.html",en:"http://weex-project.io/references/advanced/extend-to-ios.html"}},{title:{zh:"Web 扩展",en:"Extend to Web"},docLink:{zh:"http://weex-project.io/cn/references/advanced/extend-to-html5.html",en:"http://weex-project.io/references/advanced/extend-to-html5.html"}},{title:{zh:"使用 weex-toolkit",en:"Using weex-toolkit"},docLink:{zh:"http://weex-project.io/cn/guide/tools/toolkit.html",en:"http://weex-project.io/guide/tools/toolkit.html"}},{title:{zh:"集成 Devtools 到 Android",en:"Integrate Devtool to Android"},docLink:{zh:"http://weex-project.io/cn/references/advanced/integrate-devtool-to-android.html",en:"http://weex-project.io/references/advanced/integrate-devtool-to-android.html"}},{title:{zh:"集成 Devtools 到 iOS",en:"Integrate Devtool to iOS"},docLink:{zh:"http://weex-project.io/cn/references/advanced/integrate-devtool-to-ios.html",en:"http://weex-project.io/references/advanced/integrate-devtool-to-ios.html"}},{title:{zh:"使用 Vuex 和 vue-router",en:"Using Vuex and vue-router"},docLink:{zh:"http://weex-project.io/cn/references/vue/difference-of-vuex.html",en:"http://weex-project.io/references/vue/difference-of-vuex.html"}},{title:"JS Service",docLink:{zh:"http://weex-project.io/cn/references/js-service/index.html",en:"http://weex-project.io/references/js-service/index.html"}},{title:{zh:"如何参与社区",en:"How to Contribute"},docLink:{zh:"http://weex-project.io/cn/guide/contributing.html",en:"http://weex-project.io/guide/contributing.html"}},{title:"FAQ",docLink:{zh:"http://weex-project.io/cn/faq.html",en:"http://weex-project.io/faq.html"}}]},s={mainColor:"#f56fc6",poster:"https://gw.alicdn.com/tfs/TB1k6anhMMPMeJjy1XdXXasrXXa-427-190.jpg",posterBg:"#ffa2de",posterStyle:{width:"517px",height:"230px"},title:{zh:"学习 CSS",en:"Learn CSS"},copyright:{zh:"来自 MDN (Mozilla Developer Network)",en:"From MDN (Mozilla Developer Network)"},lessons:[{title:{zh:"什么是 CSS ？",en:"What is CSS ?"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Getting_started/What_is_CSS",en:"https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started/What_is_CSS"}},{title:{zh:"CSS 语法",en:"CSS Syntax"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Learn/CSS/Introduction_to_CSS/Syntax",en:"https://developer.mozilla.org/en-US/docs/Learn/CSS/Introduction_to_CSS/Syntax"}},{title:{zh:"CSS的值和单位",en:"CSS Values and Units"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Learn/CSS/Introduction_to_CSS/Values_and_units",en:"https://developer.mozilla.org/en-US/docs/Learn/CSS/Introduction_to_CSS/Values_and_units"}},{title:{zh:"盒模型",en:"The Box Model"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Learn/CSS/Introduction_to_CSS/Box_model",en:"https://developer.mozilla.org/en-US/docs/Learn/CSS/Introduction_to_CSS/Box_model"}},{title:{zh:"盒模型的属性",en:"Box Model Properties"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Box_Model",en:"https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model"}},{title:{zh:"定位布局",en:"Positioning"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout/%E5%AE%9A%E4%BD%8Dx",en:"https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/positioning"}},{title:{zh:"定位布局的属性",en:"CSS Positioning"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Positioning",en:"https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning"}},{title:{zh:"Flexbox 布局",en:"Flexbox Layout"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout/Flexbox",en:"https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Flexbox"}},{title:{zh:"Flexbox 布局的属性",en:"CSS Flexible Box Layout"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Flexible_Box_Layout",en:"https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout"}},{title:{zh:"Weex 中的通用样式",en:"Common Styles in Weex"},docLink:{zh:"http://weex-project.io/cn/references/common-style.html",en:"http://weex-project.io/references/common-style.html"}},{title:{zh:"Weex 中的文本样式",en:"Text Styles in Weex"},docLink:{zh:"http://weex-project.io/cn/references/text-style.html",en:"http://weex-project.io/references/text-style.html"}},{title:{zh:"块格式化上下文(BFC)",en:"Block Formatting Context"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Block_formatting_context",en:"https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context"}},{title:{zh:"视觉格式化模型",en:"Visual Formatting Model"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Web/Guide/CSS/Visual_formatting_model",en:"https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Visual_formatting_model"}},{title:"CSS Reference",docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Web/CSS/Reference",en:"https://developer.mozilla.org/en-US/docs/Web/CSS/Reference"}}]},l={mainColor:"#F7BD2A",poster:"https://gw.alicdn.com/tfs/TB1bT98hMoQMeJjy0FpXXcTxpXa-1500-700.png",posterBg:"#FAF3EB",posterStyle:{width:"750px",height:"350px"},title:{zh:"学习 Javascript",en:"Learn Javascript"},copyright:{zh:"来自 MDN (Mozilla Developer Network)",en:"From MDN (Mozilla Developer Network)"},lessons:[{title:{zh:"什么是 Javascript ？",en:"What is Javascript ?"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/What_is_JavaScript",en:"https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/What_is_JavaScript"}},{title:{zh:"JavaScript基础",en:"JavaScript basics"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Learn/Getting_started_with_the_web/JavaScript_basics",en:"https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/JavaScript_basics"}},{title:{zh:"重新介绍 JavaScript",en:"A re-introduction to JavaScript"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/A_re-introduction_to_JavaScript",en:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript"}},{title:{zh:"语法和数据类型",en:"Grammar and types"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Grammar_and_types#Variable_scope",en:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_types#Variable_scope"}},{title:{zh:"数据类型和数据结构",en:"Data types and data structures"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Data_structures",en:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures"}},{title:{zh:"变量",en:"Variables"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Variables",en:"https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Variables"}},{title:{zh:"数字和操作符",en:"Numbers and operators"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Math",en:"https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Math"}},{title:{zh:"字符串",en:"Handling text"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Strings",en:"https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Strings"}},{title:{zh:"常用的 String 方法",en:"Useful string methods"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Useful_string_methods",en:"https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Useful_string_methods"}},{title:{zh:"数组",en:"Arrays"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/Arrays",en:"https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Arrays"}},{title:{zh:"函数",en:"Functions"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Functions",en:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions"}},{title:{zh:"JavaScript 对象基础",en:"JavaScript object basics"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/Basics",en:"https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Basics"}},{title:{zh:"使用对象",en:"Working with objects"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Working_with_Objects",en:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects"}},{title:{zh:"使用 JSON 数据",en:"Working with JSON"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/JSON",en:"https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/JSON"}},{title:{zh:"对象模型的细节",en:"Details of the object model"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Details_of_the_Object_Model",en:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Details_of_the_Object_Model"}},{title:{zh:"对象原型",en:"Object prototypes"},docLink:{zh:"https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Object_prototypes",en:"https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/Object_prototypes"}},{title:{zh:"JavaScript 中的继承",en:"Inheritance in JavaScript"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/Inheritance",en:"https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Inheritance"}},{title:{zh:"继承与原型链",en:"Inheritance and the prototype chain"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Inheritance_and_the_prototype_chain",en:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain"}},{title:{zh:"严格模式",en:"Strict mode"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Strict_mode",en:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode"}},{title:{zh:"内存管理",en:"Memory Management"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Memory_Management",en:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management"}},{title:{zh:"并发模型与事件循环",en:"Concurrency model and Event Loop"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/EventLoop",en:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop"}},{title:{zh:"JavaScript 标准库",en:"Standard built-in objects"},docLink:{zh:"https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects",en:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects"}}]},a={mainColor:"#42b983",poster:"https://gw.alicdn.com/tfs/TB1J_uKcMMPMeJjy1XdXXasrXXa-400-400.png",posterBg:"#E7FBF2",title:{zh:"学习 Vue.js",en:"Learn Vue.js"},copyright:{zh:"来自 https://cn.vuejs.org/",en:"From https://vuejs.org/"},lessons:[{title:{zh:"Vue.js 是什么？",en:"What is Vue.js ?"},docLink:{zh:"https://cn.vuejs.org/v2/guide/index.html",en:"https://vuejs.org/v2/guide/index.html"}},{title:{zh:"单文件组件",en:"Single File Components"},docLink:{zh:"https://cn.vuejs.org/v2/guide/single-file-components.html",en:"https://vuejs.org/v2/guide/single-file-components.html"}},{title:{zh:"模板语法",en:"Template Syntax"},docLink:{zh:"https://cn.vuejs.org/v2/guide/syntax.html",en:"https://vuejs.org/v2/guide/syntax.html"}},{title:{zh:"Class 与 Style 绑定",en:"Class and Style Bindings"},docLink:{zh:"https://cn.vuejs.org/v2/guide/class-and-style.html",en:"https://vuejs.org/v2/guide/class-and-style.html"}},{title:{zh:"条件渲染",en:"Conditional Rendering"},docLink:{zh:"https://cn.vuejs.org/v2/guide/conditional.html",en:"https://vuejs.org/v2/guide/conditional.html"}},{title:{zh:"列表渲染",en:"List Rendering"},docLink:{zh:"https://cn.vuejs.org/v2/guide/list.html",en:"https://vuejs.org/v2/guide/list.html"}},{title:{zh:"事件处理",en:"Event Handling"},docLink:{zh:"https://cn.vuejs.org/v2/guide/events.html",en:"https://vuejs.org/v2/guide/events.html"}},{title:{zh:"表单输入绑定",en:"Form Input Bindings"},docLink:{zh:"https://cn.vuejs.org/v2/guide/forms.html",en:"https://vuejs.org/v2/guide/forms.html"}},{title:{zh:"Vue 实例",en:"The Vue Instance"},docLink:{zh:"https://cn.vuejs.org/v2/guide/instance.html",en:"https://vuejs.org/v2/guide/instance.html"}},{title:{zh:"在 Weex 中的差异",en:"Difference in Weex"},docLink:{zh:"http://weex-project.io/cn/references/vue/difference-with-web.html",en:"http://weex-project.io/references/vue/difference-with-web.html"}},{title:{zh:"混合（mixins）",en:"Mixins"},docLink:{zh:"https://cn.vuejs.org/v2/guide/mixins.html",en:"https://vuejs.org/v2/guide/mixins.html"}},{title:{zh:"过滤器（filters）",en:"Filters"},docLink:{zh:"https://cn.vuejs.org/v2/guide/filters.html",en:"https://vuejs.org/v2/guide/filters.html"}},{title:{zh:"插件（plugins）",en:"Plugins"},docLink:{zh:"https://cn.vuejs.org/v2/guide/plugins.html",en:"https://vuejs.org/v2/guide/plugins.html"}},{title:{zh:"自定义指令",en:"Custom Directives"},docLink:{zh:"https://cn.vuejs.org/v2/guide/custom-directive.html",en:"https://vuejs.org/v2/guide/custom-directive.html"}},{title:{zh:"状态管理",en:"State Management"},docLink:{zh:"https://cn.vuejs.org/v2/guide/state-management.html",en:"https://vuejs.org/v2/guide/state-management.html"}},{title:{zh:"深入响应式原理",en:"Reactivity in Depth"},docLink:{zh:"https://cn.vuejs.org/v2/guide/reactivity.html",en:"https://vuejs.org/v2/guide/reactivity.html"}},{title:{zh:"渲染函数",en:"Render Functions"},docLink:{zh:"https://cn.vuejs.org/v2/guide/render-function.html",en:"https://vuejs.org/v2/guide/render-function.html"}},{title:{zh:"TypeScript 支持",en:"TypeScript Support"},docLink:{zh:"https://cn.vuejs.org/v2/guide/typescript.html",en:"https://vuejs.org/v2/guide/typescript.html"}},{title:"API",docLink:{zh:"https://cn.vuejs.org/v2/api/",en:"https://vuejs.org/v2/api/"}}]},p={startAt:0,mainColor:"#42b983",poster:"https://gw.alicdn.com/tfs/TB1j0fGdaagSKJjy0FbXXa.mVXa-700-328.png",title:"使用 Weex 和 Vue 开发原生应用",titleFontSize:46,posterStyle:{width:"650px",height:"304px"},copyright:{zh:"来自 SegmentFault",en:"From SegmentFault"},lessons:[{title:"项目介绍和文章目录",docLink:"https://segmentfault.com/a/1190000008342533"},{title:"如何配置开发环境",docLink:"https://segmentfault.com/a/1190000008344148"},{title:"编写独立页面",docLink:"https://segmentfault.com/a/1190000008366358"},{title:"使用 Vue 框架的特性",docLink:"https://segmentfault.com/a/1190000008432907"},{title:"使用 Weex 平台的功能",docLink:"https://segmentfault.com/a/1190000008464683"},{title:"使用 Vuex",docLink:"https://segmentfault.com/a/1190000008520677"},{title:"使用 vue-router",docLink:"https://segmentfault.com/a/1190000009101411"},{title:"完整项目目录详解",docLink:"https://segmentfault.com/a/1190000009101907"}]},h=(weex.requireModule("navigator"),weex.requireModule("clipboard")),d=weex.requireModule("storage"),u=weex.requireModule("modal");t.default={data:function(){var e=/.+\/?[\?\&]{1}subject=([\d\w]+)$/i.exec(weex.config.bundleUrl||""),t="weex";e&&(t=e[1]);var n=c;switch(t.toLowerCase()){case"vue":n=a;break;case"javascript":case"js":n=l;break;case"css":n=s;break;case"hackernews":n=p}return(0,i.default)({subject:t,language:"en",startAt:1,titleFontSize:"60px",posterBg:"#F5F5F5",posterStyle:{width:"300px",height:"300px"},mainColor:"#00B4FF"},n)},beforeCreate:function(){var e=this;d.getItem("WEEX_PLAYGROUND_LANGUAGE",function(t){"success"===t.result&&(e.language=t.data)})},methods:{copyLinks:function(){var e=this;u.confirm({message:this.i18n({en:"Copy all article address ?",zh:"复制所有文章链接？"})},function(t){if("OK"===t){var n=e.i18n(e.title)+"\n\n";n+=e.lessons.map(function(t,n){return n+e.startAt+". "+e.i18n(t.title)+" "+e.i18n(t.docLink)}).join("\n"),n+="\n\n"+e.i18n(e.copyright),h.setString(n),u.toast({message:e.i18n({en:"Article address is copied",zh:"文章链接已复制"})})}})}}}},function(e,t,n){e.exports={default:n(14),__esModule:!0}},function(e,t,n){n(15),e.exports=n(4).Object.assign},function(e,t,n){var o=n(16);o(o.S+o.F,"Object",{assign:n(26)})},function(e,t,n){var o=n(0),r=n(4),i=n(17),c=n(19),s="prototype",l=function(e,t,n){var a,p,h,d=e&l.F,u=e&l.G,f=e&l.S,v=e&l.P,g=e&l.B,m=e&l.W,z=u?r:r[t]||(r[t]={}),S=z[s],x=u?o:f?o[t]:(o[t]||{})[s];u&&(n=t);for(a in n)(p=!d&&x&&void 0!==x[a])&&a in z||(h=p?x[a]:n[a],z[a]=u&&"function"!=typeof x[a]?n[a]:g&&p?i(h,o):m&&x[a]==h?function(e){var t=function(t,n,o){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,o)}return e.apply(this,arguments)};return t[s]=e[s],t}(h):v&&"function"==typeof h?i(Function.call,h):h,v&&((z.virtual||(z.virtual={}))[a]=h,e&l.R&&S&&!S[a]&&c(S,a,h)))};l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,e.exports=l},function(e,t,n){var o=n(18);e.exports=function(e,t,n){if(o(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,o){return e.call(t,n,o)};case 3:return function(n,o,r){return e.call(t,n,o,r)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){var o=n(20),r=n(25);e.exports=n(2)?function(e,t,n){return o.f(e,t,r(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var o=n(21),r=n(22),i=n(24),c=Object.defineProperty;t.f=n(2)?Object.defineProperty:function(e,t,n){if(o(e),t=i(t,!0),o(n),r)try{return c(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){var o=n(1);e.exports=function(e){if(!o(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){e.exports=!n(2)&&!n(3)(function(){return 7!=Object.defineProperty(n(23)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var o=n(1),r=n(0).document,i=o(r)&&o(r.createElement);e.exports=function(e){return i?r.createElement(e):{}}},function(e,t,n){var o=n(1);e.exports=function(e,t){if(!o(e))return e;var n,r;if(t&&"function"==typeof(n=e.toString)&&!o(r=n.call(e)))return r;if("function"==typeof(n=e.valueOf)&&!o(r=n.call(e)))return r;if(!t&&"function"==typeof(n=e.toString)&&!o(r=n.call(e)))return r;throw TypeError("Can't convert object to primitive value")}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){"use strict";var o=n(27),r=n(38),i=n(39),c=n(40),s=n(6),l=Object.assign;e.exports=!l||n(3)(function(){var e={},t={},n=Symbol(),o="abcdefghijklmnopqrst";return e[n]=7,o.split("").forEach(function(e){t[e]=e}),7!=l({},e)[n]||Object.keys(l({},t)).join("")!=o})?function(e,t){for(var n=c(e),l=arguments.length,a=1,p=r.f,h=i.f;l>a;)for(var d,u=s(arguments[a++]),f=p?o(u).concat(p(u)):o(u),v=f.length,g=0;v>g;)h.call(u,d=f[g++])&&(n[d]=u[d]);return n}:l},function(e,t,n){var o=n(28),r=n(37);e.exports=Object.keys||function(e){return o(e,r)}},function(e,t,n){var o=n(29),r=n(5),i=n(31)(!1),c=n(34)("IE_PROTO");e.exports=function(e,t){var n,s=r(e),l=0,a=[];for(n in s)n!=c&&o(s,n)&&a.push(n);for(;t.length>l;)o(s,n=t[l++])&&(~i(a,n)||a.push(n));return a}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var o=n(5),r=n(32),i=n(33);e.exports=function(e){return function(t,n,c){var s,l=o(t),a=r(l.length),p=i(c,a);if(e&&n!=n){for(;a>p;)if((s=l[p++])!=s)return!0}else for(;a>p;p++)if((e||p in l)&&l[p]===n)return e||p||0;return!e&&-1}}},function(e,t,n){var o=n(8),r=Math.min;e.exports=function(e){return e>0?r(o(e),9007199254740991):0}},function(e,t,n){var o=n(8),r=Math.max,i=Math.min;e.exports=function(e,t){return(e=o(e))<0?r(e+t,0):i(e,t)}},function(e,t,n){var o=n(35)("keys"),r=n(36);e.exports=function(e){return o[e]||(o[e]=r(e))}},function(e,t,n){var o=n(0),r=o["__core-js_shared__"]||(o["__core-js_shared__"]={});e.exports=function(e){return r[e]||(r[e]={})}},function(e,t){var n=0,o=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+o).toString(36))}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var o=n(7);e.exports=function(e){return Object(o(e))}},function(e,t){e.exports={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("list",{staticClass:["wrapper"]},[n("cell",{appendAsTree:!0,attrs:{append:"tree"},on:{longpress:e.copyLinks}},[n("div",{staticClass:["banner","center"],style:{backgroundColor:e.posterBg}},[n("image",{staticClass:["poster"],style:e.posterStyle,attrs:{resize:"cover",src:e.poster}})])]),n("cell",{staticClass:["center"],appendAsTree:!0,attrs:{append:"tree"},on:{longpress:e.copyLinks}},[n("text",{staticClass:["title"],style:{fontSize:e.titleFontSize}},[e._v(e._s(e.i18n(e.title)))])]),e._l(e.lessons,function(t,o){return n("cell",{key:o,staticClass:["center"],appendAsTree:!0,attrs:{append:"tree"}},[n("div",{class:["lesson","lesson-"+e.language],on:{click:function(n){e.jumpTo(t.docLink)}}},[n("text",{class:["lesson-index","lesson-index-"+e.language]},[e._v(e._s(e.startAt+o)+".")]),n("text",{class:["lesson-title","lesson-title-"+e.language],style:{color:e.mainColor}},[e._v(e._s(e.i18n(t.title)))])])])}),n("cell",{staticClass:["footer","center"],appendAsTree:!0,attrs:{append:"tree"}},[n("text",{staticClass:["copyright"]},[e._v(e._s(e.i18n(e.copyright)))])])],2)},staticRenderFns:[]},e.exports.render._withStripped=!0},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createLink=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[];for(var o in t)"string"==typeof t[o]&&n.push(o+"="+t[o]);if("Web"===WXEnvironment.platform)return n.unshift("page="+e+".web.js"),"/?"+n.join("&");return""+function(){var e=weex.config.bundleUrl,t=e.indexOf("your_current_IP")>=0||e.indexOf("file://assets/")>=0,n=e.indexOf("file:///")>=0&&e.indexOf("WeexDemo.app")>0;if(t)return"file://assets/";if(n)return e.substring(0,e.lastIndexOf("/")+1);return""}()+e+".weex.js"+(n.length?"?"+n.join("&"):"")},t.createURL=c,t.i18n=s,t.setLanguage=function(e){r.setItem("WEEX_PLAYGROUND_LANGUAGE",e||"en")},t.getLanguage=l,t.jumpTo=function(e){var t={en:"06f6a4f7a03ceffc93ec09ddaebb0a51",zh:"fa7d084ea1dc617e1c4e03ecd65263db"},n=function(n){r.setItem("CURRENT_DOCUMENT_URL",s(e,n)),i.push({url:c(s(t,n))})};l(function(e){return n(e)},function(e){return n("en")})},t.viewSource=function(e){var t={en:"032afafed7947de7d5123a45b3ca9704",zh:"785cf2804ac6a6dd807a0c988b5729cd"},n=function(n){r.setItem("CURRENT_SOURCE_HASH",s(e,n)),i.push({url:c(s(t,n))})};l(function(e){return n(e)},function(e){return n("en")})},t.fetchData=a,t.fetchDoodle=function(e,t){a("doodle",e,t)},t.fetchExamples=function(e,t){a("examples",e,t)},t.fetchNews=function(e,t){a("news",e,t)};var o=weex.requireModule("stream"),r=weex.requireModule("storage"),i=weex.requireModule("navigator");function c(e){if("Web"===WXEnvironment.platform)return"http://dotwe.org/raw/htmlVue/"+e;var t="http://dotwe.org/raw/dist/"+e+".bundle.wx";return t+"?_wx_tpl="+t}function s(e,t){return"string"==typeof e?e:"[object Object]"===Object.prototype.toString.call(e)?e[this&&this.language||t||"en"]:void 0}function l(e,t){try{r.getItem("WEEX_PLAYGROUND_LANGUAGE",function(n){"success"===n.result&&"function"==typeof e?e(n.data):"function"==typeof t&&t(n)})}catch(e){"function"==typeof t&&t(e)}}function a(e,t,n){try{o.fetch({url:"http://dotwe.org/query/weex-playground-app",method:"post",headers:{"Content-Type":"application/x-www-form-urlencoded"},type:"json",body:"name="+e},function(e){e.ok&&e.data&&"function"==typeof t?t(e.data):"function"==typeof n&&n(e)})}catch(e){"function"==typeof n&&n(e)}}}]);