From ca38c5db2b3729447b8901e8f7504747e1858f43 Mon Sep 17 00:00:00 2001 From: dntzhang Date: Sat, 4 May 2019 21:09:28 +0800 Subject: [PATCH] update site --- site/docs/asset-manifest.json | 24 +++++++++---------- site/docs/cn.html | 2 +- site/docs/index.html | 2 +- site/docs/service-worker.js | 2 +- ...a7b0d9ea.chunk.js => 11.94470037.chunk.js} | 4 ++-- site/docs/static/js/11.94470037.chunk.js.map | 1 + site/docs/static/js/11.a7b0d9ea.chunk.js.map | 1 - site/docs/static/js/20.83b21c96.chunk.js | 2 ++ site/docs/static/js/20.83b21c96.chunk.js.map | 1 + site/docs/static/js/20.f678728b.chunk.js | 2 -- site/docs/static/js/20.f678728b.chunk.js.map | 1 - ...7cdbb574.chunk.js => 25.204510ac.chunk.js} | 4 ++-- site/docs/static/js/25.204510ac.chunk.js.map | 1 + site/docs/static/js/25.7cdbb574.chunk.js.map | 1 - site/docs/static/js/4.1a938e71.chunk.js | 2 ++ site/docs/static/js/4.1a938e71.chunk.js.map | 1 + site/docs/static/js/4.2c975446.chunk.js | 2 -- site/docs/static/js/4.2c975446.chunk.js.map | 1 - .../js/{cn.1a8e2bdb.js => cn.4ef15d56.js} | 4 ++-- ...{cn.1a8e2bdb.js.map => cn.4ef15d56.js.map} | 2 +- .../{index.6a68a9f7.js => index.2000b09a.js} | 4 ++-- ....6a68a9f7.js.map => index.2000b09a.js.map} | 2 +- site/src/docs/en/introduction.md | 2 +- site/src/docs/en/props.md | 6 ++--- site/src/docs/zh-cn/introduction.md | 2 +- site/src/docs/zh-cn/props.md | 6 ++--- 26 files changed, 41 insertions(+), 41 deletions(-) rename site/docs/static/js/{11.a7b0d9ea.chunk.js => 11.94470037.chunk.js} (59%) create mode 100644 site/docs/static/js/11.94470037.chunk.js.map delete mode 100644 site/docs/static/js/11.a7b0d9ea.chunk.js.map create mode 100644 site/docs/static/js/20.83b21c96.chunk.js create mode 100644 site/docs/static/js/20.83b21c96.chunk.js.map delete mode 100644 site/docs/static/js/20.f678728b.chunk.js delete mode 100644 site/docs/static/js/20.f678728b.chunk.js.map rename site/docs/static/js/{25.7cdbb574.chunk.js => 25.204510ac.chunk.js} (54%) create mode 100644 site/docs/static/js/25.204510ac.chunk.js.map delete mode 100644 site/docs/static/js/25.7cdbb574.chunk.js.map create mode 100644 site/docs/static/js/4.1a938e71.chunk.js create mode 100644 site/docs/static/js/4.1a938e71.chunk.js.map delete mode 100644 site/docs/static/js/4.2c975446.chunk.js delete mode 100644 site/docs/static/js/4.2c975446.chunk.js.map rename site/docs/static/js/{cn.1a8e2bdb.js => cn.4ef15d56.js} (99%) rename site/docs/static/js/{cn.1a8e2bdb.js.map => cn.4ef15d56.js.map} (99%) rename site/docs/static/js/{index.6a68a9f7.js => index.2000b09a.js} (99%) rename site/docs/static/js/{index.6a68a9f7.js.map => index.2000b09a.js.map} (99%) diff --git a/site/docs/asset-manifest.json b/site/docs/asset-manifest.json index 1f72578dd..953fbe77b 100644 --- a/site/docs/asset-manifest.json +++ b/site/docs/asset-manifest.json @@ -1,20 +1,20 @@ { "cn.css": "static/css/cn.fb9dfd08.css", "cn.css.map": "static/css/cn.fb9dfd08.css.map", - "cn.js": "static/js/cn.1a8e2bdb.js", - "cn.js.map": "static/js/cn.1a8e2bdb.js.map", + "cn.js": "static/js/cn.4ef15d56.js", + "cn.js.map": "static/js/cn.4ef15d56.js.map", "index.css": "static/css/index.fb9dfd08.css", "index.css.map": "static/css/index.fb9dfd08.css.map", - "index.js": "static/js/index.6a68a9f7.js", - "index.js.map": "static/js/index.6a68a9f7.js.map", + "index.js": "static/js/index.2000b09a.js", + "index.js.map": "static/js/index.2000b09a.js.map", "static/js/0.f770eb0e.chunk.js": "static/js/0.f770eb0e.chunk.js", "static/js/0.f770eb0e.chunk.js.map": "static/js/0.f770eb0e.chunk.js.map", "static/js/1.0d025b66.chunk.js": "static/js/1.0d025b66.chunk.js", "static/js/1.0d025b66.chunk.js.map": "static/js/1.0d025b66.chunk.js.map", "static/js/10.e6acfca5.chunk.js": "static/js/10.e6acfca5.chunk.js", "static/js/10.e6acfca5.chunk.js.map": "static/js/10.e6acfca5.chunk.js.map", - "static/js/11.a7b0d9ea.chunk.js": "static/js/11.a7b0d9ea.chunk.js", - "static/js/11.a7b0d9ea.chunk.js.map": "static/js/11.a7b0d9ea.chunk.js.map", + "static/js/11.94470037.chunk.js": "static/js/11.94470037.chunk.js", + "static/js/11.94470037.chunk.js.map": "static/js/11.94470037.chunk.js.map", "static/js/12.1551e567.chunk.js": "static/js/12.1551e567.chunk.js", "static/js/12.1551e567.chunk.js.map": "static/js/12.1551e567.chunk.js.map", "static/js/13.a7923ed9.chunk.js": "static/js/13.a7923ed9.chunk.js", @@ -33,8 +33,8 @@ "static/js/19.50bd4319.chunk.js.map": "static/js/19.50bd4319.chunk.js.map", "static/js/2.9632a8c5.chunk.js": "static/js/2.9632a8c5.chunk.js", "static/js/2.9632a8c5.chunk.js.map": "static/js/2.9632a8c5.chunk.js.map", - "static/js/20.f678728b.chunk.js": "static/js/20.f678728b.chunk.js", - "static/js/20.f678728b.chunk.js.map": "static/js/20.f678728b.chunk.js.map", + "static/js/20.83b21c96.chunk.js": "static/js/20.83b21c96.chunk.js", + "static/js/20.83b21c96.chunk.js.map": "static/js/20.83b21c96.chunk.js.map", "static/js/21.fc4d0781.chunk.js": "static/js/21.fc4d0781.chunk.js", "static/js/21.fc4d0781.chunk.js.map": "static/js/21.fc4d0781.chunk.js.map", "static/js/22.d0e764c7.chunk.js": "static/js/22.d0e764c7.chunk.js", @@ -43,8 +43,8 @@ "static/js/23.b1e284bd.chunk.js.map": "static/js/23.b1e284bd.chunk.js.map", "static/js/24.d0714382.chunk.js": "static/js/24.d0714382.chunk.js", "static/js/24.d0714382.chunk.js.map": "static/js/24.d0714382.chunk.js.map", - "static/js/25.7cdbb574.chunk.js": "static/js/25.7cdbb574.chunk.js", - "static/js/25.7cdbb574.chunk.js.map": "static/js/25.7cdbb574.chunk.js.map", + "static/js/25.204510ac.chunk.js": "static/js/25.204510ac.chunk.js", + "static/js/25.204510ac.chunk.js.map": "static/js/25.204510ac.chunk.js.map", "static/js/26.d3e0fb29.chunk.js": "static/js/26.d3e0fb29.chunk.js", "static/js/26.d3e0fb29.chunk.js.map": "static/js/26.d3e0fb29.chunk.js.map", "static/js/27.cd58c5d2.chunk.js": "static/js/27.cd58c5d2.chunk.js", @@ -55,8 +55,8 @@ "static/js/29.18dc7b40.chunk.js.map": "static/js/29.18dc7b40.chunk.js.map", "static/js/3.1c5042fb.chunk.js": "static/js/3.1c5042fb.chunk.js", "static/js/3.1c5042fb.chunk.js.map": "static/js/3.1c5042fb.chunk.js.map", - "static/js/4.2c975446.chunk.js": "static/js/4.2c975446.chunk.js", - "static/js/4.2c975446.chunk.js.map": "static/js/4.2c975446.chunk.js.map", + "static/js/4.1a938e71.chunk.js": "static/js/4.1a938e71.chunk.js", + "static/js/4.1a938e71.chunk.js.map": "static/js/4.1a938e71.chunk.js.map", "static/js/5.f187d1bc.chunk.js": "static/js/5.f187d1bc.chunk.js", "static/js/5.f187d1bc.chunk.js.map": "static/js/5.f187d1bc.chunk.js.map", "static/js/6.62a98a69.chunk.js": "static/js/6.62a98a69.chunk.js", diff --git a/site/docs/cn.html b/site/docs/cn.html index 3580317d3..893fd23bf 100644 --- a/site/docs/cn.html +++ b/site/docs/cn.html @@ -1 +1 @@ -Omi - Next Front End Framework
\ No newline at end of file +Omi - Next Front End Framework
\ No newline at end of file diff --git a/site/docs/index.html b/site/docs/index.html index fcfdb6cf2..2d20705c7 100644 --- a/site/docs/index.html +++ b/site/docs/index.html @@ -1 +1 @@ -Omi - Next Front End Framework
\ No newline at end of file +Omi - Next Front End Framework
\ No newline at end of file diff --git a/site/docs/service-worker.js b/site/docs/service-worker.js index ed48c5e6a..c3b5c2dbe 100644 --- a/site/docs/service-worker.js +++ b/site/docs/service-worker.js @@ -1 +1 @@ -"use strict";var precacheConfig=[["./cn.html","286248c32c7a86b41941184850a979b2"],["./index.html","59487e60065252fd59faf87acd804ca6"],["./static/css/cn.fb9dfd08.css","956b8f005795c2569d823cddbc15d24c"],["./static/css/index.fb9dfd08.css","414d16d757eb45e170251798229d649f"],["./static/js/0.f770eb0e.chunk.js","187e3413b3eadc8ffb63739f4c01843c"],["./static/js/1.0d025b66.chunk.js","d5bf7a7aaf39181c3093c623e1f00ccc"],["./static/js/10.e6acfca5.chunk.js","24522d922be60326206d09091649f8d9"],["./static/js/11.a7b0d9ea.chunk.js","1a1749a30657c39b20b8b0ae76ee3106"],["./static/js/12.1551e567.chunk.js","9c773469cd5fb240e71207bcd24e2f52"],["./static/js/13.a7923ed9.chunk.js","471d04d7a93b701033cd83ab651b5d7a"],["./static/js/14.84f14bf7.chunk.js","e61f3fe9d3e113bb9a9016ded089edf9"],["./static/js/15.e34c03c9.chunk.js","2468e42acce720fed8875f1e8964ead6"],["./static/js/16.48415b29.chunk.js","219f09361463d3537bea78c2735d15a5"],["./static/js/17.d859539c.chunk.js","000eaffe73a5b8ed639282f83b6126ab"],["./static/js/18.44386d31.chunk.js","611c7dea377f9278b05d027372f593f3"],["./static/js/19.50bd4319.chunk.js","2710d9445e9a0ae74a2a49d37ddf0e92"],["./static/js/2.9632a8c5.chunk.js","b53d6978ac852024cecf7a0701c11639"],["./static/js/20.f678728b.chunk.js","527dc2624024d57cc1e7604922f4921f"],["./static/js/21.fc4d0781.chunk.js","c02342ed38256666c98fb45115cde102"],["./static/js/22.d0e764c7.chunk.js","adb183492e4b662cf3b866a35025ba0d"],["./static/js/23.b1e284bd.chunk.js","7ec64dfcec22b99717fd7abf50965dde"],["./static/js/24.d0714382.chunk.js","78eb47f3fe1593d1791a0514753f1007"],["./static/js/25.7cdbb574.chunk.js","65b090a39c15641f56ee4f10b3204c3a"],["./static/js/26.d3e0fb29.chunk.js","2bba4857cfc2d0212838a79842ffa582"],["./static/js/27.cd58c5d2.chunk.js","26ae452963cf87e6e40dec9b7d723435"],["./static/js/28.3ca205f6.chunk.js","14ca25500751c4481014678ce4b46bbd"],["./static/js/29.18dc7b40.chunk.js","8f9b58f0ae729584671d2ee90204ab07"],["./static/js/3.1c5042fb.chunk.js","1e73911d019e6305dce88b32f813039d"],["./static/js/4.2c975446.chunk.js","6cd2e0a36f90253b6556af9fc93128ab"],["./static/js/5.f187d1bc.chunk.js","b6cff9ca2e0a11bdf1fa09f1c597fdc7"],["./static/js/6.62a98a69.chunk.js","bdfbbc3e532a0dd4171ff7c754978420"],["./static/js/7.70efbb66.chunk.js","2f7a3325b28a781dd40d092df0b5de1c"],["./static/js/8.06eeaa91.chunk.js","2fb6ba00035c8ecc0dcccfe50e4ce684"],["./static/js/9.c60ec43c.chunk.js","bc69be21d930e6fc2bf9b50c035b2a06"],["./static/js/cn.1a8e2bdb.js","66159bbd87f03443a0909bb353790e64"],["./static/js/index.6a68a9f7.js","80b6a7950f8932356941ec988be45ae8"],["./static/media/omi-logo2019.923166c3.svg","923166c362dce831a15c447b19a622f9"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,c){var t=new URL(e);return"/"===t.pathname.slice(-1)&&(t.pathname+=c),t.toString()},cleanResponse=function(c){return c.redirected?("body"in c?Promise.resolve(c.body):c.blob()).then(function(e){return new Response(e,{headers:c.headers,status:c.status,statusText:c.statusText})}):Promise.resolve(c)},createCacheKey=function(e,c,t,a){var s=new URL(e);return a&&s.pathname.match(a)||(s.search+=(s.search?"&":"")+encodeURIComponent(c)+"="+encodeURIComponent(t)),s.toString()},isPathWhitelisted=function(e,c){if(0===e.length)return!0;var t=new URL(c).pathname;return e.some(function(e){return t.match(e)})},stripIgnoredUrlParameters=function(e,t){var c=new URL(e);return c.hash="",c.search=c.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(c){return t.every(function(e){return!e.test(c[0])})}).map(function(e){return e.join("=")}).join("&"),c.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var c=e[0],t=e[1],a=new URL(c,self.location),s=createCacheKey(a,hashParamName,t,/\.\w{8}\./);return[a.toString(),s]}));function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(a){return setOfCachedUrls(a).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(c){if(!t.has(c)){var e=new Request(c,{credentials:"same-origin"});return fetch(e).then(function(e){if(!e.ok)throw new Error("Request for "+c+" returned a response with status "+e.status);return cleanResponse(e).then(function(e){return a.put(c,e)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(c){return c.keys().then(function(e){return Promise.all(e.map(function(e){if(!t.has(e.url))return c.delete(e)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(c){if("GET"===c.request.method){var e,t=stripIgnoredUrlParameters(c.request.url,ignoreUrlParametersMatching),a="index.html";(e=urlsToCacheKeys.has(t))||(t=addDirectoryIndex(t,a),e=urlsToCacheKeys.has(t));var s="./index.html";!e&&"navigate"===c.request.mode&&isPathWhitelisted(["^(?!\\/__).*"],c.request.url)&&(t=new URL(s,self.location).toString(),e=urlsToCacheKeys.has(t)),e&&c.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(t)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(e){return console.warn('Couldn\'t serve response for "%s" from cache: %O',c.request.url,e),fetch(c.request)}))}}); \ No newline at end of file +"use strict";var precacheConfig=[["./cn.html","f92b6d0f46db10ddc2b684c6f31fff92"],["./index.html","a9fec8562f33cfed99f9fefd1fe8c11a"],["./static/css/cn.fb9dfd08.css","956b8f005795c2569d823cddbc15d24c"],["./static/css/index.fb9dfd08.css","414d16d757eb45e170251798229d649f"],["./static/js/0.f770eb0e.chunk.js","187e3413b3eadc8ffb63739f4c01843c"],["./static/js/1.0d025b66.chunk.js","d5bf7a7aaf39181c3093c623e1f00ccc"],["./static/js/10.e6acfca5.chunk.js","24522d922be60326206d09091649f8d9"],["./static/js/11.94470037.chunk.js","0f8201cd0037794756649049551f7fb7"],["./static/js/12.1551e567.chunk.js","9c773469cd5fb240e71207bcd24e2f52"],["./static/js/13.a7923ed9.chunk.js","471d04d7a93b701033cd83ab651b5d7a"],["./static/js/14.84f14bf7.chunk.js","e61f3fe9d3e113bb9a9016ded089edf9"],["./static/js/15.e34c03c9.chunk.js","2468e42acce720fed8875f1e8964ead6"],["./static/js/16.48415b29.chunk.js","219f09361463d3537bea78c2735d15a5"],["./static/js/17.d859539c.chunk.js","000eaffe73a5b8ed639282f83b6126ab"],["./static/js/18.44386d31.chunk.js","611c7dea377f9278b05d027372f593f3"],["./static/js/19.50bd4319.chunk.js","2710d9445e9a0ae74a2a49d37ddf0e92"],["./static/js/2.9632a8c5.chunk.js","b53d6978ac852024cecf7a0701c11639"],["./static/js/20.83b21c96.chunk.js","3e7b4550e36e8d1b2e2d49bb3298ee57"],["./static/js/21.fc4d0781.chunk.js","c02342ed38256666c98fb45115cde102"],["./static/js/22.d0e764c7.chunk.js","adb183492e4b662cf3b866a35025ba0d"],["./static/js/23.b1e284bd.chunk.js","7ec64dfcec22b99717fd7abf50965dde"],["./static/js/24.d0714382.chunk.js","78eb47f3fe1593d1791a0514753f1007"],["./static/js/25.204510ac.chunk.js","c764a5d5dc1501500c0fada3fa8880b6"],["./static/js/26.d3e0fb29.chunk.js","2bba4857cfc2d0212838a79842ffa582"],["./static/js/27.cd58c5d2.chunk.js","26ae452963cf87e6e40dec9b7d723435"],["./static/js/28.3ca205f6.chunk.js","14ca25500751c4481014678ce4b46bbd"],["./static/js/29.18dc7b40.chunk.js","8f9b58f0ae729584671d2ee90204ab07"],["./static/js/3.1c5042fb.chunk.js","1e73911d019e6305dce88b32f813039d"],["./static/js/4.1a938e71.chunk.js","7910c677df8c830d82c365eb1c1e9171"],["./static/js/5.f187d1bc.chunk.js","b6cff9ca2e0a11bdf1fa09f1c597fdc7"],["./static/js/6.62a98a69.chunk.js","bdfbbc3e532a0dd4171ff7c754978420"],["./static/js/7.70efbb66.chunk.js","2f7a3325b28a781dd40d092df0b5de1c"],["./static/js/8.06eeaa91.chunk.js","2fb6ba00035c8ecc0dcccfe50e4ce684"],["./static/js/9.c60ec43c.chunk.js","bc69be21d930e6fc2bf9b50c035b2a06"],["./static/js/cn.4ef15d56.js","8f72ecb9f4a717b8e41fab13e76a409f"],["./static/js/index.2000b09a.js","8860be4827982339220858966e2500f3"],["./static/media/omi-logo2019.923166c3.svg","923166c362dce831a15c447b19a622f9"]],cacheName="sw-precache-v3-sw-precache-webpack-plugin-"+(self.registration?self.registration.scope:""),ignoreUrlParametersMatching=[/^utm_/],addDirectoryIndex=function(e,c){var t=new URL(e);return"/"===t.pathname.slice(-1)&&(t.pathname+=c),t.toString()},cleanResponse=function(c){return c.redirected?("body"in c?Promise.resolve(c.body):c.blob()).then(function(e){return new Response(e,{headers:c.headers,status:c.status,statusText:c.statusText})}):Promise.resolve(c)},createCacheKey=function(e,c,t,s){var a=new URL(e);return s&&a.pathname.match(s)||(a.search+=(a.search?"&":"")+encodeURIComponent(c)+"="+encodeURIComponent(t)),a.toString()},isPathWhitelisted=function(e,c){if(0===e.length)return!0;var t=new URL(c).pathname;return e.some(function(e){return t.match(e)})},stripIgnoredUrlParameters=function(e,t){var c=new URL(e);return c.hash="",c.search=c.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(c){return t.every(function(e){return!e.test(c[0])})}).map(function(e){return e.join("=")}).join("&"),c.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var c=e[0],t=e[1],s=new URL(c,self.location),a=createCacheKey(s,hashParamName,t,/\.\w{8}\./);return[s.toString(),a]}));function setOfCachedUrls(e){return e.keys().then(function(e){return e.map(function(e){return e.url})}).then(function(e){return new Set(e)})}self.addEventListener("install",function(e){e.waitUntil(caches.open(cacheName).then(function(s){return setOfCachedUrls(s).then(function(t){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(c){if(!t.has(c)){var e=new Request(c,{credentials:"same-origin"});return fetch(e).then(function(e){if(!e.ok)throw new Error("Request for "+c+" returned a response with status "+e.status);return cleanResponse(e).then(function(e){return s.put(c,e)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var t=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(c){return c.keys().then(function(e){return Promise.all(e.map(function(e){if(!t.has(e.url))return c.delete(e)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(c){if("GET"===c.request.method){var e,t=stripIgnoredUrlParameters(c.request.url,ignoreUrlParametersMatching),s="index.html";(e=urlsToCacheKeys.has(t))||(t=addDirectoryIndex(t,s),e=urlsToCacheKeys.has(t));var a="./index.html";!e&&"navigate"===c.request.mode&&isPathWhitelisted(["^(?!\\/__).*"],c.request.url)&&(t=new URL(a,self.location).toString(),e=urlsToCacheKeys.has(t)),e&&c.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(t)).then(function(e){if(e)return e;throw Error("The cached response that was expected is missing.")})}).catch(function(e){return console.warn('Couldn\'t serve response for "%s" from cache: %O',c.request.url,e),fetch(c.request)}))}}); \ No newline at end of file diff --git a/site/docs/static/js/11.a7b0d9ea.chunk.js b/site/docs/static/js/11.94470037.chunk.js similarity index 59% rename from site/docs/static/js/11.a7b0d9ea.chunk.js rename to site/docs/static/js/11.94470037.chunk.js index e0da5a3db..ea0545862 100644 --- a/site/docs/static/js/11.a7b0d9ea.chunk.js +++ b/site/docs/static/js/11.94470037.chunk.js @@ -1,2 +1,2 @@ -webpackJsonp([11],{57:function(n,t){n.exports='\x3c!--

omi

\n

Omi - \u4e0b\u4e00\u4ee3\u524d\u7aef\u6846\u67b6\uff0c\u53bb\u4e07\u7269\u7cdf\u7c95\uff0c\u5408\u7cbe\u534e\u4e3a\u4e00\u70b9\u70b9 JS

\n

\u57fa\u4e8e Web Components \u5e76\u652f\u6301 IE8+(omio) \u548c \u5c0f\u7a0b\u5e8f(omip)

\n --\x3e\n\n## Omi \u662f\u4ec0\u4e48\uff1f\n\nOmi (\u8bfb\u97f3 /\u02c8om\u026a/\uff0c\u7c7b\u4f3c\u4e8e \u6b27\u7c73) \u662f\u4e0b\u4e00\u4ee3\u524d\u7aef\u6846\u67b6\uff0c\u57fa\u4e8e Web Components \u8bbe\u8ba1\uff0c\u652f\u6301 PC Web\u3001\u79fb\u52a8 H5 \u548c\u5c0f\u7a0b\u5e8f\u5f00\u53d1(One framework. Mobile & desktop & mini program)\u3002\n\n\n Omi looks really neat!
\n\u3000\u3000\u3000\u3000\u2014 [Jason Miller (Creator of Preact)](https://twitter.com/_developit/)\n\n I really like the trend towards "frameworks" that:

"export default class WeElement extends HTMLElement {..}"

This one, Omi, is from Tencent.
\n\u3000\u3000\u3000\u3000\u2014 [Dion Almaer](https://twitter.com/dalmaer/)\n\n## \u4e00\u4e2a HTML \u5b8c\u5168\u4e0a\u624b\n\n\u4e0b\u9762\u8fd9\u4e2a\u9875\u9762\u4e0d\u9700\u8981\u4efb\u4f55\u6784\u5efa\u5de5\u5177\u5c31\u53ef\u4ee5\u6267\u884c:\n\n```html\n\\n\\n```\\n\\n通过上面脚本的执行,你已经定义好了一个自定义标签,可以不使用 render 方法,直接使用 `my-counter` 标签:\\n\\n```jsx\\n\\n \\n\\n```\\n\\n* [点击这里看执行结果](https://tencent.github.io/omi/assets/omi.html)\\n\\n你可以使用 JSX 和 ES2015+ 来书写自定义元素:\\n\\n\\n```jsx {8-11}\\nimport { render, WeElement, define } from 'omi'\\n\\ndefine('my-counter', class extends WeElement {\\n data = {\\n count: 1\\n }\\n\\n static css = `\\n span{\\n color: red;\\n }`\\n\\n sub = () => {\\n this.data.count--\\n this.update()\\n }\\n\\n add = () => {\\n this.data.count++\\n this.update()\\n }\\n\\n render() {\\n return (\\n
\\n \\n {this.data.count}\\n \\n
\\n )\\n }\\n})\\n\\nrender(, 'body')\\n```\\n\\n看上面高亮的部分,可以给组件加样式,比如上面的 span 的作用域仅仅在组件内部,不会污染别的组件。到现在你已经成功入门 Omi 了!你学会了:\\n\\n* 为组件添加**结构**,如上面使用 JSX 书写结构\\n* 为组件添加**行为**,如上面的 `onClick` 绑定事件\\n* 为组件添加**样式**,如上面的 `static css`\\n* 渲染组件到 body,当然也可以把组件渲染到任意其他组件\\n\\n恭喜你!\"\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/11.94470037.chunk.js","module.exports = \"\\n\\n## Omi 是什么?\\n\\nOmi (读音 /ˈomɪ/,类似于 欧米) 是下一代前端框架,基于 Web Components 设计,支持 PC Web、移动 H5 和小程序开发(One framework. Mobile & desktop & mini program)。\\n\\n\\n Omi looks really neat!
\\n    — [Jason Miller (Creator of Preact)](https://twitter.com/_developit/)\\n\\n I really like the trend towards \\\"frameworks\\\" that:

\\\"export default class WeElement extends HTMLElement {..}\\\"

This one, Omi, is from Tencent.
\\n    — [Dion Almaer](https://twitter.com/dalmaer/)\\n\\n## 一个 HTML 完全上手\\n\\n下面这个页面不需要任何构建工具就可以执行:\\n\\n```html\\n\\n\\n```\\n\\n通过上面脚本的执行,你已经定义好了一个自定义标签,可以不使用 render 方法,直接使用 `my-counter` 标签:\\n\\n```jsx\\n\\n \\n\\n```\\n\\n* [点击这里看执行结果](https://tencent.github.io/omi/assets/omi.html)\\n\\n你可以使用 JSX 和 ES2015+ 来书写自定义元素:\\n\\n\\n```jsx {8-11}\\nimport { render, WeElement, define } from 'omi'\\n\\ndefine('my-counter', class extends WeElement {\\n data = {\\n count: 1\\n }\\n\\n static css = `\\n span{\\n color: red;\\n }`\\n\\n sub = () => {\\n this.data.count--\\n this.update()\\n }\\n\\n add = () => {\\n this.data.count++\\n this.update()\\n }\\n\\n render() {\\n return (\\n
\\n \\n {this.data.count}\\n \\n
\\n )\\n }\\n})\\n\\nrender(, 'body')\\n```\\n\\n看上面高亮的部分,可以给组件加样式,比如上面的 span 的作用域仅仅在组件内部,不会污染别的组件。到现在你已经成功入门 Omi 了!你学会了:\\n\\n* 为组件添加**结构**,如上面使用 JSX 书写结构\\n* 为组件添加**行为**,如上面的 `onClick` 绑定事件\\n* 为组件添加**样式**,如上面的 `static css`\\n* 渲染组件到 body,当然也可以把组件渲染到任意其他组件\\n\\n恭喜你!\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs/zh-cn/introduction.md\n// module id = 57\n// module chunks = 11"],"sourceRoot":""} \ No newline at end of file diff --git a/site/docs/static/js/11.a7b0d9ea.chunk.js.map b/site/docs/static/js/11.a7b0d9ea.chunk.js.map deleted file mode 100644 index c7d851e68..000000000 --- a/site/docs/static/js/11.a7b0d9ea.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../static/js/11.a7b0d9ea.chunk.js","docs/zh-cn/introduction.md"],"names":["webpackJsonp","57","module","exports"],"mappings":"AAAAA,cAAc,KAERC,GACA,SAAUC,EAAQC,GCHxBD,EAAAC,QAAA","file":"static/js/11.a7b0d9ea.chunk.js","sourcesContent":["webpackJsonp([11],{\n\n/***/ 57:\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n\\n## Omi 是什么?\\n\\nOmi (读音 /ˈomɪ/,类似于 欧米) 是下一代前端框架,基于 Web Components 设计,支持 PC Web、移动 H5 和小程序开发(One framework. Mobile & desktop & mini program)。\\n\\n\\n Omi looks really neat!
\\n    — [Jason Miller (Creator of Preact)](https://twitter.com/_developit/)\\n\\n I really like the trend towards \\\"frameworks\\\" that:

\\\"export default class WeElement extends HTMLElement {..}\\\"

This one, Omi, is from Tencent.
\\n    — [Dion Almaer](https://twitter.com/dalmaer/)\\n\\n## 一个 HTML 完全上手\\n\\n下面这个页面不需要任何构建工具就可以执行:\\n\\n```html\\n\\n\\n```\\n\\n通过上面脚本的执行,你已经定义好了一个自定义标签,可以不使用 render 方法,直接使用 `my-counter` 标签:\\n\\n```jsx\\n\\n \\n\\n```\\n\\n* [点击这里看执行结果](https://tencent.github.io/omi/assets/omi.html)\\n\\n上面使用的是 hyperscript 的方式来书写 HTML 结构,用 ES5 书写 JS ,你可以使用 JSX 和 ES2015+ 来替代它们。\\n\\n\\n```jsx {8-11}\\nimport { render, WeElement, define } from 'omi'\\n\\ndefine('my-counter', class extends WeElement {\\n data = {\\n count: 1\\n }\\n\\n static css = `\\n span{\\n color: red;\\n }`\\n\\n sub = () => {\\n this.data.count--\\n this.update()\\n }\\n\\n add = () => {\\n this.data.count++\\n this.update()\\n }\\n\\n render() {\\n return (\\n
\\n \\n {this.data.count}\\n \\n
\\n )\\n }\\n})\\n\\nrender(, 'body')\\n```\\n\\n看上面高亮的部分,可以给组件加样式,比如上面的 span 的作用域仅仅在组件内部,不会污染别的组件。到现在你已经成功入门 Omi 了!你学会了:\\n\\n* 为组件添加**结构**,如上面使用 JSX 书写结构\\n* 为组件添加**行为**,如上面的 `onClick` 绑定事件\\n* 为组件添加**样式**,如上面的 `static css`\\n* 渲染组件到 body,当然也可以把组件渲染到任意其他组件\\n\\n恭喜你!\"\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/11.a7b0d9ea.chunk.js","module.exports = \"\\n\\n## Omi 是什么?\\n\\nOmi (读音 /ˈomɪ/,类似于 欧米) 是下一代前端框架,基于 Web Components 设计,支持 PC Web、移动 H5 和小程序开发(One framework. Mobile & desktop & mini program)。\\n\\n\\n Omi looks really neat!
\\n    — [Jason Miller (Creator of Preact)](https://twitter.com/_developit/)\\n\\n I really like the trend towards \\\"frameworks\\\" that:

\\\"export default class WeElement extends HTMLElement {..}\\\"

This one, Omi, is from Tencent.
\\n    — [Dion Almaer](https://twitter.com/dalmaer/)\\n\\n## 一个 HTML 完全上手\\n\\n下面这个页面不需要任何构建工具就可以执行:\\n\\n```html\\n\\n\\n```\\n\\n通过上面脚本的执行,你已经定义好了一个自定义标签,可以不使用 render 方法,直接使用 `my-counter` 标签:\\n\\n```jsx\\n\\n \\n\\n```\\n\\n* [点击这里看执行结果](https://tencent.github.io/omi/assets/omi.html)\\n\\n上面使用的是 hyperscript 的方式来书写 HTML 结构,用 ES5 书写 JS ,你可以使用 JSX 和 ES2015+ 来替代它们。\\n\\n\\n```jsx {8-11}\\nimport { render, WeElement, define } from 'omi'\\n\\ndefine('my-counter', class extends WeElement {\\n data = {\\n count: 1\\n }\\n\\n static css = `\\n span{\\n color: red;\\n }`\\n\\n sub = () => {\\n this.data.count--\\n this.update()\\n }\\n\\n add = () => {\\n this.data.count++\\n this.update()\\n }\\n\\n render() {\\n return (\\n
\\n \\n {this.data.count}\\n \\n
\\n )\\n }\\n})\\n\\nrender(, 'body')\\n```\\n\\n看上面高亮的部分,可以给组件加样式,比如上面的 span 的作用域仅仅在组件内部,不会污染别的组件。到现在你已经成功入门 Omi 了!你学会了:\\n\\n* 为组件添加**结构**,如上面使用 JSX 书写结构\\n* 为组件添加**行为**,如上面的 `onClick` 绑定事件\\n* 为组件添加**样式**,如上面的 `static css`\\n* 渲染组件到 body,当然也可以把组件渲染到任意其他组件\\n\\n恭喜你!\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs/zh-cn/introduction.md\n// module id = 57\n// module chunks = 11"],"sourceRoot":""} \ No newline at end of file diff --git a/site/docs/static/js/20.83b21c96.chunk.js b/site/docs/static/js/20.83b21c96.chunk.js new file mode 100644 index 000000000..b9bee8984 --- /dev/null +++ b/site/docs/static/js/20.83b21c96.chunk.js @@ -0,0 +1,2 @@ +webpackJsonp([20],{48:function(n,e){n.exports="\n## Props\n\nTransfer data to sub elements through props, such as:\n\n```jsx\nimport { WeElement, define, render } from 'omi'\n\ndefine('my-element', class extends WeElement {\n render(props) {\n return (\n

Hello, {props.name}!

\n )\n }\n})\n```\n\nUsing element:\n\n```jsx\n\n```\n\nYou can also pass any type of data to props:\n\n```jsx\ndefine('my-element', class extends WeElement {\n render(props) {\n return (\n

Hello, {props.myObj.name}!

\n )\n }\n})\n```\n\nUsing element:\n\n```jsx\n\n```\n\nYou can set the default value by the static default Props property:\n\n```jsx\ndefine('my-element', class extends WeElement {\n static defaultProps = {\n\t\tname: 'Omi',\n\t\tmyAge: 18\n\t}\n\n render(props) {\n return (\n

Hello, {props.name}! Age {props.myAge}

\n )\n }\n})\n```"}}); +//# sourceMappingURL=20.83b21c96.chunk.js.map \ No newline at end of file diff --git a/site/docs/static/js/20.83b21c96.chunk.js.map b/site/docs/static/js/20.83b21c96.chunk.js.map new file mode 100644 index 000000000..92afe718f --- /dev/null +++ b/site/docs/static/js/20.83b21c96.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../static/js/20.83b21c96.chunk.js","docs/en/props.md"],"names":["webpackJsonp","48","module","exports"],"mappings":"AAAAA,cAAc,KAERC,GACA,SAAUC,EAAQC,GCHxBD,EAAAC,QAAA","file":"static/js/20.83b21c96.chunk.js","sourcesContent":["webpackJsonp([20],{\n\n/***/ 48:\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n## Props\\n\\nTransfer data to sub elements through props, such as:\\n\\n```jsx\\nimport { WeElement, define, render } from 'omi'\\n\\ndefine('my-element', class extends WeElement {\\n render(props) {\\n return (\\n

Hello, {props.name}!

\\n )\\n }\\n})\\n```\\n\\nUsing element:\\n\\n```jsx\\n\\n```\\n\\nYou can also pass any type of data to props:\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n render(props) {\\n return (\\n

Hello, {props.myObj.name}!

\\n )\\n }\\n})\\n```\\n\\nUsing element:\\n\\n```jsx\\n\\n```\\n\\nYou can set the default value by the static default Props property:\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n static defaultProps = {\\n\\t\\tname: 'Omi',\\n\\t\\tmyAge: 18\\n\\t}\\n\\n render(props) {\\n return (\\n

Hello, {props.name}! Age {props.myAge}

\\n )\\n }\\n})\\n```\"\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/20.83b21c96.chunk.js","module.exports = \"\\n## Props\\n\\nTransfer data to sub elements through props, such as:\\n\\n```jsx\\nimport { WeElement, define, render } from 'omi'\\n\\ndefine('my-element', class extends WeElement {\\n render(props) {\\n return (\\n

Hello, {props.name}!

\\n )\\n }\\n})\\n```\\n\\nUsing element:\\n\\n```jsx\\n\\n```\\n\\nYou can also pass any type of data to props:\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n render(props) {\\n return (\\n

Hello, {props.myObj.name}!

\\n )\\n }\\n})\\n```\\n\\nUsing element:\\n\\n```jsx\\n\\n```\\n\\nYou can set the default value by the static default Props property:\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n static defaultProps = {\\n\\t\\tname: 'Omi',\\n\\t\\tmyAge: 18\\n\\t}\\n\\n render(props) {\\n return (\\n

Hello, {props.name}! Age {props.myAge}

\\n )\\n }\\n})\\n```\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs/en/props.md\n// module id = 48\n// module chunks = 20"],"sourceRoot":""} \ No newline at end of file diff --git a/site/docs/static/js/20.f678728b.chunk.js b/site/docs/static/js/20.f678728b.chunk.js deleted file mode 100644 index dcacb817b..000000000 --- a/site/docs/static/js/20.f678728b.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -webpackJsonp([20],{48:function(n,e){n.exports="\n## Props\n\nTransfer data to sub elements through props, such as:\n\n```jsx\nimport { WeElement, define, render } from 'omi'\n\ndefine('my-element', class extends WeElement {\n render(props) {\n return (\n

Hello, {props.name}!

\n )\n }\n})\n```\n\nUsing element:\n\n```jsx\n\n```\n\nYou can also pass any type of data to props:\n\n```jsx\ndefine('my-element', class extends WeElement {\n render(props) {\n return (\n

Hello, {props.myObj.name}!

\n )\n }\n})\n```\n\nUsing element:\n\n```jsx\n\n```\n\nYou can set the default value by the static default Props property:\n\n```jsx\ndefine('my-first-element', class extends WeElement {\n static defaultProps = {\n\t\tname: 'Omi',\n\t\tmyAge: 18\n\t}\n\n render(props) {\n return (\n

Hello, {props.name}! Age {props.myAge}

\n )\n }\n})\n```"}}); -//# sourceMappingURL=20.f678728b.chunk.js.map \ No newline at end of file diff --git a/site/docs/static/js/20.f678728b.chunk.js.map b/site/docs/static/js/20.f678728b.chunk.js.map deleted file mode 100644 index 225ea9933..000000000 --- a/site/docs/static/js/20.f678728b.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../static/js/20.f678728b.chunk.js","docs/en/props.md"],"names":["webpackJsonp","48","module","exports"],"mappings":"AAAAA,cAAc,KAERC,GACA,SAAUC,EAAQC,GCHxBD,EAAAC,QAAA","file":"static/js/20.f678728b.chunk.js","sourcesContent":["webpackJsonp([20],{\n\n/***/ 48:\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n## Props\\n\\nTransfer data to sub elements through props, such as:\\n\\n```jsx\\nimport { WeElement, define, render } from 'omi'\\n\\ndefine('my-element', class extends WeElement {\\n render(props) {\\n return (\\n

Hello, {props.name}!

\\n )\\n }\\n})\\n```\\n\\nUsing element:\\n\\n```jsx\\n\\n```\\n\\nYou can also pass any type of data to props:\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n render(props) {\\n return (\\n

Hello, {props.myObj.name}!

\\n )\\n }\\n})\\n```\\n\\nUsing element:\\n\\n```jsx\\n\\n```\\n\\nYou can set the default value by the static default Props property:\\n\\n```jsx\\ndefine('my-first-element', class extends WeElement {\\n static defaultProps = {\\n\\t\\tname: 'Omi',\\n\\t\\tmyAge: 18\\n\\t}\\n\\n render(props) {\\n return (\\n

Hello, {props.name}! Age {props.myAge}

\\n )\\n }\\n})\\n```\"\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/20.f678728b.chunk.js","module.exports = \"\\n## Props\\n\\nTransfer data to sub elements through props, such as:\\n\\n```jsx\\nimport { WeElement, define, render } from 'omi'\\n\\ndefine('my-element', class extends WeElement {\\n render(props) {\\n return (\\n

Hello, {props.name}!

\\n )\\n }\\n})\\n```\\n\\nUsing element:\\n\\n```jsx\\n\\n```\\n\\nYou can also pass any type of data to props:\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n render(props) {\\n return (\\n

Hello, {props.myObj.name}!

\\n )\\n }\\n})\\n```\\n\\nUsing element:\\n\\n```jsx\\n\\n```\\n\\nYou can set the default value by the static default Props property:\\n\\n```jsx\\ndefine('my-first-element', class extends WeElement {\\n static defaultProps = {\\n\\t\\tname: 'Omi',\\n\\t\\tmyAge: 18\\n\\t}\\n\\n render(props) {\\n return (\\n

Hello, {props.name}! Age {props.myAge}

\\n )\\n }\\n})\\n```\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs/en/props.md\n// module id = 48\n// module chunks = 20"],"sourceRoot":""} \ No newline at end of file diff --git a/site/docs/static/js/25.7cdbb574.chunk.js b/site/docs/static/js/25.204510ac.chunk.js similarity index 54% rename from site/docs/static/js/25.7cdbb574.chunk.js rename to site/docs/static/js/25.204510ac.chunk.js index 3036611b7..035a62a2a 100644 --- a/site/docs/static/js/25.7cdbb574.chunk.js +++ b/site/docs/static/js/25.204510ac.chunk.js @@ -1,2 +1,2 @@ -webpackJsonp([25],{43:function(n,t){n.exports="## What's Omi \uff1f\n\nOmi (pronounced /\u02c8om\u026a/) is next front end framework base on Web Component. One framework. Mobile & desktop & mini program.\n\n Omi looks really neat!
\n\u3000\u3000\u3000\u3000\u2014 [Jason Miller (Creator of Preact)](https://twitter.com/_developit/)\n\n I really like the trend towards \"frameworks\" that:

\"export default class WeElement extends HTMLElement {..}\"

This one, Omi, is from Tencent.
\n\u3000\u3000\u3000\u3000\u2014 [Dion Almaer](https://twitter.com/dalmaer/)\n\n## Add Omi in One Minute\n\nThis page demonstrates using Omi **with no build tooling**:\n\n```html\n\\n\\n```\\n\\nYou can also use `like-button` tag directly in HTML:\\n\\n```jsx\\n\\n \\n\\n```\\n\\n- [Online Demo!](https://tencent.github.io/omi/assets/omi.html)\\n\\nYou can use JSX and ES2015+ to write the element:\\n\\n\\n```jsx {8-11}\\nimport { render, WeElement, define } from 'omi'\\n\\ndefine('my-counter', class extends WeElement {\\n data = {\\n count: 1\\n }\\n\\n static css = `\\n span{\\n color: red;\\n }`\\n\\n sub = () => {\\n this.data.count--\\n this.update()\\n }\\n\\n add = () => {\\n this.data.count++\\n this.update()\\n }\\n\\n render() {\\n return (\\n
\\n \\n {this.data.count}\\n \\n
\\n )\\n }\\n})\\n\\nrender(, 'body')\\n```\\n\\nLooking at the highlighted part above, you can style the components. For example, the scope of the span above is only within the components, and it does not pollute other components. So far you have successfully started Omi! You learned:\\n\\n* Add ** structure ** for components, such as JSX writing structure above\\n* Add ** behavior ** to the component, such as the `onClick'binding event above\\n* Add ** style ** to the component, such as `static css'above`\\n* Rendering components to body, of course, can also render components to any other component\\n\\n\\n\\nCongratulations!\"\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/25.204510ac.chunk.js","module.exports = \"## What's Omi ?\\n\\nOmi (pronounced /ˈomɪ/) is next front end framework base on Web Component. One framework. Mobile & desktop & mini program.\\n\\n Omi looks really neat!
\\n    — [Jason Miller (Creator of Preact)](https://twitter.com/_developit/)\\n\\n I really like the trend towards \\\"frameworks\\\" that:

\\\"export default class WeElement extends HTMLElement {..}\\\"

This one, Omi, is from Tencent.
\\n    — [Dion Almaer](https://twitter.com/dalmaer/)\\n\\n## Add Omi in One Minute\\n\\nThis page demonstrates using Omi **with no build tooling**:\\n\\n```html\\n\\n\\n```\\n\\nYou can also use `like-button` tag directly in HTML:\\n\\n```jsx\\n\\n \\n\\n```\\n\\n- [Online Demo!](https://tencent.github.io/omi/assets/omi.html)\\n\\nYou can use JSX and ES2015+ to write the element:\\n\\n\\n```jsx {8-11}\\nimport { render, WeElement, define } from 'omi'\\n\\ndefine('my-counter', class extends WeElement {\\n data = {\\n count: 1\\n }\\n\\n static css = `\\n span{\\n color: red;\\n }`\\n\\n sub = () => {\\n this.data.count--\\n this.update()\\n }\\n\\n add = () => {\\n this.data.count++\\n this.update()\\n }\\n\\n render() {\\n return (\\n
\\n \\n {this.data.count}\\n \\n
\\n )\\n }\\n})\\n\\nrender(, 'body')\\n```\\n\\nLooking at the highlighted part above, you can style the components. For example, the scope of the span above is only within the components, and it does not pollute other components. So far you have successfully started Omi! You learned:\\n\\n* Add ** structure ** for components, such as JSX writing structure above\\n* Add ** behavior ** to the component, such as the `onClick'binding event above\\n* Add ** style ** to the component, such as `static css'above`\\n* Rendering components to body, of course, can also render components to any other component\\n\\n\\n\\nCongratulations!\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs/en/introduction.md\n// module id = 43\n// module chunks = 25"],"sourceRoot":""} \ No newline at end of file diff --git a/site/docs/static/js/25.7cdbb574.chunk.js.map b/site/docs/static/js/25.7cdbb574.chunk.js.map deleted file mode 100644 index 3984857ca..000000000 --- a/site/docs/static/js/25.7cdbb574.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../static/js/25.7cdbb574.chunk.js","docs/en/introduction.md"],"names":["webpackJsonp","43","module","exports"],"mappings":"AAAAA,cAAc,KAERC,GACA,SAAUC,EAAQC,GCHxBD,EAAAC,QAAA","file":"static/js/25.7cdbb574.chunk.js","sourcesContent":["webpackJsonp([25],{\n\n/***/ 43:\n/***/ (function(module, exports) {\n\nmodule.exports = \"## What's Omi ?\\n\\nOmi (pronounced /ˈomɪ/) is next front end framework base on Web Component. One framework. Mobile & desktop & mini program.\\n\\n Omi looks really neat!
\\n    — [Jason Miller (Creator of Preact)](https://twitter.com/_developit/)\\n\\n I really like the trend towards \\\"frameworks\\\" that:

\\\"export default class WeElement extends HTMLElement {..}\\\"

This one, Omi, is from Tencent.
\\n    — [Dion Almaer](https://twitter.com/dalmaer/)\\n\\n## Add Omi in One Minute\\n\\nThis page demonstrates using Omi **with no build tooling**:\\n\\n```html\\n\\n\\n```\\n\\nYou can also use `like-button` tag directly in HTML:\\n\\n```jsx\\n\\n \\n\\n```\\n\\n- [Online Demo!](https://tencent.github.io/omi/assets/omi.html)\\n\\nThe HTML structure is written in hyperscript and JS is written in ES5. You can use JSX and ES2015 + instead.\\n\\n\\n```jsx {8-11}\\nimport { render, WeElement, define } from 'omi'\\n\\ndefine('my-counter', class extends WeElement {\\n data = {\\n count: 1\\n }\\n\\n static css = `\\n span{\\n color: red;\\n }`\\n\\n sub = () => {\\n this.data.count--\\n this.update()\\n }\\n\\n add = () => {\\n this.data.count++\\n this.update()\\n }\\n\\n render() {\\n return (\\n
\\n \\n {this.data.count}\\n \\n
\\n )\\n }\\n})\\n\\nrender(, 'body')\\n```\\n\\nLooking at the highlighted part above, you can style the components. For example, the scope of the span above is only within the components, and it does not pollute other components. So far you have successfully started Omi! You learned:\\n\\n* Add ** structure ** for components, such as JSX writing structure above\\n* Add ** behavior ** to the component, such as the `onClick'binding event above\\n* Add ** style ** to the component, such as `static css'above`\\n* Rendering components to body, of course, can also render components to any other component\\n\\n\\n\\nCongratulations!\"\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/25.7cdbb574.chunk.js","module.exports = \"## What's Omi ?\\n\\nOmi (pronounced /ˈomɪ/) is next front end framework base on Web Component. One framework. Mobile & desktop & mini program.\\n\\n Omi looks really neat!
\\n    — [Jason Miller (Creator of Preact)](https://twitter.com/_developit/)\\n\\n I really like the trend towards \\\"frameworks\\\" that:

\\\"export default class WeElement extends HTMLElement {..}\\\"

This one, Omi, is from Tencent.
\\n    — [Dion Almaer](https://twitter.com/dalmaer/)\\n\\n## Add Omi in One Minute\\n\\nThis page demonstrates using Omi **with no build tooling**:\\n\\n```html\\n\\n\\n```\\n\\nYou can also use `like-button` tag directly in HTML:\\n\\n```jsx\\n\\n \\n\\n```\\n\\n- [Online Demo!](https://tencent.github.io/omi/assets/omi.html)\\n\\nThe HTML structure is written in hyperscript and JS is written in ES5. You can use JSX and ES2015 + instead.\\n\\n\\n```jsx {8-11}\\nimport { render, WeElement, define } from 'omi'\\n\\ndefine('my-counter', class extends WeElement {\\n data = {\\n count: 1\\n }\\n\\n static css = `\\n span{\\n color: red;\\n }`\\n\\n sub = () => {\\n this.data.count--\\n this.update()\\n }\\n\\n add = () => {\\n this.data.count++\\n this.update()\\n }\\n\\n render() {\\n return (\\n
\\n \\n {this.data.count}\\n \\n
\\n )\\n }\\n})\\n\\nrender(, 'body')\\n```\\n\\nLooking at the highlighted part above, you can style the components. For example, the scope of the span above is only within the components, and it does not pollute other components. So far you have successfully started Omi! You learned:\\n\\n* Add ** structure ** for components, such as JSX writing structure above\\n* Add ** behavior ** to the component, such as the `onClick'binding event above\\n* Add ** style ** to the component, such as `static css'above`\\n* Rendering components to body, of course, can also render components to any other component\\n\\n\\n\\nCongratulations!\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs/en/introduction.md\n// module id = 43\n// module chunks = 25"],"sourceRoot":""} \ No newline at end of file diff --git a/site/docs/static/js/4.1a938e71.chunk.js b/site/docs/static/js/4.1a938e71.chunk.js new file mode 100644 index 000000000..ad6b39c9d --- /dev/null +++ b/site/docs/static/js/4.1a938e71.chunk.js @@ -0,0 +1,2 @@ +webpackJsonp([4],{64:function(n,e){n.exports="\n## Props\n\n\u901a\u8fc7 Props \u5411\u5b50\u7ec4\u4ef6\u4f20\u9012\u6570\u636e\uff0c\u6bd4\u5982\uff1a\n\n```jsx\nimport { WeElement, define, render } from 'omi'\n\ndefine('my-element', class extends WeElement {\n render(props) {\n return (\n

Hello, {props.name}!

\n )\n }\n})\n```\n\n\u4f7f\u7528\u5143\u7d20:\n\n```jsx\n\n```\n\n\u4f60\u4e5f\u53ef\u4ee5\u4f20\u4efb\u610f\u7c7b\u578b\u7684\u6570\u636e\u7ed9 props:\n\n```jsx\ndefine('my-element', class extends WeElement {\n render(props) {\n return (\n

Hello, {props.myObj.name}!

\n )\n }\n})\n```\n\n\u4f7f\u7528\u5143\u7d20:\n\n```jsx\n\n```\n\n\u4f60\u53ef\u4ee5\u901a\u8fc7\u9759\u6001\u5c5e\u6027 `static defaultProps` \u6765\u8bbe\u7f6e\u9ed8\u8ba4\u503c:\n\n```jsx\ndefine('my-element', class extends WeElement {\n static defaultProps = {\n\t\tname: 'Omi',\n\t\tmyAge: 18\n\t}\n\n render(props) {\n return (\n

Hello, {props.name}! Age {props.myAge}

\n )\n }\n})\n```"}}); +//# sourceMappingURL=4.1a938e71.chunk.js.map \ No newline at end of file diff --git a/site/docs/static/js/4.1a938e71.chunk.js.map b/site/docs/static/js/4.1a938e71.chunk.js.map new file mode 100644 index 000000000..d7eec4b18 --- /dev/null +++ b/site/docs/static/js/4.1a938e71.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../static/js/4.1a938e71.chunk.js","docs/zh-cn/props.md"],"names":["webpackJsonp","64","module","exports"],"mappings":"AAAAA,cAAc,IAERC,GACA,SAAUC,EAAQC,GCHxBD,EAAAC,QAAA","file":"static/js/4.1a938e71.chunk.js","sourcesContent":["webpackJsonp([4],{\n\n/***/ 64:\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n## Props\\n\\n通过 Props 向子组件传递数据,比如:\\n\\n```jsx\\nimport { WeElement, define, render } from 'omi'\\n\\ndefine('my-element', class extends WeElement {\\n render(props) {\\n return (\\n

Hello, {props.name}!

\\n )\\n }\\n})\\n```\\n\\n使用元素:\\n\\n```jsx\\n\\n```\\n\\n你也可以传任意类型的数据给 props:\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n render(props) {\\n return (\\n

Hello, {props.myObj.name}!

\\n )\\n }\\n})\\n```\\n\\n使用元素:\\n\\n```jsx\\n\\n```\\n\\n你可以通过静态属性 `static defaultProps` 来设置默认值:\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n static defaultProps = {\\n\\t\\tname: 'Omi',\\n\\t\\tmyAge: 18\\n\\t}\\n\\n render(props) {\\n return (\\n

Hello, {props.name}! Age {props.myAge}

\\n )\\n }\\n})\\n```\"\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/4.1a938e71.chunk.js","module.exports = \"\\n## Props\\n\\n通过 Props 向子组件传递数据,比如:\\n\\n```jsx\\nimport { WeElement, define, render } from 'omi'\\n\\ndefine('my-element', class extends WeElement {\\n render(props) {\\n return (\\n

Hello, {props.name}!

\\n )\\n }\\n})\\n```\\n\\n使用元素:\\n\\n```jsx\\n\\n```\\n\\n你也可以传任意类型的数据给 props:\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n render(props) {\\n return (\\n

Hello, {props.myObj.name}!

\\n )\\n }\\n})\\n```\\n\\n使用元素:\\n\\n```jsx\\n\\n```\\n\\n你可以通过静态属性 `static defaultProps` 来设置默认值:\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n static defaultProps = {\\n\\t\\tname: 'Omi',\\n\\t\\tmyAge: 18\\n\\t}\\n\\n render(props) {\\n return (\\n

Hello, {props.name}! Age {props.myAge}

\\n )\\n }\\n})\\n```\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs/zh-cn/props.md\n// module id = 64\n// module chunks = 4"],"sourceRoot":""} \ No newline at end of file diff --git a/site/docs/static/js/4.2c975446.chunk.js b/site/docs/static/js/4.2c975446.chunk.js deleted file mode 100644 index d6054af6e..000000000 --- a/site/docs/static/js/4.2c975446.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -webpackJsonp([4],{64:function(n,e){n.exports="\n## Props\n\n\u901a\u8fc7 Props \u5411\u5b50\u7ec4\u4ef6\u4f20\u9012\u6570\u636e\uff0c\u6bd4\u5982\uff1a\n\n```jsx\nimport { WeElement, define, render } from 'omi'\n\ndefine('my-element', class extends WeElement {\n render(props) {\n return (\n

Hello, {props.name}!

\n )\n }\n})\n```\n\n\u4f7f\u7528\u5143\u7d20:\n\n```jsx\n\n```\n\n\u4f60\u4e5f\u53ef\u4ee5\u4f20\u4efb\u610f\u7c7b\u578b\u7684\u6570\u636e\u7ed9 props:\n\n```jsx\ndefine('my-element', class extends WeElement {\n render(props) {\n return (\n

Hello, {props.myObj.name}!

\n )\n }\n})\n```\n\n\u4f7f\u7528\u5143\u7d20:\n\n```jsx\n\n```\n\n\u4f60\u53ef\u4ee5\u901a\u8fc7\u9759\u6001\u5c5e\u6027 `static defaultProps` \u6765\u8bbe\u7f6e\u9ed8\u8ba4\u503c:\n\n```jsx\ndefine('my-first-element', class extends WeElement {\n static defaultProps = {\n\t\tname: 'Omi',\n\t\tmyAge: 18\n\t}\n\n render(props) {\n return (\n

Hello, {props.name}! Age {props.myAge}

\n )\n }\n})\n```"}}); -//# sourceMappingURL=4.2c975446.chunk.js.map \ No newline at end of file diff --git a/site/docs/static/js/4.2c975446.chunk.js.map b/site/docs/static/js/4.2c975446.chunk.js.map deleted file mode 100644 index dd9ce7cbf..000000000 --- a/site/docs/static/js/4.2c975446.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../static/js/4.2c975446.chunk.js","docs/zh-cn/props.md"],"names":["webpackJsonp","64","module","exports"],"mappings":"AAAAA,cAAc,IAERC,GACA,SAAUC,EAAQC,GCHxBD,EAAAC,QAAA","file":"static/js/4.2c975446.chunk.js","sourcesContent":["webpackJsonp([4],{\n\n/***/ 64:\n/***/ (function(module, exports) {\n\nmodule.exports = \"\\n## Props\\n\\n通过 Props 向子组件传递数据,比如:\\n\\n```jsx\\nimport { WeElement, define, render } from 'omi'\\n\\ndefine('my-element', class extends WeElement {\\n render(props) {\\n return (\\n

Hello, {props.name}!

\\n )\\n }\\n})\\n```\\n\\n使用元素:\\n\\n```jsx\\n\\n```\\n\\n你也可以传任意类型的数据给 props:\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n render(props) {\\n return (\\n

Hello, {props.myObj.name}!

\\n )\\n }\\n})\\n```\\n\\n使用元素:\\n\\n```jsx\\n\\n```\\n\\n你可以通过静态属性 `static defaultProps` 来设置默认值:\\n\\n```jsx\\ndefine('my-first-element', class extends WeElement {\\n static defaultProps = {\\n\\t\\tname: 'Omi',\\n\\t\\tmyAge: 18\\n\\t}\\n\\n render(props) {\\n return (\\n

Hello, {props.name}! Age {props.myAge}

\\n )\\n }\\n})\\n```\"\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/4.2c975446.chunk.js","module.exports = \"\\n## Props\\n\\n通过 Props 向子组件传递数据,比如:\\n\\n```jsx\\nimport { WeElement, define, render } from 'omi'\\n\\ndefine('my-element', class extends WeElement {\\n render(props) {\\n return (\\n

Hello, {props.name}!

\\n )\\n }\\n})\\n```\\n\\n使用元素:\\n\\n```jsx\\n\\n```\\n\\n你也可以传任意类型的数据给 props:\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n render(props) {\\n return (\\n

Hello, {props.myObj.name}!

\\n )\\n }\\n})\\n```\\n\\n使用元素:\\n\\n```jsx\\n\\n```\\n\\n你可以通过静态属性 `static defaultProps` 来设置默认值:\\n\\n```jsx\\ndefine('my-first-element', class extends WeElement {\\n static defaultProps = {\\n\\t\\tname: 'Omi',\\n\\t\\tmyAge: 18\\n\\t}\\n\\n render(props) {\\n return (\\n

Hello, {props.name}! Age {props.myAge}

\\n )\\n }\\n})\\n```\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs/zh-cn/props.md\n// module id = 64\n// module chunks = 4"],"sourceRoot":""} \ No newline at end of file diff --git a/site/docs/static/js/cn.1a8e2bdb.js b/site/docs/static/js/cn.4ef15d56.js similarity index 99% rename from site/docs/static/js/cn.1a8e2bdb.js rename to site/docs/static/js/cn.4ef15d56.js index 3e67f731a..350e22049 100644 --- a/site/docs/static/js/cn.1a8e2bdb.js +++ b/site/docs/static/js/cn.4ef15d56.js @@ -1,2 +1,2 @@ -!function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n=window.webpackJsonp;window.webpackJsonp=function(t,r,i){for(var a,s,u=0,c=[];u2;)Ee.push(arguments[a]);for(t&&null!=t.children&&(Ee.length||Ee.push(t.children),delete t.children);Ee.length;)if((o=Ee.pop())&&void 0!==o.pop)for(a=o.length;a--;)Ee.push(o[a]);else"boolean"===typeof o&&(o=null),(i="function"!==typeof e)&&(null==o?o="":"number"===typeof o?o=String(o):"string"!==typeof o&&(i=!1)),i&&r?s[s.length-1]+=o:s===je?s=[o]:s.push(o),r=i;var u=new n;return u.nodeName=e,u.children=s,u.attributes=null==t?void 0:t,u.key=null==t?void 0:t.key,void 0!==Oe.vnode&&Oe.vnode(u),u}function o(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function i(e,t){for(var n,r,i=o(e),a=1;a2?[].slice.call(arguments,2):e.children)}function d(e){1==Ue.push(e)&&(Oe.debounceRendering||Be)(h)}function h(){for(var e;e=Ue.pop();)X(e)}function y(e,t,n){if("string"===typeof t||"number"===typeof t)return void 0!==e.splitText;if("string"===typeof t.nodeName){var r=Ie[t.nodeName];return r?n||e._componentConstructor===r:!e._componentConstructor&&m(e,t.nodeName)}return n||e._componentConstructor===t.nodeName}function m(e,t){return e.normalizedNodeName===t||e.nodeName.toLowerCase()===t.toLowerCase()}function b(e){var t=a({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===t[r]&&(t[r]=n[r]);return t}function v(e,t){var n=t?Oe.doc.createElementNS("http://www.w3.org/2000/svg",e):Oe.doc.createElement(e);return n.normalizedNodeName=e,n}function g(e){for(var t=e.replace(/\/\*(.|\s)*?\*\//g," ").replace(/\s+/g," "),n={},r=t.match(/ ?(.*?) ?{([^}]*)}/)||[o,i,t],o=r[0],i=r[1],a=r[2],s=a.split(";").map(function(e){return e.split(":").map(function(e){return e&&e.trim()})}),u=s,u=Array.isArray(u),u=0,u=u||u[Symbol.iterator]();;){var c;if(u){if(u>=u.length)break;c=u[u++]}else{if(u=u.next(),u.done)break;c=u.value}var l=c,f=l[0],p=l[1];n[function(e){return e.replace(/\W+\w/g,function(e){return e.slice(-1).toUpperCase()})}(f)]=p}return n}function w(e){var t=e.parentNode;t&&t.removeChild(e)}function A(e,t,n,r,o){if("className"===t&&(t="class"),"key"===t);else if("ref"===t)s(n,null),s(r,e);else if("class"!==t||o)if("style"===t)if(Oe.isWeb){if(r&&"string"!==typeof r&&"string"!==typeof n||(e.style.cssText=r||""),r&&"object"===("undefined"===typeof r?"undefined":_e(r))){if("string"!==typeof n)for(var i in n)i in r||(e.style[i]="");for(var i in r)e.style[i]="number"===typeof r[i]&&!1===Me.test(i)?r[i]+"px":r[i]}}else{var a=n,u=r;"string"===typeof n&&(a=g(n)),"string"==typeof r&&(u=g(r));var c={},l=!1;if(a){for(var f in a)"object"!=("undefined"===typeof u?"undefined":_e(u))||f in u||(c[f]="",l=!0);for(var p in u)u[p]!==a[p]&&(c[p]=u[p],l=!0);l&&e.setStyles(c)}else e.setStyles(u)}else if("dangerouslySetInnerHTML"===t)r&&(e.innerHTML=r.__html||"");else if("o"==t[0]&&"n"==t[1]){var d=t!==(t=t.replace(/Capture$/,""));t=t.toLowerCase().substring(2),r?n||(e.addEventListener(t,_,d),"tap"==t&&(e.addEventListener("touchstart",O,d),e.addEventListener("touchend",E,d))):(e.removeEventListener(t,_,d),"tap"==t&&(e.removeEventListener("touchstart",O,d),e.removeEventListener("touchend",E,d))),(e._listeners||(e._listeners={}))[t]=r}else if("list"!==t&&"type"!==t&&!o&&t in e)x(e,t,null==r?"":r),null!=r&&!1!==r||e.removeAttribute(t);else{var h=o&&t!==(t=t.replace(/^xlink:?/,""));null==r||!1===r?h?e.removeAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase()):e.removeAttribute(t):"function"!==typeof r&&(h?e.setAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase(),r):e.setAttribute(t,r))}else e.className=r||""}function x(e,t,n){try{e[t]=n}catch(e){}}function _(e){return this._listeners[e.type](Oe.event&&Oe.event(e)||e)}function O(e){this.___touchX=e.touches[0].pageX,this.___touchY=e.touches[0].pageY,this.___scrollTop=document.body.scrollTop}function E(e){Math.abs(e.changedTouches[0].pageX-this.___touchX)<30&&Math.abs(e.changedTouches[0].pageY-this.___touchY)<30&&Math.abs(document.body.scrollTop-this.___scrollTop)<30&&this.dispatchEvent(new CustomEvent("tap",{detail:e}))}function j(e){for(var t=0,n=Oe.styleCache.length;t0||t.children.length>0)return!0;for(n in t)if("children"!=n){var r=_e(t[n]);if("function"==r||"object"==r)return!0;if(t[n]!=e[n])return!0}}function X(e,t,n,r){if(!e._disable){var o,i,s,u=e.props,c=e.data,l=e.context,f=e.prevProps||u,p=e.prevState||c,d=e.prevContext||l,h=e.base,y=e.nextBase,m=h||y,v=e._component,g=!1;if(h&&(e.props=f,e.data=p,e.context=d,e.store||2==t||W(f,u)?(g=!1,e.beforeUpdate&&e.beforeUpdate(u,c,l)):g=!0,e.props=u,e.data=c,e.context=l),e.prevProps=e.prevState=e.prevContext=e.nextBase=null,!g){e.beforeRender&&e.beforeRender(),o=e.render(u,c,l),(e.constructor.css||e.css)&&k(o,"_s"+j(e.constructor)),R(o,e.scopedCssAttr),e.getChildContext&&(l=a(a({},l),e.getChildContext()));var w,A,x=o&&o.nodeName,_=Oe.mapping[x];if(_){var O=b(o);i=v,i&&i.constructor===_&&O.key==i.__key?Q(i,O,1,l,!1):(w=i,e._component=i=H(_,O,l),i.nextBase=i.nextBase||y,i._parentComponent=e,Q(i,O,0,l,!1),X(i,1,n,!0)),A=i.base}else s=m,w=v,w&&(s=e._component=null),(m||1===t)&&(s&&(s._component=null),A=M(s,o,l,n||!h,m&&m.parentNode,!0));if(m&&A!==m&&i!==v){var E=m.parentNode;E&&A!==E&&(E.replaceChild(A,m),w||(m._component=null,L(m,!1)))}if(w&&J(w),e.base=A,A&&!r){for(var S=e,C=e;C=C._parentComponent;)(S=C).base=A;A._component=S,A._componentConstructor=S.constructor}}if(!h||n?ze.unshift(e):g||(e.afterUpdate&&e.afterUpdate(f,p,d),e.updated&&e.updated(f,p,d),Oe.afterUpdate&&Oe.afterUpdate(e)),null!=e._renderCallbacks)for(;e._renderCallbacks.length;)e._renderCallbacks.pop().call(e);De||r||B()}}function q(e,t,n,r){for(var o=e&&e._component,i=o,a=e,s=o&&e._componentConstructor===t.nodeName,u=s,c=b(t);o&&!u&&(o=o._parentComponent);)u=o.constructor===t.nodeName;return o&&u&&(!r||o._component)?(Q(o,c,3,n,r),e=o.base):(i&&!s&&(J(i),e=a=null),o=H(t.nodeName,c,n,t),e&&!o.nextBase&&(o.nextBase=e,a=null),Q(o,c,1,n,r),e=o.base,a&&e!==a&&(a._component=null,L(a,!1))),e}function J(e){Oe.beforeUnmount&&Oe.beforeUnmount(e);var t=e.base;if(e._disable=!0,e.uninstall&&e.uninstall(),e.store&&e.store.instances)for(var n=0,r=e.store.instances.length;n0&&(this.instances.forEach(function(o){(r||n.updateAll||o.constructor.updatePath&&te(t,o.constructor.updatePath))&&(o.use=l(e.data,o.constructor.use),o.update())}),this.onChange&&this.onChange(t))}}function ee(e,t){if(!e)return!1;for(var n in t){if(e.indexOf(n)>-1)return!0;for(var r=0,o=e.length;r0)return{class:he.apply(null,n)}}function me(e){var t=e.base;if(t)for(;t.parentNode;){if(t.parentNode._component)return t.parentNode._component;t=t.parentNode}}function be(e){var t="";for(var n in e){var r=e[n];null!=r&&(t&&(t+=" "),t+=nt[n]||(nt[n]=n.replace(/([A-Z])/g,"-$1").toLowerCase()),t+=": ",t+=r,"number"===typeof r&&!1===IS_NON_DIMENSIONAL.test(n)&&(t+="px"),t+=";")}return t||void 0}function ve(e,t,n,r){n=n||{},t=Object.assign({scopedCSS:!0},t);var o={},i=ge(e,t,n,r,o);return{css:Object.values(o),html:i}}function ge(e,t,n,r,o){if(null==e||"boolean"===typeof e)return"";var i=e.nodeName,a=e.attributes,s=!1,u=t.pretty,c=u&&"string"===typeof u?u:"\t";if("object"!==("undefined"===typeof e?"undefined":_e(e))&&!i)return Ze(e);var l=Ke[i];if(l){s=!0;var f,p=Ae(e),d=new l(p,n);if(d._disable=d.__x=!0,d.props=p,d.store=n,d.install&&d.install(),d.beforeRender&&d.beforeRender(),f=d.render(d.props,d.data,d.store),t.scopedCSS){if(d.constructor.css||d.css){var h=d.constructor.css?d.constructor.css:"function"===typeof d.css?d.css():d.css,y="_s"+j(d.constructor);o[y]='",k(f,"_s"+j(d.constructor))}d.scopedCSSAttr=e.css,R(f,d.scopedCSSAttr)}return ge(f,t,n,!1,o)}var m,b="";if(a){var v=Object.keys(a);t&&!0===t.sortAttributes&&v.sort();for(var g=0;g]/)&&(t&&t.allAttributes||"key"!==w&&"ref"!==w))){if("className"===w){if(a.class)continue;w="class"}else r&&w.match(/^xlink:?./)&&(w=w.toLowerCase().replace(/^xlink:?/,"xlink:"));"style"===w&&A&&"object"===("undefined"===typeof A?"undefined":_e(A))&&(A=be(A));var x=t.attributeHook&&t.attributeHook(w,A,n,t,s);if(x||""===x)b+=x;else if("dangerouslySetInnerHTML"===w)m=A&&A.__html;else if((A||0===A||""===A)&&"function"!==typeof A){if((!0===A||""===A)&&(A=w,!t||!t.xml)){b+=" "+w;continue}b+=" "+w+'="'+Ze(A)+'"'}}}}if(u){var _=b.replace(/^\n\s*/," ");_===b||~_.indexOf("\n")?u&&~b.indexOf("\n")&&(b+="\n"):b=_}if(b="<"+i+b+">",String(i).match(/[\s\n\\\/='"\0<>]/))throw b;var O=String(i).match(et);O&&(b=b.replace(/>$/," />"));var E=[];if(m)u&&tt(m)&&(m="\n"+c+Ye(m,c)),b+=m;else if(e.children){for(var C=u&&~b.indexOf("\n"),g=0;g";return O||(u&&~b.indexOf("\n")&&(b+="\n"),b+=""),b}function we(e,t){for(var n in t)e[n]=t[n];return e}function Ae(e){var t=we({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===t[r]&&(t[r]=n[r]);return t}function xe(){return{}}Object.defineProperty(t,"__esModule",{value:!0});var _e="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Oe={scopedStyle:!0,mapping:{},isWeb:!0,staticStyleMapping:{},doc:"object"===("undefined"===typeof document?"undefined":_e(document))?document:null,root:function(){return"object"===("undefined"===typeof e?"undefined":_e(e))&&e&&e.Math===Math&&e.Array===Array?e:"undefined"!==typeof self?self:"undefined"!==typeof window?window:"undefined"!==typeof e?e:function(){return this}()}(),styleCache:[]},Ee=[],je=[],Se=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable;if("undefined"!==typeof Element&&!Element.prototype.addEventListener){var ke=function(e){e||(e=window.event);for(var t=0,n=0,r=Te[e.type];n8&&(Ne=!0)}var Be=Ne?Promise.resolve().then.bind(Promise.resolve()):setTimeout,Me=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,Ue=[],Ie=Oe.mapping,Le=0,ze=[],De=0,Fe=!1,He=!1,$e={},Ve=function e(t,n,r){var o=function(t,n,r){t.$observer||(t.$observer=this);var o=t.$observer,i=[];e.isArray(t)&&(0===t.length&&(t.$observeProps={},t.$observeProps.$observerPath="#"),o.mock(t));for(var a in t)t.hasOwnProperty(a)&&(r?e.isArray(n)&&e.isInArray(n,a)?(i.push(a),o.watch(t,a)):e.isString(n)&&a==n&&(i.push(a),o.watch(t,a)):(i.push(a),o.watch(t,a)));o.target=t,o.propertyChangedHandler||(o.propertyChangedHandler=[]);var s=r||n;o.propertyChangedHandler.push({all:!r,propChanged:s,eventPropArr:i})};return o.prototype={onPropertyChanged:function(t,n,r,o,i){if(n!==r&&this.propertyChangedHandler)for(var a=e._getRootName(t,i),s=0,u=this.propertyChangedHandler.length;s-1;)if(t===e[n])return!0;return!1},Ve.isFunction=function(e){return"[object Function]"==Object.prototype.toString.call(e)},Ve._getRootName=function(e,t){return"#"===t?e:t.split("-")[1]},Ve.add=function(e,t){e.$observer.watch(e,t)},Ve.set=function(e,t,n,r){r||(e[t]=n),e.$observer.watch(e,t),r&&(e[t]=n)},Array.prototype.size=function(e){this.length=e};var Ge=[],Qe=[],We=0,Xe=function(){function e(t,n){Z(this,e),this.props=i(c(this.constructor.props),this.constructor.defaultProps,t),this.elementId=We++,this.data=this.constructor.data||this.data||{},this._preCss=null,this.store=n}return e.prototype.update=function(e){this._willUpdate=!0,e&&(this._renderCallbacks=this._renderCallbacks||[]).push(e),X(this,2),Oe.componentChange&&Oe.componentChange(this,this.base),this._willUpdate=!1},e.prototype.fire=function(e,t){var n=this;Object.keys(this.props).every(function(r){return"on"+e.toLowerCase()!==r.toLowerCase()||(n.props[r]({detail:t}),!1)})},e.prototype.render=function(){},e}();Xe.is="WeElement";var qe=function(e){function t(){return fe(this,t),pe(this,e.apply(this,arguments))}return de(t,e),t.prototype.beforeInstall=function(){this.data=this.vm.data},t}(Xe);qe.observe=!0,qe.mergeUpdate=!0;var Je={}.hasOwnProperty,Ze=function(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""")},Ye=function(e,t){return String(e).replace(/(\n+)/g,"$1"+(t||"\t"))},Ke=Oe.mapping,et=/^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/,tt=function(e,t,n){return String(e).length>(t||40)||!n&&-1!==String(e).indexOf("\n")||-1!==String(e).indexOf("<")},nt={},rt=Xe,ot=oe;Oe.root.Omi={h:r,createElement:r,cloneElement:p,createRef:xe,Component:Xe,render:Y,rerender:h,options:Oe,WeElement:rt,define:oe,rpx:le,ModelView:qe,defineElement:ot,classNames:he,extractClass:ye,getHost:me,renderToString:ve},Oe.root.omi=Oe.root.Omi,Oe.root.Omi.version="omio-2.0.5";var it={h:r,createElement:r,cloneElement:p,createRef:xe,Component:Xe,render:Y,rerender:h,options:Oe,WeElement:rt,define:oe,rpx:le,ModelView:qe,defineElement:ot,classNames:he,extractClass:ye,getHost:me,renderToString:ve};t.default=it,t.h=r,t.createElement=r,t.cloneElement=p,t.createRef=xe,t.Component=Xe,t.render=Y,t.rerender=h,t.options=Oe,t.WeElement=rt,t.define=oe,t.rpx=le,t.ModelView=qe,t.defineElement=ot,t.classNames=he,t.extractClass=ye,t.getHost=me,t.renderToString=ve}).call(t,n(2))},function(e,t,n){"use strict";function r(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"===typeof btoa){var i=o(r);return[n].concat(r.sources.map(function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"})).concat([i]).join("\n")}return[n].join("\n")}function o(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=r(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n}).join("")},t.i=function(e,n){"string"===typeof e&&(e=[[null,e,""]]);for(var r={},o=0;oc){for(var t=0,n=a.length-u;t-1?t:e}function d(e,t){t=t||{};var n=t.body;if(e instanceof d){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new o(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new o(t.headers)),this.method=p(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function h(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function y(e){var t=new o;return e.split(/\r?\n/).forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}}),t}function m(e,t){t||(t={}),this.type="default",this.status="status"in t?t.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new o(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){var b={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(b.arrayBuffer)var v=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],g=function(e){return e&&DataView.prototype.isPrototypeOf(e)},w=ArrayBuffer.isView||function(e){return e&&v.indexOf(Object.prototype.toString.call(e))>-1};o.prototype.append=function(e,r){e=t(e),r=n(r);var o=this.map[e];this.map[e]=o?o+","+r:r},o.prototype.delete=function(e){delete this.map[t(e)]},o.prototype.get=function(e){return e=t(e),this.has(e)?this.map[e]:null},o.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},o.prototype.set=function(e,r){this.map[t(e)]=n(r)},o.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},o.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),r(e)},o.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),r(e)},o.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),r(e)},b.iterable&&(o.prototype[Symbol.iterator]=o.prototype.entries);var A=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];d.prototype.clone=function(){return new d(this,{body:this._bodyInit})},f.call(d.prototype),f.call(m.prototype),m.prototype.clone=function(){return new m(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new o(this.headers),url:this.url})},m.error=function(){var e=new m(null,{status:0,statusText:""});return e.type="error",e};var x=[301,302,303,307,308];m.redirect=function(e,t){if(-1===x.indexOf(t))throw new RangeError("Invalid status code");return new m(null,{status:t,headers:{location:e}})},e.Headers=o,e.Request=d,e.Response=m,e.fetch=function(e,t){return new Promise(function(n,r){var o=new d(e,t),i=new XMLHttpRequest;i.onload=function(){var e={status:i.status,statusText:i.statusText,headers:y(i.getAllResponseHeaders()||"")};e.url="responseURL"in i?i.responseURL:e.headers.get("X-Request-URL");var t="response"in i?i.response:i.responseText;n(new m(t,e))},i.onerror=function(){r(new TypeError("Network request failed"))},i.ontimeout=function(){r(new TypeError("Network request failed"))},i.open(o.method,o.url,!0),"include"===o.credentials&&(i.withCredentials=!0),"responseType"in i&&b.blob&&(i.responseType="blob"),o.headers.forEach(function(e,t){i.setRequestHeader(t,e)}),i.send("undefined"===typeof o._bodyInit?null:o._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!==typeof self?self:void 0)},function(e,t,n){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}var o=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,s,u=r(e),c=1;c0)return!1;return!0}},{key:"render",value:function(){if(this.demo)return Omi.h("div",null,this.show&&Omi.h("iframe",{style:"height:"+(window.innerHeight-59)+"px",src:this.demo}),!this.show&&Omi.h("div",{class:"switch code",onClick:this.onShow},Omi.h("img",{src:n(32)})),this.show&&Omi.h("div",{class:"switch close",onClick:this.onClose},Omi.h("img",{src:n(33)})))}}]),t}(s.WeElement))},function(e,t,n){var r=n(31);e.exports="string"===typeof r?r:r.toString()},function(e,t,n){t=e.exports=n(1)(void 0),t.push([e.i,"iframe{\n width: 750px;\n height: 100%;\n top: 60px;\n right: 0;\n position: fixed;\n border: none;\n z-index: 9999;\n border-left: 2px solid #24292E; \n}\n\n.switch{\n width: 40px;\n height: 40px;\n background-color: #AA0000;\n border-radius: 50%;\n position: fixed;\n right: 50px;\n bottom: 50px;\n cursor: pointer;\n text-align: center;\n z-index: 10000;\n}\n\n.switch img{\n width: 30px;\n height: 30px;\n margin-top:5px; \n}\n\n.switch.close img{\n margin-top:10px; \n width: 20px;\n height: 20px;\n}\n\n\n@media only screen and (max-width: 768px) {\n iframe{\n width: 100%;\n }\n}\n",""])},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC"},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg=="},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n768};var o=0;this.map={},this.positionMap={},a.default.menus[this.data.lan].forEach(function(e,t){e.list.forEach(function(e,r){e.id=o++,e.position=[t,r],n.map[e.id]=e,e.index=t,e.subIndex=r,n.positionMap[t+"-"+r]=e})}),this.preIndex=0,this.preSubIndex=0}return o(e,[{key:"getNext",value:function(){var e=this.positionMap[this.data.position.join("-")];if(e)return this.map[e.id+1]}},{key:"getPre",value:function(){var e=this.positionMap[this.data.position.join("-")];if(e)return this.map[e.id-1]}},{key:"init",value:function(){var e=this;this.remarkable=new Remarkable({html:!0}),""===location.hash&&(this.data.position=[0,0],this.getMarkDown(this.data.menus[this.data.lan][0].list[0].md,this.data.lan,function(t){e.data.html=e.remarkable.render(t)})),this.initRouter()}},{key:"toogleSidebar",value:function(){this.data.sideBarShow=!this.data.sideBarShow}},{key:"hideSidebar",value:function(){this.data.sideBarShow=!1}},{key:"initRouter",value:function(){var e=this,t=this.data.menus[this.data.lan];t.forEach(function(n){n.list.forEach(function(n){route("/"+n.md,function(r){t[e.preIndex].list[e.preSubIndex].selected=!1,e.preIndex=r.query.index,e.preSubIndex=r.query.subIndex,e.data.position=[Number(r.query.index),Number(r.query.subIndex)],e.data.sideBarShow=!1,e.getMarkDown(n.md,e.data.lan,function(t){e.data.html=e.remarkable.render(t),document.body.scrollTop=0,document.documentElement.scrollTop=0})})})})}},{key:"getMarkDown",value:function(e,t,r){n(38)("./"+t+"/"+e+".md").then(function(e){r(e)})}}]),e}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={menus:{"zh-cn":[{title:"Omi",list:[{name:"\u7b80\u4ecb",md:"introduction"},{name:"\u5b89\u88c5",md:"installation"}]},{title:"\u57fa\u7840\u6982\u5ff5",list:[{name:"JSX",md:"jsx"},{name:"Props",md:"props"},{name:"\u4e8b\u4ef6",md:"event"},{name:"\u751f\u547d\u5468\u671f",md:"lifecycle"},{name:"Ref",md:"ref"},{name:"Class",md:"class"},{name:"Store",md:"store"},{name:"CSS",md:"css"}]},{title:"\u5176\u4ed6",list:[{name:"\u751f\u6001\u4e0e\u4f8b\u5b50",md:"other"},{name:"Mps",md:"mps"},{name:"Omip \u591a\u7aef\u5f00\u53d1",md:"omip"},{name:"\u670d\u52a1\u7aef\u6e32\u67d3",md:"ssr"},{name:"\u8def\u7531",md:"router"},{name:"Omiu",md:"omiu"}]}],en:[{title:"Omi",list:[{name:"Introduction",md:"introduction"},{name:"Installation",md:"installation"}]},{title:"Base",list:[{name:"JSX",md:"jsx"},{name:"Props",md:"props"},{name:"Event",md:"event"},{name:"Lifecycle",md:"lifecycle"},{name:"Ref",md:"ref"},{name:"Class",md:"class"},{name:"Store",md:"store"},{name:"CSS",md:"css"}]},{title:"Other",list:[{name:"Ecosystem and examples",md:"other"},{name:"Server-Side Rendering",md:"ssr"},{name:"Router",md:"router"},{name:"Omiu",md:"omiu"}]}]}};t.default=r},function(e,t,n){"use strict";(function(e){function r(e){var t=!1;window.history.length!==l.historyLength||l.route._routeByTo||(t=!0),l.route._routeByTo=!1,l.historyLength=window.history.length;var n=!1;if("hashchange"===e.type&&l.route.before&&(n=!1===l.route.before(e)),!n){var r=window.location.hash.replace("#","");""===r&&(r="/");var i=!0;Object.keys(c).every(function(e){var n=r.split("?")[0].match(c[e].reg);if(n){var s=e.match(c[e].reg);return l.route.params=o(n,s),l.route.query=a(r),c[e].callback({params:l.route.params,query:a(r),data:l.route.data,byNative:t}),l.route.data=null,i=!1,!1}return!0}),i&&c["*"]&&c["*"].callback({byNative:t}),"hashchange"===e.type&&l.route.after&&l.route.after(e)}}function o(e,t){var n={};return e.forEach(function(e,r){r>0&&(n[t[r].replace(":","")]=e)}),n}function i(e,t){c[e]={callback:t,reg:u(e)}}function a(e){e=e.replace(/#.*$/,"");var t,n=e.split(/[?&]/).slice(1),r={};for(t=0;t-1)&&(b=_,u=u.slice(0,x))}u&&(r.push(u),u="",f=!1);var O="+"===A||"*"===A,E="?"===A||"*"===A,j=g||w,S=b||c;r.push({name:v||o++,prefix:b,delimiter:S,optional:E,repeat:O,pattern:j?s(j):"[^"+a(S===c?S:S+c)+"]+?"})}}return(u||i2;)Ee.push(arguments[a]);for(t&&null!=t.children&&(Ee.length||Ee.push(t.children),delete t.children);Ee.length;)if((o=Ee.pop())&&void 0!==o.pop)for(a=o.length;a--;)Ee.push(o[a]);else"boolean"===typeof o&&(o=null),(i="function"!==typeof e)&&(null==o?o="":"number"===typeof o?o=String(o):"string"!==typeof o&&(i=!1)),i&&r?s[s.length-1]+=o:s===je?s=[o]:s.push(o),r=i;var u=new n;return u.nodeName=e,u.children=s,u.attributes=null==t?void 0:t,u.key=null==t?void 0:t.key,void 0!==Oe.vnode&&Oe.vnode(u),u}function o(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function i(e,t){for(var n,r,i=o(e),a=1;a2?[].slice.call(arguments,2):e.children)}function d(e){1==Ue.push(e)&&(Oe.debounceRendering||Be)(h)}function h(){for(var e;e=Ue.pop();)X(e)}function y(e,t,n){if("string"===typeof t||"number"===typeof t)return void 0!==e.splitText;if("string"===typeof t.nodeName){var r=Ie[t.nodeName];return r?n||e._componentConstructor===r:!e._componentConstructor&&m(e,t.nodeName)}return n||e._componentConstructor===t.nodeName}function m(e,t){return e.normalizedNodeName===t||e.nodeName.toLowerCase()===t.toLowerCase()}function b(e){var t=a({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===t[r]&&(t[r]=n[r]);return t}function v(e,t){var n=t?Oe.doc.createElementNS("http://www.w3.org/2000/svg",e):Oe.doc.createElement(e);return n.normalizedNodeName=e,n}function g(e){for(var t=e.replace(/\/\*(.|\s)*?\*\//g," ").replace(/\s+/g," "),n={},r=t.match(/ ?(.*?) ?{([^}]*)}/)||[o,i,t],o=r[0],i=r[1],a=r[2],s=a.split(";").map(function(e){return e.split(":").map(function(e){return e&&e.trim()})}),u=s,u=Array.isArray(u),u=0,u=u||u[Symbol.iterator]();;){var c;if(u){if(u>=u.length)break;c=u[u++]}else{if(u=u.next(),u.done)break;c=u.value}var l=c,f=l[0],p=l[1];n[function(e){return e.replace(/\W+\w/g,function(e){return e.slice(-1).toUpperCase()})}(f)]=p}return n}function w(e){var t=e.parentNode;t&&t.removeChild(e)}function A(e,t,n,r,o){if("className"===t&&(t="class"),"key"===t);else if("ref"===t)s(n,null),s(r,e);else if("class"!==t||o)if("style"===t)if(Oe.isWeb){if(r&&"string"!==typeof r&&"string"!==typeof n||(e.style.cssText=r||""),r&&"object"===("undefined"===typeof r?"undefined":_e(r))){if("string"!==typeof n)for(var i in n)i in r||(e.style[i]="");for(var i in r)e.style[i]="number"===typeof r[i]&&!1===Me.test(i)?r[i]+"px":r[i]}}else{var a=n,u=r;"string"===typeof n&&(a=g(n)),"string"==typeof r&&(u=g(r));var c={},l=!1;if(a){for(var f in a)"object"!=("undefined"===typeof u?"undefined":_e(u))||f in u||(c[f]="",l=!0);for(var p in u)u[p]!==a[p]&&(c[p]=u[p],l=!0);l&&e.setStyles(c)}else e.setStyles(u)}else if("dangerouslySetInnerHTML"===t)r&&(e.innerHTML=r.__html||"");else if("o"==t[0]&&"n"==t[1]){var d=t!==(t=t.replace(/Capture$/,""));t=t.toLowerCase().substring(2),r?n||(e.addEventListener(t,_,d),"tap"==t&&(e.addEventListener("touchstart",O,d),e.addEventListener("touchend",E,d))):(e.removeEventListener(t,_,d),"tap"==t&&(e.removeEventListener("touchstart",O,d),e.removeEventListener("touchend",E,d))),(e._listeners||(e._listeners={}))[t]=r}else if("list"!==t&&"type"!==t&&!o&&t in e)x(e,t,null==r?"":r),null!=r&&!1!==r||e.removeAttribute(t);else{var h=o&&t!==(t=t.replace(/^xlink:?/,""));null==r||!1===r?h?e.removeAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase()):e.removeAttribute(t):"function"!==typeof r&&(h?e.setAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase(),r):e.setAttribute(t,r))}else e.className=r||""}function x(e,t,n){try{e[t]=n}catch(e){}}function _(e){return this._listeners[e.type](Oe.event&&Oe.event(e)||e)}function O(e){this.___touchX=e.touches[0].pageX,this.___touchY=e.touches[0].pageY,this.___scrollTop=document.body.scrollTop}function E(e){Math.abs(e.changedTouches[0].pageX-this.___touchX)<30&&Math.abs(e.changedTouches[0].pageY-this.___touchY)<30&&Math.abs(document.body.scrollTop-this.___scrollTop)<30&&this.dispatchEvent(new CustomEvent("tap",{detail:e}))}function j(e){for(var t=0,n=Oe.styleCache.length;t0||t.children.length>0)return!0;for(n in t)if("children"!=n){var r=_e(t[n]);if("function"==r||"object"==r)return!0;if(t[n]!=e[n])return!0}}function X(e,t,n,r){if(!e._disable){var o,i,s,u=e.props,c=e.data,l=e.context,f=e.prevProps||u,p=e.prevState||c,d=e.prevContext||l,h=e.base,y=e.nextBase,m=h||y,v=e._component,g=!1;if(h&&(e.props=f,e.data=p,e.context=d,e.store||2==t||W(f,u)?(g=!1,e.beforeUpdate&&e.beforeUpdate(u,c,l)):g=!0,e.props=u,e.data=c,e.context=l),e.prevProps=e.prevState=e.prevContext=e.nextBase=null,!g){e.beforeRender&&e.beforeRender(),o=e.render(u,c,l),(e.constructor.css||e.css)&&k(o,"_s"+j(e.constructor)),R(o,e.scopedCssAttr),e.getChildContext&&(l=a(a({},l),e.getChildContext()));var w,A,x=o&&o.nodeName,_=Oe.mapping[x];if(_){var O=b(o);i=v,i&&i.constructor===_&&O.key==i.__key?Q(i,O,1,l,!1):(w=i,e._component=i=H(_,O,l),i.nextBase=i.nextBase||y,i._parentComponent=e,Q(i,O,0,l,!1),X(i,1,n,!0)),A=i.base}else s=m,w=v,w&&(s=e._component=null),(m||1===t)&&(s&&(s._component=null),A=M(s,o,l,n||!h,m&&m.parentNode,!0));if(m&&A!==m&&i!==v){var E=m.parentNode;E&&A!==E&&(E.replaceChild(A,m),w||(m._component=null,L(m,!1)))}if(w&&J(w),e.base=A,A&&!r){for(var S=e,C=e;C=C._parentComponent;)(S=C).base=A;A._component=S,A._componentConstructor=S.constructor}}if(!h||n?ze.unshift(e):g||(e.afterUpdate&&e.afterUpdate(f,p,d),e.updated&&e.updated(f,p,d),Oe.afterUpdate&&Oe.afterUpdate(e)),null!=e._renderCallbacks)for(;e._renderCallbacks.length;)e._renderCallbacks.pop().call(e);De||r||B()}}function q(e,t,n,r){for(var o=e&&e._component,i=o,a=e,s=o&&e._componentConstructor===t.nodeName,u=s,c=b(t);o&&!u&&(o=o._parentComponent);)u=o.constructor===t.nodeName;return o&&u&&(!r||o._component)?(Q(o,c,3,n,r),e=o.base):(i&&!s&&(J(i),e=a=null),o=H(t.nodeName,c,n,t),e&&!o.nextBase&&(o.nextBase=e,a=null),Q(o,c,1,n,r),e=o.base,a&&e!==a&&(a._component=null,L(a,!1))),e}function J(e){Oe.beforeUnmount&&Oe.beforeUnmount(e);var t=e.base;if(e._disable=!0,e.uninstall&&e.uninstall(),e.store&&e.store.instances)for(var n=0,r=e.store.instances.length;n0&&(this.instances.forEach(function(o){(r||n.updateAll||o.constructor.updatePath&&te(t,o.constructor.updatePath))&&(o.use=l(e.data,o.constructor.use),o.update())}),this.onChange&&this.onChange(t))}}function ee(e,t){if(!e)return!1;for(var n in t){if(e.indexOf(n)>-1)return!0;for(var r=0,o=e.length;r0)return{class:he.apply(null,n)}}function me(e){var t=e.base;if(t)for(;t.parentNode;){if(t.parentNode._component)return t.parentNode._component;t=t.parentNode}}function be(e){var t="";for(var n in e){var r=e[n];null!=r&&(t&&(t+=" "),t+=nt[n]||(nt[n]=n.replace(/([A-Z])/g,"-$1").toLowerCase()),t+=": ",t+=r,"number"===typeof r&&!1===IS_NON_DIMENSIONAL.test(n)&&(t+="px"),t+=";")}return t||void 0}function ve(e,t,n,r){n=n||{},t=Object.assign({scopedCSS:!0},t);var o={},i=ge(e,t,n,r,o);return{css:Object.values(o),html:i}}function ge(e,t,n,r,o){if(null==e||"boolean"===typeof e)return"";var i=e.nodeName,a=e.attributes,s=!1,u=t.pretty,c=u&&"string"===typeof u?u:"\t";if("object"!==("undefined"===typeof e?"undefined":_e(e))&&!i)return Ze(e);var l=Ke[i];if(l){s=!0;var f,p=Ae(e),d=new l(p,n);if(d._disable=d.__x=!0,d.props=p,d.store=n,d.install&&d.install(),d.beforeRender&&d.beforeRender(),f=d.render(d.props,d.data,d.store),t.scopedCSS){if(d.constructor.css||d.css){var h=d.constructor.css?d.constructor.css:"function"===typeof d.css?d.css():d.css,y="_s"+j(d.constructor);o[y]='",k(f,"_s"+j(d.constructor))}d.scopedCSSAttr=e.css,R(f,d.scopedCSSAttr)}return ge(f,t,n,!1,o)}var m,b="";if(a){var v=Object.keys(a);t&&!0===t.sortAttributes&&v.sort();for(var g=0;g]/)&&(t&&t.allAttributes||"key"!==w&&"ref"!==w))){if("className"===w){if(a.class)continue;w="class"}else r&&w.match(/^xlink:?./)&&(w=w.toLowerCase().replace(/^xlink:?/,"xlink:"));"style"===w&&A&&"object"===("undefined"===typeof A?"undefined":_e(A))&&(A=be(A));var x=t.attributeHook&&t.attributeHook(w,A,n,t,s);if(x||""===x)b+=x;else if("dangerouslySetInnerHTML"===w)m=A&&A.__html;else if((A||0===A||""===A)&&"function"!==typeof A){if((!0===A||""===A)&&(A=w,!t||!t.xml)){b+=" "+w;continue}b+=" "+w+'="'+Ze(A)+'"'}}}}if(u){var _=b.replace(/^\n\s*/," ");_===b||~_.indexOf("\n")?u&&~b.indexOf("\n")&&(b+="\n"):b=_}if(b="<"+i+b+">",String(i).match(/[\s\n\\\/='"\0<>]/))throw b;var O=String(i).match(et);O&&(b=b.replace(/>$/," />"));var E=[];if(m)u&&tt(m)&&(m="\n"+c+Ye(m,c)),b+=m;else if(e.children){for(var C=u&&~b.indexOf("\n"),g=0;g";return O||(u&&~b.indexOf("\n")&&(b+="\n"),b+=""),b}function we(e,t){for(var n in t)e[n]=t[n];return e}function Ae(e){var t=we({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===t[r]&&(t[r]=n[r]);return t}function xe(){return{}}Object.defineProperty(t,"__esModule",{value:!0});var _e="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Oe={scopedStyle:!0,mapping:{},isWeb:!0,staticStyleMapping:{},doc:"object"===("undefined"===typeof document?"undefined":_e(document))?document:null,root:function(){return"object"===("undefined"===typeof e?"undefined":_e(e))&&e&&e.Math===Math&&e.Array===Array?e:"undefined"!==typeof self?self:"undefined"!==typeof window?window:"undefined"!==typeof e?e:function(){return this}()}(),styleCache:[]},Ee=[],je=[],Se=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable;if("undefined"!==typeof Element&&!Element.prototype.addEventListener){var ke=function(e){e||(e=window.event);for(var t=0,n=0,r=Te[e.type];n8&&(Ne=!0)}var Be=Ne?Promise.resolve().then.bind(Promise.resolve()):setTimeout,Me=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,Ue=[],Ie=Oe.mapping,Le=0,ze=[],De=0,Fe=!1,He=!1,$e={},Ve=function e(t,n,r){var o=function(t,n,r){t.$observer||(t.$observer=this);var o=t.$observer,i=[];e.isArray(t)&&(0===t.length&&(t.$observeProps={},t.$observeProps.$observerPath="#"),o.mock(t));for(var a in t)t.hasOwnProperty(a)&&(r?e.isArray(n)&&e.isInArray(n,a)?(i.push(a),o.watch(t,a)):e.isString(n)&&a==n&&(i.push(a),o.watch(t,a)):(i.push(a),o.watch(t,a)));o.target=t,o.propertyChangedHandler||(o.propertyChangedHandler=[]);var s=r||n;o.propertyChangedHandler.push({all:!r,propChanged:s,eventPropArr:i})};return o.prototype={onPropertyChanged:function(t,n,r,o,i){if(n!==r&&this.propertyChangedHandler)for(var a=e._getRootName(t,i),s=0,u=this.propertyChangedHandler.length;s-1;)if(t===e[n])return!0;return!1},Ve.isFunction=function(e){return"[object Function]"==Object.prototype.toString.call(e)},Ve._getRootName=function(e,t){return"#"===t?e:t.split("-")[1]},Ve.add=function(e,t){e.$observer.watch(e,t)},Ve.set=function(e,t,n,r){r||(e[t]=n),e.$observer.watch(e,t),r&&(e[t]=n)},Array.prototype.size=function(e){this.length=e};var Ge=[],Qe=[],We=0,Xe=function(){function e(t,n){Z(this,e),this.props=i(c(this.constructor.props),this.constructor.defaultProps,t),this.elementId=We++,this.data=this.constructor.data||this.data||{},this._preCss=null,this.store=n}return e.prototype.update=function(e){this._willUpdate=!0,e&&(this._renderCallbacks=this._renderCallbacks||[]).push(e),X(this,2),Oe.componentChange&&Oe.componentChange(this,this.base),this._willUpdate=!1},e.prototype.fire=function(e,t){var n=this;Object.keys(this.props).every(function(r){return"on"+e.toLowerCase()!==r.toLowerCase()||(n.props[r]({detail:t}),!1)})},e.prototype.render=function(){},e}();Xe.is="WeElement";var qe=function(e){function t(){return fe(this,t),pe(this,e.apply(this,arguments))}return de(t,e),t.prototype.beforeInstall=function(){this.data=this.vm.data},t}(Xe);qe.observe=!0,qe.mergeUpdate=!0;var Je={}.hasOwnProperty,Ze=function(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""")},Ye=function(e,t){return String(e).replace(/(\n+)/g,"$1"+(t||"\t"))},Ke=Oe.mapping,et=/^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/,tt=function(e,t,n){return String(e).length>(t||40)||!n&&-1!==String(e).indexOf("\n")||-1!==String(e).indexOf("<")},nt={},rt=Xe,ot=oe;Oe.root.Omi={h:r,createElement:r,cloneElement:p,createRef:xe,Component:Xe,render:Y,rerender:h,options:Oe,WeElement:rt,define:oe,rpx:le,ModelView:qe,defineElement:ot,classNames:he,extractClass:ye,getHost:me,renderToString:ve},Oe.root.omi=Oe.root.Omi,Oe.root.Omi.version="omio-2.0.5";var it={h:r,createElement:r,cloneElement:p,createRef:xe,Component:Xe,render:Y,rerender:h,options:Oe,WeElement:rt,define:oe,rpx:le,ModelView:qe,defineElement:ot,classNames:he,extractClass:ye,getHost:me,renderToString:ve};t.default=it,t.h=r,t.createElement=r,t.cloneElement=p,t.createRef=xe,t.Component=Xe,t.render=Y,t.rerender=h,t.options=Oe,t.WeElement=rt,t.define=oe,t.rpx=le,t.ModelView=qe,t.defineElement=ot,t.classNames=he,t.extractClass=ye,t.getHost=me,t.renderToString=ve}).call(t,n(2))},function(e,t,n){"use strict";function r(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"===typeof btoa){var i=o(r);return[n].concat(r.sources.map(function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"})).concat([i]).join("\n")}return[n].join("\n")}function o(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=r(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n}).join("")},t.i=function(e,n){"string"===typeof e&&(e=[[null,e,""]]);for(var r={},o=0;oc){for(var t=0,n=a.length-u;t-1?t:e}function d(e,t){t=t||{};var n=t.body;if(e instanceof d){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new o(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new o(t.headers)),this.method=p(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function h(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function y(e){var t=new o;return e.split(/\r?\n/).forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}}),t}function m(e,t){t||(t={}),this.type="default",this.status="status"in t?t.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new o(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){var b={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(b.arrayBuffer)var v=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],g=function(e){return e&&DataView.prototype.isPrototypeOf(e)},w=ArrayBuffer.isView||function(e){return e&&v.indexOf(Object.prototype.toString.call(e))>-1};o.prototype.append=function(e,r){e=t(e),r=n(r);var o=this.map[e];this.map[e]=o?o+","+r:r},o.prototype.delete=function(e){delete this.map[t(e)]},o.prototype.get=function(e){return e=t(e),this.has(e)?this.map[e]:null},o.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},o.prototype.set=function(e,r){this.map[t(e)]=n(r)},o.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},o.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),r(e)},o.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),r(e)},o.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),r(e)},b.iterable&&(o.prototype[Symbol.iterator]=o.prototype.entries);var A=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];d.prototype.clone=function(){return new d(this,{body:this._bodyInit})},f.call(d.prototype),f.call(m.prototype),m.prototype.clone=function(){return new m(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new o(this.headers),url:this.url})},m.error=function(){var e=new m(null,{status:0,statusText:""});return e.type="error",e};var x=[301,302,303,307,308];m.redirect=function(e,t){if(-1===x.indexOf(t))throw new RangeError("Invalid status code");return new m(null,{status:t,headers:{location:e}})},e.Headers=o,e.Request=d,e.Response=m,e.fetch=function(e,t){return new Promise(function(n,r){var o=new d(e,t),i=new XMLHttpRequest;i.onload=function(){var e={status:i.status,statusText:i.statusText,headers:y(i.getAllResponseHeaders()||"")};e.url="responseURL"in i?i.responseURL:e.headers.get("X-Request-URL");var t="response"in i?i.response:i.responseText;n(new m(t,e))},i.onerror=function(){r(new TypeError("Network request failed"))},i.ontimeout=function(){r(new TypeError("Network request failed"))},i.open(o.method,o.url,!0),"include"===o.credentials&&(i.withCredentials=!0),"responseType"in i&&b.blob&&(i.responseType="blob"),o.headers.forEach(function(e,t){i.setRequestHeader(t,e)}),i.send("undefined"===typeof o._bodyInit?null:o._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!==typeof self?self:void 0)},function(e,t,n){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}var o=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,s,u=r(e),c=1;c0)return!1;return!0}},{key:"render",value:function(){if(this.demo)return Omi.h("div",null,this.show&&Omi.h("iframe",{style:"height:"+(window.innerHeight-59)+"px",src:this.demo}),!this.show&&Omi.h("div",{class:"switch code",onClick:this.onShow},Omi.h("img",{src:n(32)})),this.show&&Omi.h("div",{class:"switch close",onClick:this.onClose},Omi.h("img",{src:n(33)})))}}]),t}(s.WeElement))},function(e,t,n){var r=n(31);e.exports="string"===typeof r?r:r.toString()},function(e,t,n){t=e.exports=n(1)(void 0),t.push([e.i,"iframe{\n width: 750px;\n height: 100%;\n top: 60px;\n right: 0;\n position: fixed;\n border: none;\n z-index: 9999;\n border-left: 2px solid #24292E; \n}\n\n.switch{\n width: 40px;\n height: 40px;\n background-color: #AA0000;\n border-radius: 50%;\n position: fixed;\n right: 50px;\n bottom: 50px;\n cursor: pointer;\n text-align: center;\n z-index: 10000;\n}\n\n.switch img{\n width: 30px;\n height: 30px;\n margin-top:5px; \n}\n\n.switch.close img{\n margin-top:10px; \n width: 20px;\n height: 20px;\n}\n\n\n@media only screen and (max-width: 768px) {\n iframe{\n width: 100%;\n }\n}\n",""])},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC"},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg=="},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n768};var o=0;this.map={},this.positionMap={},a.default.menus[this.data.lan].forEach(function(e,t){e.list.forEach(function(e,r){e.id=o++,e.position=[t,r],n.map[e.id]=e,e.index=t,e.subIndex=r,n.positionMap[t+"-"+r]=e})}),this.preIndex=0,this.preSubIndex=0}return o(e,[{key:"getNext",value:function(){var e=this.positionMap[this.data.position.join("-")];if(e)return this.map[e.id+1]}},{key:"getPre",value:function(){var e=this.positionMap[this.data.position.join("-")];if(e)return this.map[e.id-1]}},{key:"init",value:function(){var e=this;this.remarkable=new Remarkable({html:!0}),""===location.hash&&(this.data.position=[0,0],this.getMarkDown(this.data.menus[this.data.lan][0].list[0].md,this.data.lan,function(t){e.data.html=e.remarkable.render(t)})),this.initRouter()}},{key:"toogleSidebar",value:function(){this.data.sideBarShow=!this.data.sideBarShow}},{key:"hideSidebar",value:function(){this.data.sideBarShow=!1}},{key:"initRouter",value:function(){var e=this,t=this.data.menus[this.data.lan];t.forEach(function(n){n.list.forEach(function(n){route("/"+n.md,function(r){t[e.preIndex].list[e.preSubIndex].selected=!1,e.preIndex=r.query.index,e.preSubIndex=r.query.subIndex,e.data.position=[Number(r.query.index),Number(r.query.subIndex)],e.data.sideBarShow=!1,e.getMarkDown(n.md,e.data.lan,function(t){e.data.html=e.remarkable.render(t),document.body.scrollTop=0,document.documentElement.scrollTop=0})})})})}},{key:"getMarkDown",value:function(e,t,r){n(38)("./"+t+"/"+e+".md").then(function(e){r(e)})}}]),e}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={menus:{"zh-cn":[{title:"Omi",list:[{name:"\u7b80\u4ecb",md:"introduction"},{name:"\u5b89\u88c5",md:"installation"}]},{title:"\u57fa\u7840\u6982\u5ff5",list:[{name:"JSX",md:"jsx"},{name:"Props",md:"props"},{name:"\u4e8b\u4ef6",md:"event"},{name:"\u751f\u547d\u5468\u671f",md:"lifecycle"},{name:"Ref",md:"ref"},{name:"Class",md:"class"},{name:"Store",md:"store"},{name:"CSS",md:"css"}]},{title:"\u5176\u4ed6",list:[{name:"\u751f\u6001\u4e0e\u4f8b\u5b50",md:"other"},{name:"Mps",md:"mps"},{name:"Omip \u591a\u7aef\u5f00\u53d1",md:"omip"},{name:"\u670d\u52a1\u7aef\u6e32\u67d3",md:"ssr"},{name:"\u8def\u7531",md:"router"},{name:"Omiu",md:"omiu"}]}],en:[{title:"Omi",list:[{name:"Introduction",md:"introduction"},{name:"Installation",md:"installation"}]},{title:"Base",list:[{name:"JSX",md:"jsx"},{name:"Props",md:"props"},{name:"Event",md:"event"},{name:"Lifecycle",md:"lifecycle"},{name:"Ref",md:"ref"},{name:"Class",md:"class"},{name:"Store",md:"store"},{name:"CSS",md:"css"}]},{title:"Other",list:[{name:"Ecosystem and examples",md:"other"},{name:"Server-Side Rendering",md:"ssr"},{name:"Router",md:"router"},{name:"Omiu",md:"omiu"}]}]}};t.default=r},function(e,t,n){"use strict";(function(e){function r(e){var t=!1;window.history.length!==l.historyLength||l.route._routeByTo||(t=!0),l.route._routeByTo=!1,l.historyLength=window.history.length;var n=!1;if("hashchange"===e.type&&l.route.before&&(n=!1===l.route.before(e)),!n){var r=window.location.hash.replace("#","");""===r&&(r="/");var i=!0;Object.keys(c).every(function(e){var n=r.split("?")[0].match(c[e].reg);if(n){var s=e.match(c[e].reg);return l.route.params=o(n,s),l.route.query=a(r),c[e].callback({params:l.route.params,query:a(r),data:l.route.data,byNative:t}),l.route.data=null,i=!1,!1}return!0}),i&&c["*"]&&c["*"].callback({byNative:t}),"hashchange"===e.type&&l.route.after&&l.route.after(e)}}function o(e,t){var n={};return e.forEach(function(e,r){r>0&&(n[t[r].replace(":","")]=e)}),n}function i(e,t){c[e]={callback:t,reg:u(e)}}function a(e){e=e.replace(/#.*$/,"");var t,n=e.split(/[?&]/).slice(1),r={};for(t=0;t-1)&&(b=_,u=u.slice(0,x))}u&&(r.push(u),u="",f=!1);var O="+"===A||"*"===A,E="?"===A||"*"===A,j=g||w,S=b||c;r.push({name:v||o++,prefix:b,delimiter:S,optional:E,repeat:O,pattern:j?s(j):"[^"+a(S===c?S:S+c)+"]+?"})}}return(u||iHello!`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */function h(nodeName,attributes){var children=EMPTY_CHILDREN,lastSimple,child,simple,i;for(i=arguments.length;i-->2;){stack.push(arguments[i]);}if(attributes&&attributes.children!=null){if(!stack.length)stack.push(attributes.children);delete attributes.children;}while(stack.length){if((child=stack.pop())&&child.pop!==undefined){for(i=child.length;i--;){stack.push(child[i]);}}else{if(typeof child==='boolean')child=null;if(simple=typeof nodeName!=='function'){if(child==null)child='';else if(typeof child==='number')child=String(child);else if(typeof child!=='string')simple=false;}if(simple&&lastSimple){children[children.length-1]+=child;}else if(children===EMPTY_CHILDREN){children=[child];}else{children.push(child);}lastSimple=simple;}}var p=new VNode();p.nodeName=nodeName;p.children=children;p.attributes=attributes==null?undefined:attributes;p.key=attributes==null?undefined:attributes.key;// if a \"vnode hook\" is defined, pass every created VNode to it\nif(options.vnode!==undefined)options.vnode(p);return p;}/* eslint-disable no-unused-vars */var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError('Object.assign cannot be called with null or undefined');}return Object(val);}function assign(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s8){usePromise=true;}}}var defer=usePromise?Promise.resolve().then.bind(Promise.resolve()):setTimeout;function isArray(obj){return Object.prototype.toString.call(obj)==='[object Array]';}function nProps(props){if(!props||isArray(props))return{};var result={};Object.keys(props).forEach(function(key){result[key]=props[key].value;});return result;}function getUse(data,paths){var obj=[];paths.forEach(function(path,index){var isPath=typeof path==='string';if(isPath){obj[index]=getTargetByPath(data,path);}else{var key=Object.keys(path)[0];var value=path[key];if(typeof value==='string'){obj[index]=getTargetByPath(data,value);}else{var tempPath=value[0];if(typeof tempPath==='string'){var tempVal=getTargetByPath(data,tempPath);obj[index]=value[1]?value[1](tempVal):tempVal;}else{var args=[];tempPath.forEach(function(path){args.push(getTargetByPath(data,path));});obj[index]=value[1].apply(null,args);}}obj[key]=obj[index];}});return obj;}function getTargetByPath(origin,path){var arr=path.replace(/]/g,'').replace(/\\[/g,'.').split('.');var current=origin;for(var i=0,len=arr.length;i2?[].slice.call(arguments,2):vnode.children);}// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL$1=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;/** Managed queue of dirty components to be re-rendered */var items=[];function enqueueRender(component){if(items.push(component)==1){(options.debounceRendering||defer)(rerender);}}/** Rerender all enqueued dirty components */function rerender(){var p;while(p=items.pop()){renderComponent(p);}}var mapping=options.mapping;/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hydrating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */function isSameNodeType(node,vnode,hydrating){if(typeof vnode==='string'||typeof vnode==='number'){return node.splitText!==undefined;}if(typeof vnode.nodeName==='string'){var ctor=mapping[vnode.nodeName];if(ctor){return hydrating||node._componentConstructor===ctor;}return!node._componentConstructor&&isNamedNode(node,vnode.nodeName);}return hydrating||node._componentConstructor===vnode.nodeName;}/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */function isNamedNode(node,nodeName){return node.normalizedNodeName===nodeName||node.nodeName.toLowerCase()===nodeName.toLowerCase();}/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n *\n * @param {VNode} vnode\n * @returns {Object} props\n */function getNodeProps(vnode){var props=extend({},vnode.attributes);props.children=vnode.children;var defaultProps=vnode.nodeName.defaultProps;if(defaultProps!==undefined){for(var i in defaultProps){if(props[i]===undefined){props[i]=defaultProps[i];}}}return props;}/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */function createNode(nodeName,isSvg){var node=isSvg?options.doc.createElementNS('http://www.w3.org/2000/svg',nodeName):options.doc.createElement(nodeName);node.normalizedNodeName=nodeName;return node;}function parseCSSText(cssText){var cssTxt=cssText.replace(/\\/\\*(.|\\s)*?\\*\\//g,' ').replace(/\\s+/g,' ');var style={},_ref=cssTxt.match(/ ?(.*?) ?{([^}]*)}/)||[a,b,cssTxt],a=_ref[0],b=_ref[1],rule=_ref[2];var cssToJs=function cssToJs(s){return s.replace(/\\W+\\w/g,function(match){return match.slice(-1).toUpperCase();});};var properties=rule.split(';').map(function(o){return o.split(':').map(function(x){return x&&x.trim();});});for(var i=properties,i=Array.isArray(i),i=0,i=i?i:i[Symbol.iterator]();;){var _ref3;if(i){if(i>=i.length)break;_ref3=i[i++];}else{i=i.next();if(i.done)break;_ref3=i.value;}var _ref2=_ref3;var property=_ref2[0];var value=_ref2[1];style[cssToJs(property)]=value;}return style;}/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */function removeNode(node){var parentNode=node.parentNode;if(parentNode)parentNode.removeChild(node);}/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */function setAccessor(node,name,old,value,isSvg){if(name==='className')name='class';if(name==='key'){// ignore\n}else if(name==='ref'){applyRef(old,null);applyRef(value,node);}else if(name==='class'&&!isSvg){node.className=value||'';}else if(name==='style'){if(options.isWeb){if(!value||typeof value==='string'||typeof old==='string'){node.style.cssText=value||'';}if(value&&(typeof value==='undefined'?'undefined':_typeof(value))==='object'){if(typeof old!=='string'){for(var i in old){if(!(i in value))node.style[i]='';}}for(var i in value){node.style[i]=typeof value[i]==='number'&&IS_NON_DIMENSIONAL$1.test(i)===false?value[i]+'px':value[i];}}}else{var oldJson=old,currentJson=value;if(typeof old==='string'){oldJson=parseCSSText(old);}if(typeof value=='string'){currentJson=parseCSSText(value);}var result={},changed=false;if(oldJson){for(var key in oldJson){if((typeof currentJson==='undefined'?'undefined':_typeof(currentJson))=='object'&&!(key in currentJson)){result[key]='';changed=true;}}for(var ckey in currentJson){if(currentJson[ckey]!==oldJson[ckey]){result[ckey]=currentJson[ckey];changed=true;}}if(changed){node.setStyles(result);}}else{node.setStyles(currentJson);}}}else if(name==='dangerouslySetInnerHTML'){if(value)node.innerHTML=value.__html||'';}else if(name[0]=='o'&&name[1]=='n'){var useCapture=name!==(name=name.replace(/Capture$/,''));name=name.toLowerCase().substring(2);if(value){if(!old){node.addEventListener(name,eventProxy,useCapture);if(name=='tap'){node.addEventListener('touchstart',touchStart,useCapture);node.addEventListener('touchend',touchEnd,useCapture);}}}else{node.removeEventListener(name,eventProxy,useCapture);if(name=='tap'){node.removeEventListener('touchstart',touchStart,useCapture);node.removeEventListener('touchend',touchEnd,useCapture);}}(node._listeners||(node._listeners={}))[name]=value;}else if(name!=='list'&&name!=='type'&&!isSvg&&name in node){setProperty(node,name,value==null?'':value);if(value==null||value===false)node.removeAttribute(name);}else{var ns=isSvg&&name!==(name=name.replace(/^xlink:?/,''));if(value==null||value===false){if(ns)node.removeAttributeNS('http://www.w3.org/1999/xlink',name.toLowerCase());else node.removeAttribute(name);}else if(typeof value!=='function'){if(ns)node.setAttributeNS('http://www.w3.org/1999/xlink',name.toLowerCase(),value);else node.setAttribute(name,value);}}}/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */function setProperty(node,name,value){try{node[name]=value;}catch(e){}}/** Proxy an event to hooked event handlers\n *\t@private\n */function eventProxy(e){return this._listeners[e.type](options.event&&options.event(e)||e);}function touchStart(e){this.___touchX=e.touches[0].pageX;this.___touchY=e.touches[0].pageY;this.___scrollTop=document.body.scrollTop;}function touchEnd(e){if(Math.abs(e.changedTouches[0].pageX-this.___touchX)<30&&Math.abs(e.changedTouches[0].pageY-this.___touchY)<30&&Math.abs(document.body.scrollTop-this.___scrollTop)<30){this.dispatchEvent(new CustomEvent('tap',{detail:e}));}}var styleId=0;function getCtorName(ctor){for(var i=0,len=options.styleCache.length;i-1;){if(item===arr[i])return true;}return false;};obaa.isFunction=function(obj){return Object.prototype.toString.call(obj)=='[object Function]';};obaa._getRootName=function(prop,path){if(path==='#'){return prop;}return path.split('-')[1];};obaa.add=function(obj,prop){var $observer=obj.$observer;$observer.watch(obj,prop);};obaa.set=function(obj,prop,value,exec){if(!exec){obj[prop]=value;}var $observer=obj.$observer;$observer.watch(obj,prop);if(exec){obj[prop]=value;}};Array.prototype.size=function(length){this.length=length;};var callbacks=[];var nextTickCallback=[];function fireTick(){callbacks.forEach(function(item){item.fn.call(item.scope);});nextTickCallback.forEach(function(nextItem){nextItem.fn.call(nextItem.scope);});nextTickCallback.length=0;}function proxyUpdate(ele){var timeout=null;obaa(ele.data,function(){if(ele._willUpdate){return;}if(ele.constructor.mergeUpdate){clearTimeout(timeout);timeout=setTimeout(function(){ele.update();fireTick();},0);}else{ele.update();fireTick();}});}/** Set a component's `props` (generally derived from JSX attributes).\n *\t@param {Object} props\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.renderSync=false]\tIf `true` and {@link options.syncComponentUpdates} is `true`, triggers synchronous rendering.\n *\t@param {boolean} [opts.render=true]\t\t\tIf `false`, no render will be triggered.\n */function setComponentProps(component,props,opts,context,mountAll){if(component._disable)return;component._disable=true;if(component.__ref=props.ref)delete props.ref;if(component.__key=props.key)delete props.key;if(!component.base||mountAll){if(component.beforeInstall)component.beforeInstall();if(component.install)component.install();if(component.constructor.observe){proxyUpdate(component);}}else if(component.receiveProps){component.receiveProps(props,component.data,component.props);}if(context&&context!==component.context){if(!component.prevContext)component.prevContext=component.context;component.context=context;}if(!component.prevProps)component.prevProps=component.props;component.props=props;component._disable=false;if(opts!==0){if(opts===1||options.syncComponentUpdates!==false||!component.base){renderComponent(component,1,mountAll);}else{enqueueRender(component);}}applyRef(component.__ref,component);}function shallowComparison(old,attrs){var name;for(name in old){if(attrs[name]==null&&old[name]!=null){return true;}}if(old.children.length>0||attrs.children.length>0){return true;}for(name in attrs){if(name!='children'){var type=_typeof(attrs[name]);if(type=='function'||type=='object'){return true;}else if(attrs[name]!=old[name]){return true;}}}}/** Render a Component, triggering necessary lifecycle events and taking High-Order Components into account.\n *\t@param {Component} component\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.build=false]\t\tIf `true`, component will build and store a DOM node if not already associated with one.\n *\t@private\n */function renderComponent(component,opts,mountAll,isChild){if(component._disable)return;var props=component.props,data=component.data,context=component.context,previousProps=component.prevProps||props,previousState=component.prevState||data,previousContext=component.prevContext||context,isUpdate=component.base,nextBase=component.nextBase,initialBase=isUpdate||nextBase,initialChildComponent=component._component,skip=false,rendered,inst,cbase;// if updating\nif(isUpdate){component.props=previousProps;component.data=previousState;component.context=previousContext;if(component.store||opts==2||shallowComparison(previousProps,props)){skip=false;if(component.beforeUpdate){component.beforeUpdate(props,data,context);}}else{skip=true;}component.props=props;component.data=data;component.context=context;}component.prevProps=component.prevState=component.prevContext=component.nextBase=null;if(!skip){component.beforeRender&&component.beforeRender();rendered=component.render(props,data,context);//don't rerender\nif(component.constructor.css||component.css){addScopedAttrStatic(rendered,'_s'+getCtorName(component.constructor));}scopeHost(rendered,component.scopedCssAttr);// context to pass to the child, can be updated via (grand-)parent component\nif(component.getChildContext){context=extend(extend({},context),component.getChildContext());}var childComponent=rendered&&rendered.nodeName,toUnmount,base,ctor=options.mapping[childComponent];if(ctor){// set up high order component link\nvar childProps=getNodeProps(rendered);inst=initialChildComponent;if(inst&&inst.constructor===ctor&&childProps.key==inst.__key){setComponentProps(inst,childProps,1,context,false);}else{toUnmount=inst;component._component=inst=createComponent(ctor,childProps,context);inst.nextBase=inst.nextBase||nextBase;inst._parentComponent=component;setComponentProps(inst,childProps,0,context,false);renderComponent(inst,1,mountAll,true);}base=inst.base;}else{cbase=initialBase;// destroy high order component link\ntoUnmount=initialChildComponent;if(toUnmount){cbase=component._component=null;}if(initialBase||opts===1){if(cbase)cbase._component=null;base=diff(cbase,rendered,context,mountAll||!isUpdate,initialBase&&initialBase.parentNode,true);}}if(initialBase&&base!==initialBase&&inst!==initialChildComponent){var baseParent=initialBase.parentNode;if(baseParent&&base!==baseParent){baseParent.replaceChild(base,initialBase);if(!toUnmount){initialBase._component=null;recollectNodeTree(initialBase,false);}}}if(toUnmount){unmountComponent(toUnmount);}component.base=base;if(base&&!isChild){var componentRef=component,t=component;while(t=t._parentComponent){(componentRef=t).base=base;}base._component=componentRef;base._componentConstructor=componentRef.constructor;}}if(!isUpdate||mountAll){mounts.unshift(component);}else if(!skip){// Ensure that pending componentDidMount() hooks of child components\n// are called before the componentDidUpdate() hook in the parent.\n// Note: disabled as it causes duplicate hooks, see https://github.com/developit/preact/issues/750\n// flushMounts();\nif(component.afterUpdate){//deprecated\ncomponent.afterUpdate(previousProps,previousState,previousContext);}if(component.updated){component.updated(previousProps,previousState,previousContext);}if(options.afterUpdate)options.afterUpdate(component);}if(component._renderCallbacks!=null){while(component._renderCallbacks.length){component._renderCallbacks.pop().call(component);}}if(!diffLevel&&!isChild)flushMounts();}/** Apply the Component referenced by a VNode to the DOM.\n *\t@param {Element} dom\tThe DOM node to mutate\n *\t@param {VNode} vnode\tA Component-referencing VNode\n *\t@returns {Element} dom\tThe created/mutated element\n *\t@private\n */function buildComponentFromVNode(dom,vnode,context,mountAll){var c=dom&&dom._component,originalComponent=c,oldDom=dom,isDirectOwner=c&&dom._componentConstructor===vnode.nodeName,isOwner=isDirectOwner,props=getNodeProps(vnode);while(c&&!isOwner&&(c=c._parentComponent)){isOwner=c.constructor===vnode.nodeName;}if(c&&isOwner&&(!mountAll||c._component)){setComponentProps(c,props,3,context,mountAll);dom=c.base;}else{if(originalComponent&&!isDirectOwner){unmountComponent(originalComponent);dom=oldDom=null;}c=createComponent(vnode.nodeName,props,context,vnode);if(dom&&!c.nextBase){c.nextBase=dom;// passing dom/oldDom as nextBase will recycle it if unused, so bypass recycling on L229:\noldDom=null;}setComponentProps(c,props,1,context,mountAll);dom=c.base;if(oldDom&&dom!==oldDom){oldDom._component=null;recollectNodeTree(oldDom,false);}}return dom;}/** Remove a component from the DOM and recycle it.\n *\t@param {Component} component\tThe Component instance to unmount\n *\t@private\n */function unmountComponent(component){if(options.beforeUnmount)options.beforeUnmount(component);var base=component.base;component._disable=true;if(component.uninstall)component.uninstall();if(component.store&&component.store.instances){for(var i=0,len=component.store.instances.length;i0){this.instances.forEach(function(instance){if(updateAll||_this.updateAll||instance.constructor.updatePath&&needUpdate(patch,instance.constructor.updatePath)){//update this.use\ninstance.use=getUse(store.data,instance.constructor.use);instance.update();}});this.onChange&&this.onChange(patch);}};}function matchGlobalData(globalData,diffResult){if(!globalData)return false;for(var keyA in diffResult){if(globalData.indexOf(keyA)>-1){return true;}for(var i=0,len=globalData.length;i0){return{class:classNames.apply(null,args)};}}function getHost(component){var base=component.base;if(base){while(base.parentNode){if(base.parentNode._component){return base.parentNode._component;}else{base=base.parentNode;}}}}/**\n * preact-render-to-string based on preact-render-to-string\n * by Jason Miller\n * Licensed under the MIT License\n * https://github.com/developit/preact-render-to-string\n *\n * modified by dntzhang\n */var encodeEntities=function encodeEntities(s){return String(s).replace(/&/g,'&').replace(//g,'>').replace(/\"/g,'"');};var indent=function indent(s,char){return String(s).replace(/(\\n+)/g,'$1'+(char||'\\t'));};var mapping$1=options.mapping;var VOID_ELEMENTS=/^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/;var isLargeString=function isLargeString(s,length,ignoreLines){return String(s).length>(length||40)||!ignoreLines&&String(s).indexOf('\\n')!==-1||String(s).indexOf('<')!==-1;};var JS_TO_CSS={};// Convert an Object style to a CSSText string\nfunction styleObjToCss(s){var str='';for(var prop in s){var val=s[prop];if(val!=null){if(str)str+=' ';// str += jsToCss(prop);\nstr+=JS_TO_CSS[prop]||(JS_TO_CSS[prop]=prop.replace(/([A-Z])/g,'-$1').toLowerCase());str+=': ';str+=val;if(typeof val==='number'&&IS_NON_DIMENSIONAL.test(prop)===false){str+='px';}str+=';';}}return str||undefined;}function renderToString(vnode,opts,store,isSvgMode){store=store||{};opts=Object.assign({scopedCSS:true},opts);var css={};var html=_renderToString(vnode,opts,store,isSvgMode,css);return{css:Object.values(css),html:html};}/** The default export is an alias of `render()`. */function _renderToString(vnode,opts,store,isSvgMode,css){if(vnode==null||typeof vnode==='boolean'){return'';}var nodeName=vnode.nodeName,attributes=vnode.attributes,isComponent=false;var pretty=true&&opts.pretty,indentChar=pretty&&typeof pretty==='string'?pretty:'\\t';// #text nodes\nif((typeof vnode==='undefined'?'undefined':_typeof(vnode))!=='object'&&!nodeName){return encodeEntities(vnode);}// components\nvar ctor=mapping$1[nodeName];if(ctor){isComponent=true;var props=getNodeProps$1(vnode),rendered;// class-based components\nvar c=new ctor(props,store);// turn off stateful re-rendering:\nc._disable=c.__x=true;c.props=props;c.store=store;if(c.install)c.install();if(c.beforeRender)c.beforeRender();rendered=c.render(c.props,c.data,c.store);if(opts.scopedCSS){if(c.constructor.css||c.css){var cssStr=c.constructor.css?c.constructor.css:typeof c.css==='function'?c.css():c.css;var cssAttr='_s'+getCtorName(c.constructor);css[cssAttr]='';addScopedAttrStatic(rendered,'_s'+getCtorName(c.constructor));}c.scopedCSSAttr=vnode.css;scopeHost(rendered,c.scopedCSSAttr);}return _renderToString(rendered,opts,store,false,css);}// render JSX to HTML\nvar s='',html;if(attributes){var attrs=Object.keys(attributes);// allow sorting lexicographically for more determinism (useful for tests, such as via preact-jsx-chai)\nif(opts&&opts.sortAttributes===true)attrs.sort();for(var i=0;i]/))continue;if(!(opts&&opts.allAttributes)&&(name==='key'||name==='ref'))continue;if(name==='className'){if(attributes.class)continue;name='class';}else if(isSvgMode&&name.match(/^xlink:?./)){name=name.toLowerCase().replace(/^xlink:?/,'xlink:');}if(name==='style'&&v&&(typeof v==='undefined'?'undefined':_typeof(v))==='object'){v=styleObjToCss(v);}var hooked=opts.attributeHook&&opts.attributeHook(name,v,store,opts,isComponent);if(hooked||hooked===''){s+=hooked;continue;}if(name==='dangerouslySetInnerHTML'){html=v&&v.__html;}else if((v||v===0||v==='')&&typeof v!=='function'){if(v===true||v===''){v=name;// in non-xml mode, allow boolean attributes\nif(!opts||!opts.xml){s+=' '+name;continue;}}s+=' '+name+'=\"'+encodeEntities(v)+'\"';}}}// account for >1 multiline attribute\nif(pretty){var sub=s.replace(/^\\n\\s*/,' ');if(sub!==s&&!~sub.indexOf('\\n'))s=sub;else if(pretty&&~s.indexOf('\\n'))s+='\\n';}s='<'+nodeName+s+'>';if(String(nodeName).match(/[\\s\\n\\\\/='\"\\0<>]/))throw s;var isVoid=String(nodeName).match(VOID_ELEMENTS);if(isVoid)s=s.replace(/>$/,' />');var pieces=[];if(html){// if multiline, indent.\nif(pretty&&isLargeString(html)){html='\\n'+indentChar+indent(html,indentChar);}s+=html;}else if(vnode.children){var hasLarge=pretty&&~s.indexOf('\\n');for(var i=0;i';}if(!isVoid){if(pretty&&~s.indexOf('\\n'))s+='\\n';s+='';}return s;}function assign$1(obj,props){for(var i in props){obj[i]=props[i];}return obj;}function getNodeProps$1(vnode){var props=assign$1({},vnode.attributes);props.children=vnode.children;var defaultProps=vnode.nodeName.defaultProps;if(defaultProps!==undefined){for(var i in defaultProps){if(props[i]===undefined){props[i]=defaultProps[i];}}}return props;}var WeElement=Component;var defineElement=define;function createRef(){return{};}options.root.Omi={h:h,createElement:h,cloneElement:cloneElement,createRef:createRef,Component:Component,render:render,rerender:rerender,options:options,WeElement:WeElement,define:define,rpx:rpx,ModelView:ModelView,defineElement:defineElement,classNames:classNames,extractClass:extractClass,getHost:getHost,renderToString:renderToString};options.root.omi=options.root.Omi;options.root.Omi.version='omio-2.0.5';var omi={h:h,createElement:h,cloneElement:cloneElement,createRef:createRef,Component:Component,render:render,rerender:rerender,options:options,WeElement:WeElement,define:define,rpx:rpx,ModelView:ModelView,defineElement:defineElement,classNames:classNames,extractClass:extractClass,getHost:getHost,renderToString:renderToString};exports.default=omi;exports.h=h;exports.createElement=h;exports.cloneElement=cloneElement;exports.createRef=createRef;exports.Component=Component;exports.render=render;exports.rerender=rerender;exports.options=options;exports.WeElement=WeElement;exports.define=define;exports.rpx=rpx;exports.ModelView=ModelView;exports.defineElement=defineElement;exports.classNames=classNames;exports.extractClass=extractClass;exports.getHost=getHost;exports.renderToString=renderToString;//# sourceMappingURL=omi.esm.js.map\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/// css base code, injected by the css-loader\nmodule.exports=function(useSourceMap){var list=[];// return the list of modules as css string\nlist.toString=function toString(){return this.map(function(item){var content=cssWithMappingToString(item,useSourceMap);if(item[2]){return\"@media \"+item[2]+\"{\"+content+\"}\";}else{return content;}}).join(\"\");};// import a list of modules into the list\nlist.i=function(modules,mediaQuery){if(typeof modules===\"string\")modules=[[null,modules,\"\"]];var alreadyImportedModules={};for(var i=0;icapacity){// Manually shift all values starting at the index back to the\n// beginning of the queue.\nfor(var scan=0,newLength=queue.length-index;scan-1;};}function normalizeName(name){if(typeof name!=='string'){name=String(name);}if(/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)){throw new TypeError('Invalid character in header field name');}return name.toLowerCase();}function normalizeValue(value){if(typeof value!=='string'){value=String(value);}return value;}// Build a destructive iterator for the value list\nfunction iteratorFor(items){var iterator={next:function next(){var value=items.shift();return{done:value===undefined,value:value};}};if(support.iterable){iterator[Symbol.iterator]=function(){return iterator;};}return iterator;}function Headers(headers){this.map={};if(headers instanceof Headers){headers.forEach(function(value,name){this.append(name,value);},this);}else if(Array.isArray(headers)){headers.forEach(function(header){this.append(header[0],header[1]);},this);}else if(headers){Object.getOwnPropertyNames(headers).forEach(function(name){this.append(name,headers[name]);},this);}}Headers.prototype.append=function(name,value){name=normalizeName(name);value=normalizeValue(value);var oldValue=this.map[name];this.map[name]=oldValue?oldValue+','+value:value;};Headers.prototype['delete']=function(name){delete this.map[normalizeName(name)];};Headers.prototype.get=function(name){name=normalizeName(name);return this.has(name)?this.map[name]:null;};Headers.prototype.has=function(name){return this.map.hasOwnProperty(normalizeName(name));};Headers.prototype.set=function(name,value){this.map[normalizeName(name)]=normalizeValue(value);};Headers.prototype.forEach=function(callback,thisArg){for(var name in this.map){if(this.map.hasOwnProperty(name)){callback.call(thisArg,this.map[name],name,this);}}};Headers.prototype.keys=function(){var items=[];this.forEach(function(value,name){items.push(name);});return iteratorFor(items);};Headers.prototype.values=function(){var items=[];this.forEach(function(value){items.push(value);});return iteratorFor(items);};Headers.prototype.entries=function(){var items=[];this.forEach(function(value,name){items.push([name,value]);});return iteratorFor(items);};if(support.iterable){Headers.prototype[Symbol.iterator]=Headers.prototype.entries;}function consumed(body){if(body.bodyUsed){return Promise.reject(new TypeError('Already read'));}body.bodyUsed=true;}function fileReaderReady(reader){return new Promise(function(resolve,reject){reader.onload=function(){resolve(reader.result);};reader.onerror=function(){reject(reader.error);};});}function readBlobAsArrayBuffer(blob){var reader=new FileReader();var promise=fileReaderReady(reader);reader.readAsArrayBuffer(blob);return promise;}function readBlobAsText(blob){var reader=new FileReader();var promise=fileReaderReady(reader);reader.readAsText(blob);return promise;}function readArrayBufferAsText(buf){var view=new Uint8Array(buf);var chars=new Array(view.length);for(var i=0;i-1?upcased:method;}function Request(input,options){options=options||{};var body=options.body;if(input instanceof Request){if(input.bodyUsed){throw new TypeError('Already read');}this.url=input.url;this.credentials=input.credentials;if(!options.headers){this.headers=new Headers(input.headers);}this.method=input.method;this.mode=input.mode;if(!body&&input._bodyInit!=null){body=input._bodyInit;input.bodyUsed=true;}}else{this.url=String(input);}this.credentials=options.credentials||this.credentials||'omit';if(options.headers||!this.headers){this.headers=new Headers(options.headers);}this.method=normalizeMethod(options.method||this.method||'GET');this.mode=options.mode||this.mode||null;this.referrer=null;if((this.method==='GET'||this.method==='HEAD')&&body){throw new TypeError('Body not allowed for GET or HEAD requests');}this._initBody(body);}Request.prototype.clone=function(){return new Request(this,{body:this._bodyInit});};function decode(body){var form=new FormData();body.trim().split('&').forEach(function(bytes){if(bytes){var split=bytes.split('=');var name=split.shift().replace(/\\+/g,' ');var value=split.join('=').replace(/\\+/g,' ');form.append(decodeURIComponent(name),decodeURIComponent(value));}});return form;}function parseHeaders(rawHeaders){var headers=new Headers();rawHeaders.split(/\\r?\\n/).forEach(function(line){var parts=line.split(':');var key=parts.shift().trim();if(key){var value=parts.join(':').trim();headers.append(key,value);}});return headers;}Body.call(Request.prototype);function Response(bodyInit,options){if(!options){options={};}this.type='default';this.status='status'in options?options.status:200;this.ok=this.status>=200&&this.status<300;this.statusText='statusText'in options?options.statusText:'OK';this.headers=new Headers(options.headers);this.url=options.url||'';this._initBody(bodyInit);}Body.call(Response.prototype);Response.prototype.clone=function(){return new Response(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new Headers(this.headers),url:this.url});};Response.error=function(){var response=new Response(null,{status:0,statusText:''});response.type='error';return response;};var redirectStatuses=[301,302,303,307,308];Response.redirect=function(url,status){if(redirectStatuses.indexOf(status)===-1){throw new RangeError('Invalid status code');}return new Response(null,{status:status,headers:{location:url}});};self.Headers=Headers;self.Request=Request;self.Response=Response;self.fetch=function(input,init){return new Promise(function(resolve,reject){var request=new Request(input,init);var xhr=new XMLHttpRequest();xhr.onload=function(){var options={status:xhr.status,statusText:xhr.statusText,headers:parseHeaders(xhr.getAllResponseHeaders()||'')};options.url='responseURL'in xhr?xhr.responseURL:options.headers.get('X-Request-URL');var body='response'in xhr?xhr.response:xhr.responseText;resolve(new Response(body,options));};xhr.onerror=function(){reject(new TypeError('Network request failed'));};xhr.ontimeout=function(){reject(new TypeError('Network request failed'));};xhr.open(request.method,request.url,true);if(request.credentials==='include'){xhr.withCredentials=true;}if('responseType'in xhr&&support.blob){xhr.responseType='blob';}request.headers.forEach(function(value,name){xhr.setRequestHeader(name,value);});xhr.send(typeof request._bodyInit==='undefined'?null:request._bodyInit);});};self.fetch.polyfill=true;})(typeof self!=='undefined'?self:undefined);\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*//* eslint-disable no-unused-vars */var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError('Object.assign cannot be called with null or undefined');}return Object(val);}function shouldUseNative(){try{if(!Object.assign){return false;}// Detect buggy property enumeration order in older V8 versions.\n// https://bugs.chromium.org/p/v8/issues/detail?id=4118\nvar test1=new String('abc');// eslint-disable-line no-new-wrappers\ntest1[5]='de';if(Object.getOwnPropertyNames(test1)[0]==='5'){return false;}// https://bugs.chromium.org/p/v8/issues/detail?id=3056\nvar test2={};for(var i=0;i<10;i++){test2['_'+String.fromCharCode(i)]=i;}var order2=Object.getOwnPropertyNames(test2).map(function(n){return test2[n];});if(order2.join('')!=='0123456789'){return false;}// https://bugs.chromium.org/p/v8/issues/detail?id=3056\nvar test3={};'abcdefghijklmnopqrst'.split('').forEach(function(letter){test3[letter]=letter;});if(Object.keys(Object.assign({},test3)).join('')!=='abcdefghijklmnopqrst'){return false;}return true;}catch(err){// We don't expect any of the above to throw, but better to be safe.\nreturn false;}}module.exports=shouldUseNative()?Object.assign:function(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s {\n// let newP = document.createElement('div')\n// newP.className = '_code-ctn'\n// let pre = code.parentNode\n// let ctn = pre.parentNode\n// if (pre.nodeName === 'PRE') {\n// ctn.insertBefore(newP, pre)\n// let hl = document.createElement('div')\n// hl.className = '_hl'\n// newP.appendChild(hl)\n// newP.appendChild(pre)\n// let nums = codeHlNumArr[index]\n// let max = Math.max.apply(null, nums)\n// let inner = ''\n// for (let i = 0; i <= max; i++) {\n// if (nums.indexOf(i) == -1) {\n// inner += '
'\n// } else {\n// inner += '
'\n// }\n// }\n// hl.innerHTML = inner\n// }\n// })\n//fix line-highlight\nwindow.dispatchEvent(new Event('resize'));}},{key:'_arrToNumber',value:function _arrToNumber(numArr){var arr=[];numArr.forEach(function(item){if(item.indexOf('-')!==-1){var tempArr=item.split('-');var begin=Number(tempArr[0]);var end=Number(tempArr[1]);for(var i=begin;i0)return false;}return true;}},{key:'render',value:function render(){if(!this.demo)return;return Omi.h('div',null,this.show&&Omi.h('iframe',{style:'height:'+(window.innerHeight-59)+'px',src:this.demo}),!this.show&&Omi.h('div',{'class':'switch code',onClick:this.onShow},Omi.h('img',{src:__webpack_require__(32)})),this.show&&Omi.h('div',{'class':'switch close',onClick:this.onClose},Omi.h('img',{src:__webpack_require__(33)})));}}]);return _class2;}(_omi.WeElement));\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n var result = __webpack_require__(31);\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(1)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \"iframe{\\n width: 750px;\\n height: 100%;\\n top: 60px;\\n right: 0;\\n position: fixed;\\n border: none;\\n z-index: 9999;\\n border-left: 2px solid #24292E; \\n}\\n\\n.switch{\\n width: 40px;\\n height: 40px;\\n background-color: #AA0000;\\n border-radius: 50%;\\n position: fixed;\\n right: 50px;\\n bottom: 50px;\\n cursor: pointer;\\n text-align: center;\\n z-index: 10000;\\n}\\n\\n.switch img{\\n width: 30px;\\n height: 30px;\\n margin-top:5px; \\n}\\n\\n.switch.close img{\\n margin-top:10px; \\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n@media only screen and (max-width: 768px) {\\n iframe{\\n width: 100%;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC\"\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==\"\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function defineProperties(target,props){for(var i=0;i768};var id=0;this.map={};this.positionMap={};_config2.default.menus[this.data.lan].forEach(function(menu,index){menu.list.forEach(function(item,subIndex){item.id=id++;item.position=[index,subIndex];_this.map[item.id]=item;item.index=index;item.subIndex=subIndex;_this.positionMap[index+'-'+subIndex]=item;});});this.preIndex=0;this.preSubIndex=0;}_createClass(Store,[{key:'getNext',value:function getNext(){var item=this.positionMap[this.data.position.join('-')];if(item){return this.map[item.id+1];}}},{key:'getPre',value:function getPre(){var item=this.positionMap[this.data.position.join('-')];if(item){return this.map[item.id-1];}}},{key:'init',value:function init(){var _this2=this;this.remarkable=new Remarkable({html:true});if(location.hash===\"\"){this.data.position=[0,0];this.getMarkDown(this.data.menus[this.data.lan][0].list[0].md,this.data.lan,function(m){_this2.data.html=_this2.remarkable.render(m);});}this.initRouter();}},{key:'toogleSidebar',value:function toogleSidebar(){this.data.sideBarShow=!this.data.sideBarShow;}},{key:'hideSidebar',value:function hideSidebar(){this.data.sideBarShow=false;}},{key:'initRouter',value:function initRouter(){var _this3=this;var menus=this.data.menus[this.data.lan];menus.forEach(function(item){item.list.forEach(function(subItem){route('/'+subItem.md,function(evt){menus[_this3.preIndex].list[_this3.preSubIndex].selected=false;_this3.preIndex=evt.query.index;_this3.preSubIndex=evt.query.subIndex;_this3.data.position=[Number(evt.query.index),Number(evt.query.subIndex)];_this3.data.sideBarShow=false;_this3.getMarkDown(subItem.md,_this3.data.lan,function(m){_this3.data.html=_this3.remarkable.render(m);document.body.scrollTop=0;document.documentElement.scrollTop=0;});});});});}},{key:'getMarkDown',value:function getMarkDown(name,lan,callback){__webpack_require__(38)(\"./\"+lan+'/'+name+'.md').then(function(m){callback(m);});}}]);return Store;}();exports.default=Store;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(exports,\"__esModule\",{value:true});var config={menus:{'zh-cn':[{title:'Omi',list:[{name:'简介',md:'introduction'},{name:'安装',md:'installation'}]},{title:'基础概念',list:[{name:'JSX',md:'jsx'},{name:'Props',md:'props'},{name:'事件',md:'event'},{name:'生命周期',md:'lifecycle'},{name:'Ref',md:'ref'},{name:'Class',md:'class'},{name:'Store',md:'store'},{name:'CSS',md:'css'}]},{title:'其他',list:[{name:'生态与例子',md:'other'},{name:'Mps',md:'mps'},{name:'Omip 多端开发',md:'omip'},{name:'服务端渲染',md:'ssr'},{name:'路由',md:'router'},{name:'Omiu',md:'omiu'}]}],en:[{title:'Omi',list:[{name:'Introduction',md:'introduction'},{name:'Installation',md:'installation'}]},{title:'Base',list:[{name:'JSX',md:'jsx'},{name:'Props',md:'props'},{name:'Event',md:'event'},{name:'Lifecycle',md:'lifecycle'},{name:'Ref',md:'ref'},{name:'Class',md:'class'},{name:'Store',md:'store'},{name:'CSS',md:'css'}]},{title:'Other',list:[{name:'Ecosystem and examples',md:'other'},{name:'Server-Side Rendering',md:'ssr'},{name:'Router',md:'router'},{name:'Omiu',md:'omiu'}]}]}};exports.default=config;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol===\"function\"&&obj.constructor===Symbol&&obj!==Symbol.prototype?\"symbol\":typeof obj;};exports.default=route;/*!\n * omi-router v2.0.9 by dntzhang\n * Router for Omi.\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n */var p2r=__webpack_require__(37);var mapping={};var root=getGlobal();root.route=route;root.route.params=null;root.historyLength=0;root.route.to=function(path,data){root.route._routeByTo=true;root.route.data=data;if(path[0]==='#'){location.hash=path;}else{location.hash='#'+path;}};window.addEventListener('hashchange',change);function change(evt){var byNative=false;//need to fix a line by omi-link\nif(window.history.length===root.historyLength&&!root.route._routeByTo){//keep alive mode\nbyNative=true;}root.route._routeByTo=false;root.historyLength=window.history.length;var prevent=false;if(evt.type==='hashchange'&&root.route.before){prevent=root.route.before(evt)===false;}if(prevent)return;var path=window.location.hash.replace('#','');if(path==='')path='/';var notFound=true;Object.keys(mapping).every(function(key){var toArr=path.split('?')[0].match(mapping[key].reg);if(toArr){var pathArr=key.match(mapping[key].reg);root.route.params=getParams(toArr,pathArr);root.route.query=getUrlParams(path);mapping[key].callback({params:root.route.params,query:getUrlParams(path),data:root.route.data,byNative:byNative});root.route.data=null;notFound=false;return false;}return true;});if(notFound){mapping['*']&&mapping['*'].callback({byNative:byNative});}if(evt.type==='hashchange'&&root.route.after){root.route.after(evt);}}document.addEventListener('DOMContentLoaded',change);function getParams(toArr,pathArr){var params={};toArr.forEach(function(item,index){if(index>0){params[pathArr[index].replace(':','')]=item;}});return params;}function route(path,callback){mapping[path]={callback:callback,reg:p2r(path)};}function getGlobal(){if((typeof global==='undefined'?'undefined':_typeof(global))!=='object'||!global||global.Math!==Math||global.Array!==Array){return self||window||global||function(){return this;}();}return global;}function getUrlParams(url){url=url.replace(/#.*$/,'');var queryArray=url.split(/[?&]/).slice(1);var i,args={};for(i=0;i [\"test\", \"\\d+\", undefined, \"?\"]\n// \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n'(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'].join('|'),'g');/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */function parse(str,options){var tokens=[];var key=0;var index=0;var path='';var defaultDelimiter=options&&options.delimiter||DEFAULT_DELIMITER;var whitelist=options&&options.whitelist||undefined;var pathEscaped=false;var res;while((res=PATH_REGEXP.exec(str))!==null){var m=res[0];var escaped=res[1];var offset=res.index;path+=str.slice(index,offset);index=offset+m.length;// Ignore already escaped sequences.\nif(escaped){path+=escaped[1];pathEscaped=true;continue;}var prev='';var name=res[2];var capture=res[3];var group=res[4];var modifier=res[5];if(!pathEscaped&&path.length){var k=path.length-1;var c=path[k];var matches=whitelist?whitelist.indexOf(c)>-1:true;if(matches){prev=c;path=path.slice(0,k);}}// Push the current path onto the tokens.\nif(path){tokens.push(path);path='';pathEscaped=false;}var repeat=modifier==='+'||modifier==='*';var optional=modifier==='?'||modifier==='*';var pattern=capture||group;var delimiter=prev||defaultDelimiter;tokens.push({name:name||key++,prefix:prev,delimiter:delimiter,optional:optional,repeat:repeat,pattern:pattern?escapeGroup(pattern):'[^'+escapeString(delimiter===defaultDelimiter?delimiter:delimiter+defaultDelimiter)+']+?'});}// Push any remaining characters.\nif(path||indexHello!`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */\nfunction h(nodeName, attributes) {\n var children = EMPTY_CHILDREN,\n lastSimple,\n child,\n simple,\n i;\n for (i = arguments.length; i-- > 2;) {\n stack.push(arguments[i]);\n }\n if (attributes && attributes.children != null) {\n if (!stack.length) stack.push(attributes.children);\n delete attributes.children;\n }\n while (stack.length) {\n if ((child = stack.pop()) && child.pop !== undefined) {\n for (i = child.length; i--;) {\n stack.push(child[i]);\n }\n } else {\n if (typeof child === 'boolean') child = null;\n\n if (simple = typeof nodeName !== 'function') {\n if (child == null) child = '';else if (typeof child === 'number') child = String(child);else if (typeof child !== 'string') simple = false;\n }\n\n if (simple && lastSimple) {\n children[children.length - 1] += child;\n } else if (children === EMPTY_CHILDREN) {\n children = [child];\n } else {\n children.push(child);\n }\n\n lastSimple = simple;\n }\n }\n\n var p = new VNode();\n p.nodeName = nodeName;\n p.children = children;\n p.attributes = attributes == null ? undefined : attributes;\n p.key = attributes == null ? undefined : attributes.key;\n\n // if a \"vnode hook\" is defined, pass every created VNode to it\n if (options.vnode !== undefined) options.vnode(p);\n\n return p;\n}\n\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction assign(target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n}\n\nif (typeof Element !== 'undefined' && !Element.prototype.addEventListener) {\n var runListeners = function runListeners(oEvent) {\n if (!oEvent) {\n oEvent = window.event;\n }\n for (var iLstId = 0, iElId = 0, oEvtListeners = oListeners[oEvent.type]; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n for (iLstId; iLstId < oEvtListeners.aEvts[iElId].length; iLstId++) {\n oEvtListeners.aEvts[iElId][iLstId].call(this, oEvent);\n }\n break;\n }\n }\n };\n\n var oListeners = {};\n\n Element.prototype.addEventListener = function (sEventType, fListener /*, useCapture (will be ignored!) */) {\n if (oListeners.hasOwnProperty(sEventType)) {\n var oEvtListeners = oListeners[sEventType];\n for (var nElIdx = -1, iElId = 0; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n nElIdx = iElId;break;\n }\n }\n if (nElIdx === -1) {\n oEvtListeners.aEls.push(this);\n oEvtListeners.aEvts.push([fListener]);\n this[\"on\" + sEventType] = runListeners;\n } else {\n var aElListeners = oEvtListeners.aEvts[nElIdx];\n if (this[\"on\" + sEventType] !== runListeners) {\n aElListeners.splice(0);\n this[\"on\" + sEventType] = runListeners;\n }\n for (var iLstId = 0; iLstId < aElListeners.length; iLstId++) {\n if (aElListeners[iLstId] === fListener) {\n return;\n }\n }\n aElListeners.push(fListener);\n }\n } else {\n oListeners[sEventType] = { aEls: [this], aEvts: [[fListener]] };\n this[\"on\" + sEventType] = runListeners;\n }\n };\n Element.prototype.removeEventListener = function (sEventType, fListener /*, useCapture (will be ignored!) */) {\n if (!oListeners.hasOwnProperty(sEventType)) {\n return;\n }\n var oEvtListeners = oListeners[sEventType];\n for (var nElIdx = -1, iElId = 0; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n nElIdx = iElId;break;\n }\n }\n if (nElIdx === -1) {\n return;\n }\n for (var iLstId = 0, aElListeners = oEvtListeners.aEvts[nElIdx]; iLstId < aElListeners.length; iLstId++) {\n if (aElListeners[iLstId] === fListener) {\n aElListeners.splice(iLstId, 1);\n }\n }\n };\n}\n\nif (typeof Object.create !== 'function') {\n Object.create = function (proto, propertiesObject) {\n if (typeof proto !== 'object' && typeof proto !== 'function') {\n throw new TypeError('Object prototype may only be an Object: ' + proto);\n } else if (proto === null) {\n throw new Error(\"This browser's implementation of Object.create is a shim and doesn't support 'null' as the first argument.\");\n }\n\n // if (typeof propertiesObject != 'undefined') {\n // throw new Error(\"This browser's implementation of Object.create is a shim and doesn't support a second argument.\");\n // }\n\n function F() {}\n F.prototype = proto;\n\n return new F();\n };\n}\n\nif (!String.prototype.trim) {\n String.prototype.trim = function () {\n return this.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n };\n}\n\n/**\n * Copy all properties from `props` onto `obj`.\n * @param {Object} obj\t\tObject onto which properties should be copied.\n * @param {Object} props\tObject from which to copy properties.\n * @returns obj\n * @private\n */\nfunction extend(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\n/** Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} [ref=null]\n * @param {any} [value]\n */\nfunction applyRef(ref, value) {\n if (ref) {\n if (typeof ref == 'function') ref(value);else ref.current = value;\n }\n}\n\n/**\n * Call a function asynchronously, as soon as possible. Makes\n * use of HTML Promise to schedule the callback if available,\n * otherwise falling back to `setTimeout` (mainly for IE<11).\n *\n * @param {Function} callback\n */\n\nvar usePromise = typeof Promise == 'function';\n\n// for native\nif (typeof document !== 'object' && typeof global !== 'undefined' && global.__config__) {\n if (global.__config__.platform === 'android') {\n usePromise = true;\n } else {\n var systemVersion = global.__config__.systemVersion && global.__config__.systemVersion.split('.')[0] || 0;\n if (systemVersion > 8) {\n usePromise = true;\n }\n }\n}\n\nvar defer = usePromise ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\nfunction isArray(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n}\n\nfunction nProps(props) {\n if (!props || isArray(props)) return {};\n var result = {};\n Object.keys(props).forEach(function (key) {\n result[key] = props[key].value;\n });\n return result;\n}\n\nfunction getUse(data, paths) {\n var obj = [];\n paths.forEach(function (path, index) {\n var isPath = typeof path === 'string';\n if (isPath) {\n obj[index] = getTargetByPath(data, path);\n } else {\n var key = Object.keys(path)[0];\n var value = path[key];\n if (typeof value === 'string') {\n obj[index] = getTargetByPath(data, value);\n } else {\n var tempPath = value[0];\n if (typeof tempPath === 'string') {\n var tempVal = getTargetByPath(data, tempPath);\n obj[index] = value[1] ? value[1](tempVal) : tempVal;\n } else {\n var args = [];\n tempPath.forEach(function (path) {\n args.push(getTargetByPath(data, path));\n });\n obj[index] = value[1].apply(null, args);\n }\n }\n obj[key] = obj[index];\n }\n });\n return obj;\n}\n\nfunction getTargetByPath(origin, path) {\n var arr = path.replace(/]/g, '').replace(/\\[/g, '.').split('.');\n var current = origin;\n for (var i = 0, len = arr.length; i < len; i++) {\n current = current[arr[i]];\n }\n return current;\n}\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {VNode} vnode\t\tThe virtual DOM element to clone\n * @param {Object} props\tAttributes/props to add when cloning\n * @param {VNode} rest\t\tAny additional arguments will be used as replacement children.\n */\nfunction cloneElement(vnode, props) {\n return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\n// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL$1 = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\n/** Managed queue of dirty components to be re-rendered */\n\nvar items = [];\n\nfunction enqueueRender(component) {\n if (items.push(component) == 1) {\n(options.debounceRendering || defer)(rerender);\n }\n}\n\n/** Rerender all enqueued dirty components */\nfunction rerender() {\n var p;\n while (p = items.pop()) {\n renderComponent(p);\n }\n}\n\nvar mapping = options.mapping;\n/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hydrating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */\nfunction isSameNodeType(node, vnode, hydrating) {\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n return node.splitText !== undefined;\n }\n if (typeof vnode.nodeName === 'string') {\n var ctor = mapping[vnode.nodeName];\n if (ctor) {\n return hydrating || node._componentConstructor === ctor;\n }\n return !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n }\n return hydrating || node._componentConstructor === vnode.nodeName;\n}\n\n/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */\nfunction isNamedNode(node, nodeName) {\n return node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\n}\n\n/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n *\n * @param {VNode} vnode\n * @returns {Object} props\n */\nfunction getNodeProps(vnode) {\n var props = extend({}, vnode.attributes);\n props.children = vnode.children;\n\n var defaultProps = vnode.nodeName.defaultProps;\n if (defaultProps !== undefined) {\n for (var i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i];\n }\n }\n }\n\n return props;\n}\n\n/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */\nfunction createNode(nodeName, isSvg) {\n var node = isSvg ? options.doc.createElementNS('http://www.w3.org/2000/svg', nodeName) : options.doc.createElement(nodeName);\n node.normalizedNodeName = nodeName;\n return node;\n}\n\nfunction parseCSSText(cssText) {\n var cssTxt = cssText.replace(/\\/\\*(.|\\s)*?\\*\\//g, ' ').replace(/\\s+/g, ' ');\n var style = {},\n _ref = cssTxt.match(/ ?(.*?) ?{([^}]*)}/) || [a, b, cssTxt],\n a = _ref[0],\n b = _ref[1],\n rule = _ref[2];\n\n var cssToJs = function cssToJs(s) {\n return s.replace(/\\W+\\w/g, function (match) {\n return match.slice(-1).toUpperCase();\n });\n };\n var properties = rule.split(';').map(function (o) {\n return o.split(':').map(function (x) {\n return x && x.trim();\n });\n });\n for (var i = properties, i = Array.isArray(i), i = 0, i = i ? i : i[Symbol.iterator]();;) {\n var _ref3;\n\n if (i) {\n if (i >= i.length) break;\n _ref3 = i[i++];\n } else {\n i = i.next();\n if (i.done) break;\n _ref3 = i.value;\n }\n\n var _ref2 = _ref3;\n var property = _ref2[0];\n var value = _ref2[1];\n style[cssToJs(property)] = value;\n }return style;\n}\n\n/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */\nfunction removeNode(node) {\n var parentNode = node.parentNode;\n if (parentNode) parentNode.removeChild(node);\n}\n\n/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */\nfunction setAccessor(node, name, old, value, isSvg) {\n if (name === 'className') name = 'class';\n\n if (name === 'key') {\n // ignore\n } else if (name === 'ref') {\n applyRef(old, null);\n applyRef(value, node);\n } else if (name === 'class' && !isSvg) {\n node.className = value || '';\n } else if (name === 'style') {\n if (options.isWeb) {\n if (!value || typeof value === 'string' || typeof old === 'string') {\n node.style.cssText = value || '';\n }\n if (value && typeof value === 'object') {\n if (typeof old !== 'string') {\n for (var i in old) {\n if (!(i in value)) node.style[i] = '';\n }\n }\n for (var i in value) {\n node.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL$1.test(i) === false ? value[i] + 'px' : value[i];\n }\n }\n } else {\n var oldJson = old,\n currentJson = value;\n if (typeof old === 'string') {\n oldJson = parseCSSText(old);\n }\n if (typeof value == 'string') {\n currentJson = parseCSSText(value);\n }\n\n var result = {},\n changed = false;\n\n if (oldJson) {\n for (var key in oldJson) {\n if (typeof currentJson == 'object' && !(key in currentJson)) {\n result[key] = '';\n changed = true;\n }\n }\n\n for (var ckey in currentJson) {\n if (currentJson[ckey] !== oldJson[ckey]) {\n result[ckey] = currentJson[ckey];\n changed = true;\n }\n }\n\n if (changed) {\n node.setStyles(result);\n }\n } else {\n node.setStyles(currentJson);\n }\n }\n } else if (name === 'dangerouslySetInnerHTML') {\n if (value) node.innerHTML = value.__html || '';\n } else if (name[0] == 'o' && name[1] == 'n') {\n var useCapture = name !== (name = name.replace(/Capture$/, ''));\n name = name.toLowerCase().substring(2);\n if (value) {\n if (!old) {\n node.addEventListener(name, eventProxy, useCapture);\n if (name == 'tap') {\n node.addEventListener('touchstart', touchStart, useCapture);\n node.addEventListener('touchend', touchEnd, useCapture);\n }\n }\n } else {\n node.removeEventListener(name, eventProxy, useCapture);\n if (name == 'tap') {\n node.removeEventListener('touchstart', touchStart, useCapture);\n node.removeEventListener('touchend', touchEnd, useCapture);\n }\n }\n(node._listeners || (node._listeners = {}))[name] = value;\n } else if (name !== 'list' && name !== 'type' && !isSvg && name in node) {\n setProperty(node, name, value == null ? '' : value);\n if (value == null || value === false) node.removeAttribute(name);\n } else {\n var ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\n if (value == null || value === false) {\n if (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n } else if (typeof value !== 'function') {\n if (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n }\n }\n}\n\n/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */\nfunction setProperty(node, name, value) {\n try {\n node[name] = value;\n } catch (e) {}\n}\n\n/** Proxy an event to hooked event handlers\n *\t@private\n */\nfunction eventProxy(e) {\n return this._listeners[e.type](options.event && options.event(e) || e);\n}\n\nfunction touchStart(e) {\n this.___touchX = e.touches[0].pageX;\n this.___touchY = e.touches[0].pageY;\n this.___scrollTop = document.body.scrollTop;\n}\n\nfunction touchEnd(e) {\n if (Math.abs(e.changedTouches[0].pageX - this.___touchX) < 30 && Math.abs(e.changedTouches[0].pageY - this.___touchY) < 30 && Math.abs(document.body.scrollTop - this.___scrollTop) < 30) {\n this.dispatchEvent(new CustomEvent('tap', { detail: e }));\n }\n}\n\nvar styleId = 0;\n\nfunction getCtorName(ctor) {\n for (var i = 0, len = options.styleCache.length; i < len; i++) {\n var item = options.styleCache[i];\n\n if (item.ctor === ctor) {\n return item.attrName;\n }\n }\n\n var attrName = 's' + styleId;\n options.styleCache.push({ ctor: ctor, attrName: attrName });\n styleId++;\n\n return attrName;\n}\n\n// many thanks to https://github.com/thomaspark/scoper/\nfunction scoper(css, prefix) {\n prefix = '[' + prefix.toLowerCase() + ']';\n // https://www.w3.org/TR/css-syntax-3/#lexical\n css = css.replace(/\\/\\*[^*]*\\*+([^/][^*]*\\*+)*\\//g, '');\n // eslint-disable-next-line\n var re = new RegExp('([^\\r\\n,{}:]+)(:[^\\r\\n,{}]+)?(,(?=[^{}]*{)|\\s*{)', 'g');\n /**\n * Example:\n *\n * .classname::pesudo { color:red }\n *\n * g1 is normal selector `.classname`\n * g2 is pesudo class or pesudo element\n * g3 is the suffix\n */\n css = css.replace(re, function (g0, g1, g2, g3) {\n if (typeof g2 === 'undefined') {\n g2 = '';\n }\n\n /* eslint-ignore-next-line */\n if (g1.match(/^\\s*(@media|\\d+%?|@-webkit-keyframes|@keyframes|to|from|@font-face)/)) {\n return g1 + g2 + g3;\n }\n\n var appendClass = g1.replace(/(\\s*)$/, '') + prefix + g2;\n //let prependClass = prefix + ' ' + g1.trim() + g2;\n\n return appendClass + g3;\n //return appendClass + ',' + prependClass + g3;\n });\n\n return css;\n}\n\nfunction addStyle(cssText, id) {\n id = id.toLowerCase();\n var ele = document.getElementById(id);\n var head = document.getElementsByTagName('head')[0];\n if (ele && ele.parentNode === head) {\n head.removeChild(ele);\n }\n\n var someThingStyles = document.createElement('style');\n head.appendChild(someThingStyles);\n someThingStyles.setAttribute('type', 'text/css');\n someThingStyles.setAttribute('id', id);\n if (window.ActiveXObject) {\n someThingStyles.styleSheet.cssText = cssText;\n } else {\n someThingStyles.textContent = cssText;\n }\n}\n\nfunction addStyleWithoutId(cssText) {\n var head = document.getElementsByTagName('head')[0];\n var someThingStyles = document.createElement('style');\n head.appendChild(someThingStyles);\n someThingStyles.setAttribute('type', 'text/css');\n\n if (window.ActiveXObject) {\n someThingStyles.styleSheet.cssText = cssText;\n } else {\n someThingStyles.textContent = cssText;\n }\n}\n\nfunction addScopedAttrStatic(vdom, attr) {\n if (options.scopedStyle) {\n scopeVdom(attr, vdom);\n }\n}\n\nfunction addStyleToHead(style, attr) {\n if (options.scopedStyle) {\n if (!options.staticStyleMapping[attr]) {\n addStyle(scoper(style, attr), attr);\n options.staticStyleMapping[attr] = true;\n }\n } else if (!options.staticStyleMapping[attr]) {\n addStyleWithoutId(style);\n options.staticStyleMapping[attr] = true;\n }\n}\n\nfunction scopeVdom(attr, vdom) {\n if (typeof vdom === 'object') {\n vdom.attributes = vdom.attributes || {};\n vdom.attributes[attr] = '';\n vdom.css = vdom.css || {};\n vdom.css[attr] = '';\n vdom.children.forEach(function (child) {\n return scopeVdom(attr, child);\n });\n }\n}\n\nfunction scopeHost(vdom, css) {\n if (typeof vdom === 'object' && css) {\n vdom.attributes = vdom.attributes || {};\n for (var key in css) {\n vdom.attributes[key] = '';\n }\n }\n}\n\n/** Queue of components that have been mounted and are awaiting componentDidMount */\nvar mounts = [];\n\n/** Diff recursion count, used to track the end of the diff cycle. */\nvar diffLevel = 0;\n\n/** Global flag indicating if the diff is currently within an SVG */\nvar isSvgMode = false;\n\n/** Global flag indicating if the diff is performing hydration */\nvar hydrating = false;\n\n/** Invoke queued componentDidMount lifecycle methods */\nfunction flushMounts() {\n var c;\n while (c = mounts.pop()) {\n if (options.afterMount) options.afterMount(c);\n if (c.installed) c.installed();\n if (c.constructor.css || c.css) {\n addStyleToHead(c.constructor.css ? c.constructor.css : typeof c.css === 'function' ? c.css() : c.css, '_s' + getCtorName(c.constructor));\n }\n }\n}\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n *\t@param {Element} [dom=null]\t\tA DOM node to mutate into the shape of the `vnode`\n *\t@param {VNode} vnode\t\t\tA VNode (with descendants forming a tree) representing the desired DOM structure\n *\t@returns {Element} dom\t\t\tThe created/mutated element\n *\t@private\n */\nfunction diff(dom, vnode, context, mountAll, parent, componentRoot) {\n // diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n if (!diffLevel++) {\n // when first starting the diff, check if we're diffing an SVG or within an SVG\n isSvgMode = parent != null && parent.ownerSVGElement !== undefined;\n\n // hydration is indicated by the existing element to be diffed not having a prop cache\n hydrating = dom != null && !('__omiattr_' in dom);\n }\n var ret;\n\n if (isArray(vnode)) {\n vnode = {\n nodeName: 'span',\n children: vnode\n };\n }\n\n ret = idiff(dom, vnode, context, mountAll, componentRoot);\n // append the element if its a new parent\n if (parent && ret.parentNode !== parent) parent.appendChild(ret);\n\n // diffLevel being reduced to 0 means we're exiting the diff\n if (! --diffLevel) {\n hydrating = false;\n // invoke queued componentDidMount lifecycle methods\n if (!componentRoot) flushMounts();\n }\n\n return ret;\n}\n\n/** Internals of `diff()`, separated to allow bypassing diffLevel / mount flushing. */\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n var out = dom,\n prevSvgMode = isSvgMode;\n\n // empty values (null, undefined, booleans) render as empty Text nodes\n if (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n // If the VNode represents a Component, perform a component diff:\n var vnodeName = vnode.nodeName;\n if (options.mapping[vnodeName]) {\n vnode.nodeName = options.mapping[vnodeName];\n return buildComponentFromVNode(dom, vnode, context, mountAll);\n }\n if (typeof vnodeName == 'function') {\n return buildComponentFromVNode(dom, vnode, context, mountAll);\n }\n\n // Fast case: Strings & Numbers create/update Text nodes.\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n // update if it's already a Text node:\n if (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\n /* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\n if (dom.nodeValue != vnode) {\n dom.nodeValue = vnode;\n }\n } else {\n // it wasn't a Text node: replace it with one and recycle the old Element\n out = document.createTextNode(vnode);\n if (dom) {\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n recollectNodeTree(dom, true);\n }\n }\n\n //ie8 error\n try {\n out['__omiattr_'] = true;\n } catch (e) {}\n\n return out;\n }\n\n // Tracks entering and exiting SVG namespace when descending through the tree.\n isSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n // If there's no existing element or it's the wrong type, create a new one:\n vnodeName = String(vnodeName);\n if (!dom || !isNamedNode(dom, vnodeName)) {\n out = createNode(vnodeName, isSvgMode);\n\n if (dom) {\n // move children into the replacement node\n while (dom.firstChild) {\n out.appendChild(dom.firstChild);\n } // if the previous Element was mounted into the DOM, replace it inline\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n // recycle the old element (skips non-Element node types)\n recollectNodeTree(dom, true);\n }\n }\n\n var fc = out.firstChild,\n props = out['__omiattr_'],\n vchildren = vnode.children;\n\n if (props == null) {\n props = out['__omiattr_'] = {};\n for (var a = out.attributes, i = a.length; i--;) {\n props[a[i].name] = a[i].value;\n }\n }\n\n // Optimization: fast-path for elements containing a single TextNode:\n if (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\n if (fc.nodeValue != vchildren[0]) {\n fc.nodeValue = vchildren[0];\n }\n }\n // otherwise, if there are existing or new children, diff them:\n else if (vchildren && vchildren.length || fc != null) {\n innerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML != null);\n }\n\n // Apply attributes/props from VNode to the DOM Element:\n diffAttributes(out, vnode.attributes, props);\n\n // restore previous SVG mode: (in case we're exiting an SVG namespace)\n isSvgMode = prevSvgMode;\n\n return out;\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n *\t@param {Element} dom\t\t\tElement whose children should be compared & mutated\n *\t@param {Array} vchildren\t\tArray of VNodes to compare to `dom.childNodes`\n *\t@param {Object} context\t\t\tImplicitly descendant context object (from most recent `getChildContext()`)\n *\t@param {Boolean} mountAll\n *\t@param {Boolean} isHydrating\tIf `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n var originalChildren = dom.childNodes,\n children = [],\n keyed = {},\n keyedLen = 0,\n min = 0,\n len = originalChildren.length,\n childrenLen = 0,\n vlen = vchildren ? vchildren.length : 0,\n j,\n c,\n f,\n vchild,\n child;\n\n // Build up a map of keyed children and an Array of unkeyed children:\n if (len !== 0) {\n for (var i = 0; i < len; i++) {\n var _child = originalChildren[i],\n props = _child['__omiattr_'],\n key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n if (key != null) {\n keyedLen++;\n keyed[key] = _child;\n } else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n children[childrenLen++] = _child;\n }\n }\n }\n\n if (vlen !== 0) {\n for (var i = 0; i < vlen; i++) {\n vchild = vchildren[i];\n child = null;\n\n // attempt to find a node based on key matching\n var key = vchild.key;\n if (key != null) {\n if (keyedLen && keyed[key] !== undefined) {\n child = keyed[key];\n keyed[key] = undefined;\n keyedLen--;\n }\n }\n // attempt to pluck a node of the same type from the existing children\n else if (!child && min < childrenLen) {\n for (j = min; j < childrenLen; j++) {\n if (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\n child = c;\n children[j] = undefined;\n if (j === childrenLen - 1) childrenLen--;\n if (j === min) min++;\n break;\n }\n }\n }\n\n // morph the matched/found/created DOM child to match vchild (deep)\n child = idiff(child, vchild, context, mountAll);\n\n f = originalChildren[i];\n if (child && child !== dom && child !== f) {\n if (f == null) {\n dom.appendChild(child);\n } else if (child === f.nextSibling) {\n removeNode(f);\n } else {\n dom.insertBefore(child, f);\n }\n }\n }\n }\n\n // remove unused keyed children:\n if (keyedLen) {\n for (var i in keyed) {\n if (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n }\n }\n\n // remove orphaned unkeyed children:\n while (min <= childrenLen) {\n if ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n }\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n *\t@param {Node} node\t\t\t\t\t\tDOM node to start unmount/removal from\n *\t@param {Boolean} [unmountOnly=false]\tIf `true`, only triggers unmount lifecycle, skips removal\n */\nfunction recollectNodeTree(node, unmountOnly) {\n var component = node._component;\n if (component) {\n // if node is owned by a Component, unmount that component (ends up recursing back here)\n unmountComponent(component);\n } else {\n // If the node's VNode had a ref function, invoke it with null here.\n // (this is part of the React spec, and smart for unsetting references)\n if (node['__omiattr_'] != null) applyRef(node['__omiattr_'].ref, null);\n\n if (unmountOnly === false || node['__omiattr_'] == null) {\n removeNode(node);\n }\n\n removeChildren(node);\n }\n}\n\n/** Recollect/unmount all children.\n *\t- we use .lastChild here because it causes less reflow than .firstChild\n *\t- it's also cheaper than accessing the .childNodes Live NodeList\n */\nfunction removeChildren(node) {\n node = node.lastChild;\n while (node) {\n var next = node.previousSibling;\n recollectNodeTree(node, true);\n node = next;\n }\n}\n\n/** Apply differences in attributes from a VNode to the given DOM Element.\n *\t@param {Element} dom\t\tElement with attributes to diff `attrs` against\n *\t@param {Object} attrs\t\tThe desired end-state key-value attribute pairs\n *\t@param {Object} old\t\t\tCurrent/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old) {\n var name;\n\n // remove attributes no longer present on the vnode by setting them to undefined\n for (name in old) {\n if (!(attrs && attrs[name] != null) && old[name] != null) {\n setAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);\n }\n }\n\n // add new & update changed attributes\n for (name in attrs) {\n if (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n setAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n }\n }\n}\n\n/** Retains a pool of Components for re-use, keyed on component name.\n *\tNote: since component names are not unique or even necessarily available, these are primarily a form of sharding.\n *\t@private\n */\nvar components = {};\n\n/** Reclaim a component for later re-use by the recycler. */\nfunction collectComponent(component) {\n var name = component.constructor.name;(components[name] || (components[name] = [])).push(component);\n}\n\n/** Create a component. Normalizes differences between PFC's and classful Components. */\nfunction createComponent(Ctor, props, context, vnode) {\n var list = components[Ctor.name],\n inst;\n\n if (Ctor.prototype && Ctor.prototype.render) {\n inst = new Ctor(props, context);\n Component.call(inst, props, context);\n } else {\n inst = new Component(props, context);\n inst.constructor = Ctor;\n inst.render = doRender;\n }\n vnode && (inst.scopedCssAttr = vnode.css);\n\n if (inst.constructor.use && inst.store && inst.store.data) {\n inst.store.instances.push(inst);\n inst.use = getUse(inst.store.data, inst.constructor.use);\n }\n\n if (list) {\n for (var i = list.length; i--;) {\n if (list[i].constructor === Ctor) {\n inst.nextBase = list[i].nextBase;\n list.splice(i, 1);\n break;\n }\n }\n }\n return inst;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, data, context) {\n return this.constructor(props, context);\n}\n\n/* obaa 1.0.0\n * By dntzhang\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n */\n\nvar obaa = function obaa(target, arr, callback) {\n var _observe = function _observe(target, arr, callback) {\n if (!target.$observer) target.$observer = this;\n var $observer = target.$observer;\n var eventPropArr = [];\n if (obaa.isArray(target)) {\n if (target.length === 0) {\n target.$observeProps = {};\n target.$observeProps.$observerPath = '#';\n }\n $observer.mock(target);\n }\n for (var prop in target) {\n if (target.hasOwnProperty(prop)) {\n if (callback) {\n if (obaa.isArray(arr) && obaa.isInArray(arr, prop)) {\n eventPropArr.push(prop);\n $observer.watch(target, prop);\n } else if (obaa.isString(arr) && prop == arr) {\n eventPropArr.push(prop);\n $observer.watch(target, prop);\n }\n } else {\n eventPropArr.push(prop);\n $observer.watch(target, prop);\n }\n }\n }\n $observer.target = target;\n if (!$observer.propertyChangedHandler) $observer.propertyChangedHandler = [];\n var propChanged = callback ? callback : arr;\n $observer.propertyChangedHandler.push({\n all: !callback,\n propChanged: propChanged,\n eventPropArr: eventPropArr\n });\n };\n _observe.prototype = {\n onPropertyChanged: function onPropertyChanged(prop, value, oldValue, target, path) {\n if (value !== oldValue && this.propertyChangedHandler) {\n var rootName = obaa._getRootName(prop, path);\n for (var i = 0, len = this.propertyChangedHandler.length; i < len; i++) {\n var handler = this.propertyChangedHandler[i];\n if (handler.all || obaa.isInArray(handler.eventPropArr, rootName) || rootName.indexOf('Array-') === 0) {\n handler.propChanged.call(this.target, prop, value, oldValue, path);\n }\n }\n }\n if (prop.indexOf('Array-') !== 0 && typeof value === 'object') {\n this.watch(target, prop, target.$observeProps.$observerPath);\n }\n },\n mock: function mock(target) {\n var self = this;\n obaa.methods.forEach(function (item) {\n target[item] = function () {\n var old = Array.prototype.slice.call(this, 0);\n var result = Array.prototype[item].apply(this, Array.prototype.slice.call(arguments));\n if (new RegExp('\\\\b' + item + '\\\\b').test(obaa.triggerStr)) {\n for (var cprop in this) {\n if (this.hasOwnProperty(cprop) && !obaa.isFunction(this[cprop])) {\n self.watch(this, cprop, this.$observeProps.$observerPath);\n }\n }\n //todo\n self.onPropertyChanged('Array-' + item, this, old, this, this.$observeProps.$observerPath);\n }\n return result;\n };\n target['pure' + item.substring(0, 1).toUpperCase() + item.substring(1)] = function () {\n return Array.prototype[item].apply(this, Array.prototype.slice.call(arguments));\n };\n });\n },\n watch: function watch(target, prop, path) {\n if (prop === '$observeProps' || prop === '$observer') return;\n if (obaa.isFunction(target[prop])) return;\n if (!target.$observeProps) target.$observeProps = {};\n if (path !== undefined) {\n target.$observeProps.$observerPath = path;\n } else {\n target.$observeProps.$observerPath = '#';\n }\n var self = this;\n var currentValue = target.$observeProps[prop] = target[prop];\n Object.defineProperty(target, prop, {\n get: function get() {\n return this.$observeProps[prop];\n },\n set: function set(value) {\n var old = this.$observeProps[prop];\n this.$observeProps[prop] = value;\n self.onPropertyChanged(prop, value, old, this, target.$observeProps.$observerPath);\n }\n });\n if (typeof currentValue == 'object') {\n if (obaa.isArray(currentValue)) {\n this.mock(currentValue);\n if (currentValue.length === 0) {\n if (!currentValue.$observeProps) currentValue.$observeProps = {};\n if (path !== undefined) {\n currentValue.$observeProps.$observerPath = path;\n } else {\n currentValue.$observeProps.$observerPath = '#';\n }\n }\n }\n for (var cprop in currentValue) {\n if (currentValue.hasOwnProperty(cprop)) {\n this.watch(currentValue, cprop, target.$observeProps.$observerPath + '-' + prop);\n }\n }\n }\n }\n };\n return new _observe(target, arr, callback);\n};\n\nobaa.methods = ['concat', 'copyWithin', 'entries', 'every', 'fill', 'filter', 'find', 'findIndex', 'forEach', 'includes', 'indexOf', 'join', 'keys', 'lastIndexOf', 'map', 'pop', 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some', 'sort', 'splice', 'toLocaleString', 'toString', 'unshift', 'values', 'size'];\nobaa.triggerStr = ['concat', 'copyWithin', 'fill', 'pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift', 'size'].join(',');\n\nobaa.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n};\n\nobaa.isString = function (obj) {\n return typeof obj === 'string';\n};\n\nobaa.isInArray = function (arr, item) {\n for (var i = arr.length; --i > -1;) {\n if (item === arr[i]) return true;\n }\n return false;\n};\n\nobaa.isFunction = function (obj) {\n return Object.prototype.toString.call(obj) == '[object Function]';\n};\n\nobaa._getRootName = function (prop, path) {\n if (path === '#') {\n return prop;\n }\n return path.split('-')[1];\n};\n\nobaa.add = function (obj, prop) {\n var $observer = obj.$observer;\n $observer.watch(obj, prop);\n};\n\nobaa.set = function (obj, prop, value, exec) {\n if (!exec) {\n obj[prop] = value;\n }\n var $observer = obj.$observer;\n $observer.watch(obj, prop);\n if (exec) {\n obj[prop] = value;\n }\n};\n\nArray.prototype.size = function (length) {\n this.length = length;\n};\n\nvar callbacks = [];\nvar nextTickCallback = [];\n\nfunction fireTick() {\n callbacks.forEach(function (item) {\n item.fn.call(item.scope);\n });\n\n nextTickCallback.forEach(function (nextItem) {\n nextItem.fn.call(nextItem.scope);\n });\n nextTickCallback.length = 0;\n}\n\nfunction proxyUpdate(ele) {\n var timeout = null;\n obaa(ele.data, function () {\n if (ele._willUpdate) {\n return;\n }\n if (ele.constructor.mergeUpdate) {\n clearTimeout(timeout);\n\n timeout = setTimeout(function () {\n ele.update();\n fireTick();\n }, 0);\n } else {\n ele.update();\n fireTick();\n }\n });\n}\n\n/** Set a component's `props` (generally derived from JSX attributes).\n *\t@param {Object} props\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.renderSync=false]\tIf `true` and {@link options.syncComponentUpdates} is `true`, triggers synchronous rendering.\n *\t@param {boolean} [opts.render=true]\t\t\tIf `false`, no render will be triggered.\n */\nfunction setComponentProps(component, props, opts, context, mountAll) {\n if (component._disable) return;\n component._disable = true;\n\n if (component.__ref = props.ref) delete props.ref;\n if (component.__key = props.key) delete props.key;\n\n if (!component.base || mountAll) {\n if (component.beforeInstall) component.beforeInstall();\n if (component.install) component.install();\n if (component.constructor.observe) {\n proxyUpdate(component);\n }\n } else if (component.receiveProps) {\n component.receiveProps(props, component.data, component.props);\n }\n\n if (context && context !== component.context) {\n if (!component.prevContext) component.prevContext = component.context;\n component.context = context;\n }\n\n if (!component.prevProps) component.prevProps = component.props;\n component.props = props;\n\n component._disable = false;\n\n if (opts !== 0) {\n if (opts === 1 || options.syncComponentUpdates !== false || !component.base) {\n renderComponent(component, 1, mountAll);\n } else {\n enqueueRender(component);\n }\n }\n\n applyRef(component.__ref, component);\n}\n\nfunction shallowComparison(old, attrs) {\n var name;\n\n for (name in old) {\n if (attrs[name] == null && old[name] != null) {\n return true;\n }\n }\n\n if (old.children.length > 0 || attrs.children.length > 0) {\n return true;\n }\n\n for (name in attrs) {\n if (name != 'children') {\n var type = typeof attrs[name];\n if (type == 'function' || type == 'object') {\n return true;\n } else if (attrs[name] != old[name]) {\n return true;\n }\n }\n }\n}\n\n/** Render a Component, triggering necessary lifecycle events and taking High-Order Components into account.\n *\t@param {Component} component\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.build=false]\t\tIf `true`, component will build and store a DOM node if not already associated with one.\n *\t@private\n */\nfunction renderComponent(component, opts, mountAll, isChild) {\n if (component._disable) return;\n\n var props = component.props,\n data = component.data,\n context = component.context,\n previousProps = component.prevProps || props,\n previousState = component.prevState || data,\n previousContext = component.prevContext || context,\n isUpdate = component.base,\n nextBase = component.nextBase,\n initialBase = isUpdate || nextBase,\n initialChildComponent = component._component,\n skip = false,\n rendered,\n inst,\n cbase;\n\n // if updating\n if (isUpdate) {\n component.props = previousProps;\n component.data = previousState;\n component.context = previousContext;\n if (component.store || opts == 2 || shallowComparison(previousProps, props)) {\n skip = false;\n if (component.beforeUpdate) {\n component.beforeUpdate(props, data, context);\n }\n } else {\n skip = true;\n }\n component.props = props;\n component.data = data;\n component.context = context;\n }\n\n component.prevProps = component.prevState = component.prevContext = component.nextBase = null;\n\n if (!skip) {\n component.beforeRender && component.beforeRender();\n rendered = component.render(props, data, context);\n\n //don't rerender\n if (component.constructor.css || component.css) {\n addScopedAttrStatic(rendered, '_s' + getCtorName(component.constructor));\n }\n\n scopeHost(rendered, component.scopedCssAttr);\n\n // context to pass to the child, can be updated via (grand-)parent component\n if (component.getChildContext) {\n context = extend(extend({}, context), component.getChildContext());\n }\n\n var childComponent = rendered && rendered.nodeName,\n toUnmount,\n base,\n ctor = options.mapping[childComponent];\n\n if (ctor) {\n // set up high order component link\n\n var childProps = getNodeProps(rendered);\n inst = initialChildComponent;\n\n if (inst && inst.constructor === ctor && childProps.key == inst.__key) {\n setComponentProps(inst, childProps, 1, context, false);\n } else {\n toUnmount = inst;\n\n component._component = inst = createComponent(ctor, childProps, context);\n inst.nextBase = inst.nextBase || nextBase;\n inst._parentComponent = component;\n setComponentProps(inst, childProps, 0, context, false);\n renderComponent(inst, 1, mountAll, true);\n }\n\n base = inst.base;\n } else {\n cbase = initialBase;\n\n // destroy high order component link\n toUnmount = initialChildComponent;\n if (toUnmount) {\n cbase = component._component = null;\n }\n\n if (initialBase || opts === 1) {\n if (cbase) cbase._component = null;\n base = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);\n }\n }\n\n if (initialBase && base !== initialBase && inst !== initialChildComponent) {\n var baseParent = initialBase.parentNode;\n if (baseParent && base !== baseParent) {\n baseParent.replaceChild(base, initialBase);\n\n if (!toUnmount) {\n initialBase._component = null;\n recollectNodeTree(initialBase, false);\n }\n }\n }\n\n if (toUnmount) {\n unmountComponent(toUnmount);\n }\n\n component.base = base;\n if (base && !isChild) {\n var componentRef = component,\n t = component;\n while (t = t._parentComponent) {\n(componentRef = t).base = base;\n }\n base._component = componentRef;\n base._componentConstructor = componentRef.constructor;\n }\n }\n\n if (!isUpdate || mountAll) {\n mounts.unshift(component);\n } else if (!skip) {\n // Ensure that pending componentDidMount() hooks of child components\n // are called before the componentDidUpdate() hook in the parent.\n // Note: disabled as it causes duplicate hooks, see https://github.com/developit/preact/issues/750\n // flushMounts();\n\n if (component.afterUpdate) {\n //deprecated\n component.afterUpdate(previousProps, previousState, previousContext);\n }\n if (component.updated) {\n component.updated(previousProps, previousState, previousContext);\n }\n if (options.afterUpdate) options.afterUpdate(component);\n }\n\n if (component._renderCallbacks != null) {\n while (component._renderCallbacks.length) {\n component._renderCallbacks.pop().call(component);\n }\n }\n\n if (!diffLevel && !isChild) flushMounts();\n}\n\n/** Apply the Component referenced by a VNode to the DOM.\n *\t@param {Element} dom\tThe DOM node to mutate\n *\t@param {VNode} vnode\tA Component-referencing VNode\n *\t@returns {Element} dom\tThe created/mutated element\n *\t@private\n */\nfunction buildComponentFromVNode(dom, vnode, context, mountAll) {\n var c = dom && dom._component,\n originalComponent = c,\n oldDom = dom,\n isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n isOwner = isDirectOwner,\n props = getNodeProps(vnode);\n while (c && !isOwner && (c = c._parentComponent)) {\n isOwner = c.constructor === vnode.nodeName;\n }\n\n if (c && isOwner && (!mountAll || c._component)) {\n setComponentProps(c, props, 3, context, mountAll);\n dom = c.base;\n } else {\n if (originalComponent && !isDirectOwner) {\n unmountComponent(originalComponent);\n dom = oldDom = null;\n }\n\n c = createComponent(vnode.nodeName, props, context, vnode);\n if (dom && !c.nextBase) {\n c.nextBase = dom;\n // passing dom/oldDom as nextBase will recycle it if unused, so bypass recycling on L229:\n oldDom = null;\n }\n setComponentProps(c, props, 1, context, mountAll);\n dom = c.base;\n\n if (oldDom && dom !== oldDom) {\n oldDom._component = null;\n recollectNodeTree(oldDom, false);\n }\n }\n\n return dom;\n}\n\n/** Remove a component from the DOM and recycle it.\n *\t@param {Component} component\tThe Component instance to unmount\n *\t@private\n */\nfunction unmountComponent(component) {\n if (options.beforeUnmount) options.beforeUnmount(component);\n\n var base = component.base;\n\n component._disable = true;\n\n if (component.uninstall) component.uninstall();\n\n if (component.store && component.store.instances) {\n for (var i = 0, len = component.store.instances.length; i < len; i++) {\n if (component.store.instances[i] === component) {\n component.store.instances.splice(i, 1);\n break;\n }\n }\n }\n\n component.base = null;\n\n // recursively tear down & recollect high-order component children:\n var inner = component._component;\n if (inner) {\n unmountComponent(inner);\n } else if (base) {\n if (base['__omiattr_'] != null) applyRef(base['__omiattr_'].ref, null);\n\n component.nextBase = base;\n\n removeNode(base);\n collectComponent(component);\n\n removeChildren(base);\n }\n\n applyRef(component.__ref, null);\n}\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar id = 0;\n\nvar Component = function () {\n function Component(props, store) {\n _classCallCheck(this, Component);\n\n this.props = assign(nProps(this.constructor.props), this.constructor.defaultProps, props);\n this.elementId = id++;\n this.data = this.constructor.data || this.data || {};\n\n this._preCss = null;\n\n this.store = store;\n }\n\n Component.prototype.update = function update(callback) {\n this._willUpdate = true;\n if (callback) (this._renderCallbacks = this._renderCallbacks || []).push(callback);\n renderComponent(this, 2);\n if (options.componentChange) options.componentChange(this, this.base);\n this._willUpdate = false;\n };\n\n Component.prototype.fire = function fire(type, data) {\n var _this = this;\n\n Object.keys(this.props).every(function (key) {\n if ('on' + type.toLowerCase() === key.toLowerCase()) {\n _this.props[key]({ detail: data });\n return false;\n }\n return true;\n });\n };\n\n Component.prototype.render = function render() {};\n\n return Component;\n}();\n\nComponent.is = 'WeElement';\n\n/** Render JSX into a `parent` Element.\n *\t@param {VNode} vnode\t\tA (JSX) VNode to render\n *\t@param {Element} parent\t\tDOM element to render into\n *\t@param {object} [store]\n *\t@public\n */\nfunction render(vnode, parent, store, empty, merge) {\n parent = typeof parent === 'string' ? document.querySelector(parent) : parent;\n if (store && store.data) {\n store.instances = [];\n extendStoreUpate(store);\n var timeout = null;\n var patchs = {};\n obaa(store.data, function (prop, val, old, path) {\n clearTimeout(timeout);\n var key = fixPath(path + '-' + prop);\n patchs[key] = true;\n timeout = setTimeout(function () {\n store.update(patchs);\n patchs = {};\n }, 0);\n });\n }\n\n if (empty) {\n while (parent.firstChild) {\n parent.removeChild(parent.firstChild);\n }\n }\n\n if (merge) {\n merge = typeof merge === 'string' ? document.querySelector(merge) : merge;\n }\n\n return diff(merge, vnode, store, false, parent, false);\n}\n\nfunction extendStoreUpate(store) {\n store.update = function (patch) {\n var _this = this;\n\n var updateAll = matchGlobalData(this.globalData, patch);\n if (Object.keys(patch).length > 0) {\n this.instances.forEach(function (instance) {\n if (updateAll || _this.updateAll || instance.constructor.updatePath && needUpdate(patch, instance.constructor.updatePath)) {\n //update this.use\n instance.use = getUse(store.data, instance.constructor.use);\n instance.update();\n }\n });\n this.onChange && this.onChange(patch);\n }\n };\n}\n\nfunction matchGlobalData(globalData, diffResult) {\n if (!globalData) return false;\n for (var keyA in diffResult) {\n if (globalData.indexOf(keyA) > -1) {\n return true;\n }\n for (var i = 0, len = globalData.length; i < len; i++) {\n if (includePath(keyA, globalData[i])) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction needUpdate(diffResult, updatePath) {\n for (var keyA in diffResult) {\n if (updatePath[keyA]) {\n return true;\n }\n for (var keyB in updatePath) {\n if (includePath(keyA, keyB)) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction includePath(pathA, pathB) {\n if (pathA.indexOf(pathB) === 0) {\n var next = pathA.substr(pathB.length, 1);\n if (next === '[' || next === '.') {\n return true;\n }\n }\n return false;\n}\n\nfunction fixPath(path) {\n var mpPath = '';\n var arr = path.replace('#-', '').split('-');\n arr.forEach(function (item, index) {\n if (index) {\n if (isNaN(Number(item))) {\n mpPath += '.' + item;\n } else {\n mpPath += '[' + item + ']';\n }\n } else {\n mpPath += item;\n }\n });\n return mpPath;\n}\n\nfunction define(name, ctor) {\n options.mapping[name] = ctor;\n if (ctor.use) {\n ctor.updatePath = getPath(ctor.use);\n } else if (ctor.data) {\n //Compatible with older versions\n ctor.updatePath = getUpdatePath(ctor.data);\n }\n}\n\nfunction getPath(obj) {\n if (Object.prototype.toString.call(obj) === '[object Array]') {\n var result = {};\n obj.forEach(function (item) {\n if (typeof item === 'string') {\n result[item] = true;\n } else {\n var tempPath = item[Object.keys(item)[0]];\n if (typeof tempPath === 'string') {\n result[tempPath] = true;\n } else {\n if (typeof tempPath[0] === 'string') {\n result[tempPath[0]] = true;\n } else {\n tempPath[0].forEach(function (path) {\n return result[path] = true;\n });\n }\n }\n }\n });\n return result;\n } else {\n return getUpdatePath(obj);\n }\n}\n\nfunction getUpdatePath(data) {\n var result = {};\n dataToPath(data, result);\n return result;\n}\n\nfunction dataToPath(data, result) {\n Object.keys(data).forEach(function (key) {\n result[key] = true;\n var type = Object.prototype.toString.call(data[key]);\n if (type === '[object Object]') {\n _objToPath(data[key], key, result);\n } else if (type === '[object Array]') {\n _arrayToPath(data[key], key, result);\n }\n });\n}\n\nfunction _objToPath(data, path, result) {\n Object.keys(data).forEach(function (key) {\n result[path + '.' + key] = true;\n delete result[path];\n var type = Object.prototype.toString.call(data[key]);\n if (type === '[object Object]') {\n _objToPath(data[key], path + '.' + key, result);\n } else if (type === '[object Array]') {\n _arrayToPath(data[key], path + '.' + key, result);\n }\n });\n}\n\nfunction _arrayToPath(data, path, result) {\n data.forEach(function (item, index) {\n result[path + '[' + index + ']'] = true;\n delete result[path];\n var type = Object.prototype.toString.call(item);\n if (type === '[object Object]') {\n _objToPath(item, path + '[' + index + ']', result);\n } else if (type === '[object Array]') {\n _arrayToPath(item, path + '[' + index + ']', result);\n }\n });\n}\n\nfunction rpx(str) {\n return str.replace(/([1-9]\\d*|0)(\\.\\d*)*rpx/g, function (a, b) {\n return window.innerWidth * Number(b) / 750 + 'px';\n });\n}\n\nfunction _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ModelView = function (_Component) {\n _inherits(ModelView, _Component);\n\n function ModelView() {\n _classCallCheck$1(this, ModelView);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n ModelView.prototype.beforeInstall = function beforeInstall() {\n this.data = this.vm.data;\n };\n\n return ModelView;\n}(Component);\n\nModelView.observe = true;\nModelView.mergeUpdate = true;\n\n/**\n * classNames based on https://github.com/JedWatson/classnames\n * by Jed Watson\n * Licensed under the MIT License\n * https://github.com/JedWatson/classnames/blob/master/LICENSE\n * modified by dntzhang\n */\n\nvar hasOwn = {}.hasOwnProperty;\n\nfunction classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n\n var argType = typeof arg;\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg) && arg.length) {\n var inner = classNames.apply(null, arg);\n if (inner) {\n classes.push(inner);\n }\n } else if (argType === 'object') {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n\n return classes.join(' ');\n}\n\nfunction extractClass() {\n var _Array$prototype$slic = Array.prototype.slice.call(arguments, 0),\n props = _Array$prototype$slic[0],\n args = _Array$prototype$slic.slice(1);\n\n if (props) {\n if (props.class) {\n args.unshift(props.class);\n delete props.class;\n } else if (props.className) {\n args.unshift(props.className);\n delete props.className;\n }\n }\n if (args.length > 0) {\n return { class: classNames.apply(null, args) };\n }\n}\n\nfunction getHost(component) {\n var base = component.base;\n if (base) {\n while (base.parentNode) {\n if (base.parentNode._component) {\n return base.parentNode._component;\n } else {\n base = base.parentNode;\n }\n }\n }\n}\n\n/**\n * preact-render-to-string based on preact-render-to-string\n * by Jason Miller\n * Licensed under the MIT License\n * https://github.com/developit/preact-render-to-string\n *\n * modified by dntzhang\n */\n\nvar encodeEntities = function encodeEntities(s) {\n return String(s).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"');\n};\n\nvar indent = function indent(s, char) {\n return String(s).replace(/(\\n+)/g, '$1' + (char || '\\t'));\n};\n\nvar mapping$1 = options.mapping;\n\nvar VOID_ELEMENTS = /^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/;\n\nvar isLargeString = function isLargeString(s, length, ignoreLines) {\n return String(s).length > (length || 40) || !ignoreLines && String(s).indexOf('\\n') !== -1 || String(s).indexOf('<') !== -1;\n};\n\nvar JS_TO_CSS = {};\n\n// Convert an Object style to a CSSText string\nfunction styleObjToCss(s) {\n var str = '';\n for (var prop in s) {\n var val = s[prop];\n if (val != null) {\n if (str) str += ' ';\n // str += jsToCss(prop);\n str += JS_TO_CSS[prop] || (JS_TO_CSS[prop] = prop.replace(/([A-Z])/g, '-$1').toLowerCase());\n str += ': ';\n str += val;\n if (typeof val === 'number' && IS_NON_DIMENSIONAL.test(prop) === false) {\n str += 'px';\n }\n str += ';';\n }\n }\n return str || undefined;\n}\n\nfunction renderToString(vnode, opts, store, isSvgMode) {\n store = store || {};\n opts = Object.assign({\n scopedCSS: true\n }, opts);\n var css = {};\n var html = _renderToString(vnode, opts, store, isSvgMode, css);\n return {\n css: Object.values(css),\n html: html\n };\n}\n\n/** The default export is an alias of `render()`. */\nfunction _renderToString(vnode, opts, store, isSvgMode, css) {\n if (vnode == null || typeof vnode === 'boolean') {\n return '';\n }\n\n var nodeName = vnode.nodeName,\n attributes = vnode.attributes,\n isComponent = false;\n\n var pretty = true && opts.pretty,\n indentChar = pretty && typeof pretty === 'string' ? pretty : '\\t';\n\n // #text nodes\n if (typeof vnode !== 'object' && !nodeName) {\n return encodeEntities(vnode);\n }\n\n // components\n var ctor = mapping$1[nodeName];\n if (ctor) {\n isComponent = true;\n\n var props = getNodeProps$1(vnode),\n rendered;\n // class-based components\n var c = new ctor(props, store);\n // turn off stateful re-rendering:\n c._disable = c.__x = true;\n c.props = props;\n c.store = store;\n if (c.install) c.install();\n if (c.beforeRender) c.beforeRender();\n rendered = c.render(c.props, c.data, c.store);\n\n if (opts.scopedCSS) {\n\n if (c.constructor.css || c.css) {\n\n var cssStr = c.constructor.css ? c.constructor.css : typeof c.css === 'function' ? c.css() : c.css;\n var cssAttr = '_s' + getCtorName(c.constructor);\n css[cssAttr] = '';\n addScopedAttrStatic(rendered, '_s' + getCtorName(c.constructor));\n }\n\n c.scopedCSSAttr = vnode.css;\n scopeHost(rendered, c.scopedCSSAttr);\n }\n\n return _renderToString(rendered, opts, store, false, css);\n }\n\n // render JSX to HTML\n var s = '',\n html;\n\n if (attributes) {\n var attrs = Object.keys(attributes);\n\n // allow sorting lexicographically for more determinism (useful for tests, such as via preact-jsx-chai)\n if (opts && opts.sortAttributes === true) attrs.sort();\n\n for (var i = 0; i < attrs.length; i++) {\n var name = attrs[i],\n v = attributes[name];\n if (name === 'children') continue;\n\n if (name.match(/[\\s\\n\\\\/='\"\\0<>]/)) continue;\n\n if (!(opts && opts.allAttributes) && (name === 'key' || name === 'ref')) continue;\n\n if (name === 'className') {\n if (attributes.class) continue;\n name = 'class';\n } else if (isSvgMode && name.match(/^xlink:?./)) {\n name = name.toLowerCase().replace(/^xlink:?/, 'xlink:');\n }\n\n if (name === 'style' && v && typeof v === 'object') {\n v = styleObjToCss(v);\n }\n\n var hooked = opts.attributeHook && opts.attributeHook(name, v, store, opts, isComponent);\n if (hooked || hooked === '') {\n s += hooked;\n continue;\n }\n\n if (name === 'dangerouslySetInnerHTML') {\n html = v && v.__html;\n } else if ((v || v === 0 || v === '') && typeof v !== 'function') {\n if (v === true || v === '') {\n v = name;\n // in non-xml mode, allow boolean attributes\n if (!opts || !opts.xml) {\n s += ' ' + name;\n continue;\n }\n }\n s += ' ' + name + '=\"' + encodeEntities(v) + '\"';\n }\n }\n }\n\n // account for >1 multiline attribute\n if (pretty) {\n var sub = s.replace(/^\\n\\s*/, ' ');\n if (sub !== s && !~sub.indexOf('\\n')) s = sub;else if (pretty && ~s.indexOf('\\n')) s += '\\n';\n }\n\n s = '<' + nodeName + s + '>';\n if (String(nodeName).match(/[\\s\\n\\\\/='\"\\0<>]/)) throw s;\n\n var isVoid = String(nodeName).match(VOID_ELEMENTS);\n if (isVoid) s = s.replace(/>$/, ' />');\n\n var pieces = [];\n if (html) {\n // if multiline, indent.\n if (pretty && isLargeString(html)) {\n html = '\\n' + indentChar + indent(html, indentChar);\n }\n s += html;\n } else if (vnode.children) {\n var hasLarge = pretty && ~s.indexOf('\\n');\n for (var i = 0; i < vnode.children.length; i++) {\n var child = vnode.children[i];\n if (child != null && child !== false) {\n var childSvgMode = nodeName === 'svg' ? true : nodeName === 'foreignObject' ? false : isSvgMode,\n ret = _renderToString(child, opts, store, childSvgMode, css);\n if (pretty && !hasLarge && isLargeString(ret)) hasLarge = true;\n if (ret) pieces.push(ret);\n }\n }\n if (pretty && hasLarge) {\n for (var i = pieces.length; i--;) {\n pieces[i] = '\\n' + indentChar + indent(pieces[i], indentChar);\n }\n }\n }\n\n if (pieces.length) {\n s += pieces.join('');\n } else if (opts && opts.xml) {\n return s.substring(0, s.length - 1) + ' />';\n }\n\n if (!isVoid) {\n if (pretty && ~s.indexOf('\\n')) s += '\\n';\n s += '';\n }\n\n return s;\n}\n\nfunction assign$1(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\nfunction getNodeProps$1(vnode) {\n var props = assign$1({}, vnode.attributes);\n props.children = vnode.children;\n\n var defaultProps = vnode.nodeName.defaultProps;\n if (defaultProps !== undefined) {\n for (var i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i];\n }\n }\n }\n\n return props;\n}\n\nvar WeElement = Component;\nvar defineElement = define;\nfunction createRef() {\n return {};\n}\n\noptions.root.Omi = {\n h: h,\n createElement: h,\n cloneElement: cloneElement,\n createRef: createRef,\n Component: Component,\n render: render,\n rerender: rerender,\n options: options,\n WeElement: WeElement,\n define: define,\n rpx: rpx,\n ModelView: ModelView,\n defineElement: defineElement,\n classNames: classNames,\n extractClass: extractClass,\n getHost: getHost,\n renderToString: renderToString\n};\noptions.root.omi = options.root.Omi;\noptions.root.Omi.version = 'omio-2.0.5';\n\nvar omi = {\n h: h,\n createElement: h,\n cloneElement: cloneElement,\n createRef: createRef,\n Component: Component,\n render: render,\n rerender: rerender,\n options: options,\n WeElement: WeElement,\n define: define,\n rpx: rpx,\n ModelView: ModelView,\n defineElement: defineElement,\n classNames: classNames,\n extractClass: extractClass,\n getHost: getHost,\n renderToString: renderToString\n};\n\nexport default omi;\nexport { h, h as createElement, cloneElement, createRef, Component, render, rerender, options, WeElement, define, rpx, ModelView, defineElement, classNames, extractClass, getHost, renderToString };\n//# sourceMappingURL=omi.esm.js.map\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/omio/dist/omi.esm.js","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/css-loader/lib/css-base.js","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\n} catch(e) {\n\t// This works if the window reference is available\n\tif(typeof window === \"object\")\n\t\tg = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n\n// WEBPACK FOOTER //\n// (webpack)/buildin/global.js","'use strict';\n\nvar asap = require('asap/raw');\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._75 = 0;\n this._83 = 0;\n this._18 = null;\n this._38 = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._47 = null;\nPromise._71 = null;\nPromise._44 = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._83 === 3) {\n self = self._18;\n }\n if (Promise._47) {\n Promise._47(self);\n }\n if (self._83 === 0) {\n if (self._75 === 0) {\n self._75 = 1;\n self._38 = deferred;\n return;\n }\n if (self._75 === 1) {\n self._75 = 2;\n self._38 = [self._38, deferred];\n return;\n }\n self._38.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n asap(function() {\n var cb = self._83 === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._83 === 1) {\n resolve(deferred.promise, self._18);\n } else {\n reject(deferred.promise, self._18);\n }\n return;\n }\n var ret = tryCallOne(cb, self._18);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._83 = 3;\n self._18 = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._83 = 1;\n self._18 = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._83 = 2;\n self._18 = newValue;\n if (Promise._71) {\n Promise._71(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._75 === 1) {\n handle(self, self._38);\n self._38 = null;\n }\n if (self._75 === 2) {\n for (var i = 0; i < self._38.length; i++) {\n handle(self, self._38[i]);\n }\n self._38 = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/core.js","'use strict';\n\nif (typeof Promise === 'undefined') {\n // Rejection tracking prevents a common issue where React gets into an\n // inconsistent state due to an error, but it gets swallowed by a Promise,\n // and the user has no idea what causes React's erratic future behavior.\n require('promise/lib/rejection-tracking').enable();\n window.Promise = require('promise/lib/es6-extensions.js');\n}\n\n// fetch() polyfill for making API calls.\nrequire('whatwg-fetch');\n\n// Object.assign() is commonly used with React.\n// It will use the native implementation if it's present and isn't buggy.\nObject.assign = require('object-assign');\n\n// In tests, polyfill requestAnimationFrame since jsdom doesn't provide it yet.\n// We don't polyfill it in the browser--this is user's responsibility.\nif (process.env.NODE_ENV === 'test') {\n require('raf').polyfill(global);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./config/polyfills.js","'use strict';\n\nvar Promise = require('./core');\n\nvar DEFAULT_WHITELIST = [\n ReferenceError,\n TypeError,\n RangeError\n];\n\nvar enabled = false;\nexports.disable = disable;\nfunction disable() {\n enabled = false;\n Promise._47 = null;\n Promise._71 = null;\n}\n\nexports.enable = enable;\nfunction enable(options) {\n options = options || {};\n if (enabled) disable();\n enabled = true;\n var id = 0;\n var displayId = 0;\n var rejections = {};\n Promise._47 = function (promise) {\n if (\n promise._83 === 2 && // IS REJECTED\n rejections[promise._56]\n ) {\n if (rejections[promise._56].logged) {\n onHandled(promise._56);\n } else {\n clearTimeout(rejections[promise._56].timeout);\n }\n delete rejections[promise._56];\n }\n };\n Promise._71 = function (promise, err) {\n if (promise._75 === 0) { // not yet handled\n promise._56 = id++;\n rejections[promise._56] = {\n displayId: null,\n error: err,\n timeout: setTimeout(\n onUnhandled.bind(null, promise._56),\n // For reference errors and type errors, this almost always\n // means the programmer made a mistake, so log them after just\n // 100ms\n // otherwise, wait 2 seconds to see if they get handled\n matchWhitelist(err, DEFAULT_WHITELIST)\n ? 100\n : 2000\n ),\n logged: false\n };\n }\n };\n function onUnhandled(id) {\n if (\n options.allRejections ||\n matchWhitelist(\n rejections[id].error,\n options.whitelist || DEFAULT_WHITELIST\n )\n ) {\n rejections[id].displayId = displayId++;\n if (options.onUnhandled) {\n rejections[id].logged = true;\n options.onUnhandled(\n rejections[id].displayId,\n rejections[id].error\n );\n } else {\n rejections[id].logged = true;\n logError(\n rejections[id].displayId,\n rejections[id].error\n );\n }\n }\n }\n function onHandled(id) {\n if (rejections[id].logged) {\n if (options.onHandled) {\n options.onHandled(rejections[id].displayId, rejections[id].error);\n } else if (!rejections[id].onUnhandled) {\n console.warn(\n 'Promise Rejection Handled (id: ' + rejections[id].displayId + '):'\n );\n console.warn(\n ' This means you can ignore any previous messages of the form \"Possible Unhandled Promise Rejection\" with id ' +\n rejections[id].displayId + '.'\n );\n }\n }\n }\n}\n\nfunction logError(id, error) {\n console.warn('Possible Unhandled Promise Rejection (id: ' + id + '):');\n var errStr = (error && (error.stack || error)) + '';\n errStr.split('\\n').forEach(function (line) {\n console.warn(' ' + line);\n });\n}\n\nfunction matchWhitelist(error, list) {\n return list.some(function (cls) {\n return error instanceof cls;\n });\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/rejection-tracking.js","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {characterData: true});\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/asap/browser-raw.js","'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n var p = new Promise(Promise._44);\n p._83 = 1;\n p._18 = value;\n return p;\n}\nPromise.resolve = function (value) {\n if (value instanceof Promise) return value;\n\n if (value === null) return NULL;\n if (value === undefined) return UNDEFINED;\n if (value === true) return TRUE;\n if (value === false) return FALSE;\n if (value === 0) return ZERO;\n if (value === '') return EMPTYSTRING;\n\n if (typeof value === 'object' || typeof value === 'function') {\n try {\n var then = value.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(value));\n }\n } catch (ex) {\n return new Promise(function (resolve, reject) {\n reject(ex);\n });\n }\n }\n return valuePromise(value);\n};\n\nPromise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\n\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n if (val instanceof Promise && val.then === Promise.prototype.then) {\n while (val._83 === 3) {\n val = val._18;\n }\n if (val._83 === 1) return res(i, val._18);\n if (val._83 === 2) reject(val._18);\n val.then(function (val) {\n res(i, val);\n }, reject);\n return;\n } else {\n var then = val.then;\n if (typeof then === 'function') {\n var p = new Promise(then.bind(val));\n p.then(function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n values.forEach(function(value){\n Promise.resolve(value).then(resolve, reject);\n });\n });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/es6-extensions.js","(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = 'status' in options ? options.status : 200\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/whatwg-fetch/fetch.js","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/object-assign/index.js","import { define, WeElement } from 'omi'\n\nimport './my-head'\nimport './my-content'\nimport './my-sidebar'\nimport './my-demo'\n\ndefine('my-frame', class extends WeElement {\n\n installed(){\n this.store.init()\n }\n\n render() {\n return (\n
\n \n
\n \n
\n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-frame.js","import { define, WeElement } from 'omi'\nimport logo from './omi-logo2019.svg'\n\ndefine('my-head', class extends WeElement {\n static css = require('./_index.css')\n\n toggleMenus = evt => {\n this.store.toogleSidebar()\n evt.stopPropagation()\n }\n\n hideSidebar = evt => {\n this.store.hideSidebar()\n }\n\n render() {\n return (\n
\n
\n \"\"\n
\n\n \n \n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-head/index.js","module.exports = __webpack_public_path__ + \"static/media/omi-logo2019.923166c3.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/omi-logo2019.svg\n// module id = 13\n// module chunks = 30 31","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAqklEQVRoQ+2WQQ6AMAgE4f+Pxg+oSTNbDXR7Z5UZQpvR/GTz/w838LdBG7ABSMAjBAHichvACGHAXANVVRCOtDwzb2E/GnADUv4R5xkQA9wWN3cLbUMmDrYBMdDluLkGfJEtD8N7wXkXWfsREk/Atri5W2gbMnGwDYiBLsfNNdB+jbqB5Wn2U0KM7KO4uVvoI4D4MzaAEcIAG4AAcbkNYIQwwAYgQFze3sAFU6MwMZGH3LoAAAAASUVORK5CYII=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/menu.png\n// module id = 14\n// module chunks = 30 31","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/_index.css\n// module id = 15\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".head{\\n position:fixed;\\n height:60px;\\n line-height: 60px;\\n border-bottom: 1px solid #eee;\\n width:100%;\\n background-color:#24292e;\\n z-index:100;\\n top: 0;\\n}\\n\\nul,li{\\n display: inline-block;\\n}\\n\\n.logo_box{\\n width:100px;\\n display: inline-block;\\n text-align:center;\\n line-height: 60px;\\n}\\n\\n.menu a,.logo_box a{\\n display: inline-block;\\n height:60px;\\n color: white;\\n}\\n\\n.menu{\\n position: absolute;\\n right:20px;\\n}\\n\\n.menu li{\\n margin-left:15px;\\n}\\n\\n.logo_box a{\\n font-size: 34px;\\n font-weight: bold;\\n color: #00bff3;\\n padding: 0px 15px;\\n line-height: 60px;\\n cursor: pointer;\\n}\\n\\n.menu a:hover{\\n color: white;\\n}\\n\\n.m_menu{\\n position:fixed;\\n display:none;\\n cursor: pointer;\\n}\\n\\n.menu li{\\n display:inline-block;\\n}\\n\\n.logo{\\n width: 40px;\\n height: 40px;\\n margin-left: 10px;\\n margin-top: 10px;\\n cursor: pointer;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n\\n .logo_box{\\n display:inline-block;\\n }\\n\\n .logo{\\n display: none;\\n }\\n\\n .head{\\n text-align:center;\\n }\\n\\n .m_menu{\\n top:0;\\n left:0;\\n display:block;\\n width:50px;\\n height:50px;\\n padding-top: 6px;\\n }\\n\\n .m_menu img{\\n width:30px;\\n }\\n\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-head/_index.css\n// module id = 16\n// module chunks = 30 31","import { define, WeElement } from 'omi'\nimport '../my-footer'\n\ndefine('my-content', class extends WeElement {\n static css = require('./_index.css')\n\n static use = [\n 'html'\n ]\n\n install() {\n this.store.myContent = this\n }\n\n installed() {\n this.initCodeStyle()\n }\n\n afterUpdate() {\n this.initCodeStyle()\n }\n\n touchEnd = () => {\n this.store.hideSidebar()\n }\n\n initCodeStyle() {\n let codes = document.querySelectorAll('code')\n\n let codesArr = Array.prototype.slice.call(codes);\n let codeHlNumArr = []\n codesArr.forEach(code => {\n let arr = code.className.match(/{([\\S\\s]*)}/)\n let pre = code.parentNode\n //bug!\n arr && pre.setAttribute('data-line', arr[1])\n if (code.className) {\n pre.className = code.className\n\n const temp = code.className.match(/language-\\w*/g)[0]\n if (temp) {\n code.innerHTML = Prism.highlight(code.innerText, Prism.languages[temp.split('-')[1]], temp.split('-')[1])\n }\n } else {\n let pre = code.parentNode\n code.className = 'language-markup'\n pre.className = 'language-markup'\n code.innerHTML = Prism.highlight(code.innerText, Prism.languages.markup, 'markup')\n }\n // let hllNums = null\n // if (arr) {\n // let numArr = arr[0].replace(/[{|}]/g, '').split(',')\n // hllNums = this._arrToNumber(numArr)\n // }\n //codeHlNumArr.push(hllNums)\n })\n\n // codesArr.forEach((code, index) => {\n // let newP = document.createElement('div')\n // newP.className = '_code-ctn'\n // let pre = code.parentNode\n // let ctn = pre.parentNode\n // if (pre.nodeName === 'PRE') {\n // ctn.insertBefore(newP, pre)\n\n // let hl = document.createElement('div')\n // hl.className = '_hl'\n // newP.appendChild(hl)\n // newP.appendChild(pre)\n // let nums = codeHlNumArr[index]\n\n // let max = Math.max.apply(null, nums)\n\n // let inner = ''\n // for (let i = 0; i <= max; i++) {\n // if (nums.indexOf(i) == -1) {\n // inner += '
'\n // } else {\n // inner += '
'\n // }\n // }\n // hl.innerHTML = inner\n // }\n // })\n //fix line-highlight\n window.dispatchEvent(new Event('resize'));\n }\n\n _arrToNumber(numArr) {\n let arr = []\n numArr.forEach(item => {\n if (item.indexOf('-') !== -1) {\n const tempArr = item.split('-')\n const begin = Number(tempArr[0])\n const end = Number(tempArr[1])\n for (let i = begin; i < end + 1; i++) {\n arr.push(i)\n }\n } else {\n arr.push(Number(item))\n }\n })\n return arr\n }\n\n render() {\n return (\n
\n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-content/index.js","import { define, WeElement } from 'omi'\n\ndefine('my-footer', class extends WeElement {\n static css = require('./_index.css')\n\n static use = [\n 'position',\n 'menu'\n ]\n\n render() {\n const [\n position,\n menus\n ] = this.use\n const pre = this.store.getPre()\n const next = this.store.getNext()\n console.log(pre,next)\n return (\n
\n {pre &&← {pre.name}}\n {next &&}\n
\n )\n }\n\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-footer/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-footer/_index.css\n// module id = 19\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".ft{\\n position: relative;\\n margin-top: 20px\\n}\\n\\n.pre{\\n position: absolute;\\n left:15px;\\n}\\n\\n.next{\\n position: absolute;\\n right: 15px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-footer/_index.css\n// module id = 20\n// module chunks = 30 31","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-content/_index.css\n// module id = 21\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".content{\\n margin-top: 60px;\\n margin-bottom: 30px;\\n margin-left: 260px;\\n padding: 1px 10px 10px 20px;\\n color: #24292e;\\n /* overflow: hidden; */\\n max-width: 900px;\\n}\\n\\nh3{\\n color:#444444;\\n}\\n\\npre{\\n border: 1px solid #eee;\\n width: 100%;\\n}\\nli{\\n text-indent: 20px;\\n list-style:disc inside ;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n .content{\\n margin-left: 0;\\n border-left: none;\\n padding: 1px 10px 10px 10px;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-content/_index.css\n// module id = 22\n// module chunks = 30 31","import { define, WeElement } from 'omi'\nimport '../my-list'\n\ndefine('my-sidebar', class extends WeElement {\n static css = require('./_index.css')\n\n static use = [\n 'menus',\n 'sideBarShow',\n 'lan'\n ]\n\n render() {\n const [menus, sideBarShow, lan] = this.use\n\n return (\n
\n {menus[lan].map((menu, index) => (\n \n ))}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-sidebar/index.js","import { define, WeElement } from 'omi'\n\ndefine('my-list', class extends WeElement {\n static css = require('./_index.css')\n\n static use = [\n 'position'\n ]\n\n render(props) {\n const [position] = this.use\n\n return (\n
    \n
  • {props.menu.title}
  • \n {props.menu.list &&\n props.menu.list.map((item, subIndex) => {\n const cls = position[0] === props.index && position[1] === subIndex ? { class: 'current' } : null\n return
  • \n \n {item.name}\n \n
  • \n })}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-list/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-list/_index.css\n// module id = 25\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"li.title{\\n font-size: 14px;\\n font-weight: bold;\\n margin-bottom:10px;\\n margin-top:10px;\\n text-indent: 23px;\\n}\\nli{\\n margin-bottom:1px;\\n text-indent: 33px;\\n}\\nli a{\\n display:block;\\n font-size:14px;\\n height:30px;\\n line-height:30px;\\n color: black;\\n background-color:#eee;\\n}\\nli a.current,li a.current:hover{\\n background-color:#24292e;\\n color: white;\\n cursor: default;\\n}\\nli a:hover{\\n background-color:#f0f8ff;\\n}\\n\\n\\nul,li{\\n list-style:none;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-list/_index.css\n// module id = 26\n// module chunks = 30 31","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-sidebar/_index.css\n// module id = 27\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"@media only screen and (max-width: 768px) {\\n .list{\\n transform: translateX(-100%);\\n background-color:white;\\n left:0 !important;\\n -moz-transition: all .6s ease;\\n -o-transition: all .6s ease;\\n -webkit-transition: all .6s ease;\\n transition: all .6s ease;\\n width: 70% !important;\\n z-index: 100000;\\n border-right: none !important;\\n }\\n\\n .list.show {\\n -moz-transform: translateX(0%) translateZ(0);\\n -ms-transform: translateX(0%) translateZ(0);\\n -o-transform: translateX(0%) translateZ(0);\\n -webkit-transform: translateX(0%) translateZ(0);\\n transform: translateX(0%) translateZ(0);\\n }\\n}\\n\\n.list{\\n width: 261px;\\n text-indent: 20px;\\n border-right: 1px solid #eee;\\n overflow-x: hidden;\\n overflow-y: auto;\\n position:fixed;\\n top:60px;\\n background-color: white;\\n height: 100%;\\n border-right: 1px solid #ccc;\\n padding-bottom: 100px;\\n}\\n.version{\\n height:20px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-sidebar/_index.css\n// module id = 28\n// module chunks = 30 31","import { define, WeElement } from 'omi'\nimport css from './_index.css'\n\ndefine('my-demo', class extends WeElement {\n install() {\n this.store.myDemo = this\n if(this.checkPc())\n this.show = true\n else\n this.show = false\n this.demo = this.store.demo\n }\n\n css() {\n return css\n }\n\n checkPc() {\n let userAgentInfo = navigator.userAgent\n let mp = [\"Android\", \"iPhone\", \"SymbianOS\", \"Windows Phone\", \"iPad\", \"iPod\"]\n for (let i = 0; i < mp.length; i++)\n if (userAgentInfo.indexOf(mp[i]) > 0)\n return false\n return true\n }\n\n onShow = () => {\n this.show = true\n this.update()\n }\n\n onClose = () => {\n this.show = false\n this.update()\n }\n \n render() {\n if(!this.demo) return\n return (\n
\n { this.show && }\n\n {!this.show &&
\n \n
}\n\n {this.show &&
\n \n
}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-demo/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/_index.css\n// module id = 30\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"iframe{\\n width: 750px;\\n height: 100%;\\n top: 60px;\\n right: 0;\\n position: fixed;\\n border: none;\\n z-index: 9999;\\n border-left: 2px solid #24292E; \\n}\\n\\n.switch{\\n width: 40px;\\n height: 40px;\\n background-color: #AA0000;\\n border-radius: 50%;\\n position: fixed;\\n right: 50px;\\n bottom: 50px;\\n cursor: pointer;\\n text-align: center;\\n z-index: 10000;\\n}\\n\\n.switch img{\\n width: 30px;\\n height: 30px;\\n margin-top:5px; \\n}\\n\\n.switch.close img{\\n margin-top:10px; \\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n@media only screen and (max-width: 768px) {\\n iframe{\\n width: 100%;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-demo/_index.css\n// module id = 31\n// module chunks = 30 31","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/code.png\n// module id = 32\n// module chunks = 30 31","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/close.png\n// module id = 33\n// module chunks = 30 31","import config from '../docs/config.js'\nimport 'omi-router'\n\nclass Store {\n constructor(data) {\n this.data = {\n position: [-1, -1],\n menus: config.menus,\n lan: data.lan,\n html: '',\n sideBarShow: window.innerWidth > 768\n }\n let id = 0\n this.map = {}\n this.positionMap = {}\n config.menus[this.data.lan].forEach((menu, index) => {\n menu.list.forEach((item, subIndex) => {\n item.id = id++\n item.position = [index, subIndex]\n this.map[item.id] = item\n item.index = index\n item.subIndex = subIndex\n this.positionMap[index+'-'+subIndex] = item\n })\n })\n this.preIndex = 0\n this.preSubIndex = 0\n }\n\n getNext(){\n const item = this.positionMap[this.data.position.join('-')]\n if(item){\n return this.map[item.id+1]\n }\n }\n\n getPre(){\n const item = this.positionMap[this.data.position.join('-')]\n if(item){\n return this.map[item.id-1]\n }\n }\n\n init() {\n this.remarkable = new Remarkable({ html: true })\n if (location.hash === \"\") {\n this.data.position = [0, 0]\n this.getMarkDown(this.data.menus[this.data.lan][0].list[0].md, this.data.lan, m => {\n this.data.html = this.remarkable.render(m)\n })\n }\n this.initRouter()\n }\n\n toogleSidebar() {\n this.data.sideBarShow = !this.data.sideBarShow\n }\n\n hideSidebar() {\n this.data.sideBarShow = false\n }\n\n initRouter() {\n const menus = this.data.menus[this.data.lan]\n menus.forEach(item => {\n item.list.forEach(subItem => {\n route('/' + subItem.md, evt => {\n menus[this.preIndex].list[this.preSubIndex].selected = false\n this.preIndex = evt.query.index\n this.preSubIndex = evt.query.subIndex\n this.data.position = [Number(evt.query.index), Number(evt.query.subIndex)]\n this.data.sideBarShow = false\n\n this.getMarkDown(subItem.md, this.data.lan, m => {\n this.data.html = this.remarkable.render(m)\n document.body.scrollTop = 0\n document.documentElement.scrollTop = 0\n })\n })\n })\n })\n }\n\n getMarkDown(name, lan, callback) {\n import('../docs/' + lan + '/' + name + '.md').then(m => {\n callback(m)\n })\n }\n}\n\nexport default Store\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/index.js","const config = {\n menus: {\n 'zh-cn': [\n {\n title: 'Omi',\n list: [\n { name: '简介', md: 'introduction' },\n { name: '安装', md: 'installation' }\n ]\n },\n {\n title: '基础概念',\n list: [\n { name: 'JSX', md: 'jsx' },\n { name: 'Props', md: 'props' },\n { name: '事件', md: 'event' },\n { name: '生命周期', md: 'lifecycle' },\n { name: 'Ref', md: 'ref' },\n { name: 'Class', md: 'class' },\n { name: 'Store', md: 'store' },\n { name: 'CSS', md: 'css' }\n ]\n },\n {\n title: '其他',\n list: [\n { name: '生态与例子', md: 'other' },\n { name: 'Mps', md: 'mps' },\n { name: 'Omip 多端开发', md: 'omip' },\n { name: '服务端渲染', md: 'ssr' },\n { name: '路由', md: 'router' },\n { name: 'Omiu', md: 'omiu' }\n ]\n }\n ],\n en: [\n {\n title: 'Omi',\n list: [\n { name: 'Introduction', md: 'introduction' },\n { name: 'Installation', md: 'installation' }\n ]\n },\n {\n title: 'Base',\n list: [\n { name: 'JSX', md: 'jsx' },\n { name: 'Props', md: 'props' },\n { name: 'Event', md: 'event' },\n { name: 'Lifecycle', md: 'lifecycle' },\n { name: 'Ref', md: 'ref' },\n { name: 'Class', md: 'class' },\n { name: 'Store', md: 'store' },\n { name: 'CSS', md: 'css' }\n ]\n },\n {\n title: 'Other',\n list: [\n { name: 'Ecosystem and examples', md: 'other' },\n { name: 'Server-Side Rendering', md: 'ssr' },\n { name: 'Router', md: 'router' },\n { name: 'Omiu', md: 'omiu' }\n ]\n }\n ]\n }\n}\n\nexport default config\n\n\n\n// WEBPACK FOOTER //\n// ./src/docs/config.js","/*!\n * omi-router v2.0.9 by dntzhang\n * Router for Omi.\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n */\n\nvar p2r = require('path-to-regexp')\nvar mapping = {}\nvar root = getGlobal()\n\nroot.route = route\nroot.route.params = null\nroot.historyLength = 0\n\nroot.route.to = function (path, data) {\n root.route._routeByTo = true\n root.route.data = data\n if (path[0] === '#') {\n location.hash = path\n } else {\n location.hash = '#' + path\n }\n}\n\nwindow.addEventListener('hashchange', change)\n\nfunction change(evt) {\n var byNative = false\n //need to fix a line by omi-link\n if(window.history.length === root.historyLength && !root.route._routeByTo){\n //keep alive mode\n byNative = true\n }\n root.route._routeByTo = false\n root.historyLength = window.history.length\n var prevent = false\n if (evt.type === 'hashchange' && root.route.before) {\n prevent = root.route.before(evt) === false\n }\n if (prevent) return\n var path = window.location.hash.replace('#', '')\n if(path === '') path = '/'\n var notFound = true\n Object.keys(mapping).every(function(key){\n var toArr = path.split('?')[0].match(mapping[key].reg)\n if (toArr) {\n var pathArr = key.match(mapping[key].reg)\n root.route.params = getParams(toArr, pathArr)\n root.route.query = getUrlParams(path)\n mapping[key].callback({\n params: root.route.params,\n query: getUrlParams(path),\n data: root.route.data,\n byNative: byNative\n })\n root.route.data = null\n notFound = false\n return false\n }\n return true\n })\n\n if (notFound) {\n mapping['*'] && mapping['*'].callback({ byNative: byNative })\n }\n\n if (evt.type === 'hashchange' && root.route.after) {\n root.route.after(evt)\n }\n}\n\ndocument.addEventListener('DOMContentLoaded', change)\n\nfunction getParams(toArr, pathArr) {\n var params = {}\n toArr.forEach(function (item, index) {\n if (index > 0) {\n params[pathArr[index].replace(':', '')] = item\n }\n })\n return params\n}\n\n\nexport default function route(path, callback) {\n mapping[path] = {\n callback: callback,\n reg: p2r(path)\n }\n}\n\nfunction getGlobal() {\n if (\n typeof global !== 'object' ||\n !global ||\n global.Math !== Math ||\n global.Array !== Array\n ) {\n return (\n self ||\n window ||\n global ||\n (function () {\n return this\n })()\n )\n }\n return global\n}\n\nfunction getUrlParams(url) {\n url = url.replace(/#.*$/, '')\n var queryArray = url.split(/[?&]/).slice(1)\n var i, args = {}\n for (i = 0; i < queryArray.length; i++) {\n var match = queryArray[i].match(/([^=]+)=([^=]+)/)\n if (match !== null) {\n args[match[1]] = decodeURIComponent(match[2])\n }\n }\n return args\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/omi-router/index.js","/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * Default configs.\n */\nvar DEFAULT_DELIMITER = '/'\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \":test(\\\\d+)?\" => [\"test\", \"\\d+\", undefined, \"?\"]\n // \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n '(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = (options && options.delimiter) || DEFAULT_DELIMITER\n var whitelist = (options && options.whitelist) || undefined\n var pathEscaped = false\n var res\n\n while ((res = PATH_REGEXP.exec(str)) !== null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n pathEscaped = true\n continue\n }\n\n var prev = ''\n var name = res[2]\n var capture = res[3]\n var group = res[4]\n var modifier = res[5]\n\n if (!pathEscaped && path.length) {\n var k = path.length - 1\n var c = path[k]\n var matches = whitelist ? whitelist.indexOf(c) > -1 : true\n\n if (matches) {\n prev = c\n path = path.slice(0, k)\n }\n }\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n pathEscaped = false\n }\n\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var pattern = capture || group\n var delimiter = prev || defaultDelimiter\n\n tokens.push({\n name: name || key++,\n prefix: prev,\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n pattern: pattern\n ? escapeGroup(pattern)\n : '[^' + escapeString(delimiter === defaultDelimiter ? delimiter : (delimiter + defaultDelimiter)) + ']+?'\n })\n }\n\n // Push any remaining characters.\n if (path || index < str.length) {\n tokens.push(path + str.substr(index))\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n }\n }\n\n return function (data, options) {\n var path = ''\n var encode = (options && options.encode) || encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n continue\n }\n\n var value = data ? data[token.name] : undefined\n var segment\n\n if (Array.isArray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got array')\n }\n\n if (value.length === 0) {\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j], token)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\"')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n segment = encode(String(value), token)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n continue\n }\n\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to be ' + (token.repeat ? 'an array' : 'a string'))\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$/()])/g, '\\\\$1')\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {Array=} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n if (!keys) return path\n\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n pattern: null\n })\n }\n }\n\n return path\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n return new RegExp('(?:' + parts.join('|') + ')', flags(options))\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n options = options || {}\n\n var strict = options.strict\n var start = options.start !== false\n var end = options.end !== false\n var delimiter = options.delimiter || DEFAULT_DELIMITER\n var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|')\n var route = start ? '^' : ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var capture = token.repeat\n ? '(?:' + token.pattern + ')(?:' + escapeString(token.delimiter) + '(?:' + token.pattern + '))*'\n : token.pattern\n\n if (keys) keys.push(token)\n\n if (token.optional) {\n if (!token.prefix) {\n route += '(' + capture + ')?'\n } else {\n route += '(?:' + escapeString(token.prefix) + '(' + capture + '))?'\n }\n } else {\n route += escapeString(token.prefix) + '(' + capture + ')'\n }\n }\n }\n\n if (end) {\n if (!strict) route += '(?:' + escapeString(delimiter) + ')?'\n\n route += endsWith === '$' ? '$' : '(?=' + endsWith + ')'\n } else {\n var endToken = tokens[tokens.length - 1]\n var isEndDelimited = typeof endToken === 'string'\n ? endToken[endToken.length - 1] === delimiter\n : endToken === undefined\n\n if (!strict) route += '(?:' + escapeString(delimiter) + '(?=' + endsWith + '))?'\n if (!isEndDelimited) route += '(?=' + escapeString(delimiter) + '|' + endsWith + ')'\n }\n\n return new RegExp(route, flags(options))\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (path instanceof RegExp) {\n return regexpToRegexp(path, keys)\n }\n\n if (Array.isArray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), keys, options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), keys, options)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/path-to-regexp/index.js","var map = {\n\t\"./en/class.md\": [\n\t\t39,\n\t\t29\n\t],\n\t\"./en/css.md\": [\n\t\t40,\n\t\t28\n\t],\n\t\"./en/event.md\": [\n\t\t41,\n\t\t27\n\t],\n\t\"./en/installation.md\": [\n\t\t42,\n\t\t26\n\t],\n\t\"./en/introduction.md\": [\n\t\t43,\n\t\t25\n\t],\n\t\"./en/jsx.md\": [\n\t\t44,\n\t\t24\n\t],\n\t\"./en/lifecycle.md\": [\n\t\t45,\n\t\t23\n\t],\n\t\"./en/omiu.md\": [\n\t\t46,\n\t\t22\n\t],\n\t\"./en/other.md\": [\n\t\t47,\n\t\t21\n\t],\n\t\"./en/props.md\": [\n\t\t48,\n\t\t20\n\t],\n\t\"./en/ref.md\": [\n\t\t49,\n\t\t19\n\t],\n\t\"./en/router.md\": [\n\t\t50,\n\t\t18\n\t],\n\t\"./en/ssr.md\": [\n\t\t51,\n\t\t17\n\t],\n\t\"./en/store.md\": [\n\t\t52,\n\t\t16\n\t],\n\t\"./zh-cn/class.md\": [\n\t\t53,\n\t\t15\n\t],\n\t\"./zh-cn/css.md\": [\n\t\t54,\n\t\t14\n\t],\n\t\"./zh-cn/event.md\": [\n\t\t55,\n\t\t13\n\t],\n\t\"./zh-cn/installation.md\": [\n\t\t56,\n\t\t12\n\t],\n\t\"./zh-cn/introduction.md\": [\n\t\t57,\n\t\t11\n\t],\n\t\"./zh-cn/jsx.md\": [\n\t\t58,\n\t\t10\n\t],\n\t\"./zh-cn/lifecycle.md\": [\n\t\t59,\n\t\t9\n\t],\n\t\"./zh-cn/mps.md\": [\n\t\t60,\n\t\t8\n\t],\n\t\"./zh-cn/omip.md\": [\n\t\t61,\n\t\t7\n\t],\n\t\"./zh-cn/omiu.md\": [\n\t\t62,\n\t\t6\n\t],\n\t\"./zh-cn/other.md\": [\n\t\t63,\n\t\t5\n\t],\n\t\"./zh-cn/props.md\": [\n\t\t64,\n\t\t4\n\t],\n\t\"./zh-cn/ref.md\": [\n\t\t65,\n\t\t3\n\t],\n\t\"./zh-cn/router.md\": [\n\t\t66,\n\t\t2\n\t],\n\t\"./zh-cn/ssr.md\": [\n\t\t67,\n\t\t1\n\t],\n\t\"./zh-cn/store.md\": [\n\t\t68,\n\t\t0\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids)\n\t\treturn Promise.reject(new Error(\"Cannot find module '\" + req + \"'.\"));\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(ids[0]);\n\t});\n};\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 38;\nmodule.exports = webpackAsyncContext;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs lazy ^\\.\\/.*\\.md$\n// module id = 38\n// module chunks = 30 31","import { render } from 'omi'\nimport './assets/index.css'\nimport './elements/my-frame.js'\nimport Store from './store'\n\nrender(, '#root', new Store({ lan: 'zh-cn' }))\n\n\n\n// WEBPACK FOOTER //\n// ./src/cn.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../static/js/cn.4ef15d56.js","../webpack/bootstrap 8904c1109e4d16cf6e7b","../node_modules/omio/dist/omi.esm.js","../node_modules/css-loader/lib/css-base.js","../node_modules/webpack/buildin/global.js","../node_modules/promise/lib/core.js","../config/polyfills.js","../node_modules/promise/lib/rejection-tracking.js","../node_modules/asap/browser-raw.js","../node_modules/promise/lib/es6-extensions.js","../node_modules/whatwg-fetch/fetch.js","../node_modules/object-assign/index.js","elements/my-frame.js","elements/my-head/index.js","elements/my-head/omi-logo2019.svg","elements/my-head/menu.png","webpack:///./src/elements/my-head/_index.css?911a","elements/my-head/_index.css","elements/my-content/index.js","elements/my-footer/index.js","webpack:///./src/elements/my-footer/_index.css?4020","elements/my-footer/_index.css","webpack:///./src/elements/my-content/_index.css?ea33","elements/my-content/_index.css","elements/my-sidebar/index.js","elements/my-list/index.js","webpack:///./src/elements/my-list/_index.css?7382","elements/my-list/_index.css","webpack:///./src/elements/my-sidebar/_index.css?a491","elements/my-sidebar/_index.css","elements/my-demo/index.js","webpack:///./src/elements/my-demo/_index.css?fba4","elements/my-demo/_index.css","elements/my-demo/code.png","elements/my-demo/close.png","store/index.js","docs/config.js","../node_modules/omi-router/index.js","../node_modules/path-to-regexp/index.js","docs lazy /^/.//.*/.md$","cn.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","parentJsonpFunction","window","chunkIds","moreModules","executeModules","chunkId","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","shift","31","e","onScriptComplete","script","onerror","onload","clearTimeout","timeout","chunk","Error","undefined","installedChunkData","Promise","resolve","promise","reject","head","document","getElementsByTagName","createElement","type","charset","async","nc","setAttribute","src","p","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","setTimeout","appendChild","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error","s","global","VNode","h","nodeName","attributes","lastSimple","child","simple","children","EMPTY_CHILDREN","arguments","stack","pop","String","key","options","vnode","toObject","val","TypeError","assign","target","source","from","symbols","to","getOwnPropertySymbols","propIsEnumerable","extend","obj","props","applyRef","ref","value","current","isArray","toString","nProps","result","keys","forEach","getUse","data","paths","path","index","getTargetByPath","tempPath","tempVal","args","apply","origin","arr","replace","split","len","cloneElement","slice","enqueueRender","component","items","debounceRendering","defer","rerender","renderComponent","isSameNodeType","node","hydrating","splitText","ctor","mapping","_componentConstructor","isNamedNode","normalizedNodeName","toLowerCase","getNodeProps","defaultProps","createNode","isSvg","doc","createElementNS","parseCSSText","cssText","cssTxt","style","_ref","match","a","b","rule","properties","map","x","trim","Array","Symbol","iterator","_ref3","next","done","_ref2","toUpperCase","removeNode","parentNode","removeChild","setAccessor","old","isWeb","_typeof","IS_NON_DIMENSIONAL$1","test","oldJson","currentJson","changed","ckey","setStyles","innerHTML","__html","useCapture","substring","addEventListener","eventProxy","touchStart","touchEnd","removeEventListener","_listeners","setProperty","removeAttribute","ns","removeAttributeNS","setAttributeNS","className","this","event","___touchX","touches","pageX","___touchY","pageY","___scrollTop","body","scrollTop","Math","abs","changedTouches","dispatchEvent","CustomEvent","detail","getCtorName","styleCache","item","attrName","styleId","scoper","css","prefix","re","RegExp","g0","g1","g2","g3","addStyle","id","ele","getElementById","someThingStyles","ActiveXObject","styleSheet","textContent","addStyleWithoutId","addScopedAttrStatic","vdom","attr","scopedStyle","scopeVdom","addStyleToHead","staticStyleMapping","scopeHost","flushMounts","mounts","afterMount","installed","constructor","diff","dom","context","mountAll","parent","componentRoot","diffLevel","isSvgMode","ownerSVGElement","ret","idiff","out","prevSvgMode","vnodeName","buildComponentFromVNode","_component","nodeValue","createTextNode","replaceChild","recollectNodeTree","firstChild","fc","vchildren","nextSibling","innerDiffNode","dangerouslySetInnerHTML","diffAttributes","isHydrating","j","f","vchild","originalChildren","childNodes","keyed","keyedLen","min","childrenLen","vlen","_child","__key","insertBefore","unmountOnly","unmountComponent","removeChildren","lastChild","previousSibling","attrs","collectComponent","components","createComponent","Ctor","inst","list","render","Component","doRender","scopedCssAttr","use","store","instances","nextBase","splice","fireTick","callbacks","fn","scope","nextTickCallback","nextItem","proxyUpdate","obaa","_willUpdate","mergeUpdate","update","setComponentProps","opts","_disable","__ref","base","beforeInstall","install","observe","receiveProps","prevContext","prevProps","syncComponentUpdates","shallowComparison","isChild","rendered","cbase","previousProps","previousState","prevState","previousContext","isUpdate","initialBase","initialChildComponent","skip","beforeUpdate","beforeRender","getChildContext","toUnmount","childComponent","childProps","_parentComponent","baseParent","componentRef","t","unshift","afterUpdate","updated","_renderCallbacks","originalComponent","oldDom","isDirectOwner","isOwner","beforeUnmount","uninstall","inner","_classCallCheck","instance","Constructor","empty","merge","querySelector","extendStoreUpate","patchs","prop","fixPath","patch","_this","updateAll","matchGlobalData","globalData","updatePath","needUpdate","onChange","diffResult","keyA","indexOf","includePath","keyB","pathA","pathB","substr","mpPath","isNaN","Number","define","getPath","getUpdatePath","dataToPath","_objToPath","_arrayToPath","rpx","str","innerWidth","_classCallCheck$1","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","writable","setPrototypeOf","__proto__","classNames","classes","arg","argType","hasOwn","join","extractClass","_Array$prototype$slic","class","getHost","styleObjToCss","JS_TO_CSS","IS_NON_DIMENSIONAL","renderToString","scopedCSS","html","_renderToString","values","isComponent","pretty","indentChar","encodeEntities","mapping$1","getNodeProps$1","__x","cssStr","cssAttr","scopedCSSAttr","sortAttributes","sort","v","allAttributes","hooked","attributeHook","xml","sub","isVoid","VOID_ELEMENTS","pieces","isLargeString","indent","hasLarge","childSvgMode","assign$1","createRef","root","propertyIsEnumerable","Element","runListeners","oEvent","iLstId","iElId","oEvtListeners","oListeners","aEls","aEvts","sEventType","fListener","nElIdx","aElListeners","proto","propertiesObject","F","usePromise","__config__","platform","systemVersion","then","bind","callback","_observe","$observer","eventPropArr","$observeProps","$observerPath","mock","isInArray","watch","isString","propertyChangedHandler","propChanged","all","onPropertyChanged","oldValue","rootName","_getRootName","handler","methods","triggerStr","cprop","isFunction","currentValue","set","add","exec","size","elementId","_preCss","componentChange","fire","every","is","ModelView","_Component","vm","char","ignoreLines","WeElement","defineElement","Omi","omi","version","default","cssWithMappingToString","useSourceMap","content","cssMapping","btoa","sourceMapping","toComment","concat","sources","sourceRoot","sourceMap","unescape","encodeURIComponent","JSON","stringify","mediaQuery","alreadyImportedModules","g","Function","eval","noop","getThen","ex","LAST_ERROR","IS_ERROR","tryCallOne","tryCallTwo","_75","_83","_18","_38","doResolve","safeThen","onFulfilled","onRejected","res","handle","Handler","deferred","_47","handleResolved","asap","cb","newValue","finale","_71","reason","require","_44","enable","disable","enabled","onUnhandled","allRejections","matchWhitelist","rejections","whitelist","DEFAULT_WHITELIST","displayId","logged","logError","onHandled","warn","_56","line","some","cls","RangeError","rawAsap","task","queue","requestFlush","flushing","flush","currentIndex","capacity","scan","newLength","makeRequestCallFromTimer","handleTimer","timeoutHandle","clearInterval","intervalHandle","setInterval","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","toggle","observer","characterData","valuePromise","TRUE","FALSE","NULL","UNDEFINED","ZERO","EMPTYSTRING","remaining","race","normalizeName","normalizeValue","iteratorFor","support","iterable","Headers","headers","append","header","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","readBlobAsText","readAsText","readArrayBufferAsText","buf","view","Uint8Array","chars","fromCharCode","bufferClone","byteLength","buffer","Body","_initBody","_bodyInit","_bodyText","Blob","isPrototypeOf","_bodyBlob","formData","FormData","_bodyFormData","searchParams","URLSearchParams","arrayBuffer","isDataView","_bodyArrayBuffer","ArrayBuffer","isArrayBufferView","rejected","text","decode","json","parse","normalizeMethod","method","upcased","Request","input","url","credentials","mode","referrer","form","bytes","decodeURIComponent","parseHeaders","rawHeaders","parts","Response","bodyInit","status","ok","statusText","fetch","viewClasses","DataView","isView","has","thisArg","entries","clone","response","redirectStatuses","redirect","location","init","request","xhr","XMLHttpRequest","getAllResponseHeaders","responseURL","responseText","ontimeout","open","withCredentials","responseType","setRequestHeader","send","polyfill","test1","test2","test3","letter","_createClass","defineProperties","descriptor","protoProps","staticProps","_omi","_WeElement","_class","getPrototypeOf","_temp2","_omiLogo","_omiLogo2","_temp","_ret","_len","_key","toggleMenus","evt","toogleSidebar","stopPropagation","hideSidebar","onClick","alt","href","logo","lan","myContent","initCodeStyle","codes","querySelectorAll","codesArr","code","pre","temp","Prism","highlight","innerText","languages","markup","Event","numArr","tempArr","begin","end","ontouchend","_slicedToArray","sliceIterator","_arr","_n","_d","_e","_s","_i","_use","getPre","getNext","log","md","subIndex","menus","sideBarShow","menu","_extends","position","title","_index","_index2","_class2","onShow","show","onClose","myDemo","checkPc","demo","userAgentInfo","navigator","userAgent","mp","innerHeight","_config","_config2","Store","config","positionMap","preIndex","preSubIndex","_this2","remarkable","Remarkable","hash","getMarkDown","initRouter","_this3","subItem","route","selected","query","documentElement","zh-cn","en","change","byNative","history","historyLength","_routeByTo","prevent","before","notFound","toArr","reg","pathArr","params","getParams","getUrlParams","after","p2r","queryArray","tokens","defaultDelimiter","delimiter","DEFAULT_DELIMITER","pathEscaped","PATH_REGEXP","escaped","offset","prev","capture","group","modifier","k","repeat","optional","pattern","escapeGroup","escapeString","compile","tokensToFunction","matches","encode","token","segment","flags","sensitive","regexpToRegexp","groups","arrayToRegexp","pathToRegexp","stringToRegexp","tokensToRegExp","strict","start","endsWith","endToken","isEndDelimited","webpackAsyncContext","req","ids","./en/class.md","./en/css.md","./en/event.md","./en/installation.md","./en/introduction.md","./en/jsx.md","./en/lifecycle.md","./en/omiu.md","./en/other.md","./en/props.md","./en/ref.md","./en/router.md","./en/ssr.md","./en/store.md","./zh-cn/class.md","./zh-cn/css.md","./zh-cn/event.md","./zh-cn/installation.md","./zh-cn/introduction.md","./zh-cn/jsx.md","./zh-cn/lifecycle.md","./zh-cn/mps.md","./zh-cn/omip.md","./zh-cn/omiu.md","./zh-cn/other.md","./zh-cn/props.md","./zh-cn/ref.md","./zh-cn/router.md","./zh-cn/ssr.md","./zh-cn/store.md","_store","_store2"],"mappings":"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","file":"static/js/cn.4ef15d56.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId]) {\n/******/ \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n/******/ \t\t\t}\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n/******/ \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n/******/ \t\twhile(resolves.length) {\n/******/ \t\t\tresolves.shift()();\n/******/ \t\t}\n/******/\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// objects to store loaded and loading chunks\n/******/ \tvar installedChunks = {\n/******/ \t\t31: 0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId) {\n/******/ \t\tvar installedChunkData = installedChunks[chunkId];\n/******/ \t\tif(installedChunkData === 0) {\n/******/ \t\t\treturn new Promise(function(resolve) { resolve(); });\n/******/ \t\t}\n/******/\n/******/ \t\t// a Promise means \"currently loading\".\n/******/ \t\tif(installedChunkData) {\n/******/ \t\t\treturn installedChunkData[2];\n/******/ \t\t}\n/******/\n/******/ \t\t// setup Promise in chunk cache\n/******/ \t\tvar promise = new Promise(function(resolve, reject) {\n/******/ \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n/******/ \t\t});\n/******/ \t\tinstalledChunkData[2] = promise;\n/******/\n/******/ \t\t// start chunk loading\n/******/ \t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\tvar script = document.createElement('script');\n/******/ \t\tscript.type = 'text/javascript';\n/******/ \t\tscript.charset = 'utf-8';\n/******/ \t\tscript.async = true;\n/******/ \t\tscript.timeout = 120000;\n/******/\n/******/ \t\tif (__webpack_require__.nc) {\n/******/ \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n/******/ \t\t}\n/******/ \t\tscript.src = __webpack_require__.p + \"static/js/\" + ({}[chunkId]||chunkId) + \".\" + {\"0\":\"f770eb0e\",\"1\":\"0d025b66\",\"2\":\"9632a8c5\",\"3\":\"1c5042fb\",\"4\":\"1a938e71\",\"5\":\"f187d1bc\",\"6\":\"62a98a69\",\"7\":\"70efbb66\",\"8\":\"06eeaa91\",\"9\":\"c60ec43c\",\"10\":\"e6acfca5\",\"11\":\"94470037\",\"12\":\"1551e567\",\"13\":\"a7923ed9\",\"14\":\"84f14bf7\",\"15\":\"e34c03c9\",\"16\":\"48415b29\",\"17\":\"d859539c\",\"18\":\"44386d31\",\"19\":\"50bd4319\",\"20\":\"83b21c96\",\"21\":\"fc4d0781\",\"22\":\"d0e764c7\",\"23\":\"b1e284bd\",\"24\":\"d0714382\",\"25\":\"204510ac\",\"26\":\"d3e0fb29\",\"27\":\"cd58c5d2\",\"28\":\"3ca205f6\",\"29\":\"18dc7b40\"}[chunkId] + \".chunk.js\";\n/******/ \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n/******/ \t\tscript.onerror = script.onload = onScriptComplete;\n/******/ \t\tfunction onScriptComplete() {\n/******/ \t\t\t// avoid mem leaks in IE.\n/******/ \t\t\tscript.onerror = script.onload = null;\n/******/ \t\t\tclearTimeout(timeout);\n/******/ \t\t\tvar chunk = installedChunks[chunkId];\n/******/ \t\t\tif(chunk !== 0) {\n/******/ \t\t\t\tif(chunk) {\n/******/ \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n/******/ \t\t\t\t}\n/******/ \t\t\t\tinstalledChunks[chunkId] = undefined;\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t\thead.appendChild(script);\n/******/\n/******/ \t\treturn promise;\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"./\";\n/******/\n/******/ \t// on error function for async loading\n/******/ \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 69);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol===\"function\"&&obj.constructor===Symbol&&obj!==Symbol.prototype?\"symbol\":typeof obj;};/**\n * omi v2.0.5 http://omijs.org\n * Omi === Preact + Scoped CSS + Store System + Native Support in 3kb javascript.\n * By dntzhang https://github.com/dntzhang\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n *//** Virtual DOM Node */function VNode(){}function getGlobal(){if((typeof global==='undefined'?'undefined':_typeof(global))!=='object'||!global||global.Math!==Math||global.Array!==Array){if(typeof self!=='undefined'){return self;}else if(typeof window!=='undefined'){return window;}else if(typeof global!=='undefined'){return global;}return function(){return this;}();}return global;}/** Global options\n *\t@public\n *\t@namespace options {Object}\n */var options={scopedStyle:true,mapping:{},isWeb:true,staticStyleMapping:{},doc:(typeof document==='undefined'?'undefined':_typeof(document))==='object'?document:null,root:getGlobal(),//styleCache :[{ctor:ctor,ctorName:ctorName,style:style}]\nstyleCache:[]//componentChange(component, element) { },\n/** If `true`, `prop` changes trigger synchronous component updates.\n *\t@name syncComponentUpdates\n *\t@type Boolean\n *\t@default true\n *///syncComponentUpdates: true,\n/** Processes all created VNodes.\n *\t@param {VNode} vnode\tA newly-created VNode to normalize/process\n *///vnode(vnode) { }\n/** Hook invoked after a component is mounted. *///afterMount(component) { },\n/** Hook invoked after the DOM is updated with a component's latest render. *///afterUpdate(component) { }\n/** Hook invoked immediately before a component is unmounted. */// beforeUnmount(component) { }\n};var stack=[];var EMPTY_CHILDREN=[];/**\n * JSX/hyperscript reviver.\n * @see http://jasonformat.com/wtf-is-jsx\n * Benchmarks: https://esbench.com/bench/57ee8f8e330ab09900a1a1a0\n *\n * Note: this is exported as both `h()` and `createElement()` for compatibility reasons.\n *\n * Creates a VNode (virtual DOM element). A tree of VNodes can be used as a lightweight representation\n * of the structure of a DOM tree. This structure can be realized by recursively comparing it against\n * the current _actual_ DOM structure, and applying only the differences.\n *\n * `h()`/`createElement()` accepts an element name, a list of attributes/props,\n * and optionally children to append to the element.\n *\n * @example The following DOM tree\n *\n * `
Hello!
`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */function h(nodeName,attributes){var children=EMPTY_CHILDREN,lastSimple,child,simple,i;for(i=arguments.length;i-->2;){stack.push(arguments[i]);}if(attributes&&attributes.children!=null){if(!stack.length)stack.push(attributes.children);delete attributes.children;}while(stack.length){if((child=stack.pop())&&child.pop!==undefined){for(i=child.length;i--;){stack.push(child[i]);}}else{if(typeof child==='boolean')child=null;if(simple=typeof nodeName!=='function'){if(child==null)child='';else if(typeof child==='number')child=String(child);else if(typeof child!=='string')simple=false;}if(simple&&lastSimple){children[children.length-1]+=child;}else if(children===EMPTY_CHILDREN){children=[child];}else{children.push(child);}lastSimple=simple;}}var p=new VNode();p.nodeName=nodeName;p.children=children;p.attributes=attributes==null?undefined:attributes;p.key=attributes==null?undefined:attributes.key;// if a \"vnode hook\" is defined, pass every created VNode to it\nif(options.vnode!==undefined)options.vnode(p);return p;}/* eslint-disable no-unused-vars */var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError('Object.assign cannot be called with null or undefined');}return Object(val);}function assign(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s8){usePromise=true;}}}var defer=usePromise?Promise.resolve().then.bind(Promise.resolve()):setTimeout;function isArray(obj){return Object.prototype.toString.call(obj)==='[object Array]';}function nProps(props){if(!props||isArray(props))return{};var result={};Object.keys(props).forEach(function(key){result[key]=props[key].value;});return result;}function getUse(data,paths){var obj=[];paths.forEach(function(path,index){var isPath=typeof path==='string';if(isPath){obj[index]=getTargetByPath(data,path);}else{var key=Object.keys(path)[0];var value=path[key];if(typeof value==='string'){obj[index]=getTargetByPath(data,value);}else{var tempPath=value[0];if(typeof tempPath==='string'){var tempVal=getTargetByPath(data,tempPath);obj[index]=value[1]?value[1](tempVal):tempVal;}else{var args=[];tempPath.forEach(function(path){args.push(getTargetByPath(data,path));});obj[index]=value[1].apply(null,args);}}obj[key]=obj[index];}});return obj;}function getTargetByPath(origin,path){var arr=path.replace(/]/g,'').replace(/\\[/g,'.').split('.');var current=origin;for(var i=0,len=arr.length;i2?[].slice.call(arguments,2):vnode.children);}// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL$1=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;/** Managed queue of dirty components to be re-rendered */var items=[];function enqueueRender(component){if(items.push(component)==1){(options.debounceRendering||defer)(rerender);}}/** Rerender all enqueued dirty components */function rerender(){var p;while(p=items.pop()){renderComponent(p);}}var mapping=options.mapping;/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hydrating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */function isSameNodeType(node,vnode,hydrating){if(typeof vnode==='string'||typeof vnode==='number'){return node.splitText!==undefined;}if(typeof vnode.nodeName==='string'){var ctor=mapping[vnode.nodeName];if(ctor){return hydrating||node._componentConstructor===ctor;}return!node._componentConstructor&&isNamedNode(node,vnode.nodeName);}return hydrating||node._componentConstructor===vnode.nodeName;}/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */function isNamedNode(node,nodeName){return node.normalizedNodeName===nodeName||node.nodeName.toLowerCase()===nodeName.toLowerCase();}/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n *\n * @param {VNode} vnode\n * @returns {Object} props\n */function getNodeProps(vnode){var props=extend({},vnode.attributes);props.children=vnode.children;var defaultProps=vnode.nodeName.defaultProps;if(defaultProps!==undefined){for(var i in defaultProps){if(props[i]===undefined){props[i]=defaultProps[i];}}}return props;}/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */function createNode(nodeName,isSvg){var node=isSvg?options.doc.createElementNS('http://www.w3.org/2000/svg',nodeName):options.doc.createElement(nodeName);node.normalizedNodeName=nodeName;return node;}function parseCSSText(cssText){var cssTxt=cssText.replace(/\\/\\*(.|\\s)*?\\*\\//g,' ').replace(/\\s+/g,' ');var style={},_ref=cssTxt.match(/ ?(.*?) ?{([^}]*)}/)||[a,b,cssTxt],a=_ref[0],b=_ref[1],rule=_ref[2];var cssToJs=function cssToJs(s){return s.replace(/\\W+\\w/g,function(match){return match.slice(-1).toUpperCase();});};var properties=rule.split(';').map(function(o){return o.split(':').map(function(x){return x&&x.trim();});});for(var i=properties,i=Array.isArray(i),i=0,i=i?i:i[Symbol.iterator]();;){var _ref3;if(i){if(i>=i.length)break;_ref3=i[i++];}else{i=i.next();if(i.done)break;_ref3=i.value;}var _ref2=_ref3;var property=_ref2[0];var value=_ref2[1];style[cssToJs(property)]=value;}return style;}/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */function removeNode(node){var parentNode=node.parentNode;if(parentNode)parentNode.removeChild(node);}/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */function setAccessor(node,name,old,value,isSvg){if(name==='className')name='class';if(name==='key'){// ignore\n}else if(name==='ref'){applyRef(old,null);applyRef(value,node);}else if(name==='class'&&!isSvg){node.className=value||'';}else if(name==='style'){if(options.isWeb){if(!value||typeof value==='string'||typeof old==='string'){node.style.cssText=value||'';}if(value&&(typeof value==='undefined'?'undefined':_typeof(value))==='object'){if(typeof old!=='string'){for(var i in old){if(!(i in value))node.style[i]='';}}for(var i in value){node.style[i]=typeof value[i]==='number'&&IS_NON_DIMENSIONAL$1.test(i)===false?value[i]+'px':value[i];}}}else{var oldJson=old,currentJson=value;if(typeof old==='string'){oldJson=parseCSSText(old);}if(typeof value=='string'){currentJson=parseCSSText(value);}var result={},changed=false;if(oldJson){for(var key in oldJson){if((typeof currentJson==='undefined'?'undefined':_typeof(currentJson))=='object'&&!(key in currentJson)){result[key]='';changed=true;}}for(var ckey in currentJson){if(currentJson[ckey]!==oldJson[ckey]){result[ckey]=currentJson[ckey];changed=true;}}if(changed){node.setStyles(result);}}else{node.setStyles(currentJson);}}}else if(name==='dangerouslySetInnerHTML'){if(value)node.innerHTML=value.__html||'';}else if(name[0]=='o'&&name[1]=='n'){var useCapture=name!==(name=name.replace(/Capture$/,''));name=name.toLowerCase().substring(2);if(value){if(!old){node.addEventListener(name,eventProxy,useCapture);if(name=='tap'){node.addEventListener('touchstart',touchStart,useCapture);node.addEventListener('touchend',touchEnd,useCapture);}}}else{node.removeEventListener(name,eventProxy,useCapture);if(name=='tap'){node.removeEventListener('touchstart',touchStart,useCapture);node.removeEventListener('touchend',touchEnd,useCapture);}}(node._listeners||(node._listeners={}))[name]=value;}else if(name!=='list'&&name!=='type'&&!isSvg&&name in node){setProperty(node,name,value==null?'':value);if(value==null||value===false)node.removeAttribute(name);}else{var ns=isSvg&&name!==(name=name.replace(/^xlink:?/,''));if(value==null||value===false){if(ns)node.removeAttributeNS('http://www.w3.org/1999/xlink',name.toLowerCase());else node.removeAttribute(name);}else if(typeof value!=='function'){if(ns)node.setAttributeNS('http://www.w3.org/1999/xlink',name.toLowerCase(),value);else node.setAttribute(name,value);}}}/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */function setProperty(node,name,value){try{node[name]=value;}catch(e){}}/** Proxy an event to hooked event handlers\n *\t@private\n */function eventProxy(e){return this._listeners[e.type](options.event&&options.event(e)||e);}function touchStart(e){this.___touchX=e.touches[0].pageX;this.___touchY=e.touches[0].pageY;this.___scrollTop=document.body.scrollTop;}function touchEnd(e){if(Math.abs(e.changedTouches[0].pageX-this.___touchX)<30&&Math.abs(e.changedTouches[0].pageY-this.___touchY)<30&&Math.abs(document.body.scrollTop-this.___scrollTop)<30){this.dispatchEvent(new CustomEvent('tap',{detail:e}));}}var styleId=0;function getCtorName(ctor){for(var i=0,len=options.styleCache.length;i-1;){if(item===arr[i])return true;}return false;};obaa.isFunction=function(obj){return Object.prototype.toString.call(obj)=='[object Function]';};obaa._getRootName=function(prop,path){if(path==='#'){return prop;}return path.split('-')[1];};obaa.add=function(obj,prop){var $observer=obj.$observer;$observer.watch(obj,prop);};obaa.set=function(obj,prop,value,exec){if(!exec){obj[prop]=value;}var $observer=obj.$observer;$observer.watch(obj,prop);if(exec){obj[prop]=value;}};Array.prototype.size=function(length){this.length=length;};var callbacks=[];var nextTickCallback=[];function fireTick(){callbacks.forEach(function(item){item.fn.call(item.scope);});nextTickCallback.forEach(function(nextItem){nextItem.fn.call(nextItem.scope);});nextTickCallback.length=0;}function proxyUpdate(ele){var timeout=null;obaa(ele.data,function(){if(ele._willUpdate){return;}if(ele.constructor.mergeUpdate){clearTimeout(timeout);timeout=setTimeout(function(){ele.update();fireTick();},0);}else{ele.update();fireTick();}});}/** Set a component's `props` (generally derived from JSX attributes).\n *\t@param {Object} props\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.renderSync=false]\tIf `true` and {@link options.syncComponentUpdates} is `true`, triggers synchronous rendering.\n *\t@param {boolean} [opts.render=true]\t\t\tIf `false`, no render will be triggered.\n */function setComponentProps(component,props,opts,context,mountAll){if(component._disable)return;component._disable=true;if(component.__ref=props.ref)delete props.ref;if(component.__key=props.key)delete props.key;if(!component.base||mountAll){if(component.beforeInstall)component.beforeInstall();if(component.install)component.install();if(component.constructor.observe){proxyUpdate(component);}}else if(component.receiveProps){component.receiveProps(props,component.data,component.props);}if(context&&context!==component.context){if(!component.prevContext)component.prevContext=component.context;component.context=context;}if(!component.prevProps)component.prevProps=component.props;component.props=props;component._disable=false;if(opts!==0){if(opts===1||options.syncComponentUpdates!==false||!component.base){renderComponent(component,1,mountAll);}else{enqueueRender(component);}}applyRef(component.__ref,component);}function shallowComparison(old,attrs){var name;for(name in old){if(attrs[name]==null&&old[name]!=null){return true;}}if(old.children.length>0||attrs.children.length>0){return true;}for(name in attrs){if(name!='children'){var type=_typeof(attrs[name]);if(type=='function'||type=='object'){return true;}else if(attrs[name]!=old[name]){return true;}}}}/** Render a Component, triggering necessary lifecycle events and taking High-Order Components into account.\n *\t@param {Component} component\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.build=false]\t\tIf `true`, component will build and store a DOM node if not already associated with one.\n *\t@private\n */function renderComponent(component,opts,mountAll,isChild){if(component._disable)return;var props=component.props,data=component.data,context=component.context,previousProps=component.prevProps||props,previousState=component.prevState||data,previousContext=component.prevContext||context,isUpdate=component.base,nextBase=component.nextBase,initialBase=isUpdate||nextBase,initialChildComponent=component._component,skip=false,rendered,inst,cbase;// if updating\nif(isUpdate){component.props=previousProps;component.data=previousState;component.context=previousContext;if(component.store||opts==2||shallowComparison(previousProps,props)){skip=false;if(component.beforeUpdate){component.beforeUpdate(props,data,context);}}else{skip=true;}component.props=props;component.data=data;component.context=context;}component.prevProps=component.prevState=component.prevContext=component.nextBase=null;if(!skip){component.beforeRender&&component.beforeRender();rendered=component.render(props,data,context);//don't rerender\nif(component.constructor.css||component.css){addScopedAttrStatic(rendered,'_s'+getCtorName(component.constructor));}scopeHost(rendered,component.scopedCssAttr);// context to pass to the child, can be updated via (grand-)parent component\nif(component.getChildContext){context=extend(extend({},context),component.getChildContext());}var childComponent=rendered&&rendered.nodeName,toUnmount,base,ctor=options.mapping[childComponent];if(ctor){// set up high order component link\nvar childProps=getNodeProps(rendered);inst=initialChildComponent;if(inst&&inst.constructor===ctor&&childProps.key==inst.__key){setComponentProps(inst,childProps,1,context,false);}else{toUnmount=inst;component._component=inst=createComponent(ctor,childProps,context);inst.nextBase=inst.nextBase||nextBase;inst._parentComponent=component;setComponentProps(inst,childProps,0,context,false);renderComponent(inst,1,mountAll,true);}base=inst.base;}else{cbase=initialBase;// destroy high order component link\ntoUnmount=initialChildComponent;if(toUnmount){cbase=component._component=null;}if(initialBase||opts===1){if(cbase)cbase._component=null;base=diff(cbase,rendered,context,mountAll||!isUpdate,initialBase&&initialBase.parentNode,true);}}if(initialBase&&base!==initialBase&&inst!==initialChildComponent){var baseParent=initialBase.parentNode;if(baseParent&&base!==baseParent){baseParent.replaceChild(base,initialBase);if(!toUnmount){initialBase._component=null;recollectNodeTree(initialBase,false);}}}if(toUnmount){unmountComponent(toUnmount);}component.base=base;if(base&&!isChild){var componentRef=component,t=component;while(t=t._parentComponent){(componentRef=t).base=base;}base._component=componentRef;base._componentConstructor=componentRef.constructor;}}if(!isUpdate||mountAll){mounts.unshift(component);}else if(!skip){// Ensure that pending componentDidMount() hooks of child components\n// are called before the componentDidUpdate() hook in the parent.\n// Note: disabled as it causes duplicate hooks, see https://github.com/developit/preact/issues/750\n// flushMounts();\nif(component.afterUpdate){//deprecated\ncomponent.afterUpdate(previousProps,previousState,previousContext);}if(component.updated){component.updated(previousProps,previousState,previousContext);}if(options.afterUpdate)options.afterUpdate(component);}if(component._renderCallbacks!=null){while(component._renderCallbacks.length){component._renderCallbacks.pop().call(component);}}if(!diffLevel&&!isChild)flushMounts();}/** Apply the Component referenced by a VNode to the DOM.\n *\t@param {Element} dom\tThe DOM node to mutate\n *\t@param {VNode} vnode\tA Component-referencing VNode\n *\t@returns {Element} dom\tThe created/mutated element\n *\t@private\n */function buildComponentFromVNode(dom,vnode,context,mountAll){var c=dom&&dom._component,originalComponent=c,oldDom=dom,isDirectOwner=c&&dom._componentConstructor===vnode.nodeName,isOwner=isDirectOwner,props=getNodeProps(vnode);while(c&&!isOwner&&(c=c._parentComponent)){isOwner=c.constructor===vnode.nodeName;}if(c&&isOwner&&(!mountAll||c._component)){setComponentProps(c,props,3,context,mountAll);dom=c.base;}else{if(originalComponent&&!isDirectOwner){unmountComponent(originalComponent);dom=oldDom=null;}c=createComponent(vnode.nodeName,props,context,vnode);if(dom&&!c.nextBase){c.nextBase=dom;// passing dom/oldDom as nextBase will recycle it if unused, so bypass recycling on L229:\noldDom=null;}setComponentProps(c,props,1,context,mountAll);dom=c.base;if(oldDom&&dom!==oldDom){oldDom._component=null;recollectNodeTree(oldDom,false);}}return dom;}/** Remove a component from the DOM and recycle it.\n *\t@param {Component} component\tThe Component instance to unmount\n *\t@private\n */function unmountComponent(component){if(options.beforeUnmount)options.beforeUnmount(component);var base=component.base;component._disable=true;if(component.uninstall)component.uninstall();if(component.store&&component.store.instances){for(var i=0,len=component.store.instances.length;i0){this.instances.forEach(function(instance){if(updateAll||_this.updateAll||instance.constructor.updatePath&&needUpdate(patch,instance.constructor.updatePath)){//update this.use\ninstance.use=getUse(store.data,instance.constructor.use);instance.update();}});this.onChange&&this.onChange(patch);}};}function matchGlobalData(globalData,diffResult){if(!globalData)return false;for(var keyA in diffResult){if(globalData.indexOf(keyA)>-1){return true;}for(var i=0,len=globalData.length;i0){return{class:classNames.apply(null,args)};}}function getHost(component){var base=component.base;if(base){while(base.parentNode){if(base.parentNode._component){return base.parentNode._component;}else{base=base.parentNode;}}}}/**\n * preact-render-to-string based on preact-render-to-string\n * by Jason Miller\n * Licensed under the MIT License\n * https://github.com/developit/preact-render-to-string\n *\n * modified by dntzhang\n */var encodeEntities=function encodeEntities(s){return String(s).replace(/&/g,'&').replace(//g,'>').replace(/\"/g,'"');};var indent=function indent(s,char){return String(s).replace(/(\\n+)/g,'$1'+(char||'\\t'));};var mapping$1=options.mapping;var VOID_ELEMENTS=/^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/;var isLargeString=function isLargeString(s,length,ignoreLines){return String(s).length>(length||40)||!ignoreLines&&String(s).indexOf('\\n')!==-1||String(s).indexOf('<')!==-1;};var JS_TO_CSS={};// Convert an Object style to a CSSText string\nfunction styleObjToCss(s){var str='';for(var prop in s){var val=s[prop];if(val!=null){if(str)str+=' ';// str += jsToCss(prop);\nstr+=JS_TO_CSS[prop]||(JS_TO_CSS[prop]=prop.replace(/([A-Z])/g,'-$1').toLowerCase());str+=': ';str+=val;if(typeof val==='number'&&IS_NON_DIMENSIONAL.test(prop)===false){str+='px';}str+=';';}}return str||undefined;}function renderToString(vnode,opts,store,isSvgMode){store=store||{};opts=Object.assign({scopedCSS:true},opts);var css={};var html=_renderToString(vnode,opts,store,isSvgMode,css);return{css:Object.values(css),html:html};}/** The default export is an alias of `render()`. */function _renderToString(vnode,opts,store,isSvgMode,css){if(vnode==null||typeof vnode==='boolean'){return'';}var nodeName=vnode.nodeName,attributes=vnode.attributes,isComponent=false;var pretty=true&&opts.pretty,indentChar=pretty&&typeof pretty==='string'?pretty:'\\t';// #text nodes\nif((typeof vnode==='undefined'?'undefined':_typeof(vnode))!=='object'&&!nodeName){return encodeEntities(vnode);}// components\nvar ctor=mapping$1[nodeName];if(ctor){isComponent=true;var props=getNodeProps$1(vnode),rendered;// class-based components\nvar c=new ctor(props,store);// turn off stateful re-rendering:\nc._disable=c.__x=true;c.props=props;c.store=store;if(c.install)c.install();if(c.beforeRender)c.beforeRender();rendered=c.render(c.props,c.data,c.store);if(opts.scopedCSS){if(c.constructor.css||c.css){var cssStr=c.constructor.css?c.constructor.css:typeof c.css==='function'?c.css():c.css;var cssAttr='_s'+getCtorName(c.constructor);css[cssAttr]='';addScopedAttrStatic(rendered,'_s'+getCtorName(c.constructor));}c.scopedCSSAttr=vnode.css;scopeHost(rendered,c.scopedCSSAttr);}return _renderToString(rendered,opts,store,false,css);}// render JSX to HTML\nvar s='',html;if(attributes){var attrs=Object.keys(attributes);// allow sorting lexicographically for more determinism (useful for tests, such as via preact-jsx-chai)\nif(opts&&opts.sortAttributes===true)attrs.sort();for(var i=0;i]/))continue;if(!(opts&&opts.allAttributes)&&(name==='key'||name==='ref'))continue;if(name==='className'){if(attributes.class)continue;name='class';}else if(isSvgMode&&name.match(/^xlink:?./)){name=name.toLowerCase().replace(/^xlink:?/,'xlink:');}if(name==='style'&&v&&(typeof v==='undefined'?'undefined':_typeof(v))==='object'){v=styleObjToCss(v);}var hooked=opts.attributeHook&&opts.attributeHook(name,v,store,opts,isComponent);if(hooked||hooked===''){s+=hooked;continue;}if(name==='dangerouslySetInnerHTML'){html=v&&v.__html;}else if((v||v===0||v==='')&&typeof v!=='function'){if(v===true||v===''){v=name;// in non-xml mode, allow boolean attributes\nif(!opts||!opts.xml){s+=' '+name;continue;}}s+=' '+name+'=\"'+encodeEntities(v)+'\"';}}}// account for >1 multiline attribute\nif(pretty){var sub=s.replace(/^\\n\\s*/,' ');if(sub!==s&&!~sub.indexOf('\\n'))s=sub;else if(pretty&&~s.indexOf('\\n'))s+='\\n';}s='<'+nodeName+s+'>';if(String(nodeName).match(/[\\s\\n\\\\/='\"\\0<>]/))throw s;var isVoid=String(nodeName).match(VOID_ELEMENTS);if(isVoid)s=s.replace(/>$/,' />');var pieces=[];if(html){// if multiline, indent.\nif(pretty&&isLargeString(html)){html='\\n'+indentChar+indent(html,indentChar);}s+=html;}else if(vnode.children){var hasLarge=pretty&&~s.indexOf('\\n');for(var i=0;i';}if(!isVoid){if(pretty&&~s.indexOf('\\n'))s+='\\n';s+='';}return s;}function assign$1(obj,props){for(var i in props){obj[i]=props[i];}return obj;}function getNodeProps$1(vnode){var props=assign$1({},vnode.attributes);props.children=vnode.children;var defaultProps=vnode.nodeName.defaultProps;if(defaultProps!==undefined){for(var i in defaultProps){if(props[i]===undefined){props[i]=defaultProps[i];}}}return props;}var WeElement=Component;var defineElement=define;function createRef(){return{};}options.root.Omi={h:h,createElement:h,cloneElement:cloneElement,createRef:createRef,Component:Component,render:render,rerender:rerender,options:options,WeElement:WeElement,define:define,rpx:rpx,ModelView:ModelView,defineElement:defineElement,classNames:classNames,extractClass:extractClass,getHost:getHost,renderToString:renderToString};options.root.omi=options.root.Omi;options.root.Omi.version='omio-2.0.5';var omi={h:h,createElement:h,cloneElement:cloneElement,createRef:createRef,Component:Component,render:render,rerender:rerender,options:options,WeElement:WeElement,define:define,rpx:rpx,ModelView:ModelView,defineElement:defineElement,classNames:classNames,extractClass:extractClass,getHost:getHost,renderToString:renderToString};exports.default=omi;exports.h=h;exports.createElement=h;exports.cloneElement=cloneElement;exports.createRef=createRef;exports.Component=Component;exports.render=render;exports.rerender=rerender;exports.options=options;exports.WeElement=WeElement;exports.define=define;exports.rpx=rpx;exports.ModelView=ModelView;exports.defineElement=defineElement;exports.classNames=classNames;exports.extractClass=extractClass;exports.getHost=getHost;exports.renderToString=renderToString;//# sourceMappingURL=omi.esm.js.map\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/// css base code, injected by the css-loader\nmodule.exports=function(useSourceMap){var list=[];// return the list of modules as css string\nlist.toString=function toString(){return this.map(function(item){var content=cssWithMappingToString(item,useSourceMap);if(item[2]){return\"@media \"+item[2]+\"{\"+content+\"}\";}else{return content;}}).join(\"\");};// import a list of modules into the list\nlist.i=function(modules,mediaQuery){if(typeof modules===\"string\")modules=[[null,modules,\"\"]];var alreadyImportedModules={};for(var i=0;icapacity){// Manually shift all values starting at the index back to the\n// beginning of the queue.\nfor(var scan=0,newLength=queue.length-index;scan-1;};}function normalizeName(name){if(typeof name!=='string'){name=String(name);}if(/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)){throw new TypeError('Invalid character in header field name');}return name.toLowerCase();}function normalizeValue(value){if(typeof value!=='string'){value=String(value);}return value;}// Build a destructive iterator for the value list\nfunction iteratorFor(items){var iterator={next:function next(){var value=items.shift();return{done:value===undefined,value:value};}};if(support.iterable){iterator[Symbol.iterator]=function(){return iterator;};}return iterator;}function Headers(headers){this.map={};if(headers instanceof Headers){headers.forEach(function(value,name){this.append(name,value);},this);}else if(Array.isArray(headers)){headers.forEach(function(header){this.append(header[0],header[1]);},this);}else if(headers){Object.getOwnPropertyNames(headers).forEach(function(name){this.append(name,headers[name]);},this);}}Headers.prototype.append=function(name,value){name=normalizeName(name);value=normalizeValue(value);var oldValue=this.map[name];this.map[name]=oldValue?oldValue+','+value:value;};Headers.prototype['delete']=function(name){delete this.map[normalizeName(name)];};Headers.prototype.get=function(name){name=normalizeName(name);return this.has(name)?this.map[name]:null;};Headers.prototype.has=function(name){return this.map.hasOwnProperty(normalizeName(name));};Headers.prototype.set=function(name,value){this.map[normalizeName(name)]=normalizeValue(value);};Headers.prototype.forEach=function(callback,thisArg){for(var name in this.map){if(this.map.hasOwnProperty(name)){callback.call(thisArg,this.map[name],name,this);}}};Headers.prototype.keys=function(){var items=[];this.forEach(function(value,name){items.push(name);});return iteratorFor(items);};Headers.prototype.values=function(){var items=[];this.forEach(function(value){items.push(value);});return iteratorFor(items);};Headers.prototype.entries=function(){var items=[];this.forEach(function(value,name){items.push([name,value]);});return iteratorFor(items);};if(support.iterable){Headers.prototype[Symbol.iterator]=Headers.prototype.entries;}function consumed(body){if(body.bodyUsed){return Promise.reject(new TypeError('Already read'));}body.bodyUsed=true;}function fileReaderReady(reader){return new Promise(function(resolve,reject){reader.onload=function(){resolve(reader.result);};reader.onerror=function(){reject(reader.error);};});}function readBlobAsArrayBuffer(blob){var reader=new FileReader();var promise=fileReaderReady(reader);reader.readAsArrayBuffer(blob);return promise;}function readBlobAsText(blob){var reader=new FileReader();var promise=fileReaderReady(reader);reader.readAsText(blob);return promise;}function readArrayBufferAsText(buf){var view=new Uint8Array(buf);var chars=new Array(view.length);for(var i=0;i-1?upcased:method;}function Request(input,options){options=options||{};var body=options.body;if(input instanceof Request){if(input.bodyUsed){throw new TypeError('Already read');}this.url=input.url;this.credentials=input.credentials;if(!options.headers){this.headers=new Headers(input.headers);}this.method=input.method;this.mode=input.mode;if(!body&&input._bodyInit!=null){body=input._bodyInit;input.bodyUsed=true;}}else{this.url=String(input);}this.credentials=options.credentials||this.credentials||'omit';if(options.headers||!this.headers){this.headers=new Headers(options.headers);}this.method=normalizeMethod(options.method||this.method||'GET');this.mode=options.mode||this.mode||null;this.referrer=null;if((this.method==='GET'||this.method==='HEAD')&&body){throw new TypeError('Body not allowed for GET or HEAD requests');}this._initBody(body);}Request.prototype.clone=function(){return new Request(this,{body:this._bodyInit});};function decode(body){var form=new FormData();body.trim().split('&').forEach(function(bytes){if(bytes){var split=bytes.split('=');var name=split.shift().replace(/\\+/g,' ');var value=split.join('=').replace(/\\+/g,' ');form.append(decodeURIComponent(name),decodeURIComponent(value));}});return form;}function parseHeaders(rawHeaders){var headers=new Headers();rawHeaders.split(/\\r?\\n/).forEach(function(line){var parts=line.split(':');var key=parts.shift().trim();if(key){var value=parts.join(':').trim();headers.append(key,value);}});return headers;}Body.call(Request.prototype);function Response(bodyInit,options){if(!options){options={};}this.type='default';this.status='status'in options?options.status:200;this.ok=this.status>=200&&this.status<300;this.statusText='statusText'in options?options.statusText:'OK';this.headers=new Headers(options.headers);this.url=options.url||'';this._initBody(bodyInit);}Body.call(Response.prototype);Response.prototype.clone=function(){return new Response(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new Headers(this.headers),url:this.url});};Response.error=function(){var response=new Response(null,{status:0,statusText:''});response.type='error';return response;};var redirectStatuses=[301,302,303,307,308];Response.redirect=function(url,status){if(redirectStatuses.indexOf(status)===-1){throw new RangeError('Invalid status code');}return new Response(null,{status:status,headers:{location:url}});};self.Headers=Headers;self.Request=Request;self.Response=Response;self.fetch=function(input,init){return new Promise(function(resolve,reject){var request=new Request(input,init);var xhr=new XMLHttpRequest();xhr.onload=function(){var options={status:xhr.status,statusText:xhr.statusText,headers:parseHeaders(xhr.getAllResponseHeaders()||'')};options.url='responseURL'in xhr?xhr.responseURL:options.headers.get('X-Request-URL');var body='response'in xhr?xhr.response:xhr.responseText;resolve(new Response(body,options));};xhr.onerror=function(){reject(new TypeError('Network request failed'));};xhr.ontimeout=function(){reject(new TypeError('Network request failed'));};xhr.open(request.method,request.url,true);if(request.credentials==='include'){xhr.withCredentials=true;}if('responseType'in xhr&&support.blob){xhr.responseType='blob';}request.headers.forEach(function(value,name){xhr.setRequestHeader(name,value);});xhr.send(typeof request._bodyInit==='undefined'?null:request._bodyInit);});};self.fetch.polyfill=true;})(typeof self!=='undefined'?self:undefined);\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*//* eslint-disable no-unused-vars */var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError('Object.assign cannot be called with null or undefined');}return Object(val);}function shouldUseNative(){try{if(!Object.assign){return false;}// Detect buggy property enumeration order in older V8 versions.\n// https://bugs.chromium.org/p/v8/issues/detail?id=4118\nvar test1=new String('abc');// eslint-disable-line no-new-wrappers\ntest1[5]='de';if(Object.getOwnPropertyNames(test1)[0]==='5'){return false;}// https://bugs.chromium.org/p/v8/issues/detail?id=3056\nvar test2={};for(var i=0;i<10;i++){test2['_'+String.fromCharCode(i)]=i;}var order2=Object.getOwnPropertyNames(test2).map(function(n){return test2[n];});if(order2.join('')!=='0123456789'){return false;}// https://bugs.chromium.org/p/v8/issues/detail?id=3056\nvar test3={};'abcdefghijklmnopqrst'.split('').forEach(function(letter){test3[letter]=letter;});if(Object.keys(Object.assign({},test3)).join('')!=='abcdefghijklmnopqrst'){return false;}return true;}catch(err){// We don't expect any of the above to throw, but better to be safe.\nreturn false;}}module.exports=shouldUseNative()?Object.assign:function(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s {\n// let newP = document.createElement('div')\n// newP.className = '_code-ctn'\n// let pre = code.parentNode\n// let ctn = pre.parentNode\n// if (pre.nodeName === 'PRE') {\n// ctn.insertBefore(newP, pre)\n// let hl = document.createElement('div')\n// hl.className = '_hl'\n// newP.appendChild(hl)\n// newP.appendChild(pre)\n// let nums = codeHlNumArr[index]\n// let max = Math.max.apply(null, nums)\n// let inner = ''\n// for (let i = 0; i <= max; i++) {\n// if (nums.indexOf(i) == -1) {\n// inner += '
'\n// } else {\n// inner += '
'\n// }\n// }\n// hl.innerHTML = inner\n// }\n// })\n//fix line-highlight\nwindow.dispatchEvent(new Event('resize'));}},{key:'_arrToNumber',value:function _arrToNumber(numArr){var arr=[];numArr.forEach(function(item){if(item.indexOf('-')!==-1){var tempArr=item.split('-');var begin=Number(tempArr[0]);var end=Number(tempArr[1]);for(var i=begin;i0)return false;}return true;}},{key:'render',value:function render(){if(!this.demo)return;return Omi.h('div',null,this.show&&Omi.h('iframe',{style:'height:'+(window.innerHeight-59)+'px',src:this.demo}),!this.show&&Omi.h('div',{'class':'switch code',onClick:this.onShow},Omi.h('img',{src:__webpack_require__(32)})),this.show&&Omi.h('div',{'class':'switch close',onClick:this.onClose},Omi.h('img',{src:__webpack_require__(33)})));}}]);return _class2;}(_omi.WeElement));\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n var result = __webpack_require__(31);\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(1)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \"iframe{\\n width: 750px;\\n height: 100%;\\n top: 60px;\\n right: 0;\\n position: fixed;\\n border: none;\\n z-index: 9999;\\n border-left: 2px solid #24292E; \\n}\\n\\n.switch{\\n width: 40px;\\n height: 40px;\\n background-color: #AA0000;\\n border-radius: 50%;\\n position: fixed;\\n right: 50px;\\n bottom: 50px;\\n cursor: pointer;\\n text-align: center;\\n z-index: 10000;\\n}\\n\\n.switch img{\\n width: 30px;\\n height: 30px;\\n margin-top:5px; \\n}\\n\\n.switch.close img{\\n margin-top:10px; \\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n@media only screen and (max-width: 768px) {\\n iframe{\\n width: 100%;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC\"\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==\"\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function defineProperties(target,props){for(var i=0;i768};var id=0;this.map={};this.positionMap={};_config2.default.menus[this.data.lan].forEach(function(menu,index){menu.list.forEach(function(item,subIndex){item.id=id++;item.position=[index,subIndex];_this.map[item.id]=item;item.index=index;item.subIndex=subIndex;_this.positionMap[index+'-'+subIndex]=item;});});this.preIndex=0;this.preSubIndex=0;}_createClass(Store,[{key:'getNext',value:function getNext(){var item=this.positionMap[this.data.position.join('-')];if(item){return this.map[item.id+1];}}},{key:'getPre',value:function getPre(){var item=this.positionMap[this.data.position.join('-')];if(item){return this.map[item.id-1];}}},{key:'init',value:function init(){var _this2=this;this.remarkable=new Remarkable({html:true});if(location.hash===\"\"){this.data.position=[0,0];this.getMarkDown(this.data.menus[this.data.lan][0].list[0].md,this.data.lan,function(m){_this2.data.html=_this2.remarkable.render(m);});}this.initRouter();}},{key:'toogleSidebar',value:function toogleSidebar(){this.data.sideBarShow=!this.data.sideBarShow;}},{key:'hideSidebar',value:function hideSidebar(){this.data.sideBarShow=false;}},{key:'initRouter',value:function initRouter(){var _this3=this;var menus=this.data.menus[this.data.lan];menus.forEach(function(item){item.list.forEach(function(subItem){route('/'+subItem.md,function(evt){menus[_this3.preIndex].list[_this3.preSubIndex].selected=false;_this3.preIndex=evt.query.index;_this3.preSubIndex=evt.query.subIndex;_this3.data.position=[Number(evt.query.index),Number(evt.query.subIndex)];_this3.data.sideBarShow=false;_this3.getMarkDown(subItem.md,_this3.data.lan,function(m){_this3.data.html=_this3.remarkable.render(m);document.body.scrollTop=0;document.documentElement.scrollTop=0;});});});});}},{key:'getMarkDown',value:function getMarkDown(name,lan,callback){__webpack_require__(38)(\"./\"+lan+'/'+name+'.md').then(function(m){callback(m);});}}]);return Store;}();exports.default=Store;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(exports,\"__esModule\",{value:true});var config={menus:{'zh-cn':[{title:'Omi',list:[{name:'简介',md:'introduction'},{name:'安装',md:'installation'}]},{title:'基础概念',list:[{name:'JSX',md:'jsx'},{name:'Props',md:'props'},{name:'事件',md:'event'},{name:'生命周期',md:'lifecycle'},{name:'Ref',md:'ref'},{name:'Class',md:'class'},{name:'Store',md:'store'},{name:'CSS',md:'css'}]},{title:'其他',list:[{name:'生态与例子',md:'other'},{name:'Mps',md:'mps'},{name:'Omip 多端开发',md:'omip'},{name:'服务端渲染',md:'ssr'},{name:'路由',md:'router'},{name:'Omiu',md:'omiu'}]}],en:[{title:'Omi',list:[{name:'Introduction',md:'introduction'},{name:'Installation',md:'installation'}]},{title:'Base',list:[{name:'JSX',md:'jsx'},{name:'Props',md:'props'},{name:'Event',md:'event'},{name:'Lifecycle',md:'lifecycle'},{name:'Ref',md:'ref'},{name:'Class',md:'class'},{name:'Store',md:'store'},{name:'CSS',md:'css'}]},{title:'Other',list:[{name:'Ecosystem and examples',md:'other'},{name:'Server-Side Rendering',md:'ssr'},{name:'Router',md:'router'},{name:'Omiu',md:'omiu'}]}]}};exports.default=config;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol===\"function\"&&obj.constructor===Symbol&&obj!==Symbol.prototype?\"symbol\":typeof obj;};exports.default=route;/*!\n * omi-router v2.0.9 by dntzhang\n * Router for Omi.\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n */var p2r=__webpack_require__(37);var mapping={};var root=getGlobal();root.route=route;root.route.params=null;root.historyLength=0;root.route.to=function(path,data){root.route._routeByTo=true;root.route.data=data;if(path[0]==='#'){location.hash=path;}else{location.hash='#'+path;}};window.addEventListener('hashchange',change);function change(evt){var byNative=false;//need to fix a line by omi-link\nif(window.history.length===root.historyLength&&!root.route._routeByTo){//keep alive mode\nbyNative=true;}root.route._routeByTo=false;root.historyLength=window.history.length;var prevent=false;if(evt.type==='hashchange'&&root.route.before){prevent=root.route.before(evt)===false;}if(prevent)return;var path=window.location.hash.replace('#','');if(path==='')path='/';var notFound=true;Object.keys(mapping).every(function(key){var toArr=path.split('?')[0].match(mapping[key].reg);if(toArr){var pathArr=key.match(mapping[key].reg);root.route.params=getParams(toArr,pathArr);root.route.query=getUrlParams(path);mapping[key].callback({params:root.route.params,query:getUrlParams(path),data:root.route.data,byNative:byNative});root.route.data=null;notFound=false;return false;}return true;});if(notFound){mapping['*']&&mapping['*'].callback({byNative:byNative});}if(evt.type==='hashchange'&&root.route.after){root.route.after(evt);}}document.addEventListener('DOMContentLoaded',change);function getParams(toArr,pathArr){var params={};toArr.forEach(function(item,index){if(index>0){params[pathArr[index].replace(':','')]=item;}});return params;}function route(path,callback){mapping[path]={callback:callback,reg:p2r(path)};}function getGlobal(){if((typeof global==='undefined'?'undefined':_typeof(global))!=='object'||!global||global.Math!==Math||global.Array!==Array){return self||window||global||function(){return this;}();}return global;}function getUrlParams(url){url=url.replace(/#.*$/,'');var queryArray=url.split(/[?&]/).slice(1);var i,args={};for(i=0;i [\"test\", \"\\d+\", undefined, \"?\"]\n// \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n'(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'].join('|'),'g');/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */function parse(str,options){var tokens=[];var key=0;var index=0;var path='';var defaultDelimiter=options&&options.delimiter||DEFAULT_DELIMITER;var whitelist=options&&options.whitelist||undefined;var pathEscaped=false;var res;while((res=PATH_REGEXP.exec(str))!==null){var m=res[0];var escaped=res[1];var offset=res.index;path+=str.slice(index,offset);index=offset+m.length;// Ignore already escaped sequences.\nif(escaped){path+=escaped[1];pathEscaped=true;continue;}var prev='';var name=res[2];var capture=res[3];var group=res[4];var modifier=res[5];if(!pathEscaped&&path.length){var k=path.length-1;var c=path[k];var matches=whitelist?whitelist.indexOf(c)>-1:true;if(matches){prev=c;path=path.slice(0,k);}}// Push the current path onto the tokens.\nif(path){tokens.push(path);path='';pathEscaped=false;}var repeat=modifier==='+'||modifier==='*';var optional=modifier==='?'||modifier==='*';var pattern=capture||group;var delimiter=prev||defaultDelimiter;tokens.push({name:name||key++,prefix:prev,delimiter:delimiter,optional:optional,repeat:repeat,pattern:pattern?escapeGroup(pattern):'[^'+escapeString(delimiter===defaultDelimiter?delimiter:delimiter+defaultDelimiter)+']+?'});}// Push any remaining characters.\nif(path||indexHello!`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */\nfunction h(nodeName, attributes) {\n var children = EMPTY_CHILDREN,\n lastSimple,\n child,\n simple,\n i;\n for (i = arguments.length; i-- > 2;) {\n stack.push(arguments[i]);\n }\n if (attributes && attributes.children != null) {\n if (!stack.length) stack.push(attributes.children);\n delete attributes.children;\n }\n while (stack.length) {\n if ((child = stack.pop()) && child.pop !== undefined) {\n for (i = child.length; i--;) {\n stack.push(child[i]);\n }\n } else {\n if (typeof child === 'boolean') child = null;\n\n if (simple = typeof nodeName !== 'function') {\n if (child == null) child = '';else if (typeof child === 'number') child = String(child);else if (typeof child !== 'string') simple = false;\n }\n\n if (simple && lastSimple) {\n children[children.length - 1] += child;\n } else if (children === EMPTY_CHILDREN) {\n children = [child];\n } else {\n children.push(child);\n }\n\n lastSimple = simple;\n }\n }\n\n var p = new VNode();\n p.nodeName = nodeName;\n p.children = children;\n p.attributes = attributes == null ? undefined : attributes;\n p.key = attributes == null ? undefined : attributes.key;\n\n // if a \"vnode hook\" is defined, pass every created VNode to it\n if (options.vnode !== undefined) options.vnode(p);\n\n return p;\n}\n\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction assign(target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n}\n\nif (typeof Element !== 'undefined' && !Element.prototype.addEventListener) {\n var runListeners = function runListeners(oEvent) {\n if (!oEvent) {\n oEvent = window.event;\n }\n for (var iLstId = 0, iElId = 0, oEvtListeners = oListeners[oEvent.type]; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n for (iLstId; iLstId < oEvtListeners.aEvts[iElId].length; iLstId++) {\n oEvtListeners.aEvts[iElId][iLstId].call(this, oEvent);\n }\n break;\n }\n }\n };\n\n var oListeners = {};\n\n Element.prototype.addEventListener = function (sEventType, fListener /*, useCapture (will be ignored!) */) {\n if (oListeners.hasOwnProperty(sEventType)) {\n var oEvtListeners = oListeners[sEventType];\n for (var nElIdx = -1, iElId = 0; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n nElIdx = iElId;break;\n }\n }\n if (nElIdx === -1) {\n oEvtListeners.aEls.push(this);\n oEvtListeners.aEvts.push([fListener]);\n this[\"on\" + sEventType] = runListeners;\n } else {\n var aElListeners = oEvtListeners.aEvts[nElIdx];\n if (this[\"on\" + sEventType] !== runListeners) {\n aElListeners.splice(0);\n this[\"on\" + sEventType] = runListeners;\n }\n for (var iLstId = 0; iLstId < aElListeners.length; iLstId++) {\n if (aElListeners[iLstId] === fListener) {\n return;\n }\n }\n aElListeners.push(fListener);\n }\n } else {\n oListeners[sEventType] = { aEls: [this], aEvts: [[fListener]] };\n this[\"on\" + sEventType] = runListeners;\n }\n };\n Element.prototype.removeEventListener = function (sEventType, fListener /*, useCapture (will be ignored!) */) {\n if (!oListeners.hasOwnProperty(sEventType)) {\n return;\n }\n var oEvtListeners = oListeners[sEventType];\n for (var nElIdx = -1, iElId = 0; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n nElIdx = iElId;break;\n }\n }\n if (nElIdx === -1) {\n return;\n }\n for (var iLstId = 0, aElListeners = oEvtListeners.aEvts[nElIdx]; iLstId < aElListeners.length; iLstId++) {\n if (aElListeners[iLstId] === fListener) {\n aElListeners.splice(iLstId, 1);\n }\n }\n };\n}\n\nif (typeof Object.create !== 'function') {\n Object.create = function (proto, propertiesObject) {\n if (typeof proto !== 'object' && typeof proto !== 'function') {\n throw new TypeError('Object prototype may only be an Object: ' + proto);\n } else if (proto === null) {\n throw new Error(\"This browser's implementation of Object.create is a shim and doesn't support 'null' as the first argument.\");\n }\n\n // if (typeof propertiesObject != 'undefined') {\n // throw new Error(\"This browser's implementation of Object.create is a shim and doesn't support a second argument.\");\n // }\n\n function F() {}\n F.prototype = proto;\n\n return new F();\n };\n}\n\nif (!String.prototype.trim) {\n String.prototype.trim = function () {\n return this.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n };\n}\n\n/**\n * Copy all properties from `props` onto `obj`.\n * @param {Object} obj\t\tObject onto which properties should be copied.\n * @param {Object} props\tObject from which to copy properties.\n * @returns obj\n * @private\n */\nfunction extend(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\n/** Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} [ref=null]\n * @param {any} [value]\n */\nfunction applyRef(ref, value) {\n if (ref) {\n if (typeof ref == 'function') ref(value);else ref.current = value;\n }\n}\n\n/**\n * Call a function asynchronously, as soon as possible. Makes\n * use of HTML Promise to schedule the callback if available,\n * otherwise falling back to `setTimeout` (mainly for IE<11).\n *\n * @param {Function} callback\n */\n\nvar usePromise = typeof Promise == 'function';\n\n// for native\nif (typeof document !== 'object' && typeof global !== 'undefined' && global.__config__) {\n if (global.__config__.platform === 'android') {\n usePromise = true;\n } else {\n var systemVersion = global.__config__.systemVersion && global.__config__.systemVersion.split('.')[0] || 0;\n if (systemVersion > 8) {\n usePromise = true;\n }\n }\n}\n\nvar defer = usePromise ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\nfunction isArray(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n}\n\nfunction nProps(props) {\n if (!props || isArray(props)) return {};\n var result = {};\n Object.keys(props).forEach(function (key) {\n result[key] = props[key].value;\n });\n return result;\n}\n\nfunction getUse(data, paths) {\n var obj = [];\n paths.forEach(function (path, index) {\n var isPath = typeof path === 'string';\n if (isPath) {\n obj[index] = getTargetByPath(data, path);\n } else {\n var key = Object.keys(path)[0];\n var value = path[key];\n if (typeof value === 'string') {\n obj[index] = getTargetByPath(data, value);\n } else {\n var tempPath = value[0];\n if (typeof tempPath === 'string') {\n var tempVal = getTargetByPath(data, tempPath);\n obj[index] = value[1] ? value[1](tempVal) : tempVal;\n } else {\n var args = [];\n tempPath.forEach(function (path) {\n args.push(getTargetByPath(data, path));\n });\n obj[index] = value[1].apply(null, args);\n }\n }\n obj[key] = obj[index];\n }\n });\n return obj;\n}\n\nfunction getTargetByPath(origin, path) {\n var arr = path.replace(/]/g, '').replace(/\\[/g, '.').split('.');\n var current = origin;\n for (var i = 0, len = arr.length; i < len; i++) {\n current = current[arr[i]];\n }\n return current;\n}\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {VNode} vnode\t\tThe virtual DOM element to clone\n * @param {Object} props\tAttributes/props to add when cloning\n * @param {VNode} rest\t\tAny additional arguments will be used as replacement children.\n */\nfunction cloneElement(vnode, props) {\n return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\n// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL$1 = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\n/** Managed queue of dirty components to be re-rendered */\n\nvar items = [];\n\nfunction enqueueRender(component) {\n if (items.push(component) == 1) {\n(options.debounceRendering || defer)(rerender);\n }\n}\n\n/** Rerender all enqueued dirty components */\nfunction rerender() {\n var p;\n while (p = items.pop()) {\n renderComponent(p);\n }\n}\n\nvar mapping = options.mapping;\n/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hydrating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */\nfunction isSameNodeType(node, vnode, hydrating) {\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n return node.splitText !== undefined;\n }\n if (typeof vnode.nodeName === 'string') {\n var ctor = mapping[vnode.nodeName];\n if (ctor) {\n return hydrating || node._componentConstructor === ctor;\n }\n return !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n }\n return hydrating || node._componentConstructor === vnode.nodeName;\n}\n\n/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */\nfunction isNamedNode(node, nodeName) {\n return node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\n}\n\n/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n *\n * @param {VNode} vnode\n * @returns {Object} props\n */\nfunction getNodeProps(vnode) {\n var props = extend({}, vnode.attributes);\n props.children = vnode.children;\n\n var defaultProps = vnode.nodeName.defaultProps;\n if (defaultProps !== undefined) {\n for (var i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i];\n }\n }\n }\n\n return props;\n}\n\n/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */\nfunction createNode(nodeName, isSvg) {\n var node = isSvg ? options.doc.createElementNS('http://www.w3.org/2000/svg', nodeName) : options.doc.createElement(nodeName);\n node.normalizedNodeName = nodeName;\n return node;\n}\n\nfunction parseCSSText(cssText) {\n var cssTxt = cssText.replace(/\\/\\*(.|\\s)*?\\*\\//g, ' ').replace(/\\s+/g, ' ');\n var style = {},\n _ref = cssTxt.match(/ ?(.*?) ?{([^}]*)}/) || [a, b, cssTxt],\n a = _ref[0],\n b = _ref[1],\n rule = _ref[2];\n\n var cssToJs = function cssToJs(s) {\n return s.replace(/\\W+\\w/g, function (match) {\n return match.slice(-1).toUpperCase();\n });\n };\n var properties = rule.split(';').map(function (o) {\n return o.split(':').map(function (x) {\n return x && x.trim();\n });\n });\n for (var i = properties, i = Array.isArray(i), i = 0, i = i ? i : i[Symbol.iterator]();;) {\n var _ref3;\n\n if (i) {\n if (i >= i.length) break;\n _ref3 = i[i++];\n } else {\n i = i.next();\n if (i.done) break;\n _ref3 = i.value;\n }\n\n var _ref2 = _ref3;\n var property = _ref2[0];\n var value = _ref2[1];\n style[cssToJs(property)] = value;\n }return style;\n}\n\n/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */\nfunction removeNode(node) {\n var parentNode = node.parentNode;\n if (parentNode) parentNode.removeChild(node);\n}\n\n/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */\nfunction setAccessor(node, name, old, value, isSvg) {\n if (name === 'className') name = 'class';\n\n if (name === 'key') {\n // ignore\n } else if (name === 'ref') {\n applyRef(old, null);\n applyRef(value, node);\n } else if (name === 'class' && !isSvg) {\n node.className = value || '';\n } else if (name === 'style') {\n if (options.isWeb) {\n if (!value || typeof value === 'string' || typeof old === 'string') {\n node.style.cssText = value || '';\n }\n if (value && typeof value === 'object') {\n if (typeof old !== 'string') {\n for (var i in old) {\n if (!(i in value)) node.style[i] = '';\n }\n }\n for (var i in value) {\n node.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL$1.test(i) === false ? value[i] + 'px' : value[i];\n }\n }\n } else {\n var oldJson = old,\n currentJson = value;\n if (typeof old === 'string') {\n oldJson = parseCSSText(old);\n }\n if (typeof value == 'string') {\n currentJson = parseCSSText(value);\n }\n\n var result = {},\n changed = false;\n\n if (oldJson) {\n for (var key in oldJson) {\n if (typeof currentJson == 'object' && !(key in currentJson)) {\n result[key] = '';\n changed = true;\n }\n }\n\n for (var ckey in currentJson) {\n if (currentJson[ckey] !== oldJson[ckey]) {\n result[ckey] = currentJson[ckey];\n changed = true;\n }\n }\n\n if (changed) {\n node.setStyles(result);\n }\n } else {\n node.setStyles(currentJson);\n }\n }\n } else if (name === 'dangerouslySetInnerHTML') {\n if (value) node.innerHTML = value.__html || '';\n } else if (name[0] == 'o' && name[1] == 'n') {\n var useCapture = name !== (name = name.replace(/Capture$/, ''));\n name = name.toLowerCase().substring(2);\n if (value) {\n if (!old) {\n node.addEventListener(name, eventProxy, useCapture);\n if (name == 'tap') {\n node.addEventListener('touchstart', touchStart, useCapture);\n node.addEventListener('touchend', touchEnd, useCapture);\n }\n }\n } else {\n node.removeEventListener(name, eventProxy, useCapture);\n if (name == 'tap') {\n node.removeEventListener('touchstart', touchStart, useCapture);\n node.removeEventListener('touchend', touchEnd, useCapture);\n }\n }\n(node._listeners || (node._listeners = {}))[name] = value;\n } else if (name !== 'list' && name !== 'type' && !isSvg && name in node) {\n setProperty(node, name, value == null ? '' : value);\n if (value == null || value === false) node.removeAttribute(name);\n } else {\n var ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\n if (value == null || value === false) {\n if (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n } else if (typeof value !== 'function') {\n if (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n }\n }\n}\n\n/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */\nfunction setProperty(node, name, value) {\n try {\n node[name] = value;\n } catch (e) {}\n}\n\n/** Proxy an event to hooked event handlers\n *\t@private\n */\nfunction eventProxy(e) {\n return this._listeners[e.type](options.event && options.event(e) || e);\n}\n\nfunction touchStart(e) {\n this.___touchX = e.touches[0].pageX;\n this.___touchY = e.touches[0].pageY;\n this.___scrollTop = document.body.scrollTop;\n}\n\nfunction touchEnd(e) {\n if (Math.abs(e.changedTouches[0].pageX - this.___touchX) < 30 && Math.abs(e.changedTouches[0].pageY - this.___touchY) < 30 && Math.abs(document.body.scrollTop - this.___scrollTop) < 30) {\n this.dispatchEvent(new CustomEvent('tap', { detail: e }));\n }\n}\n\nvar styleId = 0;\n\nfunction getCtorName(ctor) {\n for (var i = 0, len = options.styleCache.length; i < len; i++) {\n var item = options.styleCache[i];\n\n if (item.ctor === ctor) {\n return item.attrName;\n }\n }\n\n var attrName = 's' + styleId;\n options.styleCache.push({ ctor: ctor, attrName: attrName });\n styleId++;\n\n return attrName;\n}\n\n// many thanks to https://github.com/thomaspark/scoper/\nfunction scoper(css, prefix) {\n prefix = '[' + prefix.toLowerCase() + ']';\n // https://www.w3.org/TR/css-syntax-3/#lexical\n css = css.replace(/\\/\\*[^*]*\\*+([^/][^*]*\\*+)*\\//g, '');\n // eslint-disable-next-line\n var re = new RegExp('([^\\r\\n,{}:]+)(:[^\\r\\n,{}]+)?(,(?=[^{}]*{)|\\s*{)', 'g');\n /**\n * Example:\n *\n * .classname::pesudo { color:red }\n *\n * g1 is normal selector `.classname`\n * g2 is pesudo class or pesudo element\n * g3 is the suffix\n */\n css = css.replace(re, function (g0, g1, g2, g3) {\n if (typeof g2 === 'undefined') {\n g2 = '';\n }\n\n /* eslint-ignore-next-line */\n if (g1.match(/^\\s*(@media|\\d+%?|@-webkit-keyframes|@keyframes|to|from|@font-face)/)) {\n return g1 + g2 + g3;\n }\n\n var appendClass = g1.replace(/(\\s*)$/, '') + prefix + g2;\n //let prependClass = prefix + ' ' + g1.trim() + g2;\n\n return appendClass + g3;\n //return appendClass + ',' + prependClass + g3;\n });\n\n return css;\n}\n\nfunction addStyle(cssText, id) {\n id = id.toLowerCase();\n var ele = document.getElementById(id);\n var head = document.getElementsByTagName('head')[0];\n if (ele && ele.parentNode === head) {\n head.removeChild(ele);\n }\n\n var someThingStyles = document.createElement('style');\n head.appendChild(someThingStyles);\n someThingStyles.setAttribute('type', 'text/css');\n someThingStyles.setAttribute('id', id);\n if (window.ActiveXObject) {\n someThingStyles.styleSheet.cssText = cssText;\n } else {\n someThingStyles.textContent = cssText;\n }\n}\n\nfunction addStyleWithoutId(cssText) {\n var head = document.getElementsByTagName('head')[0];\n var someThingStyles = document.createElement('style');\n head.appendChild(someThingStyles);\n someThingStyles.setAttribute('type', 'text/css');\n\n if (window.ActiveXObject) {\n someThingStyles.styleSheet.cssText = cssText;\n } else {\n someThingStyles.textContent = cssText;\n }\n}\n\nfunction addScopedAttrStatic(vdom, attr) {\n if (options.scopedStyle) {\n scopeVdom(attr, vdom);\n }\n}\n\nfunction addStyleToHead(style, attr) {\n if (options.scopedStyle) {\n if (!options.staticStyleMapping[attr]) {\n addStyle(scoper(style, attr), attr);\n options.staticStyleMapping[attr] = true;\n }\n } else if (!options.staticStyleMapping[attr]) {\n addStyleWithoutId(style);\n options.staticStyleMapping[attr] = true;\n }\n}\n\nfunction scopeVdom(attr, vdom) {\n if (typeof vdom === 'object') {\n vdom.attributes = vdom.attributes || {};\n vdom.attributes[attr] = '';\n vdom.css = vdom.css || {};\n vdom.css[attr] = '';\n vdom.children.forEach(function (child) {\n return scopeVdom(attr, child);\n });\n }\n}\n\nfunction scopeHost(vdom, css) {\n if (typeof vdom === 'object' && css) {\n vdom.attributes = vdom.attributes || {};\n for (var key in css) {\n vdom.attributes[key] = '';\n }\n }\n}\n\n/** Queue of components that have been mounted and are awaiting componentDidMount */\nvar mounts = [];\n\n/** Diff recursion count, used to track the end of the diff cycle. */\nvar diffLevel = 0;\n\n/** Global flag indicating if the diff is currently within an SVG */\nvar isSvgMode = false;\n\n/** Global flag indicating if the diff is performing hydration */\nvar hydrating = false;\n\n/** Invoke queued componentDidMount lifecycle methods */\nfunction flushMounts() {\n var c;\n while (c = mounts.pop()) {\n if (options.afterMount) options.afterMount(c);\n if (c.installed) c.installed();\n if (c.constructor.css || c.css) {\n addStyleToHead(c.constructor.css ? c.constructor.css : typeof c.css === 'function' ? c.css() : c.css, '_s' + getCtorName(c.constructor));\n }\n }\n}\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n *\t@param {Element} [dom=null]\t\tA DOM node to mutate into the shape of the `vnode`\n *\t@param {VNode} vnode\t\t\tA VNode (with descendants forming a tree) representing the desired DOM structure\n *\t@returns {Element} dom\t\t\tThe created/mutated element\n *\t@private\n */\nfunction diff(dom, vnode, context, mountAll, parent, componentRoot) {\n // diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n if (!diffLevel++) {\n // when first starting the diff, check if we're diffing an SVG or within an SVG\n isSvgMode = parent != null && parent.ownerSVGElement !== undefined;\n\n // hydration is indicated by the existing element to be diffed not having a prop cache\n hydrating = dom != null && !('__omiattr_' in dom);\n }\n var ret;\n\n if (isArray(vnode)) {\n vnode = {\n nodeName: 'span',\n children: vnode\n };\n }\n\n ret = idiff(dom, vnode, context, mountAll, componentRoot);\n // append the element if its a new parent\n if (parent && ret.parentNode !== parent) parent.appendChild(ret);\n\n // diffLevel being reduced to 0 means we're exiting the diff\n if (! --diffLevel) {\n hydrating = false;\n // invoke queued componentDidMount lifecycle methods\n if (!componentRoot) flushMounts();\n }\n\n return ret;\n}\n\n/** Internals of `diff()`, separated to allow bypassing diffLevel / mount flushing. */\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n var out = dom,\n prevSvgMode = isSvgMode;\n\n // empty values (null, undefined, booleans) render as empty Text nodes\n if (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n // If the VNode represents a Component, perform a component diff:\n var vnodeName = vnode.nodeName;\n if (options.mapping[vnodeName]) {\n vnode.nodeName = options.mapping[vnodeName];\n return buildComponentFromVNode(dom, vnode, context, mountAll);\n }\n if (typeof vnodeName == 'function') {\n return buildComponentFromVNode(dom, vnode, context, mountAll);\n }\n\n // Fast case: Strings & Numbers create/update Text nodes.\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n // update if it's already a Text node:\n if (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\n /* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\n if (dom.nodeValue != vnode) {\n dom.nodeValue = vnode;\n }\n } else {\n // it wasn't a Text node: replace it with one and recycle the old Element\n out = document.createTextNode(vnode);\n if (dom) {\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n recollectNodeTree(dom, true);\n }\n }\n\n //ie8 error\n try {\n out['__omiattr_'] = true;\n } catch (e) {}\n\n return out;\n }\n\n // Tracks entering and exiting SVG namespace when descending through the tree.\n isSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n // If there's no existing element or it's the wrong type, create a new one:\n vnodeName = String(vnodeName);\n if (!dom || !isNamedNode(dom, vnodeName)) {\n out = createNode(vnodeName, isSvgMode);\n\n if (dom) {\n // move children into the replacement node\n while (dom.firstChild) {\n out.appendChild(dom.firstChild);\n } // if the previous Element was mounted into the DOM, replace it inline\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n // recycle the old element (skips non-Element node types)\n recollectNodeTree(dom, true);\n }\n }\n\n var fc = out.firstChild,\n props = out['__omiattr_'],\n vchildren = vnode.children;\n\n if (props == null) {\n props = out['__omiattr_'] = {};\n for (var a = out.attributes, i = a.length; i--;) {\n props[a[i].name] = a[i].value;\n }\n }\n\n // Optimization: fast-path for elements containing a single TextNode:\n if (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\n if (fc.nodeValue != vchildren[0]) {\n fc.nodeValue = vchildren[0];\n }\n }\n // otherwise, if there are existing or new children, diff them:\n else if (vchildren && vchildren.length || fc != null) {\n innerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML != null);\n }\n\n // Apply attributes/props from VNode to the DOM Element:\n diffAttributes(out, vnode.attributes, props);\n\n // restore previous SVG mode: (in case we're exiting an SVG namespace)\n isSvgMode = prevSvgMode;\n\n return out;\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n *\t@param {Element} dom\t\t\tElement whose children should be compared & mutated\n *\t@param {Array} vchildren\t\tArray of VNodes to compare to `dom.childNodes`\n *\t@param {Object} context\t\t\tImplicitly descendant context object (from most recent `getChildContext()`)\n *\t@param {Boolean} mountAll\n *\t@param {Boolean} isHydrating\tIf `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n var originalChildren = dom.childNodes,\n children = [],\n keyed = {},\n keyedLen = 0,\n min = 0,\n len = originalChildren.length,\n childrenLen = 0,\n vlen = vchildren ? vchildren.length : 0,\n j,\n c,\n f,\n vchild,\n child;\n\n // Build up a map of keyed children and an Array of unkeyed children:\n if (len !== 0) {\n for (var i = 0; i < len; i++) {\n var _child = originalChildren[i],\n props = _child['__omiattr_'],\n key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n if (key != null) {\n keyedLen++;\n keyed[key] = _child;\n } else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n children[childrenLen++] = _child;\n }\n }\n }\n\n if (vlen !== 0) {\n for (var i = 0; i < vlen; i++) {\n vchild = vchildren[i];\n child = null;\n\n // attempt to find a node based on key matching\n var key = vchild.key;\n if (key != null) {\n if (keyedLen && keyed[key] !== undefined) {\n child = keyed[key];\n keyed[key] = undefined;\n keyedLen--;\n }\n }\n // attempt to pluck a node of the same type from the existing children\n else if (!child && min < childrenLen) {\n for (j = min; j < childrenLen; j++) {\n if (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\n child = c;\n children[j] = undefined;\n if (j === childrenLen - 1) childrenLen--;\n if (j === min) min++;\n break;\n }\n }\n }\n\n // morph the matched/found/created DOM child to match vchild (deep)\n child = idiff(child, vchild, context, mountAll);\n\n f = originalChildren[i];\n if (child && child !== dom && child !== f) {\n if (f == null) {\n dom.appendChild(child);\n } else if (child === f.nextSibling) {\n removeNode(f);\n } else {\n dom.insertBefore(child, f);\n }\n }\n }\n }\n\n // remove unused keyed children:\n if (keyedLen) {\n for (var i in keyed) {\n if (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n }\n }\n\n // remove orphaned unkeyed children:\n while (min <= childrenLen) {\n if ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n }\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n *\t@param {Node} node\t\t\t\t\t\tDOM node to start unmount/removal from\n *\t@param {Boolean} [unmountOnly=false]\tIf `true`, only triggers unmount lifecycle, skips removal\n */\nfunction recollectNodeTree(node, unmountOnly) {\n var component = node._component;\n if (component) {\n // if node is owned by a Component, unmount that component (ends up recursing back here)\n unmountComponent(component);\n } else {\n // If the node's VNode had a ref function, invoke it with null here.\n // (this is part of the React spec, and smart for unsetting references)\n if (node['__omiattr_'] != null) applyRef(node['__omiattr_'].ref, null);\n\n if (unmountOnly === false || node['__omiattr_'] == null) {\n removeNode(node);\n }\n\n removeChildren(node);\n }\n}\n\n/** Recollect/unmount all children.\n *\t- we use .lastChild here because it causes less reflow than .firstChild\n *\t- it's also cheaper than accessing the .childNodes Live NodeList\n */\nfunction removeChildren(node) {\n node = node.lastChild;\n while (node) {\n var next = node.previousSibling;\n recollectNodeTree(node, true);\n node = next;\n }\n}\n\n/** Apply differences in attributes from a VNode to the given DOM Element.\n *\t@param {Element} dom\t\tElement with attributes to diff `attrs` against\n *\t@param {Object} attrs\t\tThe desired end-state key-value attribute pairs\n *\t@param {Object} old\t\t\tCurrent/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old) {\n var name;\n\n // remove attributes no longer present on the vnode by setting them to undefined\n for (name in old) {\n if (!(attrs && attrs[name] != null) && old[name] != null) {\n setAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);\n }\n }\n\n // add new & update changed attributes\n for (name in attrs) {\n if (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n setAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n }\n }\n}\n\n/** Retains a pool of Components for re-use, keyed on component name.\n *\tNote: since component names are not unique or even necessarily available, these are primarily a form of sharding.\n *\t@private\n */\nvar components = {};\n\n/** Reclaim a component for later re-use by the recycler. */\nfunction collectComponent(component) {\n var name = component.constructor.name;(components[name] || (components[name] = [])).push(component);\n}\n\n/** Create a component. Normalizes differences between PFC's and classful Components. */\nfunction createComponent(Ctor, props, context, vnode) {\n var list = components[Ctor.name],\n inst;\n\n if (Ctor.prototype && Ctor.prototype.render) {\n inst = new Ctor(props, context);\n Component.call(inst, props, context);\n } else {\n inst = new Component(props, context);\n inst.constructor = Ctor;\n inst.render = doRender;\n }\n vnode && (inst.scopedCssAttr = vnode.css);\n\n if (inst.constructor.use && inst.store && inst.store.data) {\n inst.store.instances.push(inst);\n inst.use = getUse(inst.store.data, inst.constructor.use);\n }\n\n if (list) {\n for (var i = list.length; i--;) {\n if (list[i].constructor === Ctor) {\n inst.nextBase = list[i].nextBase;\n list.splice(i, 1);\n break;\n }\n }\n }\n return inst;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, data, context) {\n return this.constructor(props, context);\n}\n\n/* obaa 1.0.0\n * By dntzhang\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n */\n\nvar obaa = function obaa(target, arr, callback) {\n var _observe = function _observe(target, arr, callback) {\n if (!target.$observer) target.$observer = this;\n var $observer = target.$observer;\n var eventPropArr = [];\n if (obaa.isArray(target)) {\n if (target.length === 0) {\n target.$observeProps = {};\n target.$observeProps.$observerPath = '#';\n }\n $observer.mock(target);\n }\n for (var prop in target) {\n if (target.hasOwnProperty(prop)) {\n if (callback) {\n if (obaa.isArray(arr) && obaa.isInArray(arr, prop)) {\n eventPropArr.push(prop);\n $observer.watch(target, prop);\n } else if (obaa.isString(arr) && prop == arr) {\n eventPropArr.push(prop);\n $observer.watch(target, prop);\n }\n } else {\n eventPropArr.push(prop);\n $observer.watch(target, prop);\n }\n }\n }\n $observer.target = target;\n if (!$observer.propertyChangedHandler) $observer.propertyChangedHandler = [];\n var propChanged = callback ? callback : arr;\n $observer.propertyChangedHandler.push({\n all: !callback,\n propChanged: propChanged,\n eventPropArr: eventPropArr\n });\n };\n _observe.prototype = {\n onPropertyChanged: function onPropertyChanged(prop, value, oldValue, target, path) {\n if (value !== oldValue && this.propertyChangedHandler) {\n var rootName = obaa._getRootName(prop, path);\n for (var i = 0, len = this.propertyChangedHandler.length; i < len; i++) {\n var handler = this.propertyChangedHandler[i];\n if (handler.all || obaa.isInArray(handler.eventPropArr, rootName) || rootName.indexOf('Array-') === 0) {\n handler.propChanged.call(this.target, prop, value, oldValue, path);\n }\n }\n }\n if (prop.indexOf('Array-') !== 0 && typeof value === 'object') {\n this.watch(target, prop, target.$observeProps.$observerPath);\n }\n },\n mock: function mock(target) {\n var self = this;\n obaa.methods.forEach(function (item) {\n target[item] = function () {\n var old = Array.prototype.slice.call(this, 0);\n var result = Array.prototype[item].apply(this, Array.prototype.slice.call(arguments));\n if (new RegExp('\\\\b' + item + '\\\\b').test(obaa.triggerStr)) {\n for (var cprop in this) {\n if (this.hasOwnProperty(cprop) && !obaa.isFunction(this[cprop])) {\n self.watch(this, cprop, this.$observeProps.$observerPath);\n }\n }\n //todo\n self.onPropertyChanged('Array-' + item, this, old, this, this.$observeProps.$observerPath);\n }\n return result;\n };\n target['pure' + item.substring(0, 1).toUpperCase() + item.substring(1)] = function () {\n return Array.prototype[item].apply(this, Array.prototype.slice.call(arguments));\n };\n });\n },\n watch: function watch(target, prop, path) {\n if (prop === '$observeProps' || prop === '$observer') return;\n if (obaa.isFunction(target[prop])) return;\n if (!target.$observeProps) target.$observeProps = {};\n if (path !== undefined) {\n target.$observeProps.$observerPath = path;\n } else {\n target.$observeProps.$observerPath = '#';\n }\n var self = this;\n var currentValue = target.$observeProps[prop] = target[prop];\n Object.defineProperty(target, prop, {\n get: function get() {\n return this.$observeProps[prop];\n },\n set: function set(value) {\n var old = this.$observeProps[prop];\n this.$observeProps[prop] = value;\n self.onPropertyChanged(prop, value, old, this, target.$observeProps.$observerPath);\n }\n });\n if (typeof currentValue == 'object') {\n if (obaa.isArray(currentValue)) {\n this.mock(currentValue);\n if (currentValue.length === 0) {\n if (!currentValue.$observeProps) currentValue.$observeProps = {};\n if (path !== undefined) {\n currentValue.$observeProps.$observerPath = path;\n } else {\n currentValue.$observeProps.$observerPath = '#';\n }\n }\n }\n for (var cprop in currentValue) {\n if (currentValue.hasOwnProperty(cprop)) {\n this.watch(currentValue, cprop, target.$observeProps.$observerPath + '-' + prop);\n }\n }\n }\n }\n };\n return new _observe(target, arr, callback);\n};\n\nobaa.methods = ['concat', 'copyWithin', 'entries', 'every', 'fill', 'filter', 'find', 'findIndex', 'forEach', 'includes', 'indexOf', 'join', 'keys', 'lastIndexOf', 'map', 'pop', 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some', 'sort', 'splice', 'toLocaleString', 'toString', 'unshift', 'values', 'size'];\nobaa.triggerStr = ['concat', 'copyWithin', 'fill', 'pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift', 'size'].join(',');\n\nobaa.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n};\n\nobaa.isString = function (obj) {\n return typeof obj === 'string';\n};\n\nobaa.isInArray = function (arr, item) {\n for (var i = arr.length; --i > -1;) {\n if (item === arr[i]) return true;\n }\n return false;\n};\n\nobaa.isFunction = function (obj) {\n return Object.prototype.toString.call(obj) == '[object Function]';\n};\n\nobaa._getRootName = function (prop, path) {\n if (path === '#') {\n return prop;\n }\n return path.split('-')[1];\n};\n\nobaa.add = function (obj, prop) {\n var $observer = obj.$observer;\n $observer.watch(obj, prop);\n};\n\nobaa.set = function (obj, prop, value, exec) {\n if (!exec) {\n obj[prop] = value;\n }\n var $observer = obj.$observer;\n $observer.watch(obj, prop);\n if (exec) {\n obj[prop] = value;\n }\n};\n\nArray.prototype.size = function (length) {\n this.length = length;\n};\n\nvar callbacks = [];\nvar nextTickCallback = [];\n\nfunction fireTick() {\n callbacks.forEach(function (item) {\n item.fn.call(item.scope);\n });\n\n nextTickCallback.forEach(function (nextItem) {\n nextItem.fn.call(nextItem.scope);\n });\n nextTickCallback.length = 0;\n}\n\nfunction proxyUpdate(ele) {\n var timeout = null;\n obaa(ele.data, function () {\n if (ele._willUpdate) {\n return;\n }\n if (ele.constructor.mergeUpdate) {\n clearTimeout(timeout);\n\n timeout = setTimeout(function () {\n ele.update();\n fireTick();\n }, 0);\n } else {\n ele.update();\n fireTick();\n }\n });\n}\n\n/** Set a component's `props` (generally derived from JSX attributes).\n *\t@param {Object} props\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.renderSync=false]\tIf `true` and {@link options.syncComponentUpdates} is `true`, triggers synchronous rendering.\n *\t@param {boolean} [opts.render=true]\t\t\tIf `false`, no render will be triggered.\n */\nfunction setComponentProps(component, props, opts, context, mountAll) {\n if (component._disable) return;\n component._disable = true;\n\n if (component.__ref = props.ref) delete props.ref;\n if (component.__key = props.key) delete props.key;\n\n if (!component.base || mountAll) {\n if (component.beforeInstall) component.beforeInstall();\n if (component.install) component.install();\n if (component.constructor.observe) {\n proxyUpdate(component);\n }\n } else if (component.receiveProps) {\n component.receiveProps(props, component.data, component.props);\n }\n\n if (context && context !== component.context) {\n if (!component.prevContext) component.prevContext = component.context;\n component.context = context;\n }\n\n if (!component.prevProps) component.prevProps = component.props;\n component.props = props;\n\n component._disable = false;\n\n if (opts !== 0) {\n if (opts === 1 || options.syncComponentUpdates !== false || !component.base) {\n renderComponent(component, 1, mountAll);\n } else {\n enqueueRender(component);\n }\n }\n\n applyRef(component.__ref, component);\n}\n\nfunction shallowComparison(old, attrs) {\n var name;\n\n for (name in old) {\n if (attrs[name] == null && old[name] != null) {\n return true;\n }\n }\n\n if (old.children.length > 0 || attrs.children.length > 0) {\n return true;\n }\n\n for (name in attrs) {\n if (name != 'children') {\n var type = typeof attrs[name];\n if (type == 'function' || type == 'object') {\n return true;\n } else if (attrs[name] != old[name]) {\n return true;\n }\n }\n }\n}\n\n/** Render a Component, triggering necessary lifecycle events and taking High-Order Components into account.\n *\t@param {Component} component\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.build=false]\t\tIf `true`, component will build and store a DOM node if not already associated with one.\n *\t@private\n */\nfunction renderComponent(component, opts, mountAll, isChild) {\n if (component._disable) return;\n\n var props = component.props,\n data = component.data,\n context = component.context,\n previousProps = component.prevProps || props,\n previousState = component.prevState || data,\n previousContext = component.prevContext || context,\n isUpdate = component.base,\n nextBase = component.nextBase,\n initialBase = isUpdate || nextBase,\n initialChildComponent = component._component,\n skip = false,\n rendered,\n inst,\n cbase;\n\n // if updating\n if (isUpdate) {\n component.props = previousProps;\n component.data = previousState;\n component.context = previousContext;\n if (component.store || opts == 2 || shallowComparison(previousProps, props)) {\n skip = false;\n if (component.beforeUpdate) {\n component.beforeUpdate(props, data, context);\n }\n } else {\n skip = true;\n }\n component.props = props;\n component.data = data;\n component.context = context;\n }\n\n component.prevProps = component.prevState = component.prevContext = component.nextBase = null;\n\n if (!skip) {\n component.beforeRender && component.beforeRender();\n rendered = component.render(props, data, context);\n\n //don't rerender\n if (component.constructor.css || component.css) {\n addScopedAttrStatic(rendered, '_s' + getCtorName(component.constructor));\n }\n\n scopeHost(rendered, component.scopedCssAttr);\n\n // context to pass to the child, can be updated via (grand-)parent component\n if (component.getChildContext) {\n context = extend(extend({}, context), component.getChildContext());\n }\n\n var childComponent = rendered && rendered.nodeName,\n toUnmount,\n base,\n ctor = options.mapping[childComponent];\n\n if (ctor) {\n // set up high order component link\n\n var childProps = getNodeProps(rendered);\n inst = initialChildComponent;\n\n if (inst && inst.constructor === ctor && childProps.key == inst.__key) {\n setComponentProps(inst, childProps, 1, context, false);\n } else {\n toUnmount = inst;\n\n component._component = inst = createComponent(ctor, childProps, context);\n inst.nextBase = inst.nextBase || nextBase;\n inst._parentComponent = component;\n setComponentProps(inst, childProps, 0, context, false);\n renderComponent(inst, 1, mountAll, true);\n }\n\n base = inst.base;\n } else {\n cbase = initialBase;\n\n // destroy high order component link\n toUnmount = initialChildComponent;\n if (toUnmount) {\n cbase = component._component = null;\n }\n\n if (initialBase || opts === 1) {\n if (cbase) cbase._component = null;\n base = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);\n }\n }\n\n if (initialBase && base !== initialBase && inst !== initialChildComponent) {\n var baseParent = initialBase.parentNode;\n if (baseParent && base !== baseParent) {\n baseParent.replaceChild(base, initialBase);\n\n if (!toUnmount) {\n initialBase._component = null;\n recollectNodeTree(initialBase, false);\n }\n }\n }\n\n if (toUnmount) {\n unmountComponent(toUnmount);\n }\n\n component.base = base;\n if (base && !isChild) {\n var componentRef = component,\n t = component;\n while (t = t._parentComponent) {\n(componentRef = t).base = base;\n }\n base._component = componentRef;\n base._componentConstructor = componentRef.constructor;\n }\n }\n\n if (!isUpdate || mountAll) {\n mounts.unshift(component);\n } else if (!skip) {\n // Ensure that pending componentDidMount() hooks of child components\n // are called before the componentDidUpdate() hook in the parent.\n // Note: disabled as it causes duplicate hooks, see https://github.com/developit/preact/issues/750\n // flushMounts();\n\n if (component.afterUpdate) {\n //deprecated\n component.afterUpdate(previousProps, previousState, previousContext);\n }\n if (component.updated) {\n component.updated(previousProps, previousState, previousContext);\n }\n if (options.afterUpdate) options.afterUpdate(component);\n }\n\n if (component._renderCallbacks != null) {\n while (component._renderCallbacks.length) {\n component._renderCallbacks.pop().call(component);\n }\n }\n\n if (!diffLevel && !isChild) flushMounts();\n}\n\n/** Apply the Component referenced by a VNode to the DOM.\n *\t@param {Element} dom\tThe DOM node to mutate\n *\t@param {VNode} vnode\tA Component-referencing VNode\n *\t@returns {Element} dom\tThe created/mutated element\n *\t@private\n */\nfunction buildComponentFromVNode(dom, vnode, context, mountAll) {\n var c = dom && dom._component,\n originalComponent = c,\n oldDom = dom,\n isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n isOwner = isDirectOwner,\n props = getNodeProps(vnode);\n while (c && !isOwner && (c = c._parentComponent)) {\n isOwner = c.constructor === vnode.nodeName;\n }\n\n if (c && isOwner && (!mountAll || c._component)) {\n setComponentProps(c, props, 3, context, mountAll);\n dom = c.base;\n } else {\n if (originalComponent && !isDirectOwner) {\n unmountComponent(originalComponent);\n dom = oldDom = null;\n }\n\n c = createComponent(vnode.nodeName, props, context, vnode);\n if (dom && !c.nextBase) {\n c.nextBase = dom;\n // passing dom/oldDom as nextBase will recycle it if unused, so bypass recycling on L229:\n oldDom = null;\n }\n setComponentProps(c, props, 1, context, mountAll);\n dom = c.base;\n\n if (oldDom && dom !== oldDom) {\n oldDom._component = null;\n recollectNodeTree(oldDom, false);\n }\n }\n\n return dom;\n}\n\n/** Remove a component from the DOM and recycle it.\n *\t@param {Component} component\tThe Component instance to unmount\n *\t@private\n */\nfunction unmountComponent(component) {\n if (options.beforeUnmount) options.beforeUnmount(component);\n\n var base = component.base;\n\n component._disable = true;\n\n if (component.uninstall) component.uninstall();\n\n if (component.store && component.store.instances) {\n for (var i = 0, len = component.store.instances.length; i < len; i++) {\n if (component.store.instances[i] === component) {\n component.store.instances.splice(i, 1);\n break;\n }\n }\n }\n\n component.base = null;\n\n // recursively tear down & recollect high-order component children:\n var inner = component._component;\n if (inner) {\n unmountComponent(inner);\n } else if (base) {\n if (base['__omiattr_'] != null) applyRef(base['__omiattr_'].ref, null);\n\n component.nextBase = base;\n\n removeNode(base);\n collectComponent(component);\n\n removeChildren(base);\n }\n\n applyRef(component.__ref, null);\n}\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar id = 0;\n\nvar Component = function () {\n function Component(props, store) {\n _classCallCheck(this, Component);\n\n this.props = assign(nProps(this.constructor.props), this.constructor.defaultProps, props);\n this.elementId = id++;\n this.data = this.constructor.data || this.data || {};\n\n this._preCss = null;\n\n this.store = store;\n }\n\n Component.prototype.update = function update(callback) {\n this._willUpdate = true;\n if (callback) (this._renderCallbacks = this._renderCallbacks || []).push(callback);\n renderComponent(this, 2);\n if (options.componentChange) options.componentChange(this, this.base);\n this._willUpdate = false;\n };\n\n Component.prototype.fire = function fire(type, data) {\n var _this = this;\n\n Object.keys(this.props).every(function (key) {\n if ('on' + type.toLowerCase() === key.toLowerCase()) {\n _this.props[key]({ detail: data });\n return false;\n }\n return true;\n });\n };\n\n Component.prototype.render = function render() {};\n\n return Component;\n}();\n\nComponent.is = 'WeElement';\n\n/** Render JSX into a `parent` Element.\n *\t@param {VNode} vnode\t\tA (JSX) VNode to render\n *\t@param {Element} parent\t\tDOM element to render into\n *\t@param {object} [store]\n *\t@public\n */\nfunction render(vnode, parent, store, empty, merge) {\n parent = typeof parent === 'string' ? document.querySelector(parent) : parent;\n if (store && store.data) {\n store.instances = [];\n extendStoreUpate(store);\n var timeout = null;\n var patchs = {};\n obaa(store.data, function (prop, val, old, path) {\n clearTimeout(timeout);\n var key = fixPath(path + '-' + prop);\n patchs[key] = true;\n timeout = setTimeout(function () {\n store.update(patchs);\n patchs = {};\n }, 0);\n });\n }\n\n if (empty) {\n while (parent.firstChild) {\n parent.removeChild(parent.firstChild);\n }\n }\n\n if (merge) {\n merge = typeof merge === 'string' ? document.querySelector(merge) : merge;\n }\n\n return diff(merge, vnode, store, false, parent, false);\n}\n\nfunction extendStoreUpate(store) {\n store.update = function (patch) {\n var _this = this;\n\n var updateAll = matchGlobalData(this.globalData, patch);\n if (Object.keys(patch).length > 0) {\n this.instances.forEach(function (instance) {\n if (updateAll || _this.updateAll || instance.constructor.updatePath && needUpdate(patch, instance.constructor.updatePath)) {\n //update this.use\n instance.use = getUse(store.data, instance.constructor.use);\n instance.update();\n }\n });\n this.onChange && this.onChange(patch);\n }\n };\n}\n\nfunction matchGlobalData(globalData, diffResult) {\n if (!globalData) return false;\n for (var keyA in diffResult) {\n if (globalData.indexOf(keyA) > -1) {\n return true;\n }\n for (var i = 0, len = globalData.length; i < len; i++) {\n if (includePath(keyA, globalData[i])) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction needUpdate(diffResult, updatePath) {\n for (var keyA in diffResult) {\n if (updatePath[keyA]) {\n return true;\n }\n for (var keyB in updatePath) {\n if (includePath(keyA, keyB)) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction includePath(pathA, pathB) {\n if (pathA.indexOf(pathB) === 0) {\n var next = pathA.substr(pathB.length, 1);\n if (next === '[' || next === '.') {\n return true;\n }\n }\n return false;\n}\n\nfunction fixPath(path) {\n var mpPath = '';\n var arr = path.replace('#-', '').split('-');\n arr.forEach(function (item, index) {\n if (index) {\n if (isNaN(Number(item))) {\n mpPath += '.' + item;\n } else {\n mpPath += '[' + item + ']';\n }\n } else {\n mpPath += item;\n }\n });\n return mpPath;\n}\n\nfunction define(name, ctor) {\n options.mapping[name] = ctor;\n if (ctor.use) {\n ctor.updatePath = getPath(ctor.use);\n } else if (ctor.data) {\n //Compatible with older versions\n ctor.updatePath = getUpdatePath(ctor.data);\n }\n}\n\nfunction getPath(obj) {\n if (Object.prototype.toString.call(obj) === '[object Array]') {\n var result = {};\n obj.forEach(function (item) {\n if (typeof item === 'string') {\n result[item] = true;\n } else {\n var tempPath = item[Object.keys(item)[0]];\n if (typeof tempPath === 'string') {\n result[tempPath] = true;\n } else {\n if (typeof tempPath[0] === 'string') {\n result[tempPath[0]] = true;\n } else {\n tempPath[0].forEach(function (path) {\n return result[path] = true;\n });\n }\n }\n }\n });\n return result;\n } else {\n return getUpdatePath(obj);\n }\n}\n\nfunction getUpdatePath(data) {\n var result = {};\n dataToPath(data, result);\n return result;\n}\n\nfunction dataToPath(data, result) {\n Object.keys(data).forEach(function (key) {\n result[key] = true;\n var type = Object.prototype.toString.call(data[key]);\n if (type === '[object Object]') {\n _objToPath(data[key], key, result);\n } else if (type === '[object Array]') {\n _arrayToPath(data[key], key, result);\n }\n });\n}\n\nfunction _objToPath(data, path, result) {\n Object.keys(data).forEach(function (key) {\n result[path + '.' + key] = true;\n delete result[path];\n var type = Object.prototype.toString.call(data[key]);\n if (type === '[object Object]') {\n _objToPath(data[key], path + '.' + key, result);\n } else if (type === '[object Array]') {\n _arrayToPath(data[key], path + '.' + key, result);\n }\n });\n}\n\nfunction _arrayToPath(data, path, result) {\n data.forEach(function (item, index) {\n result[path + '[' + index + ']'] = true;\n delete result[path];\n var type = Object.prototype.toString.call(item);\n if (type === '[object Object]') {\n _objToPath(item, path + '[' + index + ']', result);\n } else if (type === '[object Array]') {\n _arrayToPath(item, path + '[' + index + ']', result);\n }\n });\n}\n\nfunction rpx(str) {\n return str.replace(/([1-9]\\d*|0)(\\.\\d*)*rpx/g, function (a, b) {\n return window.innerWidth * Number(b) / 750 + 'px';\n });\n}\n\nfunction _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ModelView = function (_Component) {\n _inherits(ModelView, _Component);\n\n function ModelView() {\n _classCallCheck$1(this, ModelView);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n ModelView.prototype.beforeInstall = function beforeInstall() {\n this.data = this.vm.data;\n };\n\n return ModelView;\n}(Component);\n\nModelView.observe = true;\nModelView.mergeUpdate = true;\n\n/**\n * classNames based on https://github.com/JedWatson/classnames\n * by Jed Watson\n * Licensed under the MIT License\n * https://github.com/JedWatson/classnames/blob/master/LICENSE\n * modified by dntzhang\n */\n\nvar hasOwn = {}.hasOwnProperty;\n\nfunction classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n\n var argType = typeof arg;\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg) && arg.length) {\n var inner = classNames.apply(null, arg);\n if (inner) {\n classes.push(inner);\n }\n } else if (argType === 'object') {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n\n return classes.join(' ');\n}\n\nfunction extractClass() {\n var _Array$prototype$slic = Array.prototype.slice.call(arguments, 0),\n props = _Array$prototype$slic[0],\n args = _Array$prototype$slic.slice(1);\n\n if (props) {\n if (props.class) {\n args.unshift(props.class);\n delete props.class;\n } else if (props.className) {\n args.unshift(props.className);\n delete props.className;\n }\n }\n if (args.length > 0) {\n return { class: classNames.apply(null, args) };\n }\n}\n\nfunction getHost(component) {\n var base = component.base;\n if (base) {\n while (base.parentNode) {\n if (base.parentNode._component) {\n return base.parentNode._component;\n } else {\n base = base.parentNode;\n }\n }\n }\n}\n\n/**\n * preact-render-to-string based on preact-render-to-string\n * by Jason Miller\n * Licensed under the MIT License\n * https://github.com/developit/preact-render-to-string\n *\n * modified by dntzhang\n */\n\nvar encodeEntities = function encodeEntities(s) {\n return String(s).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"');\n};\n\nvar indent = function indent(s, char) {\n return String(s).replace(/(\\n+)/g, '$1' + (char || '\\t'));\n};\n\nvar mapping$1 = options.mapping;\n\nvar VOID_ELEMENTS = /^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/;\n\nvar isLargeString = function isLargeString(s, length, ignoreLines) {\n return String(s).length > (length || 40) || !ignoreLines && String(s).indexOf('\\n') !== -1 || String(s).indexOf('<') !== -1;\n};\n\nvar JS_TO_CSS = {};\n\n// Convert an Object style to a CSSText string\nfunction styleObjToCss(s) {\n var str = '';\n for (var prop in s) {\n var val = s[prop];\n if (val != null) {\n if (str) str += ' ';\n // str += jsToCss(prop);\n str += JS_TO_CSS[prop] || (JS_TO_CSS[prop] = prop.replace(/([A-Z])/g, '-$1').toLowerCase());\n str += ': ';\n str += val;\n if (typeof val === 'number' && IS_NON_DIMENSIONAL.test(prop) === false) {\n str += 'px';\n }\n str += ';';\n }\n }\n return str || undefined;\n}\n\nfunction renderToString(vnode, opts, store, isSvgMode) {\n store = store || {};\n opts = Object.assign({\n scopedCSS: true\n }, opts);\n var css = {};\n var html = _renderToString(vnode, opts, store, isSvgMode, css);\n return {\n css: Object.values(css),\n html: html\n };\n}\n\n/** The default export is an alias of `render()`. */\nfunction _renderToString(vnode, opts, store, isSvgMode, css) {\n if (vnode == null || typeof vnode === 'boolean') {\n return '';\n }\n\n var nodeName = vnode.nodeName,\n attributes = vnode.attributes,\n isComponent = false;\n\n var pretty = true && opts.pretty,\n indentChar = pretty && typeof pretty === 'string' ? pretty : '\\t';\n\n // #text nodes\n if (typeof vnode !== 'object' && !nodeName) {\n return encodeEntities(vnode);\n }\n\n // components\n var ctor = mapping$1[nodeName];\n if (ctor) {\n isComponent = true;\n\n var props = getNodeProps$1(vnode),\n rendered;\n // class-based components\n var c = new ctor(props, store);\n // turn off stateful re-rendering:\n c._disable = c.__x = true;\n c.props = props;\n c.store = store;\n if (c.install) c.install();\n if (c.beforeRender) c.beforeRender();\n rendered = c.render(c.props, c.data, c.store);\n\n if (opts.scopedCSS) {\n\n if (c.constructor.css || c.css) {\n\n var cssStr = c.constructor.css ? c.constructor.css : typeof c.css === 'function' ? c.css() : c.css;\n var cssAttr = '_s' + getCtorName(c.constructor);\n css[cssAttr] = '';\n addScopedAttrStatic(rendered, '_s' + getCtorName(c.constructor));\n }\n\n c.scopedCSSAttr = vnode.css;\n scopeHost(rendered, c.scopedCSSAttr);\n }\n\n return _renderToString(rendered, opts, store, false, css);\n }\n\n // render JSX to HTML\n var s = '',\n html;\n\n if (attributes) {\n var attrs = Object.keys(attributes);\n\n // allow sorting lexicographically for more determinism (useful for tests, such as via preact-jsx-chai)\n if (opts && opts.sortAttributes === true) attrs.sort();\n\n for (var i = 0; i < attrs.length; i++) {\n var name = attrs[i],\n v = attributes[name];\n if (name === 'children') continue;\n\n if (name.match(/[\\s\\n\\\\/='\"\\0<>]/)) continue;\n\n if (!(opts && opts.allAttributes) && (name === 'key' || name === 'ref')) continue;\n\n if (name === 'className') {\n if (attributes.class) continue;\n name = 'class';\n } else if (isSvgMode && name.match(/^xlink:?./)) {\n name = name.toLowerCase().replace(/^xlink:?/, 'xlink:');\n }\n\n if (name === 'style' && v && typeof v === 'object') {\n v = styleObjToCss(v);\n }\n\n var hooked = opts.attributeHook && opts.attributeHook(name, v, store, opts, isComponent);\n if (hooked || hooked === '') {\n s += hooked;\n continue;\n }\n\n if (name === 'dangerouslySetInnerHTML') {\n html = v && v.__html;\n } else if ((v || v === 0 || v === '') && typeof v !== 'function') {\n if (v === true || v === '') {\n v = name;\n // in non-xml mode, allow boolean attributes\n if (!opts || !opts.xml) {\n s += ' ' + name;\n continue;\n }\n }\n s += ' ' + name + '=\"' + encodeEntities(v) + '\"';\n }\n }\n }\n\n // account for >1 multiline attribute\n if (pretty) {\n var sub = s.replace(/^\\n\\s*/, ' ');\n if (sub !== s && !~sub.indexOf('\\n')) s = sub;else if (pretty && ~s.indexOf('\\n')) s += '\\n';\n }\n\n s = '<' + nodeName + s + '>';\n if (String(nodeName).match(/[\\s\\n\\\\/='\"\\0<>]/)) throw s;\n\n var isVoid = String(nodeName).match(VOID_ELEMENTS);\n if (isVoid) s = s.replace(/>$/, ' />');\n\n var pieces = [];\n if (html) {\n // if multiline, indent.\n if (pretty && isLargeString(html)) {\n html = '\\n' + indentChar + indent(html, indentChar);\n }\n s += html;\n } else if (vnode.children) {\n var hasLarge = pretty && ~s.indexOf('\\n');\n for (var i = 0; i < vnode.children.length; i++) {\n var child = vnode.children[i];\n if (child != null && child !== false) {\n var childSvgMode = nodeName === 'svg' ? true : nodeName === 'foreignObject' ? false : isSvgMode,\n ret = _renderToString(child, opts, store, childSvgMode, css);\n if (pretty && !hasLarge && isLargeString(ret)) hasLarge = true;\n if (ret) pieces.push(ret);\n }\n }\n if (pretty && hasLarge) {\n for (var i = pieces.length; i--;) {\n pieces[i] = '\\n' + indentChar + indent(pieces[i], indentChar);\n }\n }\n }\n\n if (pieces.length) {\n s += pieces.join('');\n } else if (opts && opts.xml) {\n return s.substring(0, s.length - 1) + ' />';\n }\n\n if (!isVoid) {\n if (pretty && ~s.indexOf('\\n')) s += '\\n';\n s += '';\n }\n\n return s;\n}\n\nfunction assign$1(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\nfunction getNodeProps$1(vnode) {\n var props = assign$1({}, vnode.attributes);\n props.children = vnode.children;\n\n var defaultProps = vnode.nodeName.defaultProps;\n if (defaultProps !== undefined) {\n for (var i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i];\n }\n }\n }\n\n return props;\n}\n\nvar WeElement = Component;\nvar defineElement = define;\nfunction createRef() {\n return {};\n}\n\noptions.root.Omi = {\n h: h,\n createElement: h,\n cloneElement: cloneElement,\n createRef: createRef,\n Component: Component,\n render: render,\n rerender: rerender,\n options: options,\n WeElement: WeElement,\n define: define,\n rpx: rpx,\n ModelView: ModelView,\n defineElement: defineElement,\n classNames: classNames,\n extractClass: extractClass,\n getHost: getHost,\n renderToString: renderToString\n};\noptions.root.omi = options.root.Omi;\noptions.root.Omi.version = 'omio-2.0.5';\n\nvar omi = {\n h: h,\n createElement: h,\n cloneElement: cloneElement,\n createRef: createRef,\n Component: Component,\n render: render,\n rerender: rerender,\n options: options,\n WeElement: WeElement,\n define: define,\n rpx: rpx,\n ModelView: ModelView,\n defineElement: defineElement,\n classNames: classNames,\n extractClass: extractClass,\n getHost: getHost,\n renderToString: renderToString\n};\n\nexport default omi;\nexport { h, h as createElement, cloneElement, createRef, Component, render, rerender, options, WeElement, define, rpx, ModelView, defineElement, classNames, extractClass, getHost, renderToString };\n//# sourceMappingURL=omi.esm.js.map\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/omio/dist/omi.esm.js","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/css-loader/lib/css-base.js","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\n} catch(e) {\n\t// This works if the window reference is available\n\tif(typeof window === \"object\")\n\t\tg = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n\n// WEBPACK FOOTER //\n// (webpack)/buildin/global.js","'use strict';\n\nvar asap = require('asap/raw');\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._75 = 0;\n this._83 = 0;\n this._18 = null;\n this._38 = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._47 = null;\nPromise._71 = null;\nPromise._44 = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._83 === 3) {\n self = self._18;\n }\n if (Promise._47) {\n Promise._47(self);\n }\n if (self._83 === 0) {\n if (self._75 === 0) {\n self._75 = 1;\n self._38 = deferred;\n return;\n }\n if (self._75 === 1) {\n self._75 = 2;\n self._38 = [self._38, deferred];\n return;\n }\n self._38.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n asap(function() {\n var cb = self._83 === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._83 === 1) {\n resolve(deferred.promise, self._18);\n } else {\n reject(deferred.promise, self._18);\n }\n return;\n }\n var ret = tryCallOne(cb, self._18);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._83 = 3;\n self._18 = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._83 = 1;\n self._18 = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._83 = 2;\n self._18 = newValue;\n if (Promise._71) {\n Promise._71(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._75 === 1) {\n handle(self, self._38);\n self._38 = null;\n }\n if (self._75 === 2) {\n for (var i = 0; i < self._38.length; i++) {\n handle(self, self._38[i]);\n }\n self._38 = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/core.js","'use strict';\n\nif (typeof Promise === 'undefined') {\n // Rejection tracking prevents a common issue where React gets into an\n // inconsistent state due to an error, but it gets swallowed by a Promise,\n // and the user has no idea what causes React's erratic future behavior.\n require('promise/lib/rejection-tracking').enable();\n window.Promise = require('promise/lib/es6-extensions.js');\n}\n\n// fetch() polyfill for making API calls.\nrequire('whatwg-fetch');\n\n// Object.assign() is commonly used with React.\n// It will use the native implementation if it's present and isn't buggy.\nObject.assign = require('object-assign');\n\n// In tests, polyfill requestAnimationFrame since jsdom doesn't provide it yet.\n// We don't polyfill it in the browser--this is user's responsibility.\nif (process.env.NODE_ENV === 'test') {\n require('raf').polyfill(global);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./config/polyfills.js","'use strict';\n\nvar Promise = require('./core');\n\nvar DEFAULT_WHITELIST = [\n ReferenceError,\n TypeError,\n RangeError\n];\n\nvar enabled = false;\nexports.disable = disable;\nfunction disable() {\n enabled = false;\n Promise._47 = null;\n Promise._71 = null;\n}\n\nexports.enable = enable;\nfunction enable(options) {\n options = options || {};\n if (enabled) disable();\n enabled = true;\n var id = 0;\n var displayId = 0;\n var rejections = {};\n Promise._47 = function (promise) {\n if (\n promise._83 === 2 && // IS REJECTED\n rejections[promise._56]\n ) {\n if (rejections[promise._56].logged) {\n onHandled(promise._56);\n } else {\n clearTimeout(rejections[promise._56].timeout);\n }\n delete rejections[promise._56];\n }\n };\n Promise._71 = function (promise, err) {\n if (promise._75 === 0) { // not yet handled\n promise._56 = id++;\n rejections[promise._56] = {\n displayId: null,\n error: err,\n timeout: setTimeout(\n onUnhandled.bind(null, promise._56),\n // For reference errors and type errors, this almost always\n // means the programmer made a mistake, so log them after just\n // 100ms\n // otherwise, wait 2 seconds to see if they get handled\n matchWhitelist(err, DEFAULT_WHITELIST)\n ? 100\n : 2000\n ),\n logged: false\n };\n }\n };\n function onUnhandled(id) {\n if (\n options.allRejections ||\n matchWhitelist(\n rejections[id].error,\n options.whitelist || DEFAULT_WHITELIST\n )\n ) {\n rejections[id].displayId = displayId++;\n if (options.onUnhandled) {\n rejections[id].logged = true;\n options.onUnhandled(\n rejections[id].displayId,\n rejections[id].error\n );\n } else {\n rejections[id].logged = true;\n logError(\n rejections[id].displayId,\n rejections[id].error\n );\n }\n }\n }\n function onHandled(id) {\n if (rejections[id].logged) {\n if (options.onHandled) {\n options.onHandled(rejections[id].displayId, rejections[id].error);\n } else if (!rejections[id].onUnhandled) {\n console.warn(\n 'Promise Rejection Handled (id: ' + rejections[id].displayId + '):'\n );\n console.warn(\n ' This means you can ignore any previous messages of the form \"Possible Unhandled Promise Rejection\" with id ' +\n rejections[id].displayId + '.'\n );\n }\n }\n }\n}\n\nfunction logError(id, error) {\n console.warn('Possible Unhandled Promise Rejection (id: ' + id + '):');\n var errStr = (error && (error.stack || error)) + '';\n errStr.split('\\n').forEach(function (line) {\n console.warn(' ' + line);\n });\n}\n\nfunction matchWhitelist(error, list) {\n return list.some(function (cls) {\n return error instanceof cls;\n });\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/rejection-tracking.js","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {characterData: true});\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/asap/browser-raw.js","'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n var p = new Promise(Promise._44);\n p._83 = 1;\n p._18 = value;\n return p;\n}\nPromise.resolve = function (value) {\n if (value instanceof Promise) return value;\n\n if (value === null) return NULL;\n if (value === undefined) return UNDEFINED;\n if (value === true) return TRUE;\n if (value === false) return FALSE;\n if (value === 0) return ZERO;\n if (value === '') return EMPTYSTRING;\n\n if (typeof value === 'object' || typeof value === 'function') {\n try {\n var then = value.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(value));\n }\n } catch (ex) {\n return new Promise(function (resolve, reject) {\n reject(ex);\n });\n }\n }\n return valuePromise(value);\n};\n\nPromise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\n\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n if (val instanceof Promise && val.then === Promise.prototype.then) {\n while (val._83 === 3) {\n val = val._18;\n }\n if (val._83 === 1) return res(i, val._18);\n if (val._83 === 2) reject(val._18);\n val.then(function (val) {\n res(i, val);\n }, reject);\n return;\n } else {\n var then = val.then;\n if (typeof then === 'function') {\n var p = new Promise(then.bind(val));\n p.then(function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n values.forEach(function(value){\n Promise.resolve(value).then(resolve, reject);\n });\n });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/es6-extensions.js","(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = 'status' in options ? options.status : 200\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/whatwg-fetch/fetch.js","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/object-assign/index.js","import { define, WeElement } from 'omi'\n\nimport './my-head'\nimport './my-content'\nimport './my-sidebar'\nimport './my-demo'\n\ndefine('my-frame', class extends WeElement {\n\n installed(){\n this.store.init()\n }\n\n render() {\n return (\n
\n \n
\n \n
\n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-frame.js","import { define, WeElement } from 'omi'\nimport logo from './omi-logo2019.svg'\n\ndefine('my-head', class extends WeElement {\n static css = require('./_index.css')\n\n toggleMenus = evt => {\n this.store.toogleSidebar()\n evt.stopPropagation()\n }\n\n hideSidebar = evt => {\n this.store.hideSidebar()\n }\n\n render() {\n return (\n
\n
\n \"\"\n
\n\n \n \n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-head/index.js","module.exports = __webpack_public_path__ + \"static/media/omi-logo2019.923166c3.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/omi-logo2019.svg\n// module id = 13\n// module chunks = 30 31","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAqklEQVRoQ+2WQQ6AMAgE4f+Pxg+oSTNbDXR7Z5UZQpvR/GTz/w838LdBG7ABSMAjBAHichvACGHAXANVVRCOtDwzb2E/GnADUv4R5xkQA9wWN3cLbUMmDrYBMdDluLkGfJEtD8N7wXkXWfsREk/Atri5W2gbMnGwDYiBLsfNNdB+jbqB5Wn2U0KM7KO4uVvoI4D4MzaAEcIAG4AAcbkNYIQwwAYgQFze3sAFU6MwMZGH3LoAAAAASUVORK5CYII=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/menu.png\n// module id = 14\n// module chunks = 30 31","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/_index.css\n// module id = 15\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".head{\\n position:fixed;\\n height:60px;\\n line-height: 60px;\\n border-bottom: 1px solid #eee;\\n width:100%;\\n background-color:#24292e;\\n z-index:100;\\n top: 0;\\n}\\n\\nul,li{\\n display: inline-block;\\n}\\n\\n.logo_box{\\n width:100px;\\n display: inline-block;\\n text-align:center;\\n line-height: 60px;\\n}\\n\\n.menu a,.logo_box a{\\n display: inline-block;\\n height:60px;\\n color: white;\\n}\\n\\n.menu{\\n position: absolute;\\n right:20px;\\n}\\n\\n.menu li{\\n margin-left:15px;\\n}\\n\\n.logo_box a{\\n font-size: 34px;\\n font-weight: bold;\\n color: #00bff3;\\n padding: 0px 15px;\\n line-height: 60px;\\n cursor: pointer;\\n}\\n\\n.menu a:hover{\\n color: white;\\n}\\n\\n.m_menu{\\n position:fixed;\\n display:none;\\n cursor: pointer;\\n}\\n\\n.menu li{\\n display:inline-block;\\n}\\n\\n.logo{\\n width: 40px;\\n height: 40px;\\n margin-left: 10px;\\n margin-top: 10px;\\n cursor: pointer;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n\\n .logo_box{\\n display:inline-block;\\n }\\n\\n .logo{\\n display: none;\\n }\\n\\n .head{\\n text-align:center;\\n }\\n\\n .m_menu{\\n top:0;\\n left:0;\\n display:block;\\n width:50px;\\n height:50px;\\n padding-top: 6px;\\n }\\n\\n .m_menu img{\\n width:30px;\\n }\\n\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-head/_index.css\n// module id = 16\n// module chunks = 30 31","import { define, WeElement } from 'omi'\nimport '../my-footer'\n\ndefine('my-content', class extends WeElement {\n static css = require('./_index.css')\n\n static use = [\n 'html'\n ]\n\n install() {\n this.store.myContent = this\n }\n\n installed() {\n this.initCodeStyle()\n }\n\n afterUpdate() {\n this.initCodeStyle()\n }\n\n touchEnd = () => {\n this.store.hideSidebar()\n }\n\n initCodeStyle() {\n let codes = document.querySelectorAll('code')\n\n let codesArr = Array.prototype.slice.call(codes);\n let codeHlNumArr = []\n codesArr.forEach(code => {\n let arr = code.className.match(/{([\\S\\s]*)}/)\n let pre = code.parentNode\n //bug!\n arr && pre.setAttribute('data-line', arr[1])\n if (code.className) {\n pre.className = code.className\n\n const temp = code.className.match(/language-\\w*/g)[0]\n if (temp) {\n code.innerHTML = Prism.highlight(code.innerText, Prism.languages[temp.split('-')[1]], temp.split('-')[1])\n }\n } else {\n let pre = code.parentNode\n code.className = 'language-markup'\n pre.className = 'language-markup'\n code.innerHTML = Prism.highlight(code.innerText, Prism.languages.markup, 'markup')\n }\n // let hllNums = null\n // if (arr) {\n // let numArr = arr[0].replace(/[{|}]/g, '').split(',')\n // hllNums = this._arrToNumber(numArr)\n // }\n //codeHlNumArr.push(hllNums)\n })\n\n // codesArr.forEach((code, index) => {\n // let newP = document.createElement('div')\n // newP.className = '_code-ctn'\n // let pre = code.parentNode\n // let ctn = pre.parentNode\n // if (pre.nodeName === 'PRE') {\n // ctn.insertBefore(newP, pre)\n\n // let hl = document.createElement('div')\n // hl.className = '_hl'\n // newP.appendChild(hl)\n // newP.appendChild(pre)\n // let nums = codeHlNumArr[index]\n\n // let max = Math.max.apply(null, nums)\n\n // let inner = ''\n // for (let i = 0; i <= max; i++) {\n // if (nums.indexOf(i) == -1) {\n // inner += '
'\n // } else {\n // inner += '
'\n // }\n // }\n // hl.innerHTML = inner\n // }\n // })\n //fix line-highlight\n window.dispatchEvent(new Event('resize'));\n }\n\n _arrToNumber(numArr) {\n let arr = []\n numArr.forEach(item => {\n if (item.indexOf('-') !== -1) {\n const tempArr = item.split('-')\n const begin = Number(tempArr[0])\n const end = Number(tempArr[1])\n for (let i = begin; i < end + 1; i++) {\n arr.push(i)\n }\n } else {\n arr.push(Number(item))\n }\n })\n return arr\n }\n\n render() {\n return (\n
\n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-content/index.js","import { define, WeElement } from 'omi'\n\ndefine('my-footer', class extends WeElement {\n static css = require('./_index.css')\n\n static use = [\n 'position',\n 'menu'\n ]\n\n render() {\n const [\n position,\n menus\n ] = this.use\n const pre = this.store.getPre()\n const next = this.store.getNext()\n console.log(pre,next)\n return (\n
\n {pre &&← {pre.name}}\n {next &&}\n
\n )\n }\n\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-footer/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-footer/_index.css\n// module id = 19\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".ft{\\n position: relative;\\n margin-top: 20px\\n}\\n\\n.pre{\\n position: absolute;\\n left:15px;\\n}\\n\\n.next{\\n position: absolute;\\n right: 15px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-footer/_index.css\n// module id = 20\n// module chunks = 30 31","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-content/_index.css\n// module id = 21\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".content{\\n margin-top: 60px;\\n margin-bottom: 30px;\\n margin-left: 260px;\\n padding: 1px 10px 10px 20px;\\n color: #24292e;\\n /* overflow: hidden; */\\n max-width: 900px;\\n}\\n\\nh3{\\n color:#444444;\\n}\\n\\npre{\\n border: 1px solid #eee;\\n width: 100%;\\n}\\nli{\\n text-indent: 20px;\\n list-style:disc inside ;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n .content{\\n margin-left: 0;\\n border-left: none;\\n padding: 1px 10px 10px 10px;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-content/_index.css\n// module id = 22\n// module chunks = 30 31","import { define, WeElement } from 'omi'\nimport '../my-list'\n\ndefine('my-sidebar', class extends WeElement {\n static css = require('./_index.css')\n\n static use = [\n 'menus',\n 'sideBarShow',\n 'lan'\n ]\n\n render() {\n const [menus, sideBarShow, lan] = this.use\n\n return (\n
\n {menus[lan].map((menu, index) => (\n \n ))}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-sidebar/index.js","import { define, WeElement } from 'omi'\n\ndefine('my-list', class extends WeElement {\n static css = require('./_index.css')\n\n static use = [\n 'position'\n ]\n\n render(props) {\n const [position] = this.use\n\n return (\n
    \n
  • {props.menu.title}
  • \n {props.menu.list &&\n props.menu.list.map((item, subIndex) => {\n const cls = position[0] === props.index && position[1] === subIndex ? { class: 'current' } : null\n return
  • \n \n {item.name}\n \n
  • \n })}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-list/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-list/_index.css\n// module id = 25\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"li.title{\\n font-size: 14px;\\n font-weight: bold;\\n margin-bottom:10px;\\n margin-top:10px;\\n text-indent: 23px;\\n}\\nli{\\n margin-bottom:1px;\\n text-indent: 33px;\\n}\\nli a{\\n display:block;\\n font-size:14px;\\n height:30px;\\n line-height:30px;\\n color: black;\\n background-color:#eee;\\n}\\nli a.current,li a.current:hover{\\n background-color:#24292e;\\n color: white;\\n cursor: default;\\n}\\nli a:hover{\\n background-color:#f0f8ff;\\n}\\n\\n\\nul,li{\\n list-style:none;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-list/_index.css\n// module id = 26\n// module chunks = 30 31","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-sidebar/_index.css\n// module id = 27\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"@media only screen and (max-width: 768px) {\\n .list{\\n transform: translateX(-100%);\\n background-color:white;\\n left:0 !important;\\n -moz-transition: all .6s ease;\\n -o-transition: all .6s ease;\\n -webkit-transition: all .6s ease;\\n transition: all .6s ease;\\n width: 70% !important;\\n z-index: 100000;\\n border-right: none !important;\\n }\\n\\n .list.show {\\n -moz-transform: translateX(0%) translateZ(0);\\n -ms-transform: translateX(0%) translateZ(0);\\n -o-transform: translateX(0%) translateZ(0);\\n -webkit-transform: translateX(0%) translateZ(0);\\n transform: translateX(0%) translateZ(0);\\n }\\n}\\n\\n.list{\\n width: 261px;\\n text-indent: 20px;\\n border-right: 1px solid #eee;\\n overflow-x: hidden;\\n overflow-y: auto;\\n position:fixed;\\n top:60px;\\n background-color: white;\\n height: 100%;\\n border-right: 1px solid #ccc;\\n padding-bottom: 100px;\\n}\\n.version{\\n height:20px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-sidebar/_index.css\n// module id = 28\n// module chunks = 30 31","import { define, WeElement } from 'omi'\nimport css from './_index.css'\n\ndefine('my-demo', class extends WeElement {\n install() {\n this.store.myDemo = this\n if(this.checkPc())\n this.show = true\n else\n this.show = false\n this.demo = this.store.demo\n }\n\n css() {\n return css\n }\n\n checkPc() {\n let userAgentInfo = navigator.userAgent\n let mp = [\"Android\", \"iPhone\", \"SymbianOS\", \"Windows Phone\", \"iPad\", \"iPod\"]\n for (let i = 0; i < mp.length; i++)\n if (userAgentInfo.indexOf(mp[i]) > 0)\n return false\n return true\n }\n\n onShow = () => {\n this.show = true\n this.update()\n }\n\n onClose = () => {\n this.show = false\n this.update()\n }\n \n render() {\n if(!this.demo) return\n return (\n
\n { this.show && }\n\n {!this.show &&
\n \n
}\n\n {this.show &&
\n \n
}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-demo/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/_index.css\n// module id = 30\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"iframe{\\n width: 750px;\\n height: 100%;\\n top: 60px;\\n right: 0;\\n position: fixed;\\n border: none;\\n z-index: 9999;\\n border-left: 2px solid #24292E; \\n}\\n\\n.switch{\\n width: 40px;\\n height: 40px;\\n background-color: #AA0000;\\n border-radius: 50%;\\n position: fixed;\\n right: 50px;\\n bottom: 50px;\\n cursor: pointer;\\n text-align: center;\\n z-index: 10000;\\n}\\n\\n.switch img{\\n width: 30px;\\n height: 30px;\\n margin-top:5px; \\n}\\n\\n.switch.close img{\\n margin-top:10px; \\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n@media only screen and (max-width: 768px) {\\n iframe{\\n width: 100%;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-demo/_index.css\n// module id = 31\n// module chunks = 30 31","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/code.png\n// module id = 32\n// module chunks = 30 31","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/close.png\n// module id = 33\n// module chunks = 30 31","import config from '../docs/config.js'\nimport 'omi-router'\n\nclass Store {\n constructor(data) {\n this.data = {\n position: [-1, -1],\n menus: config.menus,\n lan: data.lan,\n html: '',\n sideBarShow: window.innerWidth > 768\n }\n let id = 0\n this.map = {}\n this.positionMap = {}\n config.menus[this.data.lan].forEach((menu, index) => {\n menu.list.forEach((item, subIndex) => {\n item.id = id++\n item.position = [index, subIndex]\n this.map[item.id] = item\n item.index = index\n item.subIndex = subIndex\n this.positionMap[index+'-'+subIndex] = item\n })\n })\n this.preIndex = 0\n this.preSubIndex = 0\n }\n\n getNext(){\n const item = this.positionMap[this.data.position.join('-')]\n if(item){\n return this.map[item.id+1]\n }\n }\n\n getPre(){\n const item = this.positionMap[this.data.position.join('-')]\n if(item){\n return this.map[item.id-1]\n }\n }\n\n init() {\n this.remarkable = new Remarkable({ html: true })\n if (location.hash === \"\") {\n this.data.position = [0, 0]\n this.getMarkDown(this.data.menus[this.data.lan][0].list[0].md, this.data.lan, m => {\n this.data.html = this.remarkable.render(m)\n })\n }\n this.initRouter()\n }\n\n toogleSidebar() {\n this.data.sideBarShow = !this.data.sideBarShow\n }\n\n hideSidebar() {\n this.data.sideBarShow = false\n }\n\n initRouter() {\n const menus = this.data.menus[this.data.lan]\n menus.forEach(item => {\n item.list.forEach(subItem => {\n route('/' + subItem.md, evt => {\n menus[this.preIndex].list[this.preSubIndex].selected = false\n this.preIndex = evt.query.index\n this.preSubIndex = evt.query.subIndex\n this.data.position = [Number(evt.query.index), Number(evt.query.subIndex)]\n this.data.sideBarShow = false\n\n this.getMarkDown(subItem.md, this.data.lan, m => {\n this.data.html = this.remarkable.render(m)\n document.body.scrollTop = 0\n document.documentElement.scrollTop = 0\n })\n })\n })\n })\n }\n\n getMarkDown(name, lan, callback) {\n import('../docs/' + lan + '/' + name + '.md').then(m => {\n callback(m)\n })\n }\n}\n\nexport default Store\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/index.js","const config = {\n menus: {\n 'zh-cn': [\n {\n title: 'Omi',\n list: [\n { name: '简介', md: 'introduction' },\n { name: '安装', md: 'installation' }\n ]\n },\n {\n title: '基础概念',\n list: [\n { name: 'JSX', md: 'jsx' },\n { name: 'Props', md: 'props' },\n { name: '事件', md: 'event' },\n { name: '生命周期', md: 'lifecycle' },\n { name: 'Ref', md: 'ref' },\n { name: 'Class', md: 'class' },\n { name: 'Store', md: 'store' },\n { name: 'CSS', md: 'css' }\n ]\n },\n {\n title: '其他',\n list: [\n { name: '生态与例子', md: 'other' },\n { name: 'Mps', md: 'mps' },\n { name: 'Omip 多端开发', md: 'omip' },\n { name: '服务端渲染', md: 'ssr' },\n { name: '路由', md: 'router' },\n { name: 'Omiu', md: 'omiu' }\n ]\n }\n ],\n en: [\n {\n title: 'Omi',\n list: [\n { name: 'Introduction', md: 'introduction' },\n { name: 'Installation', md: 'installation' }\n ]\n },\n {\n title: 'Base',\n list: [\n { name: 'JSX', md: 'jsx' },\n { name: 'Props', md: 'props' },\n { name: 'Event', md: 'event' },\n { name: 'Lifecycle', md: 'lifecycle' },\n { name: 'Ref', md: 'ref' },\n { name: 'Class', md: 'class' },\n { name: 'Store', md: 'store' },\n { name: 'CSS', md: 'css' }\n ]\n },\n {\n title: 'Other',\n list: [\n { name: 'Ecosystem and examples', md: 'other' },\n { name: 'Server-Side Rendering', md: 'ssr' },\n { name: 'Router', md: 'router' },\n { name: 'Omiu', md: 'omiu' }\n ]\n }\n ]\n }\n}\n\nexport default config\n\n\n\n// WEBPACK FOOTER //\n// ./src/docs/config.js","/*!\n * omi-router v2.0.9 by dntzhang\n * Router for Omi.\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n */\n\nvar p2r = require('path-to-regexp')\nvar mapping = {}\nvar root = getGlobal()\n\nroot.route = route\nroot.route.params = null\nroot.historyLength = 0\n\nroot.route.to = function (path, data) {\n root.route._routeByTo = true\n root.route.data = data\n if (path[0] === '#') {\n location.hash = path\n } else {\n location.hash = '#' + path\n }\n}\n\nwindow.addEventListener('hashchange', change)\n\nfunction change(evt) {\n var byNative = false\n //need to fix a line by omi-link\n if(window.history.length === root.historyLength && !root.route._routeByTo){\n //keep alive mode\n byNative = true\n }\n root.route._routeByTo = false\n root.historyLength = window.history.length\n var prevent = false\n if (evt.type === 'hashchange' && root.route.before) {\n prevent = root.route.before(evt) === false\n }\n if (prevent) return\n var path = window.location.hash.replace('#', '')\n if(path === '') path = '/'\n var notFound = true\n Object.keys(mapping).every(function(key){\n var toArr = path.split('?')[0].match(mapping[key].reg)\n if (toArr) {\n var pathArr = key.match(mapping[key].reg)\n root.route.params = getParams(toArr, pathArr)\n root.route.query = getUrlParams(path)\n mapping[key].callback({\n params: root.route.params,\n query: getUrlParams(path),\n data: root.route.data,\n byNative: byNative\n })\n root.route.data = null\n notFound = false\n return false\n }\n return true\n })\n\n if (notFound) {\n mapping['*'] && mapping['*'].callback({ byNative: byNative })\n }\n\n if (evt.type === 'hashchange' && root.route.after) {\n root.route.after(evt)\n }\n}\n\ndocument.addEventListener('DOMContentLoaded', change)\n\nfunction getParams(toArr, pathArr) {\n var params = {}\n toArr.forEach(function (item, index) {\n if (index > 0) {\n params[pathArr[index].replace(':', '')] = item\n }\n })\n return params\n}\n\n\nexport default function route(path, callback) {\n mapping[path] = {\n callback: callback,\n reg: p2r(path)\n }\n}\n\nfunction getGlobal() {\n if (\n typeof global !== 'object' ||\n !global ||\n global.Math !== Math ||\n global.Array !== Array\n ) {\n return (\n self ||\n window ||\n global ||\n (function () {\n return this\n })()\n )\n }\n return global\n}\n\nfunction getUrlParams(url) {\n url = url.replace(/#.*$/, '')\n var queryArray = url.split(/[?&]/).slice(1)\n var i, args = {}\n for (i = 0; i < queryArray.length; i++) {\n var match = queryArray[i].match(/([^=]+)=([^=]+)/)\n if (match !== null) {\n args[match[1]] = decodeURIComponent(match[2])\n }\n }\n return args\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/omi-router/index.js","/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * Default configs.\n */\nvar DEFAULT_DELIMITER = '/'\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \":test(\\\\d+)?\" => [\"test\", \"\\d+\", undefined, \"?\"]\n // \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n '(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = (options && options.delimiter) || DEFAULT_DELIMITER\n var whitelist = (options && options.whitelist) || undefined\n var pathEscaped = false\n var res\n\n while ((res = PATH_REGEXP.exec(str)) !== null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n pathEscaped = true\n continue\n }\n\n var prev = ''\n var name = res[2]\n var capture = res[3]\n var group = res[4]\n var modifier = res[5]\n\n if (!pathEscaped && path.length) {\n var k = path.length - 1\n var c = path[k]\n var matches = whitelist ? whitelist.indexOf(c) > -1 : true\n\n if (matches) {\n prev = c\n path = path.slice(0, k)\n }\n }\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n pathEscaped = false\n }\n\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var pattern = capture || group\n var delimiter = prev || defaultDelimiter\n\n tokens.push({\n name: name || key++,\n prefix: prev,\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n pattern: pattern\n ? escapeGroup(pattern)\n : '[^' + escapeString(delimiter === defaultDelimiter ? delimiter : (delimiter + defaultDelimiter)) + ']+?'\n })\n }\n\n // Push any remaining characters.\n if (path || index < str.length) {\n tokens.push(path + str.substr(index))\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n }\n }\n\n return function (data, options) {\n var path = ''\n var encode = (options && options.encode) || encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n continue\n }\n\n var value = data ? data[token.name] : undefined\n var segment\n\n if (Array.isArray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got array')\n }\n\n if (value.length === 0) {\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j], token)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\"')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n segment = encode(String(value), token)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n continue\n }\n\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to be ' + (token.repeat ? 'an array' : 'a string'))\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$/()])/g, '\\\\$1')\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {Array=} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n if (!keys) return path\n\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n pattern: null\n })\n }\n }\n\n return path\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n return new RegExp('(?:' + parts.join('|') + ')', flags(options))\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n options = options || {}\n\n var strict = options.strict\n var start = options.start !== false\n var end = options.end !== false\n var delimiter = options.delimiter || DEFAULT_DELIMITER\n var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|')\n var route = start ? '^' : ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var capture = token.repeat\n ? '(?:' + token.pattern + ')(?:' + escapeString(token.delimiter) + '(?:' + token.pattern + '))*'\n : token.pattern\n\n if (keys) keys.push(token)\n\n if (token.optional) {\n if (!token.prefix) {\n route += '(' + capture + ')?'\n } else {\n route += '(?:' + escapeString(token.prefix) + '(' + capture + '))?'\n }\n } else {\n route += escapeString(token.prefix) + '(' + capture + ')'\n }\n }\n }\n\n if (end) {\n if (!strict) route += '(?:' + escapeString(delimiter) + ')?'\n\n route += endsWith === '$' ? '$' : '(?=' + endsWith + ')'\n } else {\n var endToken = tokens[tokens.length - 1]\n var isEndDelimited = typeof endToken === 'string'\n ? endToken[endToken.length - 1] === delimiter\n : endToken === undefined\n\n if (!strict) route += '(?:' + escapeString(delimiter) + '(?=' + endsWith + '))?'\n if (!isEndDelimited) route += '(?=' + escapeString(delimiter) + '|' + endsWith + ')'\n }\n\n return new RegExp(route, flags(options))\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (path instanceof RegExp) {\n return regexpToRegexp(path, keys)\n }\n\n if (Array.isArray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), keys, options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), keys, options)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/path-to-regexp/index.js","var map = {\n\t\"./en/class.md\": [\n\t\t39,\n\t\t29\n\t],\n\t\"./en/css.md\": [\n\t\t40,\n\t\t28\n\t],\n\t\"./en/event.md\": [\n\t\t41,\n\t\t27\n\t],\n\t\"./en/installation.md\": [\n\t\t42,\n\t\t26\n\t],\n\t\"./en/introduction.md\": [\n\t\t43,\n\t\t25\n\t],\n\t\"./en/jsx.md\": [\n\t\t44,\n\t\t24\n\t],\n\t\"./en/lifecycle.md\": [\n\t\t45,\n\t\t23\n\t],\n\t\"./en/omiu.md\": [\n\t\t46,\n\t\t22\n\t],\n\t\"./en/other.md\": [\n\t\t47,\n\t\t21\n\t],\n\t\"./en/props.md\": [\n\t\t48,\n\t\t20\n\t],\n\t\"./en/ref.md\": [\n\t\t49,\n\t\t19\n\t],\n\t\"./en/router.md\": [\n\t\t50,\n\t\t18\n\t],\n\t\"./en/ssr.md\": [\n\t\t51,\n\t\t17\n\t],\n\t\"./en/store.md\": [\n\t\t52,\n\t\t16\n\t],\n\t\"./zh-cn/class.md\": [\n\t\t53,\n\t\t15\n\t],\n\t\"./zh-cn/css.md\": [\n\t\t54,\n\t\t14\n\t],\n\t\"./zh-cn/event.md\": [\n\t\t55,\n\t\t13\n\t],\n\t\"./zh-cn/installation.md\": [\n\t\t56,\n\t\t12\n\t],\n\t\"./zh-cn/introduction.md\": [\n\t\t57,\n\t\t11\n\t],\n\t\"./zh-cn/jsx.md\": [\n\t\t58,\n\t\t10\n\t],\n\t\"./zh-cn/lifecycle.md\": [\n\t\t59,\n\t\t9\n\t],\n\t\"./zh-cn/mps.md\": [\n\t\t60,\n\t\t8\n\t],\n\t\"./zh-cn/omip.md\": [\n\t\t61,\n\t\t7\n\t],\n\t\"./zh-cn/omiu.md\": [\n\t\t62,\n\t\t6\n\t],\n\t\"./zh-cn/other.md\": [\n\t\t63,\n\t\t5\n\t],\n\t\"./zh-cn/props.md\": [\n\t\t64,\n\t\t4\n\t],\n\t\"./zh-cn/ref.md\": [\n\t\t65,\n\t\t3\n\t],\n\t\"./zh-cn/router.md\": [\n\t\t66,\n\t\t2\n\t],\n\t\"./zh-cn/ssr.md\": [\n\t\t67,\n\t\t1\n\t],\n\t\"./zh-cn/store.md\": [\n\t\t68,\n\t\t0\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids)\n\t\treturn Promise.reject(new Error(\"Cannot find module '\" + req + \"'.\"));\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(ids[0]);\n\t});\n};\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 38;\nmodule.exports = webpackAsyncContext;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs lazy ^\\.\\/.*\\.md$\n// module id = 38\n// module chunks = 30 31","import { render } from 'omi'\nimport './assets/index.css'\nimport './elements/my-frame.js'\nimport Store from './store'\n\nrender(, '#root', new Store({ lan: 'zh-cn' }))\n\n\n\n// WEBPACK FOOTER //\n// ./src/cn.js"],"sourceRoot":""} \ No newline at end of file diff --git a/site/docs/static/js/index.6a68a9f7.js b/site/docs/static/js/index.2000b09a.js similarity index 99% rename from site/docs/static/js/index.6a68a9f7.js rename to site/docs/static/js/index.2000b09a.js index 0e4db99b2..46b960e96 100644 --- a/site/docs/static/js/index.6a68a9f7.js +++ b/site/docs/static/js/index.2000b09a.js @@ -1,2 +1,2 @@ -!function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n=window.webpackJsonp;window.webpackJsonp=function(t,r,i){for(var a,s,u=0,c=[];u2;)Ee.push(arguments[a]);for(t&&null!=t.children&&(Ee.length||Ee.push(t.children),delete t.children);Ee.length;)if((o=Ee.pop())&&void 0!==o.pop)for(a=o.length;a--;)Ee.push(o[a]);else"boolean"===typeof o&&(o=null),(i="function"!==typeof e)&&(null==o?o="":"number"===typeof o?o=String(o):"string"!==typeof o&&(i=!1)),i&&r?s[s.length-1]+=o:s===je?s=[o]:s.push(o),r=i;var u=new n;return u.nodeName=e,u.children=s,u.attributes=null==t?void 0:t,u.key=null==t?void 0:t.key,void 0!==Oe.vnode&&Oe.vnode(u),u}function o(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function i(e,t){for(var n,r,i=o(e),a=1;a2?[].slice.call(arguments,2):e.children)}function d(e){1==Ue.push(e)&&(Oe.debounceRendering||Be)(h)}function h(){for(var e;e=Ue.pop();)X(e)}function y(e,t,n){if("string"===typeof t||"number"===typeof t)return void 0!==e.splitText;if("string"===typeof t.nodeName){var r=Ie[t.nodeName];return r?n||e._componentConstructor===r:!e._componentConstructor&&m(e,t.nodeName)}return n||e._componentConstructor===t.nodeName}function m(e,t){return e.normalizedNodeName===t||e.nodeName.toLowerCase()===t.toLowerCase()}function b(e){var t=a({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===t[r]&&(t[r]=n[r]);return t}function v(e,t){var n=t?Oe.doc.createElementNS("http://www.w3.org/2000/svg",e):Oe.doc.createElement(e);return n.normalizedNodeName=e,n}function g(e){for(var t=e.replace(/\/\*(.|\s)*?\*\//g," ").replace(/\s+/g," "),n={},r=t.match(/ ?(.*?) ?{([^}]*)}/)||[o,i,t],o=r[0],i=r[1],a=r[2],s=a.split(";").map(function(e){return e.split(":").map(function(e){return e&&e.trim()})}),u=s,u=Array.isArray(u),u=0,u=u||u[Symbol.iterator]();;){var c;if(u){if(u>=u.length)break;c=u[u++]}else{if(u=u.next(),u.done)break;c=u.value}var l=c,f=l[0],p=l[1];n[function(e){return e.replace(/\W+\w/g,function(e){return e.slice(-1).toUpperCase()})}(f)]=p}return n}function w(e){var t=e.parentNode;t&&t.removeChild(e)}function A(e,t,n,r,o){if("className"===t&&(t="class"),"key"===t);else if("ref"===t)s(n,null),s(r,e);else if("class"!==t||o)if("style"===t)if(Oe.isWeb){if(r&&"string"!==typeof r&&"string"!==typeof n||(e.style.cssText=r||""),r&&"object"===("undefined"===typeof r?"undefined":_e(r))){if("string"!==typeof n)for(var i in n)i in r||(e.style[i]="");for(var i in r)e.style[i]="number"===typeof r[i]&&!1===Me.test(i)?r[i]+"px":r[i]}}else{var a=n,u=r;"string"===typeof n&&(a=g(n)),"string"==typeof r&&(u=g(r));var c={},l=!1;if(a){for(var f in a)"object"!=("undefined"===typeof u?"undefined":_e(u))||f in u||(c[f]="",l=!0);for(var p in u)u[p]!==a[p]&&(c[p]=u[p],l=!0);l&&e.setStyles(c)}else e.setStyles(u)}else if("dangerouslySetInnerHTML"===t)r&&(e.innerHTML=r.__html||"");else if("o"==t[0]&&"n"==t[1]){var d=t!==(t=t.replace(/Capture$/,""));t=t.toLowerCase().substring(2),r?n||(e.addEventListener(t,_,d),"tap"==t&&(e.addEventListener("touchstart",O,d),e.addEventListener("touchend",E,d))):(e.removeEventListener(t,_,d),"tap"==t&&(e.removeEventListener("touchstart",O,d),e.removeEventListener("touchend",E,d))),(e._listeners||(e._listeners={}))[t]=r}else if("list"!==t&&"type"!==t&&!o&&t in e)x(e,t,null==r?"":r),null!=r&&!1!==r||e.removeAttribute(t);else{var h=o&&t!==(t=t.replace(/^xlink:?/,""));null==r||!1===r?h?e.removeAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase()):e.removeAttribute(t):"function"!==typeof r&&(h?e.setAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase(),r):e.setAttribute(t,r))}else e.className=r||""}function x(e,t,n){try{e[t]=n}catch(e){}}function _(e){return this._listeners[e.type](Oe.event&&Oe.event(e)||e)}function O(e){this.___touchX=e.touches[0].pageX,this.___touchY=e.touches[0].pageY,this.___scrollTop=document.body.scrollTop}function E(e){Math.abs(e.changedTouches[0].pageX-this.___touchX)<30&&Math.abs(e.changedTouches[0].pageY-this.___touchY)<30&&Math.abs(document.body.scrollTop-this.___scrollTop)<30&&this.dispatchEvent(new CustomEvent("tap",{detail:e}))}function j(e){for(var t=0,n=Oe.styleCache.length;t0||t.children.length>0)return!0;for(n in t)if("children"!=n){var r=_e(t[n]);if("function"==r||"object"==r)return!0;if(t[n]!=e[n])return!0}}function X(e,t,n,r){if(!e._disable){var o,i,s,u=e.props,c=e.data,l=e.context,f=e.prevProps||u,p=e.prevState||c,d=e.prevContext||l,h=e.base,y=e.nextBase,m=h||y,v=e._component,g=!1;if(h&&(e.props=f,e.data=p,e.context=d,e.store||2==t||W(f,u)?(g=!1,e.beforeUpdate&&e.beforeUpdate(u,c,l)):g=!0,e.props=u,e.data=c,e.context=l),e.prevProps=e.prevState=e.prevContext=e.nextBase=null,!g){e.beforeRender&&e.beforeRender(),o=e.render(u,c,l),(e.constructor.css||e.css)&&k(o,"_s"+j(e.constructor)),R(o,e.scopedCssAttr),e.getChildContext&&(l=a(a({},l),e.getChildContext()));var w,A,x=o&&o.nodeName,_=Oe.mapping[x];if(_){var O=b(o);i=v,i&&i.constructor===_&&O.key==i.__key?Q(i,O,1,l,!1):(w=i,e._component=i=H(_,O,l),i.nextBase=i.nextBase||y,i._parentComponent=e,Q(i,O,0,l,!1),X(i,1,n,!0)),A=i.base}else s=m,w=v,w&&(s=e._component=null),(m||1===t)&&(s&&(s._component=null),A=M(s,o,l,n||!h,m&&m.parentNode,!0));if(m&&A!==m&&i!==v){var E=m.parentNode;E&&A!==E&&(E.replaceChild(A,m),w||(m._component=null,L(m,!1)))}if(w&&J(w),e.base=A,A&&!r){for(var S=e,C=e;C=C._parentComponent;)(S=C).base=A;A._component=S,A._componentConstructor=S.constructor}}if(!h||n?ze.unshift(e):g||(e.afterUpdate&&e.afterUpdate(f,p,d),e.updated&&e.updated(f,p,d),Oe.afterUpdate&&Oe.afterUpdate(e)),null!=e._renderCallbacks)for(;e._renderCallbacks.length;)e._renderCallbacks.pop().call(e);De||r||B()}}function q(e,t,n,r){for(var o=e&&e._component,i=o,a=e,s=o&&e._componentConstructor===t.nodeName,u=s,c=b(t);o&&!u&&(o=o._parentComponent);)u=o.constructor===t.nodeName;return o&&u&&(!r||o._component)?(Q(o,c,3,n,r),e=o.base):(i&&!s&&(J(i),e=a=null),o=H(t.nodeName,c,n,t),e&&!o.nextBase&&(o.nextBase=e,a=null),Q(o,c,1,n,r),e=o.base,a&&e!==a&&(a._component=null,L(a,!1))),e}function J(e){Oe.beforeUnmount&&Oe.beforeUnmount(e);var t=e.base;if(e._disable=!0,e.uninstall&&e.uninstall(),e.store&&e.store.instances)for(var n=0,r=e.store.instances.length;n0&&(this.instances.forEach(function(o){(r||n.updateAll||o.constructor.updatePath&&te(t,o.constructor.updatePath))&&(o.use=l(e.data,o.constructor.use),o.update())}),this.onChange&&this.onChange(t))}}function ee(e,t){if(!e)return!1;for(var n in t){if(e.indexOf(n)>-1)return!0;for(var r=0,o=e.length;r0)return{class:he.apply(null,n)}}function me(e){var t=e.base;if(t)for(;t.parentNode;){if(t.parentNode._component)return t.parentNode._component;t=t.parentNode}}function be(e){var t="";for(var n in e){var r=e[n];null!=r&&(t&&(t+=" "),t+=nt[n]||(nt[n]=n.replace(/([A-Z])/g,"-$1").toLowerCase()),t+=": ",t+=r,"number"===typeof r&&!1===IS_NON_DIMENSIONAL.test(n)&&(t+="px"),t+=";")}return t||void 0}function ve(e,t,n,r){n=n||{},t=Object.assign({scopedCSS:!0},t);var o={},i=ge(e,t,n,r,o);return{css:Object.values(o),html:i}}function ge(e,t,n,r,o){if(null==e||"boolean"===typeof e)return"";var i=e.nodeName,a=e.attributes,s=!1,u=t.pretty,c=u&&"string"===typeof u?u:"\t";if("object"!==("undefined"===typeof e?"undefined":_e(e))&&!i)return Ze(e);var l=Ke[i];if(l){s=!0;var f,p=Ae(e),d=new l(p,n);if(d._disable=d.__x=!0,d.props=p,d.store=n,d.install&&d.install(),d.beforeRender&&d.beforeRender(),f=d.render(d.props,d.data,d.store),t.scopedCSS){if(d.constructor.css||d.css){var h=d.constructor.css?d.constructor.css:"function"===typeof d.css?d.css():d.css,y="_s"+j(d.constructor);o[y]='",k(f,"_s"+j(d.constructor))}d.scopedCSSAttr=e.css,R(f,d.scopedCSSAttr)}return ge(f,t,n,!1,o)}var m,b="";if(a){var v=Object.keys(a);t&&!0===t.sortAttributes&&v.sort();for(var g=0;g]/)&&(t&&t.allAttributes||"key"!==w&&"ref"!==w))){if("className"===w){if(a.class)continue;w="class"}else r&&w.match(/^xlink:?./)&&(w=w.toLowerCase().replace(/^xlink:?/,"xlink:"));"style"===w&&A&&"object"===("undefined"===typeof A?"undefined":_e(A))&&(A=be(A));var x=t.attributeHook&&t.attributeHook(w,A,n,t,s);if(x||""===x)b+=x;else if("dangerouslySetInnerHTML"===w)m=A&&A.__html;else if((A||0===A||""===A)&&"function"!==typeof A){if((!0===A||""===A)&&(A=w,!t||!t.xml)){b+=" "+w;continue}b+=" "+w+'="'+Ze(A)+'"'}}}}if(u){var _=b.replace(/^\n\s*/," ");_===b||~_.indexOf("\n")?u&&~b.indexOf("\n")&&(b+="\n"):b=_}if(b="<"+i+b+">",String(i).match(/[\s\n\\\/='"\0<>]/))throw b;var O=String(i).match(et);O&&(b=b.replace(/>$/," />"));var E=[];if(m)u&&tt(m)&&(m="\n"+c+Ye(m,c)),b+=m;else if(e.children){for(var C=u&&~b.indexOf("\n"),g=0;g";return O||(u&&~b.indexOf("\n")&&(b+="\n"),b+=""),b}function we(e,t){for(var n in t)e[n]=t[n];return e}function Ae(e){var t=we({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===t[r]&&(t[r]=n[r]);return t}function xe(){return{}}Object.defineProperty(t,"__esModule",{value:!0});var _e="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Oe={scopedStyle:!0,mapping:{},isWeb:!0,staticStyleMapping:{},doc:"object"===("undefined"===typeof document?"undefined":_e(document))?document:null,root:function(){return"object"===("undefined"===typeof e?"undefined":_e(e))&&e&&e.Math===Math&&e.Array===Array?e:"undefined"!==typeof self?self:"undefined"!==typeof window?window:"undefined"!==typeof e?e:function(){return this}()}(),styleCache:[]},Ee=[],je=[],Se=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable;if("undefined"!==typeof Element&&!Element.prototype.addEventListener){var ke=function(e){e||(e=window.event);for(var t=0,n=0,r=Te[e.type];n8&&(Ne=!0)}var Be=Ne?Promise.resolve().then.bind(Promise.resolve()):setTimeout,Me=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,Ue=[],Ie=Oe.mapping,Le=0,ze=[],De=0,Fe=!1,He=!1,$e={},Ve=function e(t,n,r){var o=function(t,n,r){t.$observer||(t.$observer=this);var o=t.$observer,i=[];e.isArray(t)&&(0===t.length&&(t.$observeProps={},t.$observeProps.$observerPath="#"),o.mock(t));for(var a in t)t.hasOwnProperty(a)&&(r?e.isArray(n)&&e.isInArray(n,a)?(i.push(a),o.watch(t,a)):e.isString(n)&&a==n&&(i.push(a),o.watch(t,a)):(i.push(a),o.watch(t,a)));o.target=t,o.propertyChangedHandler||(o.propertyChangedHandler=[]);var s=r||n;o.propertyChangedHandler.push({all:!r,propChanged:s,eventPropArr:i})};return o.prototype={onPropertyChanged:function(t,n,r,o,i){if(n!==r&&this.propertyChangedHandler)for(var a=e._getRootName(t,i),s=0,u=this.propertyChangedHandler.length;s-1;)if(t===e[n])return!0;return!1},Ve.isFunction=function(e){return"[object Function]"==Object.prototype.toString.call(e)},Ve._getRootName=function(e,t){return"#"===t?e:t.split("-")[1]},Ve.add=function(e,t){e.$observer.watch(e,t)},Ve.set=function(e,t,n,r){r||(e[t]=n),e.$observer.watch(e,t),r&&(e[t]=n)},Array.prototype.size=function(e){this.length=e};var Ge=[],Qe=[],We=0,Xe=function(){function e(t,n){Z(this,e),this.props=i(c(this.constructor.props),this.constructor.defaultProps,t),this.elementId=We++,this.data=this.constructor.data||this.data||{},this._preCss=null,this.store=n}return e.prototype.update=function(e){this._willUpdate=!0,e&&(this._renderCallbacks=this._renderCallbacks||[]).push(e),X(this,2),Oe.componentChange&&Oe.componentChange(this,this.base),this._willUpdate=!1},e.prototype.fire=function(e,t){var n=this;Object.keys(this.props).every(function(r){return"on"+e.toLowerCase()!==r.toLowerCase()||(n.props[r]({detail:t}),!1)})},e.prototype.render=function(){},e}();Xe.is="WeElement";var qe=function(e){function t(){return fe(this,t),pe(this,e.apply(this,arguments))}return de(t,e),t.prototype.beforeInstall=function(){this.data=this.vm.data},t}(Xe);qe.observe=!0,qe.mergeUpdate=!0;var Je={}.hasOwnProperty,Ze=function(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""")},Ye=function(e,t){return String(e).replace(/(\n+)/g,"$1"+(t||"\t"))},Ke=Oe.mapping,et=/^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/,tt=function(e,t,n){return String(e).length>(t||40)||!n&&-1!==String(e).indexOf("\n")||-1!==String(e).indexOf("<")},nt={},rt=Xe,ot=oe;Oe.root.Omi={h:r,createElement:r,cloneElement:p,createRef:xe,Component:Xe,render:Y,rerender:h,options:Oe,WeElement:rt,define:oe,rpx:le,ModelView:qe,defineElement:ot,classNames:he,extractClass:ye,getHost:me,renderToString:ve},Oe.root.omi=Oe.root.Omi,Oe.root.Omi.version="omio-2.0.5";var it={h:r,createElement:r,cloneElement:p,createRef:xe,Component:Xe,render:Y,rerender:h,options:Oe,WeElement:rt,define:oe,rpx:le,ModelView:qe,defineElement:ot,classNames:he,extractClass:ye,getHost:me,renderToString:ve};t.default=it,t.h=r,t.createElement=r,t.cloneElement=p,t.createRef=xe,t.Component=Xe,t.render=Y,t.rerender=h,t.options=Oe,t.WeElement=rt,t.define=oe,t.rpx=le,t.ModelView=qe,t.defineElement=ot,t.classNames=he,t.extractClass=ye,t.getHost=me,t.renderToString=ve}).call(t,n(2))},function(e,t,n){"use strict";function r(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"===typeof btoa){var i=o(r);return[n].concat(r.sources.map(function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"})).concat([i]).join("\n")}return[n].join("\n")}function o(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=r(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n}).join("")},t.i=function(e,n){"string"===typeof e&&(e=[[null,e,""]]);for(var r={},o=0;oc){for(var t=0,n=a.length-u;t-1?t:e}function d(e,t){t=t||{};var n=t.body;if(e instanceof d){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new o(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new o(t.headers)),this.method=p(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function h(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function y(e){var t=new o;return e.split(/\r?\n/).forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}}),t}function m(e,t){t||(t={}),this.type="default",this.status="status"in t?t.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new o(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){var b={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(b.arrayBuffer)var v=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],g=function(e){return e&&DataView.prototype.isPrototypeOf(e)},w=ArrayBuffer.isView||function(e){return e&&v.indexOf(Object.prototype.toString.call(e))>-1};o.prototype.append=function(e,r){e=t(e),r=n(r);var o=this.map[e];this.map[e]=o?o+","+r:r},o.prototype.delete=function(e){delete this.map[t(e)]},o.prototype.get=function(e){return e=t(e),this.has(e)?this.map[e]:null},o.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},o.prototype.set=function(e,r){this.map[t(e)]=n(r)},o.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},o.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),r(e)},o.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),r(e)},o.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),r(e)},b.iterable&&(o.prototype[Symbol.iterator]=o.prototype.entries);var A=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];d.prototype.clone=function(){return new d(this,{body:this._bodyInit})},f.call(d.prototype),f.call(m.prototype),m.prototype.clone=function(){return new m(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new o(this.headers),url:this.url})},m.error=function(){var e=new m(null,{status:0,statusText:""});return e.type="error",e};var x=[301,302,303,307,308];m.redirect=function(e,t){if(-1===x.indexOf(t))throw new RangeError("Invalid status code");return new m(null,{status:t,headers:{location:e}})},e.Headers=o,e.Request=d,e.Response=m,e.fetch=function(e,t){return new Promise(function(n,r){var o=new d(e,t),i=new XMLHttpRequest;i.onload=function(){var e={status:i.status,statusText:i.statusText,headers:y(i.getAllResponseHeaders()||"")};e.url="responseURL"in i?i.responseURL:e.headers.get("X-Request-URL");var t="response"in i?i.response:i.responseText;n(new m(t,e))},i.onerror=function(){r(new TypeError("Network request failed"))},i.ontimeout=function(){r(new TypeError("Network request failed"))},i.open(o.method,o.url,!0),"include"===o.credentials&&(i.withCredentials=!0),"responseType"in i&&b.blob&&(i.responseType="blob"),o.headers.forEach(function(e,t){i.setRequestHeader(t,e)}),i.send("undefined"===typeof o._bodyInit?null:o._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!==typeof self?self:void 0)},function(e,t,n){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}var o=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,s,u=r(e),c=1;c0)return!1;return!0}},{key:"render",value:function(){if(this.demo)return Omi.h("div",null,this.show&&Omi.h("iframe",{style:"height:"+(window.innerHeight-59)+"px",src:this.demo}),!this.show&&Omi.h("div",{class:"switch code",onClick:this.onShow},Omi.h("img",{src:n(32)})),this.show&&Omi.h("div",{class:"switch close",onClick:this.onClose},Omi.h("img",{src:n(33)})))}}]),t}(s.WeElement))},function(e,t,n){var r=n(31);e.exports="string"===typeof r?r:r.toString()},function(e,t,n){t=e.exports=n(1)(void 0),t.push([e.i,"iframe{\n width: 750px;\n height: 100%;\n top: 60px;\n right: 0;\n position: fixed;\n border: none;\n z-index: 9999;\n border-left: 2px solid #24292E; \n}\n\n.switch{\n width: 40px;\n height: 40px;\n background-color: #AA0000;\n border-radius: 50%;\n position: fixed;\n right: 50px;\n bottom: 50px;\n cursor: pointer;\n text-align: center;\n z-index: 10000;\n}\n\n.switch img{\n width: 30px;\n height: 30px;\n margin-top:5px; \n}\n\n.switch.close img{\n margin-top:10px; \n width: 20px;\n height: 20px;\n}\n\n\n@media only screen and (max-width: 768px) {\n iframe{\n width: 100%;\n }\n}\n",""])},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC"},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg=="},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n768};var o=0;this.map={},this.positionMap={},a.default.menus[this.data.lan].forEach(function(e,t){e.list.forEach(function(e,r){e.id=o++,e.position=[t,r],n.map[e.id]=e,e.index=t,e.subIndex=r,n.positionMap[t+"-"+r]=e})}),this.preIndex=0,this.preSubIndex=0}return o(e,[{key:"getNext",value:function(){var e=this.positionMap[this.data.position.join("-")];if(e)return this.map[e.id+1]}},{key:"getPre",value:function(){var e=this.positionMap[this.data.position.join("-")];if(e)return this.map[e.id-1]}},{key:"init",value:function(){var e=this;this.remarkable=new Remarkable({html:!0}),""===location.hash&&(this.data.position=[0,0],this.getMarkDown(this.data.menus[this.data.lan][0].list[0].md,this.data.lan,function(t){e.data.html=e.remarkable.render(t)})),this.initRouter()}},{key:"toogleSidebar",value:function(){this.data.sideBarShow=!this.data.sideBarShow}},{key:"hideSidebar",value:function(){this.data.sideBarShow=!1}},{key:"initRouter",value:function(){var e=this,t=this.data.menus[this.data.lan];t.forEach(function(n){n.list.forEach(function(n){route("/"+n.md,function(r){t[e.preIndex].list[e.preSubIndex].selected=!1,e.preIndex=r.query.index,e.preSubIndex=r.query.subIndex,e.data.position=[Number(r.query.index),Number(r.query.subIndex)],e.data.sideBarShow=!1,e.getMarkDown(n.md,e.data.lan,function(t){e.data.html=e.remarkable.render(t),document.body.scrollTop=0,document.documentElement.scrollTop=0})})})})}},{key:"getMarkDown",value:function(e,t,r){n(38)("./"+t+"/"+e+".md").then(function(e){r(e)})}}]),e}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={menus:{"zh-cn":[{title:"Omi",list:[{name:"\u7b80\u4ecb",md:"introduction"},{name:"\u5b89\u88c5",md:"installation"}]},{title:"\u57fa\u7840\u6982\u5ff5",list:[{name:"JSX",md:"jsx"},{name:"Props",md:"props"},{name:"\u4e8b\u4ef6",md:"event"},{name:"\u751f\u547d\u5468\u671f",md:"lifecycle"},{name:"Ref",md:"ref"},{name:"Class",md:"class"},{name:"Store",md:"store"},{name:"CSS",md:"css"}]},{title:"\u5176\u4ed6",list:[{name:"\u751f\u6001\u4e0e\u4f8b\u5b50",md:"other"},{name:"Mps",md:"mps"},{name:"Omip \u591a\u7aef\u5f00\u53d1",md:"omip"},{name:"\u670d\u52a1\u7aef\u6e32\u67d3",md:"ssr"},{name:"\u8def\u7531",md:"router"},{name:"Omiu",md:"omiu"}]}],en:[{title:"Omi",list:[{name:"Introduction",md:"introduction"},{name:"Installation",md:"installation"}]},{title:"Base",list:[{name:"JSX",md:"jsx"},{name:"Props",md:"props"},{name:"Event",md:"event"},{name:"Lifecycle",md:"lifecycle"},{name:"Ref",md:"ref"},{name:"Class",md:"class"},{name:"Store",md:"store"},{name:"CSS",md:"css"}]},{title:"Other",list:[{name:"Ecosystem and examples",md:"other"},{name:"Server-Side Rendering",md:"ssr"},{name:"Router",md:"router"},{name:"Omiu",md:"omiu"}]}]}};t.default=r},function(e,t,n){"use strict";(function(e){function r(e){var t=!1;window.history.length!==l.historyLength||l.route._routeByTo||(t=!0),l.route._routeByTo=!1,l.historyLength=window.history.length;var n=!1;if("hashchange"===e.type&&l.route.before&&(n=!1===l.route.before(e)),!n){var r=window.location.hash.replace("#","");""===r&&(r="/");var i=!0;Object.keys(c).every(function(e){var n=r.split("?")[0].match(c[e].reg);if(n){var s=e.match(c[e].reg);return l.route.params=o(n,s),l.route.query=a(r),c[e].callback({params:l.route.params,query:a(r),data:l.route.data,byNative:t}),l.route.data=null,i=!1,!1}return!0}),i&&c["*"]&&c["*"].callback({byNative:t}),"hashchange"===e.type&&l.route.after&&l.route.after(e)}}function o(e,t){var n={};return e.forEach(function(e,r){r>0&&(n[t[r].replace(":","")]=e)}),n}function i(e,t){c[e]={callback:t,reg:u(e)}}function a(e){e=e.replace(/#.*$/,"");var t,n=e.split(/[?&]/).slice(1),r={};for(t=0;t-1)&&(b=_,u=u.slice(0,x))}u&&(r.push(u),u="",f=!1);var O="+"===A||"*"===A,E="?"===A||"*"===A,j=g||w,S=b||c;r.push({name:v||o++,prefix:b,delimiter:S,optional:E,repeat:O,pattern:j?s(j):"[^"+a(S===c?S:S+c)+"]+?"})}}return(u||i2;)Ee.push(arguments[a]);for(t&&null!=t.children&&(Ee.length||Ee.push(t.children),delete t.children);Ee.length;)if((o=Ee.pop())&&void 0!==o.pop)for(a=o.length;a--;)Ee.push(o[a]);else"boolean"===typeof o&&(o=null),(i="function"!==typeof e)&&(null==o?o="":"number"===typeof o?o=String(o):"string"!==typeof o&&(i=!1)),i&&r?s[s.length-1]+=o:s===je?s=[o]:s.push(o),r=i;var u=new n;return u.nodeName=e,u.children=s,u.attributes=null==t?void 0:t,u.key=null==t?void 0:t.key,void 0!==Oe.vnode&&Oe.vnode(u),u}function o(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function i(e,t){for(var n,r,i=o(e),a=1;a2?[].slice.call(arguments,2):e.children)}function d(e){1==Ue.push(e)&&(Oe.debounceRendering||Be)(h)}function h(){for(var e;e=Ue.pop();)X(e)}function y(e,t,n){if("string"===typeof t||"number"===typeof t)return void 0!==e.splitText;if("string"===typeof t.nodeName){var r=Ie[t.nodeName];return r?n||e._componentConstructor===r:!e._componentConstructor&&m(e,t.nodeName)}return n||e._componentConstructor===t.nodeName}function m(e,t){return e.normalizedNodeName===t||e.nodeName.toLowerCase()===t.toLowerCase()}function b(e){var t=a({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===t[r]&&(t[r]=n[r]);return t}function v(e,t){var n=t?Oe.doc.createElementNS("http://www.w3.org/2000/svg",e):Oe.doc.createElement(e);return n.normalizedNodeName=e,n}function g(e){for(var t=e.replace(/\/\*(.|\s)*?\*\//g," ").replace(/\s+/g," "),n={},r=t.match(/ ?(.*?) ?{([^}]*)}/)||[o,i,t],o=r[0],i=r[1],a=r[2],s=a.split(";").map(function(e){return e.split(":").map(function(e){return e&&e.trim()})}),u=s,u=Array.isArray(u),u=0,u=u||u[Symbol.iterator]();;){var c;if(u){if(u>=u.length)break;c=u[u++]}else{if(u=u.next(),u.done)break;c=u.value}var l=c,f=l[0],p=l[1];n[function(e){return e.replace(/\W+\w/g,function(e){return e.slice(-1).toUpperCase()})}(f)]=p}return n}function w(e){var t=e.parentNode;t&&t.removeChild(e)}function A(e,t,n,r,o){if("className"===t&&(t="class"),"key"===t);else if("ref"===t)s(n,null),s(r,e);else if("class"!==t||o)if("style"===t)if(Oe.isWeb){if(r&&"string"!==typeof r&&"string"!==typeof n||(e.style.cssText=r||""),r&&"object"===("undefined"===typeof r?"undefined":_e(r))){if("string"!==typeof n)for(var i in n)i in r||(e.style[i]="");for(var i in r)e.style[i]="number"===typeof r[i]&&!1===Me.test(i)?r[i]+"px":r[i]}}else{var a=n,u=r;"string"===typeof n&&(a=g(n)),"string"==typeof r&&(u=g(r));var c={},l=!1;if(a){for(var f in a)"object"!=("undefined"===typeof u?"undefined":_e(u))||f in u||(c[f]="",l=!0);for(var p in u)u[p]!==a[p]&&(c[p]=u[p],l=!0);l&&e.setStyles(c)}else e.setStyles(u)}else if("dangerouslySetInnerHTML"===t)r&&(e.innerHTML=r.__html||"");else if("o"==t[0]&&"n"==t[1]){var d=t!==(t=t.replace(/Capture$/,""));t=t.toLowerCase().substring(2),r?n||(e.addEventListener(t,_,d),"tap"==t&&(e.addEventListener("touchstart",O,d),e.addEventListener("touchend",E,d))):(e.removeEventListener(t,_,d),"tap"==t&&(e.removeEventListener("touchstart",O,d),e.removeEventListener("touchend",E,d))),(e._listeners||(e._listeners={}))[t]=r}else if("list"!==t&&"type"!==t&&!o&&t in e)x(e,t,null==r?"":r),null!=r&&!1!==r||e.removeAttribute(t);else{var h=o&&t!==(t=t.replace(/^xlink:?/,""));null==r||!1===r?h?e.removeAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase()):e.removeAttribute(t):"function"!==typeof r&&(h?e.setAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase(),r):e.setAttribute(t,r))}else e.className=r||""}function x(e,t,n){try{e[t]=n}catch(e){}}function _(e){return this._listeners[e.type](Oe.event&&Oe.event(e)||e)}function O(e){this.___touchX=e.touches[0].pageX,this.___touchY=e.touches[0].pageY,this.___scrollTop=document.body.scrollTop}function E(e){Math.abs(e.changedTouches[0].pageX-this.___touchX)<30&&Math.abs(e.changedTouches[0].pageY-this.___touchY)<30&&Math.abs(document.body.scrollTop-this.___scrollTop)<30&&this.dispatchEvent(new CustomEvent("tap",{detail:e}))}function j(e){for(var t=0,n=Oe.styleCache.length;t0||t.children.length>0)return!0;for(n in t)if("children"!=n){var r=_e(t[n]);if("function"==r||"object"==r)return!0;if(t[n]!=e[n])return!0}}function X(e,t,n,r){if(!e._disable){var o,i,s,u=e.props,c=e.data,l=e.context,f=e.prevProps||u,p=e.prevState||c,d=e.prevContext||l,h=e.base,y=e.nextBase,m=h||y,v=e._component,g=!1;if(h&&(e.props=f,e.data=p,e.context=d,e.store||2==t||W(f,u)?(g=!1,e.beforeUpdate&&e.beforeUpdate(u,c,l)):g=!0,e.props=u,e.data=c,e.context=l),e.prevProps=e.prevState=e.prevContext=e.nextBase=null,!g){e.beforeRender&&e.beforeRender(),o=e.render(u,c,l),(e.constructor.css||e.css)&&k(o,"_s"+j(e.constructor)),R(o,e.scopedCssAttr),e.getChildContext&&(l=a(a({},l),e.getChildContext()));var w,A,x=o&&o.nodeName,_=Oe.mapping[x];if(_){var O=b(o);i=v,i&&i.constructor===_&&O.key==i.__key?Q(i,O,1,l,!1):(w=i,e._component=i=H(_,O,l),i.nextBase=i.nextBase||y,i._parentComponent=e,Q(i,O,0,l,!1),X(i,1,n,!0)),A=i.base}else s=m,w=v,w&&(s=e._component=null),(m||1===t)&&(s&&(s._component=null),A=M(s,o,l,n||!h,m&&m.parentNode,!0));if(m&&A!==m&&i!==v){var E=m.parentNode;E&&A!==E&&(E.replaceChild(A,m),w||(m._component=null,L(m,!1)))}if(w&&J(w),e.base=A,A&&!r){for(var S=e,C=e;C=C._parentComponent;)(S=C).base=A;A._component=S,A._componentConstructor=S.constructor}}if(!h||n?ze.unshift(e):g||(e.afterUpdate&&e.afterUpdate(f,p,d),e.updated&&e.updated(f,p,d),Oe.afterUpdate&&Oe.afterUpdate(e)),null!=e._renderCallbacks)for(;e._renderCallbacks.length;)e._renderCallbacks.pop().call(e);De||r||B()}}function q(e,t,n,r){for(var o=e&&e._component,i=o,a=e,s=o&&e._componentConstructor===t.nodeName,u=s,c=b(t);o&&!u&&(o=o._parentComponent);)u=o.constructor===t.nodeName;return o&&u&&(!r||o._component)?(Q(o,c,3,n,r),e=o.base):(i&&!s&&(J(i),e=a=null),o=H(t.nodeName,c,n,t),e&&!o.nextBase&&(o.nextBase=e,a=null),Q(o,c,1,n,r),e=o.base,a&&e!==a&&(a._component=null,L(a,!1))),e}function J(e){Oe.beforeUnmount&&Oe.beforeUnmount(e);var t=e.base;if(e._disable=!0,e.uninstall&&e.uninstall(),e.store&&e.store.instances)for(var n=0,r=e.store.instances.length;n0&&(this.instances.forEach(function(o){(r||n.updateAll||o.constructor.updatePath&&te(t,o.constructor.updatePath))&&(o.use=l(e.data,o.constructor.use),o.update())}),this.onChange&&this.onChange(t))}}function ee(e,t){if(!e)return!1;for(var n in t){if(e.indexOf(n)>-1)return!0;for(var r=0,o=e.length;r0)return{class:he.apply(null,n)}}function me(e){var t=e.base;if(t)for(;t.parentNode;){if(t.parentNode._component)return t.parentNode._component;t=t.parentNode}}function be(e){var t="";for(var n in e){var r=e[n];null!=r&&(t&&(t+=" "),t+=nt[n]||(nt[n]=n.replace(/([A-Z])/g,"-$1").toLowerCase()),t+=": ",t+=r,"number"===typeof r&&!1===IS_NON_DIMENSIONAL.test(n)&&(t+="px"),t+=";")}return t||void 0}function ve(e,t,n,r){n=n||{},t=Object.assign({scopedCSS:!0},t);var o={},i=ge(e,t,n,r,o);return{css:Object.values(o),html:i}}function ge(e,t,n,r,o){if(null==e||"boolean"===typeof e)return"";var i=e.nodeName,a=e.attributes,s=!1,u=t.pretty,c=u&&"string"===typeof u?u:"\t";if("object"!==("undefined"===typeof e?"undefined":_e(e))&&!i)return Ze(e);var l=Ke[i];if(l){s=!0;var f,p=Ae(e),d=new l(p,n);if(d._disable=d.__x=!0,d.props=p,d.store=n,d.install&&d.install(),d.beforeRender&&d.beforeRender(),f=d.render(d.props,d.data,d.store),t.scopedCSS){if(d.constructor.css||d.css){var h=d.constructor.css?d.constructor.css:"function"===typeof d.css?d.css():d.css,y="_s"+j(d.constructor);o[y]='",k(f,"_s"+j(d.constructor))}d.scopedCSSAttr=e.css,R(f,d.scopedCSSAttr)}return ge(f,t,n,!1,o)}var m,b="";if(a){var v=Object.keys(a);t&&!0===t.sortAttributes&&v.sort();for(var g=0;g]/)&&(t&&t.allAttributes||"key"!==w&&"ref"!==w))){if("className"===w){if(a.class)continue;w="class"}else r&&w.match(/^xlink:?./)&&(w=w.toLowerCase().replace(/^xlink:?/,"xlink:"));"style"===w&&A&&"object"===("undefined"===typeof A?"undefined":_e(A))&&(A=be(A));var x=t.attributeHook&&t.attributeHook(w,A,n,t,s);if(x||""===x)b+=x;else if("dangerouslySetInnerHTML"===w)m=A&&A.__html;else if((A||0===A||""===A)&&"function"!==typeof A){if((!0===A||""===A)&&(A=w,!t||!t.xml)){b+=" "+w;continue}b+=" "+w+'="'+Ze(A)+'"'}}}}if(u){var _=b.replace(/^\n\s*/," ");_===b||~_.indexOf("\n")?u&&~b.indexOf("\n")&&(b+="\n"):b=_}if(b="<"+i+b+">",String(i).match(/[\s\n\\\/='"\0<>]/))throw b;var O=String(i).match(et);O&&(b=b.replace(/>$/," />"));var E=[];if(m)u&&tt(m)&&(m="\n"+c+Ye(m,c)),b+=m;else if(e.children){for(var C=u&&~b.indexOf("\n"),g=0;g";return O||(u&&~b.indexOf("\n")&&(b+="\n"),b+=""),b}function we(e,t){for(var n in t)e[n]=t[n];return e}function Ae(e){var t=we({},e.attributes);t.children=e.children;var n=e.nodeName.defaultProps;if(void 0!==n)for(var r in n)void 0===t[r]&&(t[r]=n[r]);return t}function xe(){return{}}Object.defineProperty(t,"__esModule",{value:!0});var _e="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Oe={scopedStyle:!0,mapping:{},isWeb:!0,staticStyleMapping:{},doc:"object"===("undefined"===typeof document?"undefined":_e(document))?document:null,root:function(){return"object"===("undefined"===typeof e?"undefined":_e(e))&&e&&e.Math===Math&&e.Array===Array?e:"undefined"!==typeof self?self:"undefined"!==typeof window?window:"undefined"!==typeof e?e:function(){return this}()}(),styleCache:[]},Ee=[],je=[],Se=Object.getOwnPropertySymbols,Ce=Object.prototype.hasOwnProperty,Pe=Object.prototype.propertyIsEnumerable;if("undefined"!==typeof Element&&!Element.prototype.addEventListener){var ke=function(e){e||(e=window.event);for(var t=0,n=0,r=Te[e.type];n8&&(Ne=!0)}var Be=Ne?Promise.resolve().then.bind(Promise.resolve()):setTimeout,Me=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i,Ue=[],Ie=Oe.mapping,Le=0,ze=[],De=0,Fe=!1,He=!1,$e={},Ve=function e(t,n,r){var o=function(t,n,r){t.$observer||(t.$observer=this);var o=t.$observer,i=[];e.isArray(t)&&(0===t.length&&(t.$observeProps={},t.$observeProps.$observerPath="#"),o.mock(t));for(var a in t)t.hasOwnProperty(a)&&(r?e.isArray(n)&&e.isInArray(n,a)?(i.push(a),o.watch(t,a)):e.isString(n)&&a==n&&(i.push(a),o.watch(t,a)):(i.push(a),o.watch(t,a)));o.target=t,o.propertyChangedHandler||(o.propertyChangedHandler=[]);var s=r||n;o.propertyChangedHandler.push({all:!r,propChanged:s,eventPropArr:i})};return o.prototype={onPropertyChanged:function(t,n,r,o,i){if(n!==r&&this.propertyChangedHandler)for(var a=e._getRootName(t,i),s=0,u=this.propertyChangedHandler.length;s-1;)if(t===e[n])return!0;return!1},Ve.isFunction=function(e){return"[object Function]"==Object.prototype.toString.call(e)},Ve._getRootName=function(e,t){return"#"===t?e:t.split("-")[1]},Ve.add=function(e,t){e.$observer.watch(e,t)},Ve.set=function(e,t,n,r){r||(e[t]=n),e.$observer.watch(e,t),r&&(e[t]=n)},Array.prototype.size=function(e){this.length=e};var Ge=[],Qe=[],We=0,Xe=function(){function e(t,n){Z(this,e),this.props=i(c(this.constructor.props),this.constructor.defaultProps,t),this.elementId=We++,this.data=this.constructor.data||this.data||{},this._preCss=null,this.store=n}return e.prototype.update=function(e){this._willUpdate=!0,e&&(this._renderCallbacks=this._renderCallbacks||[]).push(e),X(this,2),Oe.componentChange&&Oe.componentChange(this,this.base),this._willUpdate=!1},e.prototype.fire=function(e,t){var n=this;Object.keys(this.props).every(function(r){return"on"+e.toLowerCase()!==r.toLowerCase()||(n.props[r]({detail:t}),!1)})},e.prototype.render=function(){},e}();Xe.is="WeElement";var qe=function(e){function t(){return fe(this,t),pe(this,e.apply(this,arguments))}return de(t,e),t.prototype.beforeInstall=function(){this.data=this.vm.data},t}(Xe);qe.observe=!0,qe.mergeUpdate=!0;var Je={}.hasOwnProperty,Ze=function(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""")},Ye=function(e,t){return String(e).replace(/(\n+)/g,"$1"+(t||"\t"))},Ke=Oe.mapping,et=/^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/,tt=function(e,t,n){return String(e).length>(t||40)||!n&&-1!==String(e).indexOf("\n")||-1!==String(e).indexOf("<")},nt={},rt=Xe,ot=oe;Oe.root.Omi={h:r,createElement:r,cloneElement:p,createRef:xe,Component:Xe,render:Y,rerender:h,options:Oe,WeElement:rt,define:oe,rpx:le,ModelView:qe,defineElement:ot,classNames:he,extractClass:ye,getHost:me,renderToString:ve},Oe.root.omi=Oe.root.Omi,Oe.root.Omi.version="omio-2.0.5";var it={h:r,createElement:r,cloneElement:p,createRef:xe,Component:Xe,render:Y,rerender:h,options:Oe,WeElement:rt,define:oe,rpx:le,ModelView:qe,defineElement:ot,classNames:he,extractClass:ye,getHost:me,renderToString:ve};t.default=it,t.h=r,t.createElement=r,t.cloneElement=p,t.createRef=xe,t.Component=Xe,t.render=Y,t.rerender=h,t.options=Oe,t.WeElement=rt,t.define=oe,t.rpx=le,t.ModelView=qe,t.defineElement=ot,t.classNames=he,t.extractClass=ye,t.getHost=me,t.renderToString=ve}).call(t,n(2))},function(e,t,n){"use strict";function r(e,t){var n=e[1]||"",r=e[3];if(!r)return n;if(t&&"function"===typeof btoa){var i=o(r);return[n].concat(r.sources.map(function(e){return"/*# sourceURL="+r.sourceRoot+e+" */"})).concat([i]).join("\n")}return[n].join("\n")}function o(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=r(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n}).join("")},t.i=function(e,n){"string"===typeof e&&(e=[[null,e,""]]);for(var r={},o=0;oc){for(var t=0,n=a.length-u;t-1?t:e}function d(e,t){t=t||{};var n=t.body;if(e instanceof d){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new o(e.headers)),this.method=e.method,this.mode=e.mode,n||null==e._bodyInit||(n=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new o(t.headers)),this.method=p(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&n)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(n)}function h(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var n=e.split("="),r=n.shift().replace(/\+/g," "),o=n.join("=").replace(/\+/g," ");t.append(decodeURIComponent(r),decodeURIComponent(o))}}),t}function y(e){var t=new o;return e.split(/\r?\n/).forEach(function(e){var n=e.split(":"),r=n.shift().trim();if(r){var o=n.join(":").trim();t.append(r,o)}}),t}function m(e,t){t||(t={}),this.type="default",this.status="status"in t?t.status:200,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new o(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){var b={searchParams:"URLSearchParams"in e,iterable:"Symbol"in e&&"iterator"in Symbol,blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e};if(b.arrayBuffer)var v=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],g=function(e){return e&&DataView.prototype.isPrototypeOf(e)},w=ArrayBuffer.isView||function(e){return e&&v.indexOf(Object.prototype.toString.call(e))>-1};o.prototype.append=function(e,r){e=t(e),r=n(r);var o=this.map[e];this.map[e]=o?o+","+r:r},o.prototype.delete=function(e){delete this.map[t(e)]},o.prototype.get=function(e){return e=t(e),this.has(e)?this.map[e]:null},o.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},o.prototype.set=function(e,r){this.map[t(e)]=n(r)},o.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},o.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),r(e)},o.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),r(e)},o.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),r(e)},b.iterable&&(o.prototype[Symbol.iterator]=o.prototype.entries);var A=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];d.prototype.clone=function(){return new d(this,{body:this._bodyInit})},f.call(d.prototype),f.call(m.prototype),m.prototype.clone=function(){return new m(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new o(this.headers),url:this.url})},m.error=function(){var e=new m(null,{status:0,statusText:""});return e.type="error",e};var x=[301,302,303,307,308];m.redirect=function(e,t){if(-1===x.indexOf(t))throw new RangeError("Invalid status code");return new m(null,{status:t,headers:{location:e}})},e.Headers=o,e.Request=d,e.Response=m,e.fetch=function(e,t){return new Promise(function(n,r){var o=new d(e,t),i=new XMLHttpRequest;i.onload=function(){var e={status:i.status,statusText:i.statusText,headers:y(i.getAllResponseHeaders()||"")};e.url="responseURL"in i?i.responseURL:e.headers.get("X-Request-URL");var t="response"in i?i.response:i.responseText;n(new m(t,e))},i.onerror=function(){r(new TypeError("Network request failed"))},i.ontimeout=function(){r(new TypeError("Network request failed"))},i.open(o.method,o.url,!0),"include"===o.credentials&&(i.withCredentials=!0),"responseType"in i&&b.blob&&(i.responseType="blob"),o.headers.forEach(function(e,t){i.setRequestHeader(t,e)}),i.send("undefined"===typeof o._bodyInit?null:o._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!==typeof self?self:void 0)},function(e,t,n){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}var o=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,s,u=r(e),c=1;c0)return!1;return!0}},{key:"render",value:function(){if(this.demo)return Omi.h("div",null,this.show&&Omi.h("iframe",{style:"height:"+(window.innerHeight-59)+"px",src:this.demo}),!this.show&&Omi.h("div",{class:"switch code",onClick:this.onShow},Omi.h("img",{src:n(32)})),this.show&&Omi.h("div",{class:"switch close",onClick:this.onClose},Omi.h("img",{src:n(33)})))}}]),t}(s.WeElement))},function(e,t,n){var r=n(31);e.exports="string"===typeof r?r:r.toString()},function(e,t,n){t=e.exports=n(1)(void 0),t.push([e.i,"iframe{\n width: 750px;\n height: 100%;\n top: 60px;\n right: 0;\n position: fixed;\n border: none;\n z-index: 9999;\n border-left: 2px solid #24292E; \n}\n\n.switch{\n width: 40px;\n height: 40px;\n background-color: #AA0000;\n border-radius: 50%;\n position: fixed;\n right: 50px;\n bottom: 50px;\n cursor: pointer;\n text-align: center;\n z-index: 10000;\n}\n\n.switch img{\n width: 30px;\n height: 30px;\n margin-top:5px; \n}\n\n.switch.close img{\n margin-top:10px; \n width: 20px;\n height: 20px;\n}\n\n\n@media only screen and (max-width: 768px) {\n iframe{\n width: 100%;\n }\n}\n",""])},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC"},function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg=="},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n768};var o=0;this.map={},this.positionMap={},a.default.menus[this.data.lan].forEach(function(e,t){e.list.forEach(function(e,r){e.id=o++,e.position=[t,r],n.map[e.id]=e,e.index=t,e.subIndex=r,n.positionMap[t+"-"+r]=e})}),this.preIndex=0,this.preSubIndex=0}return o(e,[{key:"getNext",value:function(){var e=this.positionMap[this.data.position.join("-")];if(e)return this.map[e.id+1]}},{key:"getPre",value:function(){var e=this.positionMap[this.data.position.join("-")];if(e)return this.map[e.id-1]}},{key:"init",value:function(){var e=this;this.remarkable=new Remarkable({html:!0}),""===location.hash&&(this.data.position=[0,0],this.getMarkDown(this.data.menus[this.data.lan][0].list[0].md,this.data.lan,function(t){e.data.html=e.remarkable.render(t)})),this.initRouter()}},{key:"toogleSidebar",value:function(){this.data.sideBarShow=!this.data.sideBarShow}},{key:"hideSidebar",value:function(){this.data.sideBarShow=!1}},{key:"initRouter",value:function(){var e=this,t=this.data.menus[this.data.lan];t.forEach(function(n){n.list.forEach(function(n){route("/"+n.md,function(r){t[e.preIndex].list[e.preSubIndex].selected=!1,e.preIndex=r.query.index,e.preSubIndex=r.query.subIndex,e.data.position=[Number(r.query.index),Number(r.query.subIndex)],e.data.sideBarShow=!1,e.getMarkDown(n.md,e.data.lan,function(t){e.data.html=e.remarkable.render(t),document.body.scrollTop=0,document.documentElement.scrollTop=0})})})})}},{key:"getMarkDown",value:function(e,t,r){n(38)("./"+t+"/"+e+".md").then(function(e){r(e)})}}]),e}();t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={menus:{"zh-cn":[{title:"Omi",list:[{name:"\u7b80\u4ecb",md:"introduction"},{name:"\u5b89\u88c5",md:"installation"}]},{title:"\u57fa\u7840\u6982\u5ff5",list:[{name:"JSX",md:"jsx"},{name:"Props",md:"props"},{name:"\u4e8b\u4ef6",md:"event"},{name:"\u751f\u547d\u5468\u671f",md:"lifecycle"},{name:"Ref",md:"ref"},{name:"Class",md:"class"},{name:"Store",md:"store"},{name:"CSS",md:"css"}]},{title:"\u5176\u4ed6",list:[{name:"\u751f\u6001\u4e0e\u4f8b\u5b50",md:"other"},{name:"Mps",md:"mps"},{name:"Omip \u591a\u7aef\u5f00\u53d1",md:"omip"},{name:"\u670d\u52a1\u7aef\u6e32\u67d3",md:"ssr"},{name:"\u8def\u7531",md:"router"},{name:"Omiu",md:"omiu"}]}],en:[{title:"Omi",list:[{name:"Introduction",md:"introduction"},{name:"Installation",md:"installation"}]},{title:"Base",list:[{name:"JSX",md:"jsx"},{name:"Props",md:"props"},{name:"Event",md:"event"},{name:"Lifecycle",md:"lifecycle"},{name:"Ref",md:"ref"},{name:"Class",md:"class"},{name:"Store",md:"store"},{name:"CSS",md:"css"}]},{title:"Other",list:[{name:"Ecosystem and examples",md:"other"},{name:"Server-Side Rendering",md:"ssr"},{name:"Router",md:"router"},{name:"Omiu",md:"omiu"}]}]}};t.default=r},function(e,t,n){"use strict";(function(e){function r(e){var t=!1;window.history.length!==l.historyLength||l.route._routeByTo||(t=!0),l.route._routeByTo=!1,l.historyLength=window.history.length;var n=!1;if("hashchange"===e.type&&l.route.before&&(n=!1===l.route.before(e)),!n){var r=window.location.hash.replace("#","");""===r&&(r="/");var i=!0;Object.keys(c).every(function(e){var n=r.split("?")[0].match(c[e].reg);if(n){var s=e.match(c[e].reg);return l.route.params=o(n,s),l.route.query=a(r),c[e].callback({params:l.route.params,query:a(r),data:l.route.data,byNative:t}),l.route.data=null,i=!1,!1}return!0}),i&&c["*"]&&c["*"].callback({byNative:t}),"hashchange"===e.type&&l.route.after&&l.route.after(e)}}function o(e,t){var n={};return e.forEach(function(e,r){r>0&&(n[t[r].replace(":","")]=e)}),n}function i(e,t){c[e]={callback:t,reg:u(e)}}function a(e){e=e.replace(/#.*$/,"");var t,n=e.split(/[?&]/).slice(1),r={};for(t=0;t-1)&&(b=_,u=u.slice(0,x))}u&&(r.push(u),u="",f=!1);var O="+"===A||"*"===A,E="?"===A||"*"===A,j=g||w,S=b||c;r.push({name:v||o++,prefix:b,delimiter:S,optional:E,repeat:O,pattern:j?s(j):"[^"+a(S===c?S:S+c)+"]+?"})}}return(u||iHello!`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */function h(nodeName,attributes){var children=EMPTY_CHILDREN,lastSimple,child,simple,i;for(i=arguments.length;i-->2;){stack.push(arguments[i]);}if(attributes&&attributes.children!=null){if(!stack.length)stack.push(attributes.children);delete attributes.children;}while(stack.length){if((child=stack.pop())&&child.pop!==undefined){for(i=child.length;i--;){stack.push(child[i]);}}else{if(typeof child==='boolean')child=null;if(simple=typeof nodeName!=='function'){if(child==null)child='';else if(typeof child==='number')child=String(child);else if(typeof child!=='string')simple=false;}if(simple&&lastSimple){children[children.length-1]+=child;}else if(children===EMPTY_CHILDREN){children=[child];}else{children.push(child);}lastSimple=simple;}}var p=new VNode();p.nodeName=nodeName;p.children=children;p.attributes=attributes==null?undefined:attributes;p.key=attributes==null?undefined:attributes.key;// if a \"vnode hook\" is defined, pass every created VNode to it\nif(options.vnode!==undefined)options.vnode(p);return p;}/* eslint-disable no-unused-vars */var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError('Object.assign cannot be called with null or undefined');}return Object(val);}function assign(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s8){usePromise=true;}}}var defer=usePromise?Promise.resolve().then.bind(Promise.resolve()):setTimeout;function isArray(obj){return Object.prototype.toString.call(obj)==='[object Array]';}function nProps(props){if(!props||isArray(props))return{};var result={};Object.keys(props).forEach(function(key){result[key]=props[key].value;});return result;}function getUse(data,paths){var obj=[];paths.forEach(function(path,index){var isPath=typeof path==='string';if(isPath){obj[index]=getTargetByPath(data,path);}else{var key=Object.keys(path)[0];var value=path[key];if(typeof value==='string'){obj[index]=getTargetByPath(data,value);}else{var tempPath=value[0];if(typeof tempPath==='string'){var tempVal=getTargetByPath(data,tempPath);obj[index]=value[1]?value[1](tempVal):tempVal;}else{var args=[];tempPath.forEach(function(path){args.push(getTargetByPath(data,path));});obj[index]=value[1].apply(null,args);}}obj[key]=obj[index];}});return obj;}function getTargetByPath(origin,path){var arr=path.replace(/]/g,'').replace(/\\[/g,'.').split('.');var current=origin;for(var i=0,len=arr.length;i2?[].slice.call(arguments,2):vnode.children);}// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL$1=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;/** Managed queue of dirty components to be re-rendered */var items=[];function enqueueRender(component){if(items.push(component)==1){(options.debounceRendering||defer)(rerender);}}/** Rerender all enqueued dirty components */function rerender(){var p;while(p=items.pop()){renderComponent(p);}}var mapping=options.mapping;/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hydrating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */function isSameNodeType(node,vnode,hydrating){if(typeof vnode==='string'||typeof vnode==='number'){return node.splitText!==undefined;}if(typeof vnode.nodeName==='string'){var ctor=mapping[vnode.nodeName];if(ctor){return hydrating||node._componentConstructor===ctor;}return!node._componentConstructor&&isNamedNode(node,vnode.nodeName);}return hydrating||node._componentConstructor===vnode.nodeName;}/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */function isNamedNode(node,nodeName){return node.normalizedNodeName===nodeName||node.nodeName.toLowerCase()===nodeName.toLowerCase();}/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n *\n * @param {VNode} vnode\n * @returns {Object} props\n */function getNodeProps(vnode){var props=extend({},vnode.attributes);props.children=vnode.children;var defaultProps=vnode.nodeName.defaultProps;if(defaultProps!==undefined){for(var i in defaultProps){if(props[i]===undefined){props[i]=defaultProps[i];}}}return props;}/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */function createNode(nodeName,isSvg){var node=isSvg?options.doc.createElementNS('http://www.w3.org/2000/svg',nodeName):options.doc.createElement(nodeName);node.normalizedNodeName=nodeName;return node;}function parseCSSText(cssText){var cssTxt=cssText.replace(/\\/\\*(.|\\s)*?\\*\\//g,' ').replace(/\\s+/g,' ');var style={},_ref=cssTxt.match(/ ?(.*?) ?{([^}]*)}/)||[a,b,cssTxt],a=_ref[0],b=_ref[1],rule=_ref[2];var cssToJs=function cssToJs(s){return s.replace(/\\W+\\w/g,function(match){return match.slice(-1).toUpperCase();});};var properties=rule.split(';').map(function(o){return o.split(':').map(function(x){return x&&x.trim();});});for(var i=properties,i=Array.isArray(i),i=0,i=i?i:i[Symbol.iterator]();;){var _ref3;if(i){if(i>=i.length)break;_ref3=i[i++];}else{i=i.next();if(i.done)break;_ref3=i.value;}var _ref2=_ref3;var property=_ref2[0];var value=_ref2[1];style[cssToJs(property)]=value;}return style;}/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */function removeNode(node){var parentNode=node.parentNode;if(parentNode)parentNode.removeChild(node);}/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */function setAccessor(node,name,old,value,isSvg){if(name==='className')name='class';if(name==='key'){// ignore\n}else if(name==='ref'){applyRef(old,null);applyRef(value,node);}else if(name==='class'&&!isSvg){node.className=value||'';}else if(name==='style'){if(options.isWeb){if(!value||typeof value==='string'||typeof old==='string'){node.style.cssText=value||'';}if(value&&(typeof value==='undefined'?'undefined':_typeof(value))==='object'){if(typeof old!=='string'){for(var i in old){if(!(i in value))node.style[i]='';}}for(var i in value){node.style[i]=typeof value[i]==='number'&&IS_NON_DIMENSIONAL$1.test(i)===false?value[i]+'px':value[i];}}}else{var oldJson=old,currentJson=value;if(typeof old==='string'){oldJson=parseCSSText(old);}if(typeof value=='string'){currentJson=parseCSSText(value);}var result={},changed=false;if(oldJson){for(var key in oldJson){if((typeof currentJson==='undefined'?'undefined':_typeof(currentJson))=='object'&&!(key in currentJson)){result[key]='';changed=true;}}for(var ckey in currentJson){if(currentJson[ckey]!==oldJson[ckey]){result[ckey]=currentJson[ckey];changed=true;}}if(changed){node.setStyles(result);}}else{node.setStyles(currentJson);}}}else if(name==='dangerouslySetInnerHTML'){if(value)node.innerHTML=value.__html||'';}else if(name[0]=='o'&&name[1]=='n'){var useCapture=name!==(name=name.replace(/Capture$/,''));name=name.toLowerCase().substring(2);if(value){if(!old){node.addEventListener(name,eventProxy,useCapture);if(name=='tap'){node.addEventListener('touchstart',touchStart,useCapture);node.addEventListener('touchend',touchEnd,useCapture);}}}else{node.removeEventListener(name,eventProxy,useCapture);if(name=='tap'){node.removeEventListener('touchstart',touchStart,useCapture);node.removeEventListener('touchend',touchEnd,useCapture);}}(node._listeners||(node._listeners={}))[name]=value;}else if(name!=='list'&&name!=='type'&&!isSvg&&name in node){setProperty(node,name,value==null?'':value);if(value==null||value===false)node.removeAttribute(name);}else{var ns=isSvg&&name!==(name=name.replace(/^xlink:?/,''));if(value==null||value===false){if(ns)node.removeAttributeNS('http://www.w3.org/1999/xlink',name.toLowerCase());else node.removeAttribute(name);}else if(typeof value!=='function'){if(ns)node.setAttributeNS('http://www.w3.org/1999/xlink',name.toLowerCase(),value);else node.setAttribute(name,value);}}}/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */function setProperty(node,name,value){try{node[name]=value;}catch(e){}}/** Proxy an event to hooked event handlers\n *\t@private\n */function eventProxy(e){return this._listeners[e.type](options.event&&options.event(e)||e);}function touchStart(e){this.___touchX=e.touches[0].pageX;this.___touchY=e.touches[0].pageY;this.___scrollTop=document.body.scrollTop;}function touchEnd(e){if(Math.abs(e.changedTouches[0].pageX-this.___touchX)<30&&Math.abs(e.changedTouches[0].pageY-this.___touchY)<30&&Math.abs(document.body.scrollTop-this.___scrollTop)<30){this.dispatchEvent(new CustomEvent('tap',{detail:e}));}}var styleId=0;function getCtorName(ctor){for(var i=0,len=options.styleCache.length;i-1;){if(item===arr[i])return true;}return false;};obaa.isFunction=function(obj){return Object.prototype.toString.call(obj)=='[object Function]';};obaa._getRootName=function(prop,path){if(path==='#'){return prop;}return path.split('-')[1];};obaa.add=function(obj,prop){var $observer=obj.$observer;$observer.watch(obj,prop);};obaa.set=function(obj,prop,value,exec){if(!exec){obj[prop]=value;}var $observer=obj.$observer;$observer.watch(obj,prop);if(exec){obj[prop]=value;}};Array.prototype.size=function(length){this.length=length;};var callbacks=[];var nextTickCallback=[];function fireTick(){callbacks.forEach(function(item){item.fn.call(item.scope);});nextTickCallback.forEach(function(nextItem){nextItem.fn.call(nextItem.scope);});nextTickCallback.length=0;}function proxyUpdate(ele){var timeout=null;obaa(ele.data,function(){if(ele._willUpdate){return;}if(ele.constructor.mergeUpdate){clearTimeout(timeout);timeout=setTimeout(function(){ele.update();fireTick();},0);}else{ele.update();fireTick();}});}/** Set a component's `props` (generally derived from JSX attributes).\n *\t@param {Object} props\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.renderSync=false]\tIf `true` and {@link options.syncComponentUpdates} is `true`, triggers synchronous rendering.\n *\t@param {boolean} [opts.render=true]\t\t\tIf `false`, no render will be triggered.\n */function setComponentProps(component,props,opts,context,mountAll){if(component._disable)return;component._disable=true;if(component.__ref=props.ref)delete props.ref;if(component.__key=props.key)delete props.key;if(!component.base||mountAll){if(component.beforeInstall)component.beforeInstall();if(component.install)component.install();if(component.constructor.observe){proxyUpdate(component);}}else if(component.receiveProps){component.receiveProps(props,component.data,component.props);}if(context&&context!==component.context){if(!component.prevContext)component.prevContext=component.context;component.context=context;}if(!component.prevProps)component.prevProps=component.props;component.props=props;component._disable=false;if(opts!==0){if(opts===1||options.syncComponentUpdates!==false||!component.base){renderComponent(component,1,mountAll);}else{enqueueRender(component);}}applyRef(component.__ref,component);}function shallowComparison(old,attrs){var name;for(name in old){if(attrs[name]==null&&old[name]!=null){return true;}}if(old.children.length>0||attrs.children.length>0){return true;}for(name in attrs){if(name!='children'){var type=_typeof(attrs[name]);if(type=='function'||type=='object'){return true;}else if(attrs[name]!=old[name]){return true;}}}}/** Render a Component, triggering necessary lifecycle events and taking High-Order Components into account.\n *\t@param {Component} component\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.build=false]\t\tIf `true`, component will build and store a DOM node if not already associated with one.\n *\t@private\n */function renderComponent(component,opts,mountAll,isChild){if(component._disable)return;var props=component.props,data=component.data,context=component.context,previousProps=component.prevProps||props,previousState=component.prevState||data,previousContext=component.prevContext||context,isUpdate=component.base,nextBase=component.nextBase,initialBase=isUpdate||nextBase,initialChildComponent=component._component,skip=false,rendered,inst,cbase;// if updating\nif(isUpdate){component.props=previousProps;component.data=previousState;component.context=previousContext;if(component.store||opts==2||shallowComparison(previousProps,props)){skip=false;if(component.beforeUpdate){component.beforeUpdate(props,data,context);}}else{skip=true;}component.props=props;component.data=data;component.context=context;}component.prevProps=component.prevState=component.prevContext=component.nextBase=null;if(!skip){component.beforeRender&&component.beforeRender();rendered=component.render(props,data,context);//don't rerender\nif(component.constructor.css||component.css){addScopedAttrStatic(rendered,'_s'+getCtorName(component.constructor));}scopeHost(rendered,component.scopedCssAttr);// context to pass to the child, can be updated via (grand-)parent component\nif(component.getChildContext){context=extend(extend({},context),component.getChildContext());}var childComponent=rendered&&rendered.nodeName,toUnmount,base,ctor=options.mapping[childComponent];if(ctor){// set up high order component link\nvar childProps=getNodeProps(rendered);inst=initialChildComponent;if(inst&&inst.constructor===ctor&&childProps.key==inst.__key){setComponentProps(inst,childProps,1,context,false);}else{toUnmount=inst;component._component=inst=createComponent(ctor,childProps,context);inst.nextBase=inst.nextBase||nextBase;inst._parentComponent=component;setComponentProps(inst,childProps,0,context,false);renderComponent(inst,1,mountAll,true);}base=inst.base;}else{cbase=initialBase;// destroy high order component link\ntoUnmount=initialChildComponent;if(toUnmount){cbase=component._component=null;}if(initialBase||opts===1){if(cbase)cbase._component=null;base=diff(cbase,rendered,context,mountAll||!isUpdate,initialBase&&initialBase.parentNode,true);}}if(initialBase&&base!==initialBase&&inst!==initialChildComponent){var baseParent=initialBase.parentNode;if(baseParent&&base!==baseParent){baseParent.replaceChild(base,initialBase);if(!toUnmount){initialBase._component=null;recollectNodeTree(initialBase,false);}}}if(toUnmount){unmountComponent(toUnmount);}component.base=base;if(base&&!isChild){var componentRef=component,t=component;while(t=t._parentComponent){(componentRef=t).base=base;}base._component=componentRef;base._componentConstructor=componentRef.constructor;}}if(!isUpdate||mountAll){mounts.unshift(component);}else if(!skip){// Ensure that pending componentDidMount() hooks of child components\n// are called before the componentDidUpdate() hook in the parent.\n// Note: disabled as it causes duplicate hooks, see https://github.com/developit/preact/issues/750\n// flushMounts();\nif(component.afterUpdate){//deprecated\ncomponent.afterUpdate(previousProps,previousState,previousContext);}if(component.updated){component.updated(previousProps,previousState,previousContext);}if(options.afterUpdate)options.afterUpdate(component);}if(component._renderCallbacks!=null){while(component._renderCallbacks.length){component._renderCallbacks.pop().call(component);}}if(!diffLevel&&!isChild)flushMounts();}/** Apply the Component referenced by a VNode to the DOM.\n *\t@param {Element} dom\tThe DOM node to mutate\n *\t@param {VNode} vnode\tA Component-referencing VNode\n *\t@returns {Element} dom\tThe created/mutated element\n *\t@private\n */function buildComponentFromVNode(dom,vnode,context,mountAll){var c=dom&&dom._component,originalComponent=c,oldDom=dom,isDirectOwner=c&&dom._componentConstructor===vnode.nodeName,isOwner=isDirectOwner,props=getNodeProps(vnode);while(c&&!isOwner&&(c=c._parentComponent)){isOwner=c.constructor===vnode.nodeName;}if(c&&isOwner&&(!mountAll||c._component)){setComponentProps(c,props,3,context,mountAll);dom=c.base;}else{if(originalComponent&&!isDirectOwner){unmountComponent(originalComponent);dom=oldDom=null;}c=createComponent(vnode.nodeName,props,context,vnode);if(dom&&!c.nextBase){c.nextBase=dom;// passing dom/oldDom as nextBase will recycle it if unused, so bypass recycling on L229:\noldDom=null;}setComponentProps(c,props,1,context,mountAll);dom=c.base;if(oldDom&&dom!==oldDom){oldDom._component=null;recollectNodeTree(oldDom,false);}}return dom;}/** Remove a component from the DOM and recycle it.\n *\t@param {Component} component\tThe Component instance to unmount\n *\t@private\n */function unmountComponent(component){if(options.beforeUnmount)options.beforeUnmount(component);var base=component.base;component._disable=true;if(component.uninstall)component.uninstall();if(component.store&&component.store.instances){for(var i=0,len=component.store.instances.length;i0){this.instances.forEach(function(instance){if(updateAll||_this.updateAll||instance.constructor.updatePath&&needUpdate(patch,instance.constructor.updatePath)){//update this.use\ninstance.use=getUse(store.data,instance.constructor.use);instance.update();}});this.onChange&&this.onChange(patch);}};}function matchGlobalData(globalData,diffResult){if(!globalData)return false;for(var keyA in diffResult){if(globalData.indexOf(keyA)>-1){return true;}for(var i=0,len=globalData.length;i0){return{class:classNames.apply(null,args)};}}function getHost(component){var base=component.base;if(base){while(base.parentNode){if(base.parentNode._component){return base.parentNode._component;}else{base=base.parentNode;}}}}/**\n * preact-render-to-string based on preact-render-to-string\n * by Jason Miller\n * Licensed under the MIT License\n * https://github.com/developit/preact-render-to-string\n *\n * modified by dntzhang\n */var encodeEntities=function encodeEntities(s){return String(s).replace(/&/g,'&').replace(//g,'>').replace(/\"/g,'"');};var indent=function indent(s,char){return String(s).replace(/(\\n+)/g,'$1'+(char||'\\t'));};var mapping$1=options.mapping;var VOID_ELEMENTS=/^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/;var isLargeString=function isLargeString(s,length,ignoreLines){return String(s).length>(length||40)||!ignoreLines&&String(s).indexOf('\\n')!==-1||String(s).indexOf('<')!==-1;};var JS_TO_CSS={};// Convert an Object style to a CSSText string\nfunction styleObjToCss(s){var str='';for(var prop in s){var val=s[prop];if(val!=null){if(str)str+=' ';// str += jsToCss(prop);\nstr+=JS_TO_CSS[prop]||(JS_TO_CSS[prop]=prop.replace(/([A-Z])/g,'-$1').toLowerCase());str+=': ';str+=val;if(typeof val==='number'&&IS_NON_DIMENSIONAL.test(prop)===false){str+='px';}str+=';';}}return str||undefined;}function renderToString(vnode,opts,store,isSvgMode){store=store||{};opts=Object.assign({scopedCSS:true},opts);var css={};var html=_renderToString(vnode,opts,store,isSvgMode,css);return{css:Object.values(css),html:html};}/** The default export is an alias of `render()`. */function _renderToString(vnode,opts,store,isSvgMode,css){if(vnode==null||typeof vnode==='boolean'){return'';}var nodeName=vnode.nodeName,attributes=vnode.attributes,isComponent=false;var pretty=true&&opts.pretty,indentChar=pretty&&typeof pretty==='string'?pretty:'\\t';// #text nodes\nif((typeof vnode==='undefined'?'undefined':_typeof(vnode))!=='object'&&!nodeName){return encodeEntities(vnode);}// components\nvar ctor=mapping$1[nodeName];if(ctor){isComponent=true;var props=getNodeProps$1(vnode),rendered;// class-based components\nvar c=new ctor(props,store);// turn off stateful re-rendering:\nc._disable=c.__x=true;c.props=props;c.store=store;if(c.install)c.install();if(c.beforeRender)c.beforeRender();rendered=c.render(c.props,c.data,c.store);if(opts.scopedCSS){if(c.constructor.css||c.css){var cssStr=c.constructor.css?c.constructor.css:typeof c.css==='function'?c.css():c.css;var cssAttr='_s'+getCtorName(c.constructor);css[cssAttr]='';addScopedAttrStatic(rendered,'_s'+getCtorName(c.constructor));}c.scopedCSSAttr=vnode.css;scopeHost(rendered,c.scopedCSSAttr);}return _renderToString(rendered,opts,store,false,css);}// render JSX to HTML\nvar s='',html;if(attributes){var attrs=Object.keys(attributes);// allow sorting lexicographically for more determinism (useful for tests, such as via preact-jsx-chai)\nif(opts&&opts.sortAttributes===true)attrs.sort();for(var i=0;i]/))continue;if(!(opts&&opts.allAttributes)&&(name==='key'||name==='ref'))continue;if(name==='className'){if(attributes.class)continue;name='class';}else if(isSvgMode&&name.match(/^xlink:?./)){name=name.toLowerCase().replace(/^xlink:?/,'xlink:');}if(name==='style'&&v&&(typeof v==='undefined'?'undefined':_typeof(v))==='object'){v=styleObjToCss(v);}var hooked=opts.attributeHook&&opts.attributeHook(name,v,store,opts,isComponent);if(hooked||hooked===''){s+=hooked;continue;}if(name==='dangerouslySetInnerHTML'){html=v&&v.__html;}else if((v||v===0||v==='')&&typeof v!=='function'){if(v===true||v===''){v=name;// in non-xml mode, allow boolean attributes\nif(!opts||!opts.xml){s+=' '+name;continue;}}s+=' '+name+'=\"'+encodeEntities(v)+'\"';}}}// account for >1 multiline attribute\nif(pretty){var sub=s.replace(/^\\n\\s*/,' ');if(sub!==s&&!~sub.indexOf('\\n'))s=sub;else if(pretty&&~s.indexOf('\\n'))s+='\\n';}s='<'+nodeName+s+'>';if(String(nodeName).match(/[\\s\\n\\\\/='\"\\0<>]/))throw s;var isVoid=String(nodeName).match(VOID_ELEMENTS);if(isVoid)s=s.replace(/>$/,' />');var pieces=[];if(html){// if multiline, indent.\nif(pretty&&isLargeString(html)){html='\\n'+indentChar+indent(html,indentChar);}s+=html;}else if(vnode.children){var hasLarge=pretty&&~s.indexOf('\\n');for(var i=0;i';}if(!isVoid){if(pretty&&~s.indexOf('\\n'))s+='\\n';s+='';}return s;}function assign$1(obj,props){for(var i in props){obj[i]=props[i];}return obj;}function getNodeProps$1(vnode){var props=assign$1({},vnode.attributes);props.children=vnode.children;var defaultProps=vnode.nodeName.defaultProps;if(defaultProps!==undefined){for(var i in defaultProps){if(props[i]===undefined){props[i]=defaultProps[i];}}}return props;}var WeElement=Component;var defineElement=define;function createRef(){return{};}options.root.Omi={h:h,createElement:h,cloneElement:cloneElement,createRef:createRef,Component:Component,render:render,rerender:rerender,options:options,WeElement:WeElement,define:define,rpx:rpx,ModelView:ModelView,defineElement:defineElement,classNames:classNames,extractClass:extractClass,getHost:getHost,renderToString:renderToString};options.root.omi=options.root.Omi;options.root.Omi.version='omio-2.0.5';var omi={h:h,createElement:h,cloneElement:cloneElement,createRef:createRef,Component:Component,render:render,rerender:rerender,options:options,WeElement:WeElement,define:define,rpx:rpx,ModelView:ModelView,defineElement:defineElement,classNames:classNames,extractClass:extractClass,getHost:getHost,renderToString:renderToString};exports.default=omi;exports.h=h;exports.createElement=h;exports.cloneElement=cloneElement;exports.createRef=createRef;exports.Component=Component;exports.render=render;exports.rerender=rerender;exports.options=options;exports.WeElement=WeElement;exports.define=define;exports.rpx=rpx;exports.ModelView=ModelView;exports.defineElement=defineElement;exports.classNames=classNames;exports.extractClass=extractClass;exports.getHost=getHost;exports.renderToString=renderToString;//# sourceMappingURL=omi.esm.js.map\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/// css base code, injected by the css-loader\nmodule.exports=function(useSourceMap){var list=[];// return the list of modules as css string\nlist.toString=function toString(){return this.map(function(item){var content=cssWithMappingToString(item,useSourceMap);if(item[2]){return\"@media \"+item[2]+\"{\"+content+\"}\";}else{return content;}}).join(\"\");};// import a list of modules into the list\nlist.i=function(modules,mediaQuery){if(typeof modules===\"string\")modules=[[null,modules,\"\"]];var alreadyImportedModules={};for(var i=0;icapacity){// Manually shift all values starting at the index back to the\n// beginning of the queue.\nfor(var scan=0,newLength=queue.length-index;scan-1;};}function normalizeName(name){if(typeof name!=='string'){name=String(name);}if(/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)){throw new TypeError('Invalid character in header field name');}return name.toLowerCase();}function normalizeValue(value){if(typeof value!=='string'){value=String(value);}return value;}// Build a destructive iterator for the value list\nfunction iteratorFor(items){var iterator={next:function next(){var value=items.shift();return{done:value===undefined,value:value};}};if(support.iterable){iterator[Symbol.iterator]=function(){return iterator;};}return iterator;}function Headers(headers){this.map={};if(headers instanceof Headers){headers.forEach(function(value,name){this.append(name,value);},this);}else if(Array.isArray(headers)){headers.forEach(function(header){this.append(header[0],header[1]);},this);}else if(headers){Object.getOwnPropertyNames(headers).forEach(function(name){this.append(name,headers[name]);},this);}}Headers.prototype.append=function(name,value){name=normalizeName(name);value=normalizeValue(value);var oldValue=this.map[name];this.map[name]=oldValue?oldValue+','+value:value;};Headers.prototype['delete']=function(name){delete this.map[normalizeName(name)];};Headers.prototype.get=function(name){name=normalizeName(name);return this.has(name)?this.map[name]:null;};Headers.prototype.has=function(name){return this.map.hasOwnProperty(normalizeName(name));};Headers.prototype.set=function(name,value){this.map[normalizeName(name)]=normalizeValue(value);};Headers.prototype.forEach=function(callback,thisArg){for(var name in this.map){if(this.map.hasOwnProperty(name)){callback.call(thisArg,this.map[name],name,this);}}};Headers.prototype.keys=function(){var items=[];this.forEach(function(value,name){items.push(name);});return iteratorFor(items);};Headers.prototype.values=function(){var items=[];this.forEach(function(value){items.push(value);});return iteratorFor(items);};Headers.prototype.entries=function(){var items=[];this.forEach(function(value,name){items.push([name,value]);});return iteratorFor(items);};if(support.iterable){Headers.prototype[Symbol.iterator]=Headers.prototype.entries;}function consumed(body){if(body.bodyUsed){return Promise.reject(new TypeError('Already read'));}body.bodyUsed=true;}function fileReaderReady(reader){return new Promise(function(resolve,reject){reader.onload=function(){resolve(reader.result);};reader.onerror=function(){reject(reader.error);};});}function readBlobAsArrayBuffer(blob){var reader=new FileReader();var promise=fileReaderReady(reader);reader.readAsArrayBuffer(blob);return promise;}function readBlobAsText(blob){var reader=new FileReader();var promise=fileReaderReady(reader);reader.readAsText(blob);return promise;}function readArrayBufferAsText(buf){var view=new Uint8Array(buf);var chars=new Array(view.length);for(var i=0;i-1?upcased:method;}function Request(input,options){options=options||{};var body=options.body;if(input instanceof Request){if(input.bodyUsed){throw new TypeError('Already read');}this.url=input.url;this.credentials=input.credentials;if(!options.headers){this.headers=new Headers(input.headers);}this.method=input.method;this.mode=input.mode;if(!body&&input._bodyInit!=null){body=input._bodyInit;input.bodyUsed=true;}}else{this.url=String(input);}this.credentials=options.credentials||this.credentials||'omit';if(options.headers||!this.headers){this.headers=new Headers(options.headers);}this.method=normalizeMethod(options.method||this.method||'GET');this.mode=options.mode||this.mode||null;this.referrer=null;if((this.method==='GET'||this.method==='HEAD')&&body){throw new TypeError('Body not allowed for GET or HEAD requests');}this._initBody(body);}Request.prototype.clone=function(){return new Request(this,{body:this._bodyInit});};function decode(body){var form=new FormData();body.trim().split('&').forEach(function(bytes){if(bytes){var split=bytes.split('=');var name=split.shift().replace(/\\+/g,' ');var value=split.join('=').replace(/\\+/g,' ');form.append(decodeURIComponent(name),decodeURIComponent(value));}});return form;}function parseHeaders(rawHeaders){var headers=new Headers();rawHeaders.split(/\\r?\\n/).forEach(function(line){var parts=line.split(':');var key=parts.shift().trim();if(key){var value=parts.join(':').trim();headers.append(key,value);}});return headers;}Body.call(Request.prototype);function Response(bodyInit,options){if(!options){options={};}this.type='default';this.status='status'in options?options.status:200;this.ok=this.status>=200&&this.status<300;this.statusText='statusText'in options?options.statusText:'OK';this.headers=new Headers(options.headers);this.url=options.url||'';this._initBody(bodyInit);}Body.call(Response.prototype);Response.prototype.clone=function(){return new Response(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new Headers(this.headers),url:this.url});};Response.error=function(){var response=new Response(null,{status:0,statusText:''});response.type='error';return response;};var redirectStatuses=[301,302,303,307,308];Response.redirect=function(url,status){if(redirectStatuses.indexOf(status)===-1){throw new RangeError('Invalid status code');}return new Response(null,{status:status,headers:{location:url}});};self.Headers=Headers;self.Request=Request;self.Response=Response;self.fetch=function(input,init){return new Promise(function(resolve,reject){var request=new Request(input,init);var xhr=new XMLHttpRequest();xhr.onload=function(){var options={status:xhr.status,statusText:xhr.statusText,headers:parseHeaders(xhr.getAllResponseHeaders()||'')};options.url='responseURL'in xhr?xhr.responseURL:options.headers.get('X-Request-URL');var body='response'in xhr?xhr.response:xhr.responseText;resolve(new Response(body,options));};xhr.onerror=function(){reject(new TypeError('Network request failed'));};xhr.ontimeout=function(){reject(new TypeError('Network request failed'));};xhr.open(request.method,request.url,true);if(request.credentials==='include'){xhr.withCredentials=true;}if('responseType'in xhr&&support.blob){xhr.responseType='blob';}request.headers.forEach(function(value,name){xhr.setRequestHeader(name,value);});xhr.send(typeof request._bodyInit==='undefined'?null:request._bodyInit);});};self.fetch.polyfill=true;})(typeof self!=='undefined'?self:undefined);\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*//* eslint-disable no-unused-vars */var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError('Object.assign cannot be called with null or undefined');}return Object(val);}function shouldUseNative(){try{if(!Object.assign){return false;}// Detect buggy property enumeration order in older V8 versions.\n// https://bugs.chromium.org/p/v8/issues/detail?id=4118\nvar test1=new String('abc');// eslint-disable-line no-new-wrappers\ntest1[5]='de';if(Object.getOwnPropertyNames(test1)[0]==='5'){return false;}// https://bugs.chromium.org/p/v8/issues/detail?id=3056\nvar test2={};for(var i=0;i<10;i++){test2['_'+String.fromCharCode(i)]=i;}var order2=Object.getOwnPropertyNames(test2).map(function(n){return test2[n];});if(order2.join('')!=='0123456789'){return false;}// https://bugs.chromium.org/p/v8/issues/detail?id=3056\nvar test3={};'abcdefghijklmnopqrst'.split('').forEach(function(letter){test3[letter]=letter;});if(Object.keys(Object.assign({},test3)).join('')!=='abcdefghijklmnopqrst'){return false;}return true;}catch(err){// We don't expect any of the above to throw, but better to be safe.\nreturn false;}}module.exports=shouldUseNative()?Object.assign:function(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s {\n// let newP = document.createElement('div')\n// newP.className = '_code-ctn'\n// let pre = code.parentNode\n// let ctn = pre.parentNode\n// if (pre.nodeName === 'PRE') {\n// ctn.insertBefore(newP, pre)\n// let hl = document.createElement('div')\n// hl.className = '_hl'\n// newP.appendChild(hl)\n// newP.appendChild(pre)\n// let nums = codeHlNumArr[index]\n// let max = Math.max.apply(null, nums)\n// let inner = ''\n// for (let i = 0; i <= max; i++) {\n// if (nums.indexOf(i) == -1) {\n// inner += '
'\n// } else {\n// inner += '
'\n// }\n// }\n// hl.innerHTML = inner\n// }\n// })\n//fix line-highlight\nwindow.dispatchEvent(new Event('resize'));}},{key:'_arrToNumber',value:function _arrToNumber(numArr){var arr=[];numArr.forEach(function(item){if(item.indexOf('-')!==-1){var tempArr=item.split('-');var begin=Number(tempArr[0]);var end=Number(tempArr[1]);for(var i=begin;i0)return false;}return true;}},{key:'render',value:function render(){if(!this.demo)return;return Omi.h('div',null,this.show&&Omi.h('iframe',{style:'height:'+(window.innerHeight-59)+'px',src:this.demo}),!this.show&&Omi.h('div',{'class':'switch code',onClick:this.onShow},Omi.h('img',{src:__webpack_require__(32)})),this.show&&Omi.h('div',{'class':'switch close',onClick:this.onClose},Omi.h('img',{src:__webpack_require__(33)})));}}]);return _class2;}(_omi.WeElement));\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n var result = __webpack_require__(31);\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(1)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \"iframe{\\n width: 750px;\\n height: 100%;\\n top: 60px;\\n right: 0;\\n position: fixed;\\n border: none;\\n z-index: 9999;\\n border-left: 2px solid #24292E; \\n}\\n\\n.switch{\\n width: 40px;\\n height: 40px;\\n background-color: #AA0000;\\n border-radius: 50%;\\n position: fixed;\\n right: 50px;\\n bottom: 50px;\\n cursor: pointer;\\n text-align: center;\\n z-index: 10000;\\n}\\n\\n.switch img{\\n width: 30px;\\n height: 30px;\\n margin-top:5px; \\n}\\n\\n.switch.close img{\\n margin-top:10px; \\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n@media only screen and (max-width: 768px) {\\n iframe{\\n width: 100%;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC\"\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==\"\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function defineProperties(target,props){for(var i=0;i768};var id=0;this.map={};this.positionMap={};_config2.default.menus[this.data.lan].forEach(function(menu,index){menu.list.forEach(function(item,subIndex){item.id=id++;item.position=[index,subIndex];_this.map[item.id]=item;item.index=index;item.subIndex=subIndex;_this.positionMap[index+'-'+subIndex]=item;});});this.preIndex=0;this.preSubIndex=0;}_createClass(Store,[{key:'getNext',value:function getNext(){var item=this.positionMap[this.data.position.join('-')];if(item){return this.map[item.id+1];}}},{key:'getPre',value:function getPre(){var item=this.positionMap[this.data.position.join('-')];if(item){return this.map[item.id-1];}}},{key:'init',value:function init(){var _this2=this;this.remarkable=new Remarkable({html:true});if(location.hash===\"\"){this.data.position=[0,0];this.getMarkDown(this.data.menus[this.data.lan][0].list[0].md,this.data.lan,function(m){_this2.data.html=_this2.remarkable.render(m);});}this.initRouter();}},{key:'toogleSidebar',value:function toogleSidebar(){this.data.sideBarShow=!this.data.sideBarShow;}},{key:'hideSidebar',value:function hideSidebar(){this.data.sideBarShow=false;}},{key:'initRouter',value:function initRouter(){var _this3=this;var menus=this.data.menus[this.data.lan];menus.forEach(function(item){item.list.forEach(function(subItem){route('/'+subItem.md,function(evt){menus[_this3.preIndex].list[_this3.preSubIndex].selected=false;_this3.preIndex=evt.query.index;_this3.preSubIndex=evt.query.subIndex;_this3.data.position=[Number(evt.query.index),Number(evt.query.subIndex)];_this3.data.sideBarShow=false;_this3.getMarkDown(subItem.md,_this3.data.lan,function(m){_this3.data.html=_this3.remarkable.render(m);document.body.scrollTop=0;document.documentElement.scrollTop=0;});});});});}},{key:'getMarkDown',value:function getMarkDown(name,lan,callback){__webpack_require__(38)(\"./\"+lan+'/'+name+'.md').then(function(m){callback(m);});}}]);return Store;}();exports.default=Store;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(exports,\"__esModule\",{value:true});var config={menus:{'zh-cn':[{title:'Omi',list:[{name:'简介',md:'introduction'},{name:'安装',md:'installation'}]},{title:'基础概念',list:[{name:'JSX',md:'jsx'},{name:'Props',md:'props'},{name:'事件',md:'event'},{name:'生命周期',md:'lifecycle'},{name:'Ref',md:'ref'},{name:'Class',md:'class'},{name:'Store',md:'store'},{name:'CSS',md:'css'}]},{title:'其他',list:[{name:'生态与例子',md:'other'},{name:'Mps',md:'mps'},{name:'Omip 多端开发',md:'omip'},{name:'服务端渲染',md:'ssr'},{name:'路由',md:'router'},{name:'Omiu',md:'omiu'}]}],en:[{title:'Omi',list:[{name:'Introduction',md:'introduction'},{name:'Installation',md:'installation'}]},{title:'Base',list:[{name:'JSX',md:'jsx'},{name:'Props',md:'props'},{name:'Event',md:'event'},{name:'Lifecycle',md:'lifecycle'},{name:'Ref',md:'ref'},{name:'Class',md:'class'},{name:'Store',md:'store'},{name:'CSS',md:'css'}]},{title:'Other',list:[{name:'Ecosystem and examples',md:'other'},{name:'Server-Side Rendering',md:'ssr'},{name:'Router',md:'router'},{name:'Omiu',md:'omiu'}]}]}};exports.default=config;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol===\"function\"&&obj.constructor===Symbol&&obj!==Symbol.prototype?\"symbol\":typeof obj;};exports.default=route;/*!\n * omi-router v2.0.9 by dntzhang\n * Router for Omi.\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n */var p2r=__webpack_require__(37);var mapping={};var root=getGlobal();root.route=route;root.route.params=null;root.historyLength=0;root.route.to=function(path,data){root.route._routeByTo=true;root.route.data=data;if(path[0]==='#'){location.hash=path;}else{location.hash='#'+path;}};window.addEventListener('hashchange',change);function change(evt){var byNative=false;//need to fix a line by omi-link\nif(window.history.length===root.historyLength&&!root.route._routeByTo){//keep alive mode\nbyNative=true;}root.route._routeByTo=false;root.historyLength=window.history.length;var prevent=false;if(evt.type==='hashchange'&&root.route.before){prevent=root.route.before(evt)===false;}if(prevent)return;var path=window.location.hash.replace('#','');if(path==='')path='/';var notFound=true;Object.keys(mapping).every(function(key){var toArr=path.split('?')[0].match(mapping[key].reg);if(toArr){var pathArr=key.match(mapping[key].reg);root.route.params=getParams(toArr,pathArr);root.route.query=getUrlParams(path);mapping[key].callback({params:root.route.params,query:getUrlParams(path),data:root.route.data,byNative:byNative});root.route.data=null;notFound=false;return false;}return true;});if(notFound){mapping['*']&&mapping['*'].callback({byNative:byNative});}if(evt.type==='hashchange'&&root.route.after){root.route.after(evt);}}document.addEventListener('DOMContentLoaded',change);function getParams(toArr,pathArr){var params={};toArr.forEach(function(item,index){if(index>0){params[pathArr[index].replace(':','')]=item;}});return params;}function route(path,callback){mapping[path]={callback:callback,reg:p2r(path)};}function getGlobal(){if((typeof global==='undefined'?'undefined':_typeof(global))!=='object'||!global||global.Math!==Math||global.Array!==Array){return self||window||global||function(){return this;}();}return global;}function getUrlParams(url){url=url.replace(/#.*$/,'');var queryArray=url.split(/[?&]/).slice(1);var i,args={};for(i=0;i [\"test\", \"\\d+\", undefined, \"?\"]\n// \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n'(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'].join('|'),'g');/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */function parse(str,options){var tokens=[];var key=0;var index=0;var path='';var defaultDelimiter=options&&options.delimiter||DEFAULT_DELIMITER;var whitelist=options&&options.whitelist||undefined;var pathEscaped=false;var res;while((res=PATH_REGEXP.exec(str))!==null){var m=res[0];var escaped=res[1];var offset=res.index;path+=str.slice(index,offset);index=offset+m.length;// Ignore already escaped sequences.\nif(escaped){path+=escaped[1];pathEscaped=true;continue;}var prev='';var name=res[2];var capture=res[3];var group=res[4];var modifier=res[5];if(!pathEscaped&&path.length){var k=path.length-1;var c=path[k];var matches=whitelist?whitelist.indexOf(c)>-1:true;if(matches){prev=c;path=path.slice(0,k);}}// Push the current path onto the tokens.\nif(path){tokens.push(path);path='';pathEscaped=false;}var repeat=modifier==='+'||modifier==='*';var optional=modifier==='?'||modifier==='*';var pattern=capture||group;var delimiter=prev||defaultDelimiter;tokens.push({name:name||key++,prefix:prev,delimiter:delimiter,optional:optional,repeat:repeat,pattern:pattern?escapeGroup(pattern):'[^'+escapeString(delimiter===defaultDelimiter?delimiter:delimiter+defaultDelimiter)+']+?'});}// Push any remaining characters.\nif(path||indexHello!`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */\nfunction h(nodeName, attributes) {\n var children = EMPTY_CHILDREN,\n lastSimple,\n child,\n simple,\n i;\n for (i = arguments.length; i-- > 2;) {\n stack.push(arguments[i]);\n }\n if (attributes && attributes.children != null) {\n if (!stack.length) stack.push(attributes.children);\n delete attributes.children;\n }\n while (stack.length) {\n if ((child = stack.pop()) && child.pop !== undefined) {\n for (i = child.length; i--;) {\n stack.push(child[i]);\n }\n } else {\n if (typeof child === 'boolean') child = null;\n\n if (simple = typeof nodeName !== 'function') {\n if (child == null) child = '';else if (typeof child === 'number') child = String(child);else if (typeof child !== 'string') simple = false;\n }\n\n if (simple && lastSimple) {\n children[children.length - 1] += child;\n } else if (children === EMPTY_CHILDREN) {\n children = [child];\n } else {\n children.push(child);\n }\n\n lastSimple = simple;\n }\n }\n\n var p = new VNode();\n p.nodeName = nodeName;\n p.children = children;\n p.attributes = attributes == null ? undefined : attributes;\n p.key = attributes == null ? undefined : attributes.key;\n\n // if a \"vnode hook\" is defined, pass every created VNode to it\n if (options.vnode !== undefined) options.vnode(p);\n\n return p;\n}\n\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction assign(target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n}\n\nif (typeof Element !== 'undefined' && !Element.prototype.addEventListener) {\n var runListeners = function runListeners(oEvent) {\n if (!oEvent) {\n oEvent = window.event;\n }\n for (var iLstId = 0, iElId = 0, oEvtListeners = oListeners[oEvent.type]; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n for (iLstId; iLstId < oEvtListeners.aEvts[iElId].length; iLstId++) {\n oEvtListeners.aEvts[iElId][iLstId].call(this, oEvent);\n }\n break;\n }\n }\n };\n\n var oListeners = {};\n\n Element.prototype.addEventListener = function (sEventType, fListener /*, useCapture (will be ignored!) */) {\n if (oListeners.hasOwnProperty(sEventType)) {\n var oEvtListeners = oListeners[sEventType];\n for (var nElIdx = -1, iElId = 0; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n nElIdx = iElId;break;\n }\n }\n if (nElIdx === -1) {\n oEvtListeners.aEls.push(this);\n oEvtListeners.aEvts.push([fListener]);\n this[\"on\" + sEventType] = runListeners;\n } else {\n var aElListeners = oEvtListeners.aEvts[nElIdx];\n if (this[\"on\" + sEventType] !== runListeners) {\n aElListeners.splice(0);\n this[\"on\" + sEventType] = runListeners;\n }\n for (var iLstId = 0; iLstId < aElListeners.length; iLstId++) {\n if (aElListeners[iLstId] === fListener) {\n return;\n }\n }\n aElListeners.push(fListener);\n }\n } else {\n oListeners[sEventType] = { aEls: [this], aEvts: [[fListener]] };\n this[\"on\" + sEventType] = runListeners;\n }\n };\n Element.prototype.removeEventListener = function (sEventType, fListener /*, useCapture (will be ignored!) */) {\n if (!oListeners.hasOwnProperty(sEventType)) {\n return;\n }\n var oEvtListeners = oListeners[sEventType];\n for (var nElIdx = -1, iElId = 0; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n nElIdx = iElId;break;\n }\n }\n if (nElIdx === -1) {\n return;\n }\n for (var iLstId = 0, aElListeners = oEvtListeners.aEvts[nElIdx]; iLstId < aElListeners.length; iLstId++) {\n if (aElListeners[iLstId] === fListener) {\n aElListeners.splice(iLstId, 1);\n }\n }\n };\n}\n\nif (typeof Object.create !== 'function') {\n Object.create = function (proto, propertiesObject) {\n if (typeof proto !== 'object' && typeof proto !== 'function') {\n throw new TypeError('Object prototype may only be an Object: ' + proto);\n } else if (proto === null) {\n throw new Error(\"This browser's implementation of Object.create is a shim and doesn't support 'null' as the first argument.\");\n }\n\n // if (typeof propertiesObject != 'undefined') {\n // throw new Error(\"This browser's implementation of Object.create is a shim and doesn't support a second argument.\");\n // }\n\n function F() {}\n F.prototype = proto;\n\n return new F();\n };\n}\n\nif (!String.prototype.trim) {\n String.prototype.trim = function () {\n return this.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n };\n}\n\n/**\n * Copy all properties from `props` onto `obj`.\n * @param {Object} obj\t\tObject onto which properties should be copied.\n * @param {Object} props\tObject from which to copy properties.\n * @returns obj\n * @private\n */\nfunction extend(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\n/** Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} [ref=null]\n * @param {any} [value]\n */\nfunction applyRef(ref, value) {\n if (ref) {\n if (typeof ref == 'function') ref(value);else ref.current = value;\n }\n}\n\n/**\n * Call a function asynchronously, as soon as possible. Makes\n * use of HTML Promise to schedule the callback if available,\n * otherwise falling back to `setTimeout` (mainly for IE<11).\n *\n * @param {Function} callback\n */\n\nvar usePromise = typeof Promise == 'function';\n\n// for native\nif (typeof document !== 'object' && typeof global !== 'undefined' && global.__config__) {\n if (global.__config__.platform === 'android') {\n usePromise = true;\n } else {\n var systemVersion = global.__config__.systemVersion && global.__config__.systemVersion.split('.')[0] || 0;\n if (systemVersion > 8) {\n usePromise = true;\n }\n }\n}\n\nvar defer = usePromise ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\nfunction isArray(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n}\n\nfunction nProps(props) {\n if (!props || isArray(props)) return {};\n var result = {};\n Object.keys(props).forEach(function (key) {\n result[key] = props[key].value;\n });\n return result;\n}\n\nfunction getUse(data, paths) {\n var obj = [];\n paths.forEach(function (path, index) {\n var isPath = typeof path === 'string';\n if (isPath) {\n obj[index] = getTargetByPath(data, path);\n } else {\n var key = Object.keys(path)[0];\n var value = path[key];\n if (typeof value === 'string') {\n obj[index] = getTargetByPath(data, value);\n } else {\n var tempPath = value[0];\n if (typeof tempPath === 'string') {\n var tempVal = getTargetByPath(data, tempPath);\n obj[index] = value[1] ? value[1](tempVal) : tempVal;\n } else {\n var args = [];\n tempPath.forEach(function (path) {\n args.push(getTargetByPath(data, path));\n });\n obj[index] = value[1].apply(null, args);\n }\n }\n obj[key] = obj[index];\n }\n });\n return obj;\n}\n\nfunction getTargetByPath(origin, path) {\n var arr = path.replace(/]/g, '').replace(/\\[/g, '.').split('.');\n var current = origin;\n for (var i = 0, len = arr.length; i < len; i++) {\n current = current[arr[i]];\n }\n return current;\n}\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {VNode} vnode\t\tThe virtual DOM element to clone\n * @param {Object} props\tAttributes/props to add when cloning\n * @param {VNode} rest\t\tAny additional arguments will be used as replacement children.\n */\nfunction cloneElement(vnode, props) {\n return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\n// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL$1 = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\n/** Managed queue of dirty components to be re-rendered */\n\nvar items = [];\n\nfunction enqueueRender(component) {\n if (items.push(component) == 1) {\n(options.debounceRendering || defer)(rerender);\n }\n}\n\n/** Rerender all enqueued dirty components */\nfunction rerender() {\n var p;\n while (p = items.pop()) {\n renderComponent(p);\n }\n}\n\nvar mapping = options.mapping;\n/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hydrating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */\nfunction isSameNodeType(node, vnode, hydrating) {\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n return node.splitText !== undefined;\n }\n if (typeof vnode.nodeName === 'string') {\n var ctor = mapping[vnode.nodeName];\n if (ctor) {\n return hydrating || node._componentConstructor === ctor;\n }\n return !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n }\n return hydrating || node._componentConstructor === vnode.nodeName;\n}\n\n/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */\nfunction isNamedNode(node, nodeName) {\n return node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\n}\n\n/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n *\n * @param {VNode} vnode\n * @returns {Object} props\n */\nfunction getNodeProps(vnode) {\n var props = extend({}, vnode.attributes);\n props.children = vnode.children;\n\n var defaultProps = vnode.nodeName.defaultProps;\n if (defaultProps !== undefined) {\n for (var i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i];\n }\n }\n }\n\n return props;\n}\n\n/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */\nfunction createNode(nodeName, isSvg) {\n var node = isSvg ? options.doc.createElementNS('http://www.w3.org/2000/svg', nodeName) : options.doc.createElement(nodeName);\n node.normalizedNodeName = nodeName;\n return node;\n}\n\nfunction parseCSSText(cssText) {\n var cssTxt = cssText.replace(/\\/\\*(.|\\s)*?\\*\\//g, ' ').replace(/\\s+/g, ' ');\n var style = {},\n _ref = cssTxt.match(/ ?(.*?) ?{([^}]*)}/) || [a, b, cssTxt],\n a = _ref[0],\n b = _ref[1],\n rule = _ref[2];\n\n var cssToJs = function cssToJs(s) {\n return s.replace(/\\W+\\w/g, function (match) {\n return match.slice(-1).toUpperCase();\n });\n };\n var properties = rule.split(';').map(function (o) {\n return o.split(':').map(function (x) {\n return x && x.trim();\n });\n });\n for (var i = properties, i = Array.isArray(i), i = 0, i = i ? i : i[Symbol.iterator]();;) {\n var _ref3;\n\n if (i) {\n if (i >= i.length) break;\n _ref3 = i[i++];\n } else {\n i = i.next();\n if (i.done) break;\n _ref3 = i.value;\n }\n\n var _ref2 = _ref3;\n var property = _ref2[0];\n var value = _ref2[1];\n style[cssToJs(property)] = value;\n }return style;\n}\n\n/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */\nfunction removeNode(node) {\n var parentNode = node.parentNode;\n if (parentNode) parentNode.removeChild(node);\n}\n\n/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */\nfunction setAccessor(node, name, old, value, isSvg) {\n if (name === 'className') name = 'class';\n\n if (name === 'key') {\n // ignore\n } else if (name === 'ref') {\n applyRef(old, null);\n applyRef(value, node);\n } else if (name === 'class' && !isSvg) {\n node.className = value || '';\n } else if (name === 'style') {\n if (options.isWeb) {\n if (!value || typeof value === 'string' || typeof old === 'string') {\n node.style.cssText = value || '';\n }\n if (value && typeof value === 'object') {\n if (typeof old !== 'string') {\n for (var i in old) {\n if (!(i in value)) node.style[i] = '';\n }\n }\n for (var i in value) {\n node.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL$1.test(i) === false ? value[i] + 'px' : value[i];\n }\n }\n } else {\n var oldJson = old,\n currentJson = value;\n if (typeof old === 'string') {\n oldJson = parseCSSText(old);\n }\n if (typeof value == 'string') {\n currentJson = parseCSSText(value);\n }\n\n var result = {},\n changed = false;\n\n if (oldJson) {\n for (var key in oldJson) {\n if (typeof currentJson == 'object' && !(key in currentJson)) {\n result[key] = '';\n changed = true;\n }\n }\n\n for (var ckey in currentJson) {\n if (currentJson[ckey] !== oldJson[ckey]) {\n result[ckey] = currentJson[ckey];\n changed = true;\n }\n }\n\n if (changed) {\n node.setStyles(result);\n }\n } else {\n node.setStyles(currentJson);\n }\n }\n } else if (name === 'dangerouslySetInnerHTML') {\n if (value) node.innerHTML = value.__html || '';\n } else if (name[0] == 'o' && name[1] == 'n') {\n var useCapture = name !== (name = name.replace(/Capture$/, ''));\n name = name.toLowerCase().substring(2);\n if (value) {\n if (!old) {\n node.addEventListener(name, eventProxy, useCapture);\n if (name == 'tap') {\n node.addEventListener('touchstart', touchStart, useCapture);\n node.addEventListener('touchend', touchEnd, useCapture);\n }\n }\n } else {\n node.removeEventListener(name, eventProxy, useCapture);\n if (name == 'tap') {\n node.removeEventListener('touchstart', touchStart, useCapture);\n node.removeEventListener('touchend', touchEnd, useCapture);\n }\n }\n(node._listeners || (node._listeners = {}))[name] = value;\n } else if (name !== 'list' && name !== 'type' && !isSvg && name in node) {\n setProperty(node, name, value == null ? '' : value);\n if (value == null || value === false) node.removeAttribute(name);\n } else {\n var ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\n if (value == null || value === false) {\n if (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n } else if (typeof value !== 'function') {\n if (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n }\n }\n}\n\n/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */\nfunction setProperty(node, name, value) {\n try {\n node[name] = value;\n } catch (e) {}\n}\n\n/** Proxy an event to hooked event handlers\n *\t@private\n */\nfunction eventProxy(e) {\n return this._listeners[e.type](options.event && options.event(e) || e);\n}\n\nfunction touchStart(e) {\n this.___touchX = e.touches[0].pageX;\n this.___touchY = e.touches[0].pageY;\n this.___scrollTop = document.body.scrollTop;\n}\n\nfunction touchEnd(e) {\n if (Math.abs(e.changedTouches[0].pageX - this.___touchX) < 30 && Math.abs(e.changedTouches[0].pageY - this.___touchY) < 30 && Math.abs(document.body.scrollTop - this.___scrollTop) < 30) {\n this.dispatchEvent(new CustomEvent('tap', { detail: e }));\n }\n}\n\nvar styleId = 0;\n\nfunction getCtorName(ctor) {\n for (var i = 0, len = options.styleCache.length; i < len; i++) {\n var item = options.styleCache[i];\n\n if (item.ctor === ctor) {\n return item.attrName;\n }\n }\n\n var attrName = 's' + styleId;\n options.styleCache.push({ ctor: ctor, attrName: attrName });\n styleId++;\n\n return attrName;\n}\n\n// many thanks to https://github.com/thomaspark/scoper/\nfunction scoper(css, prefix) {\n prefix = '[' + prefix.toLowerCase() + ']';\n // https://www.w3.org/TR/css-syntax-3/#lexical\n css = css.replace(/\\/\\*[^*]*\\*+([^/][^*]*\\*+)*\\//g, '');\n // eslint-disable-next-line\n var re = new RegExp('([^\\r\\n,{}:]+)(:[^\\r\\n,{}]+)?(,(?=[^{}]*{)|\\s*{)', 'g');\n /**\n * Example:\n *\n * .classname::pesudo { color:red }\n *\n * g1 is normal selector `.classname`\n * g2 is pesudo class or pesudo element\n * g3 is the suffix\n */\n css = css.replace(re, function (g0, g1, g2, g3) {\n if (typeof g2 === 'undefined') {\n g2 = '';\n }\n\n /* eslint-ignore-next-line */\n if (g1.match(/^\\s*(@media|\\d+%?|@-webkit-keyframes|@keyframes|to|from|@font-face)/)) {\n return g1 + g2 + g3;\n }\n\n var appendClass = g1.replace(/(\\s*)$/, '') + prefix + g2;\n //let prependClass = prefix + ' ' + g1.trim() + g2;\n\n return appendClass + g3;\n //return appendClass + ',' + prependClass + g3;\n });\n\n return css;\n}\n\nfunction addStyle(cssText, id) {\n id = id.toLowerCase();\n var ele = document.getElementById(id);\n var head = document.getElementsByTagName('head')[0];\n if (ele && ele.parentNode === head) {\n head.removeChild(ele);\n }\n\n var someThingStyles = document.createElement('style');\n head.appendChild(someThingStyles);\n someThingStyles.setAttribute('type', 'text/css');\n someThingStyles.setAttribute('id', id);\n if (window.ActiveXObject) {\n someThingStyles.styleSheet.cssText = cssText;\n } else {\n someThingStyles.textContent = cssText;\n }\n}\n\nfunction addStyleWithoutId(cssText) {\n var head = document.getElementsByTagName('head')[0];\n var someThingStyles = document.createElement('style');\n head.appendChild(someThingStyles);\n someThingStyles.setAttribute('type', 'text/css');\n\n if (window.ActiveXObject) {\n someThingStyles.styleSheet.cssText = cssText;\n } else {\n someThingStyles.textContent = cssText;\n }\n}\n\nfunction addScopedAttrStatic(vdom, attr) {\n if (options.scopedStyle) {\n scopeVdom(attr, vdom);\n }\n}\n\nfunction addStyleToHead(style, attr) {\n if (options.scopedStyle) {\n if (!options.staticStyleMapping[attr]) {\n addStyle(scoper(style, attr), attr);\n options.staticStyleMapping[attr] = true;\n }\n } else if (!options.staticStyleMapping[attr]) {\n addStyleWithoutId(style);\n options.staticStyleMapping[attr] = true;\n }\n}\n\nfunction scopeVdom(attr, vdom) {\n if (typeof vdom === 'object') {\n vdom.attributes = vdom.attributes || {};\n vdom.attributes[attr] = '';\n vdom.css = vdom.css || {};\n vdom.css[attr] = '';\n vdom.children.forEach(function (child) {\n return scopeVdom(attr, child);\n });\n }\n}\n\nfunction scopeHost(vdom, css) {\n if (typeof vdom === 'object' && css) {\n vdom.attributes = vdom.attributes || {};\n for (var key in css) {\n vdom.attributes[key] = '';\n }\n }\n}\n\n/** Queue of components that have been mounted and are awaiting componentDidMount */\nvar mounts = [];\n\n/** Diff recursion count, used to track the end of the diff cycle. */\nvar diffLevel = 0;\n\n/** Global flag indicating if the diff is currently within an SVG */\nvar isSvgMode = false;\n\n/** Global flag indicating if the diff is performing hydration */\nvar hydrating = false;\n\n/** Invoke queued componentDidMount lifecycle methods */\nfunction flushMounts() {\n var c;\n while (c = mounts.pop()) {\n if (options.afterMount) options.afterMount(c);\n if (c.installed) c.installed();\n if (c.constructor.css || c.css) {\n addStyleToHead(c.constructor.css ? c.constructor.css : typeof c.css === 'function' ? c.css() : c.css, '_s' + getCtorName(c.constructor));\n }\n }\n}\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n *\t@param {Element} [dom=null]\t\tA DOM node to mutate into the shape of the `vnode`\n *\t@param {VNode} vnode\t\t\tA VNode (with descendants forming a tree) representing the desired DOM structure\n *\t@returns {Element} dom\t\t\tThe created/mutated element\n *\t@private\n */\nfunction diff(dom, vnode, context, mountAll, parent, componentRoot) {\n // diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n if (!diffLevel++) {\n // when first starting the diff, check if we're diffing an SVG or within an SVG\n isSvgMode = parent != null && parent.ownerSVGElement !== undefined;\n\n // hydration is indicated by the existing element to be diffed not having a prop cache\n hydrating = dom != null && !('__omiattr_' in dom);\n }\n var ret;\n\n if (isArray(vnode)) {\n vnode = {\n nodeName: 'span',\n children: vnode\n };\n }\n\n ret = idiff(dom, vnode, context, mountAll, componentRoot);\n // append the element if its a new parent\n if (parent && ret.parentNode !== parent) parent.appendChild(ret);\n\n // diffLevel being reduced to 0 means we're exiting the diff\n if (! --diffLevel) {\n hydrating = false;\n // invoke queued componentDidMount lifecycle methods\n if (!componentRoot) flushMounts();\n }\n\n return ret;\n}\n\n/** Internals of `diff()`, separated to allow bypassing diffLevel / mount flushing. */\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n var out = dom,\n prevSvgMode = isSvgMode;\n\n // empty values (null, undefined, booleans) render as empty Text nodes\n if (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n // If the VNode represents a Component, perform a component diff:\n var vnodeName = vnode.nodeName;\n if (options.mapping[vnodeName]) {\n vnode.nodeName = options.mapping[vnodeName];\n return buildComponentFromVNode(dom, vnode, context, mountAll);\n }\n if (typeof vnodeName == 'function') {\n return buildComponentFromVNode(dom, vnode, context, mountAll);\n }\n\n // Fast case: Strings & Numbers create/update Text nodes.\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n // update if it's already a Text node:\n if (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\n /* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\n if (dom.nodeValue != vnode) {\n dom.nodeValue = vnode;\n }\n } else {\n // it wasn't a Text node: replace it with one and recycle the old Element\n out = document.createTextNode(vnode);\n if (dom) {\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n recollectNodeTree(dom, true);\n }\n }\n\n //ie8 error\n try {\n out['__omiattr_'] = true;\n } catch (e) {}\n\n return out;\n }\n\n // Tracks entering and exiting SVG namespace when descending through the tree.\n isSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n // If there's no existing element or it's the wrong type, create a new one:\n vnodeName = String(vnodeName);\n if (!dom || !isNamedNode(dom, vnodeName)) {\n out = createNode(vnodeName, isSvgMode);\n\n if (dom) {\n // move children into the replacement node\n while (dom.firstChild) {\n out.appendChild(dom.firstChild);\n } // if the previous Element was mounted into the DOM, replace it inline\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n // recycle the old element (skips non-Element node types)\n recollectNodeTree(dom, true);\n }\n }\n\n var fc = out.firstChild,\n props = out['__omiattr_'],\n vchildren = vnode.children;\n\n if (props == null) {\n props = out['__omiattr_'] = {};\n for (var a = out.attributes, i = a.length; i--;) {\n props[a[i].name] = a[i].value;\n }\n }\n\n // Optimization: fast-path for elements containing a single TextNode:\n if (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\n if (fc.nodeValue != vchildren[0]) {\n fc.nodeValue = vchildren[0];\n }\n }\n // otherwise, if there are existing or new children, diff them:\n else if (vchildren && vchildren.length || fc != null) {\n innerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML != null);\n }\n\n // Apply attributes/props from VNode to the DOM Element:\n diffAttributes(out, vnode.attributes, props);\n\n // restore previous SVG mode: (in case we're exiting an SVG namespace)\n isSvgMode = prevSvgMode;\n\n return out;\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n *\t@param {Element} dom\t\t\tElement whose children should be compared & mutated\n *\t@param {Array} vchildren\t\tArray of VNodes to compare to `dom.childNodes`\n *\t@param {Object} context\t\t\tImplicitly descendant context object (from most recent `getChildContext()`)\n *\t@param {Boolean} mountAll\n *\t@param {Boolean} isHydrating\tIf `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n var originalChildren = dom.childNodes,\n children = [],\n keyed = {},\n keyedLen = 0,\n min = 0,\n len = originalChildren.length,\n childrenLen = 0,\n vlen = vchildren ? vchildren.length : 0,\n j,\n c,\n f,\n vchild,\n child;\n\n // Build up a map of keyed children and an Array of unkeyed children:\n if (len !== 0) {\n for (var i = 0; i < len; i++) {\n var _child = originalChildren[i],\n props = _child['__omiattr_'],\n key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n if (key != null) {\n keyedLen++;\n keyed[key] = _child;\n } else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n children[childrenLen++] = _child;\n }\n }\n }\n\n if (vlen !== 0) {\n for (var i = 0; i < vlen; i++) {\n vchild = vchildren[i];\n child = null;\n\n // attempt to find a node based on key matching\n var key = vchild.key;\n if (key != null) {\n if (keyedLen && keyed[key] !== undefined) {\n child = keyed[key];\n keyed[key] = undefined;\n keyedLen--;\n }\n }\n // attempt to pluck a node of the same type from the existing children\n else if (!child && min < childrenLen) {\n for (j = min; j < childrenLen; j++) {\n if (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\n child = c;\n children[j] = undefined;\n if (j === childrenLen - 1) childrenLen--;\n if (j === min) min++;\n break;\n }\n }\n }\n\n // morph the matched/found/created DOM child to match vchild (deep)\n child = idiff(child, vchild, context, mountAll);\n\n f = originalChildren[i];\n if (child && child !== dom && child !== f) {\n if (f == null) {\n dom.appendChild(child);\n } else if (child === f.nextSibling) {\n removeNode(f);\n } else {\n dom.insertBefore(child, f);\n }\n }\n }\n }\n\n // remove unused keyed children:\n if (keyedLen) {\n for (var i in keyed) {\n if (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n }\n }\n\n // remove orphaned unkeyed children:\n while (min <= childrenLen) {\n if ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n }\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n *\t@param {Node} node\t\t\t\t\t\tDOM node to start unmount/removal from\n *\t@param {Boolean} [unmountOnly=false]\tIf `true`, only triggers unmount lifecycle, skips removal\n */\nfunction recollectNodeTree(node, unmountOnly) {\n var component = node._component;\n if (component) {\n // if node is owned by a Component, unmount that component (ends up recursing back here)\n unmountComponent(component);\n } else {\n // If the node's VNode had a ref function, invoke it with null here.\n // (this is part of the React spec, and smart for unsetting references)\n if (node['__omiattr_'] != null) applyRef(node['__omiattr_'].ref, null);\n\n if (unmountOnly === false || node['__omiattr_'] == null) {\n removeNode(node);\n }\n\n removeChildren(node);\n }\n}\n\n/** Recollect/unmount all children.\n *\t- we use .lastChild here because it causes less reflow than .firstChild\n *\t- it's also cheaper than accessing the .childNodes Live NodeList\n */\nfunction removeChildren(node) {\n node = node.lastChild;\n while (node) {\n var next = node.previousSibling;\n recollectNodeTree(node, true);\n node = next;\n }\n}\n\n/** Apply differences in attributes from a VNode to the given DOM Element.\n *\t@param {Element} dom\t\tElement with attributes to diff `attrs` against\n *\t@param {Object} attrs\t\tThe desired end-state key-value attribute pairs\n *\t@param {Object} old\t\t\tCurrent/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old) {\n var name;\n\n // remove attributes no longer present on the vnode by setting them to undefined\n for (name in old) {\n if (!(attrs && attrs[name] != null) && old[name] != null) {\n setAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);\n }\n }\n\n // add new & update changed attributes\n for (name in attrs) {\n if (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n setAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n }\n }\n}\n\n/** Retains a pool of Components for re-use, keyed on component name.\n *\tNote: since component names are not unique or even necessarily available, these are primarily a form of sharding.\n *\t@private\n */\nvar components = {};\n\n/** Reclaim a component for later re-use by the recycler. */\nfunction collectComponent(component) {\n var name = component.constructor.name;(components[name] || (components[name] = [])).push(component);\n}\n\n/** Create a component. Normalizes differences between PFC's and classful Components. */\nfunction createComponent(Ctor, props, context, vnode) {\n var list = components[Ctor.name],\n inst;\n\n if (Ctor.prototype && Ctor.prototype.render) {\n inst = new Ctor(props, context);\n Component.call(inst, props, context);\n } else {\n inst = new Component(props, context);\n inst.constructor = Ctor;\n inst.render = doRender;\n }\n vnode && (inst.scopedCssAttr = vnode.css);\n\n if (inst.constructor.use && inst.store && inst.store.data) {\n inst.store.instances.push(inst);\n inst.use = getUse(inst.store.data, inst.constructor.use);\n }\n\n if (list) {\n for (var i = list.length; i--;) {\n if (list[i].constructor === Ctor) {\n inst.nextBase = list[i].nextBase;\n list.splice(i, 1);\n break;\n }\n }\n }\n return inst;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, data, context) {\n return this.constructor(props, context);\n}\n\n/* obaa 1.0.0\n * By dntzhang\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n */\n\nvar obaa = function obaa(target, arr, callback) {\n var _observe = function _observe(target, arr, callback) {\n if (!target.$observer) target.$observer = this;\n var $observer = target.$observer;\n var eventPropArr = [];\n if (obaa.isArray(target)) {\n if (target.length === 0) {\n target.$observeProps = {};\n target.$observeProps.$observerPath = '#';\n }\n $observer.mock(target);\n }\n for (var prop in target) {\n if (target.hasOwnProperty(prop)) {\n if (callback) {\n if (obaa.isArray(arr) && obaa.isInArray(arr, prop)) {\n eventPropArr.push(prop);\n $observer.watch(target, prop);\n } else if (obaa.isString(arr) && prop == arr) {\n eventPropArr.push(prop);\n $observer.watch(target, prop);\n }\n } else {\n eventPropArr.push(prop);\n $observer.watch(target, prop);\n }\n }\n }\n $observer.target = target;\n if (!$observer.propertyChangedHandler) $observer.propertyChangedHandler = [];\n var propChanged = callback ? callback : arr;\n $observer.propertyChangedHandler.push({\n all: !callback,\n propChanged: propChanged,\n eventPropArr: eventPropArr\n });\n };\n _observe.prototype = {\n onPropertyChanged: function onPropertyChanged(prop, value, oldValue, target, path) {\n if (value !== oldValue && this.propertyChangedHandler) {\n var rootName = obaa._getRootName(prop, path);\n for (var i = 0, len = this.propertyChangedHandler.length; i < len; i++) {\n var handler = this.propertyChangedHandler[i];\n if (handler.all || obaa.isInArray(handler.eventPropArr, rootName) || rootName.indexOf('Array-') === 0) {\n handler.propChanged.call(this.target, prop, value, oldValue, path);\n }\n }\n }\n if (prop.indexOf('Array-') !== 0 && typeof value === 'object') {\n this.watch(target, prop, target.$observeProps.$observerPath);\n }\n },\n mock: function mock(target) {\n var self = this;\n obaa.methods.forEach(function (item) {\n target[item] = function () {\n var old = Array.prototype.slice.call(this, 0);\n var result = Array.prototype[item].apply(this, Array.prototype.slice.call(arguments));\n if (new RegExp('\\\\b' + item + '\\\\b').test(obaa.triggerStr)) {\n for (var cprop in this) {\n if (this.hasOwnProperty(cprop) && !obaa.isFunction(this[cprop])) {\n self.watch(this, cprop, this.$observeProps.$observerPath);\n }\n }\n //todo\n self.onPropertyChanged('Array-' + item, this, old, this, this.$observeProps.$observerPath);\n }\n return result;\n };\n target['pure' + item.substring(0, 1).toUpperCase() + item.substring(1)] = function () {\n return Array.prototype[item].apply(this, Array.prototype.slice.call(arguments));\n };\n });\n },\n watch: function watch(target, prop, path) {\n if (prop === '$observeProps' || prop === '$observer') return;\n if (obaa.isFunction(target[prop])) return;\n if (!target.$observeProps) target.$observeProps = {};\n if (path !== undefined) {\n target.$observeProps.$observerPath = path;\n } else {\n target.$observeProps.$observerPath = '#';\n }\n var self = this;\n var currentValue = target.$observeProps[prop] = target[prop];\n Object.defineProperty(target, prop, {\n get: function get() {\n return this.$observeProps[prop];\n },\n set: function set(value) {\n var old = this.$observeProps[prop];\n this.$observeProps[prop] = value;\n self.onPropertyChanged(prop, value, old, this, target.$observeProps.$observerPath);\n }\n });\n if (typeof currentValue == 'object') {\n if (obaa.isArray(currentValue)) {\n this.mock(currentValue);\n if (currentValue.length === 0) {\n if (!currentValue.$observeProps) currentValue.$observeProps = {};\n if (path !== undefined) {\n currentValue.$observeProps.$observerPath = path;\n } else {\n currentValue.$observeProps.$observerPath = '#';\n }\n }\n }\n for (var cprop in currentValue) {\n if (currentValue.hasOwnProperty(cprop)) {\n this.watch(currentValue, cprop, target.$observeProps.$observerPath + '-' + prop);\n }\n }\n }\n }\n };\n return new _observe(target, arr, callback);\n};\n\nobaa.methods = ['concat', 'copyWithin', 'entries', 'every', 'fill', 'filter', 'find', 'findIndex', 'forEach', 'includes', 'indexOf', 'join', 'keys', 'lastIndexOf', 'map', 'pop', 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some', 'sort', 'splice', 'toLocaleString', 'toString', 'unshift', 'values', 'size'];\nobaa.triggerStr = ['concat', 'copyWithin', 'fill', 'pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift', 'size'].join(',');\n\nobaa.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n};\n\nobaa.isString = function (obj) {\n return typeof obj === 'string';\n};\n\nobaa.isInArray = function (arr, item) {\n for (var i = arr.length; --i > -1;) {\n if (item === arr[i]) return true;\n }\n return false;\n};\n\nobaa.isFunction = function (obj) {\n return Object.prototype.toString.call(obj) == '[object Function]';\n};\n\nobaa._getRootName = function (prop, path) {\n if (path === '#') {\n return prop;\n }\n return path.split('-')[1];\n};\n\nobaa.add = function (obj, prop) {\n var $observer = obj.$observer;\n $observer.watch(obj, prop);\n};\n\nobaa.set = function (obj, prop, value, exec) {\n if (!exec) {\n obj[prop] = value;\n }\n var $observer = obj.$observer;\n $observer.watch(obj, prop);\n if (exec) {\n obj[prop] = value;\n }\n};\n\nArray.prototype.size = function (length) {\n this.length = length;\n};\n\nvar callbacks = [];\nvar nextTickCallback = [];\n\nfunction fireTick() {\n callbacks.forEach(function (item) {\n item.fn.call(item.scope);\n });\n\n nextTickCallback.forEach(function (nextItem) {\n nextItem.fn.call(nextItem.scope);\n });\n nextTickCallback.length = 0;\n}\n\nfunction proxyUpdate(ele) {\n var timeout = null;\n obaa(ele.data, function () {\n if (ele._willUpdate) {\n return;\n }\n if (ele.constructor.mergeUpdate) {\n clearTimeout(timeout);\n\n timeout = setTimeout(function () {\n ele.update();\n fireTick();\n }, 0);\n } else {\n ele.update();\n fireTick();\n }\n });\n}\n\n/** Set a component's `props` (generally derived from JSX attributes).\n *\t@param {Object} props\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.renderSync=false]\tIf `true` and {@link options.syncComponentUpdates} is `true`, triggers synchronous rendering.\n *\t@param {boolean} [opts.render=true]\t\t\tIf `false`, no render will be triggered.\n */\nfunction setComponentProps(component, props, opts, context, mountAll) {\n if (component._disable) return;\n component._disable = true;\n\n if (component.__ref = props.ref) delete props.ref;\n if (component.__key = props.key) delete props.key;\n\n if (!component.base || mountAll) {\n if (component.beforeInstall) component.beforeInstall();\n if (component.install) component.install();\n if (component.constructor.observe) {\n proxyUpdate(component);\n }\n } else if (component.receiveProps) {\n component.receiveProps(props, component.data, component.props);\n }\n\n if (context && context !== component.context) {\n if (!component.prevContext) component.prevContext = component.context;\n component.context = context;\n }\n\n if (!component.prevProps) component.prevProps = component.props;\n component.props = props;\n\n component._disable = false;\n\n if (opts !== 0) {\n if (opts === 1 || options.syncComponentUpdates !== false || !component.base) {\n renderComponent(component, 1, mountAll);\n } else {\n enqueueRender(component);\n }\n }\n\n applyRef(component.__ref, component);\n}\n\nfunction shallowComparison(old, attrs) {\n var name;\n\n for (name in old) {\n if (attrs[name] == null && old[name] != null) {\n return true;\n }\n }\n\n if (old.children.length > 0 || attrs.children.length > 0) {\n return true;\n }\n\n for (name in attrs) {\n if (name != 'children') {\n var type = typeof attrs[name];\n if (type == 'function' || type == 'object') {\n return true;\n } else if (attrs[name] != old[name]) {\n return true;\n }\n }\n }\n}\n\n/** Render a Component, triggering necessary lifecycle events and taking High-Order Components into account.\n *\t@param {Component} component\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.build=false]\t\tIf `true`, component will build and store a DOM node if not already associated with one.\n *\t@private\n */\nfunction renderComponent(component, opts, mountAll, isChild) {\n if (component._disable) return;\n\n var props = component.props,\n data = component.data,\n context = component.context,\n previousProps = component.prevProps || props,\n previousState = component.prevState || data,\n previousContext = component.prevContext || context,\n isUpdate = component.base,\n nextBase = component.nextBase,\n initialBase = isUpdate || nextBase,\n initialChildComponent = component._component,\n skip = false,\n rendered,\n inst,\n cbase;\n\n // if updating\n if (isUpdate) {\n component.props = previousProps;\n component.data = previousState;\n component.context = previousContext;\n if (component.store || opts == 2 || shallowComparison(previousProps, props)) {\n skip = false;\n if (component.beforeUpdate) {\n component.beforeUpdate(props, data, context);\n }\n } else {\n skip = true;\n }\n component.props = props;\n component.data = data;\n component.context = context;\n }\n\n component.prevProps = component.prevState = component.prevContext = component.nextBase = null;\n\n if (!skip) {\n component.beforeRender && component.beforeRender();\n rendered = component.render(props, data, context);\n\n //don't rerender\n if (component.constructor.css || component.css) {\n addScopedAttrStatic(rendered, '_s' + getCtorName(component.constructor));\n }\n\n scopeHost(rendered, component.scopedCssAttr);\n\n // context to pass to the child, can be updated via (grand-)parent component\n if (component.getChildContext) {\n context = extend(extend({}, context), component.getChildContext());\n }\n\n var childComponent = rendered && rendered.nodeName,\n toUnmount,\n base,\n ctor = options.mapping[childComponent];\n\n if (ctor) {\n // set up high order component link\n\n var childProps = getNodeProps(rendered);\n inst = initialChildComponent;\n\n if (inst && inst.constructor === ctor && childProps.key == inst.__key) {\n setComponentProps(inst, childProps, 1, context, false);\n } else {\n toUnmount = inst;\n\n component._component = inst = createComponent(ctor, childProps, context);\n inst.nextBase = inst.nextBase || nextBase;\n inst._parentComponent = component;\n setComponentProps(inst, childProps, 0, context, false);\n renderComponent(inst, 1, mountAll, true);\n }\n\n base = inst.base;\n } else {\n cbase = initialBase;\n\n // destroy high order component link\n toUnmount = initialChildComponent;\n if (toUnmount) {\n cbase = component._component = null;\n }\n\n if (initialBase || opts === 1) {\n if (cbase) cbase._component = null;\n base = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);\n }\n }\n\n if (initialBase && base !== initialBase && inst !== initialChildComponent) {\n var baseParent = initialBase.parentNode;\n if (baseParent && base !== baseParent) {\n baseParent.replaceChild(base, initialBase);\n\n if (!toUnmount) {\n initialBase._component = null;\n recollectNodeTree(initialBase, false);\n }\n }\n }\n\n if (toUnmount) {\n unmountComponent(toUnmount);\n }\n\n component.base = base;\n if (base && !isChild) {\n var componentRef = component,\n t = component;\n while (t = t._parentComponent) {\n(componentRef = t).base = base;\n }\n base._component = componentRef;\n base._componentConstructor = componentRef.constructor;\n }\n }\n\n if (!isUpdate || mountAll) {\n mounts.unshift(component);\n } else if (!skip) {\n // Ensure that pending componentDidMount() hooks of child components\n // are called before the componentDidUpdate() hook in the parent.\n // Note: disabled as it causes duplicate hooks, see https://github.com/developit/preact/issues/750\n // flushMounts();\n\n if (component.afterUpdate) {\n //deprecated\n component.afterUpdate(previousProps, previousState, previousContext);\n }\n if (component.updated) {\n component.updated(previousProps, previousState, previousContext);\n }\n if (options.afterUpdate) options.afterUpdate(component);\n }\n\n if (component._renderCallbacks != null) {\n while (component._renderCallbacks.length) {\n component._renderCallbacks.pop().call(component);\n }\n }\n\n if (!diffLevel && !isChild) flushMounts();\n}\n\n/** Apply the Component referenced by a VNode to the DOM.\n *\t@param {Element} dom\tThe DOM node to mutate\n *\t@param {VNode} vnode\tA Component-referencing VNode\n *\t@returns {Element} dom\tThe created/mutated element\n *\t@private\n */\nfunction buildComponentFromVNode(dom, vnode, context, mountAll) {\n var c = dom && dom._component,\n originalComponent = c,\n oldDom = dom,\n isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n isOwner = isDirectOwner,\n props = getNodeProps(vnode);\n while (c && !isOwner && (c = c._parentComponent)) {\n isOwner = c.constructor === vnode.nodeName;\n }\n\n if (c && isOwner && (!mountAll || c._component)) {\n setComponentProps(c, props, 3, context, mountAll);\n dom = c.base;\n } else {\n if (originalComponent && !isDirectOwner) {\n unmountComponent(originalComponent);\n dom = oldDom = null;\n }\n\n c = createComponent(vnode.nodeName, props, context, vnode);\n if (dom && !c.nextBase) {\n c.nextBase = dom;\n // passing dom/oldDom as nextBase will recycle it if unused, so bypass recycling on L229:\n oldDom = null;\n }\n setComponentProps(c, props, 1, context, mountAll);\n dom = c.base;\n\n if (oldDom && dom !== oldDom) {\n oldDom._component = null;\n recollectNodeTree(oldDom, false);\n }\n }\n\n return dom;\n}\n\n/** Remove a component from the DOM and recycle it.\n *\t@param {Component} component\tThe Component instance to unmount\n *\t@private\n */\nfunction unmountComponent(component) {\n if (options.beforeUnmount) options.beforeUnmount(component);\n\n var base = component.base;\n\n component._disable = true;\n\n if (component.uninstall) component.uninstall();\n\n if (component.store && component.store.instances) {\n for (var i = 0, len = component.store.instances.length; i < len; i++) {\n if (component.store.instances[i] === component) {\n component.store.instances.splice(i, 1);\n break;\n }\n }\n }\n\n component.base = null;\n\n // recursively tear down & recollect high-order component children:\n var inner = component._component;\n if (inner) {\n unmountComponent(inner);\n } else if (base) {\n if (base['__omiattr_'] != null) applyRef(base['__omiattr_'].ref, null);\n\n component.nextBase = base;\n\n removeNode(base);\n collectComponent(component);\n\n removeChildren(base);\n }\n\n applyRef(component.__ref, null);\n}\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar id = 0;\n\nvar Component = function () {\n function Component(props, store) {\n _classCallCheck(this, Component);\n\n this.props = assign(nProps(this.constructor.props), this.constructor.defaultProps, props);\n this.elementId = id++;\n this.data = this.constructor.data || this.data || {};\n\n this._preCss = null;\n\n this.store = store;\n }\n\n Component.prototype.update = function update(callback) {\n this._willUpdate = true;\n if (callback) (this._renderCallbacks = this._renderCallbacks || []).push(callback);\n renderComponent(this, 2);\n if (options.componentChange) options.componentChange(this, this.base);\n this._willUpdate = false;\n };\n\n Component.prototype.fire = function fire(type, data) {\n var _this = this;\n\n Object.keys(this.props).every(function (key) {\n if ('on' + type.toLowerCase() === key.toLowerCase()) {\n _this.props[key]({ detail: data });\n return false;\n }\n return true;\n });\n };\n\n Component.prototype.render = function render() {};\n\n return Component;\n}();\n\nComponent.is = 'WeElement';\n\n/** Render JSX into a `parent` Element.\n *\t@param {VNode} vnode\t\tA (JSX) VNode to render\n *\t@param {Element} parent\t\tDOM element to render into\n *\t@param {object} [store]\n *\t@public\n */\nfunction render(vnode, parent, store, empty, merge) {\n parent = typeof parent === 'string' ? document.querySelector(parent) : parent;\n if (store && store.data) {\n store.instances = [];\n extendStoreUpate(store);\n var timeout = null;\n var patchs = {};\n obaa(store.data, function (prop, val, old, path) {\n clearTimeout(timeout);\n var key = fixPath(path + '-' + prop);\n patchs[key] = true;\n timeout = setTimeout(function () {\n store.update(patchs);\n patchs = {};\n }, 0);\n });\n }\n\n if (empty) {\n while (parent.firstChild) {\n parent.removeChild(parent.firstChild);\n }\n }\n\n if (merge) {\n merge = typeof merge === 'string' ? document.querySelector(merge) : merge;\n }\n\n return diff(merge, vnode, store, false, parent, false);\n}\n\nfunction extendStoreUpate(store) {\n store.update = function (patch) {\n var _this = this;\n\n var updateAll = matchGlobalData(this.globalData, patch);\n if (Object.keys(patch).length > 0) {\n this.instances.forEach(function (instance) {\n if (updateAll || _this.updateAll || instance.constructor.updatePath && needUpdate(patch, instance.constructor.updatePath)) {\n //update this.use\n instance.use = getUse(store.data, instance.constructor.use);\n instance.update();\n }\n });\n this.onChange && this.onChange(patch);\n }\n };\n}\n\nfunction matchGlobalData(globalData, diffResult) {\n if (!globalData) return false;\n for (var keyA in diffResult) {\n if (globalData.indexOf(keyA) > -1) {\n return true;\n }\n for (var i = 0, len = globalData.length; i < len; i++) {\n if (includePath(keyA, globalData[i])) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction needUpdate(diffResult, updatePath) {\n for (var keyA in diffResult) {\n if (updatePath[keyA]) {\n return true;\n }\n for (var keyB in updatePath) {\n if (includePath(keyA, keyB)) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction includePath(pathA, pathB) {\n if (pathA.indexOf(pathB) === 0) {\n var next = pathA.substr(pathB.length, 1);\n if (next === '[' || next === '.') {\n return true;\n }\n }\n return false;\n}\n\nfunction fixPath(path) {\n var mpPath = '';\n var arr = path.replace('#-', '').split('-');\n arr.forEach(function (item, index) {\n if (index) {\n if (isNaN(Number(item))) {\n mpPath += '.' + item;\n } else {\n mpPath += '[' + item + ']';\n }\n } else {\n mpPath += item;\n }\n });\n return mpPath;\n}\n\nfunction define(name, ctor) {\n options.mapping[name] = ctor;\n if (ctor.use) {\n ctor.updatePath = getPath(ctor.use);\n } else if (ctor.data) {\n //Compatible with older versions\n ctor.updatePath = getUpdatePath(ctor.data);\n }\n}\n\nfunction getPath(obj) {\n if (Object.prototype.toString.call(obj) === '[object Array]') {\n var result = {};\n obj.forEach(function (item) {\n if (typeof item === 'string') {\n result[item] = true;\n } else {\n var tempPath = item[Object.keys(item)[0]];\n if (typeof tempPath === 'string') {\n result[tempPath] = true;\n } else {\n if (typeof tempPath[0] === 'string') {\n result[tempPath[0]] = true;\n } else {\n tempPath[0].forEach(function (path) {\n return result[path] = true;\n });\n }\n }\n }\n });\n return result;\n } else {\n return getUpdatePath(obj);\n }\n}\n\nfunction getUpdatePath(data) {\n var result = {};\n dataToPath(data, result);\n return result;\n}\n\nfunction dataToPath(data, result) {\n Object.keys(data).forEach(function (key) {\n result[key] = true;\n var type = Object.prototype.toString.call(data[key]);\n if (type === '[object Object]') {\n _objToPath(data[key], key, result);\n } else if (type === '[object Array]') {\n _arrayToPath(data[key], key, result);\n }\n });\n}\n\nfunction _objToPath(data, path, result) {\n Object.keys(data).forEach(function (key) {\n result[path + '.' + key] = true;\n delete result[path];\n var type = Object.prototype.toString.call(data[key]);\n if (type === '[object Object]') {\n _objToPath(data[key], path + '.' + key, result);\n } else if (type === '[object Array]') {\n _arrayToPath(data[key], path + '.' + key, result);\n }\n });\n}\n\nfunction _arrayToPath(data, path, result) {\n data.forEach(function (item, index) {\n result[path + '[' + index + ']'] = true;\n delete result[path];\n var type = Object.prototype.toString.call(item);\n if (type === '[object Object]') {\n _objToPath(item, path + '[' + index + ']', result);\n } else if (type === '[object Array]') {\n _arrayToPath(item, path + '[' + index + ']', result);\n }\n });\n}\n\nfunction rpx(str) {\n return str.replace(/([1-9]\\d*|0)(\\.\\d*)*rpx/g, function (a, b) {\n return window.innerWidth * Number(b) / 750 + 'px';\n });\n}\n\nfunction _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ModelView = function (_Component) {\n _inherits(ModelView, _Component);\n\n function ModelView() {\n _classCallCheck$1(this, ModelView);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n ModelView.prototype.beforeInstall = function beforeInstall() {\n this.data = this.vm.data;\n };\n\n return ModelView;\n}(Component);\n\nModelView.observe = true;\nModelView.mergeUpdate = true;\n\n/**\n * classNames based on https://github.com/JedWatson/classnames\n * by Jed Watson\n * Licensed under the MIT License\n * https://github.com/JedWatson/classnames/blob/master/LICENSE\n * modified by dntzhang\n */\n\nvar hasOwn = {}.hasOwnProperty;\n\nfunction classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n\n var argType = typeof arg;\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg) && arg.length) {\n var inner = classNames.apply(null, arg);\n if (inner) {\n classes.push(inner);\n }\n } else if (argType === 'object') {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n\n return classes.join(' ');\n}\n\nfunction extractClass() {\n var _Array$prototype$slic = Array.prototype.slice.call(arguments, 0),\n props = _Array$prototype$slic[0],\n args = _Array$prototype$slic.slice(1);\n\n if (props) {\n if (props.class) {\n args.unshift(props.class);\n delete props.class;\n } else if (props.className) {\n args.unshift(props.className);\n delete props.className;\n }\n }\n if (args.length > 0) {\n return { class: classNames.apply(null, args) };\n }\n}\n\nfunction getHost(component) {\n var base = component.base;\n if (base) {\n while (base.parentNode) {\n if (base.parentNode._component) {\n return base.parentNode._component;\n } else {\n base = base.parentNode;\n }\n }\n }\n}\n\n/**\n * preact-render-to-string based on preact-render-to-string\n * by Jason Miller\n * Licensed under the MIT License\n * https://github.com/developit/preact-render-to-string\n *\n * modified by dntzhang\n */\n\nvar encodeEntities = function encodeEntities(s) {\n return String(s).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"');\n};\n\nvar indent = function indent(s, char) {\n return String(s).replace(/(\\n+)/g, '$1' + (char || '\\t'));\n};\n\nvar mapping$1 = options.mapping;\n\nvar VOID_ELEMENTS = /^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/;\n\nvar isLargeString = function isLargeString(s, length, ignoreLines) {\n return String(s).length > (length || 40) || !ignoreLines && String(s).indexOf('\\n') !== -1 || String(s).indexOf('<') !== -1;\n};\n\nvar JS_TO_CSS = {};\n\n// Convert an Object style to a CSSText string\nfunction styleObjToCss(s) {\n var str = '';\n for (var prop in s) {\n var val = s[prop];\n if (val != null) {\n if (str) str += ' ';\n // str += jsToCss(prop);\n str += JS_TO_CSS[prop] || (JS_TO_CSS[prop] = prop.replace(/([A-Z])/g, '-$1').toLowerCase());\n str += ': ';\n str += val;\n if (typeof val === 'number' && IS_NON_DIMENSIONAL.test(prop) === false) {\n str += 'px';\n }\n str += ';';\n }\n }\n return str || undefined;\n}\n\nfunction renderToString(vnode, opts, store, isSvgMode) {\n store = store || {};\n opts = Object.assign({\n scopedCSS: true\n }, opts);\n var css = {};\n var html = _renderToString(vnode, opts, store, isSvgMode, css);\n return {\n css: Object.values(css),\n html: html\n };\n}\n\n/** The default export is an alias of `render()`. */\nfunction _renderToString(vnode, opts, store, isSvgMode, css) {\n if (vnode == null || typeof vnode === 'boolean') {\n return '';\n }\n\n var nodeName = vnode.nodeName,\n attributes = vnode.attributes,\n isComponent = false;\n\n var pretty = true && opts.pretty,\n indentChar = pretty && typeof pretty === 'string' ? pretty : '\\t';\n\n // #text nodes\n if (typeof vnode !== 'object' && !nodeName) {\n return encodeEntities(vnode);\n }\n\n // components\n var ctor = mapping$1[nodeName];\n if (ctor) {\n isComponent = true;\n\n var props = getNodeProps$1(vnode),\n rendered;\n // class-based components\n var c = new ctor(props, store);\n // turn off stateful re-rendering:\n c._disable = c.__x = true;\n c.props = props;\n c.store = store;\n if (c.install) c.install();\n if (c.beforeRender) c.beforeRender();\n rendered = c.render(c.props, c.data, c.store);\n\n if (opts.scopedCSS) {\n\n if (c.constructor.css || c.css) {\n\n var cssStr = c.constructor.css ? c.constructor.css : typeof c.css === 'function' ? c.css() : c.css;\n var cssAttr = '_s' + getCtorName(c.constructor);\n css[cssAttr] = '';\n addScopedAttrStatic(rendered, '_s' + getCtorName(c.constructor));\n }\n\n c.scopedCSSAttr = vnode.css;\n scopeHost(rendered, c.scopedCSSAttr);\n }\n\n return _renderToString(rendered, opts, store, false, css);\n }\n\n // render JSX to HTML\n var s = '',\n html;\n\n if (attributes) {\n var attrs = Object.keys(attributes);\n\n // allow sorting lexicographically for more determinism (useful for tests, such as via preact-jsx-chai)\n if (opts && opts.sortAttributes === true) attrs.sort();\n\n for (var i = 0; i < attrs.length; i++) {\n var name = attrs[i],\n v = attributes[name];\n if (name === 'children') continue;\n\n if (name.match(/[\\s\\n\\\\/='\"\\0<>]/)) continue;\n\n if (!(opts && opts.allAttributes) && (name === 'key' || name === 'ref')) continue;\n\n if (name === 'className') {\n if (attributes.class) continue;\n name = 'class';\n } else if (isSvgMode && name.match(/^xlink:?./)) {\n name = name.toLowerCase().replace(/^xlink:?/, 'xlink:');\n }\n\n if (name === 'style' && v && typeof v === 'object') {\n v = styleObjToCss(v);\n }\n\n var hooked = opts.attributeHook && opts.attributeHook(name, v, store, opts, isComponent);\n if (hooked || hooked === '') {\n s += hooked;\n continue;\n }\n\n if (name === 'dangerouslySetInnerHTML') {\n html = v && v.__html;\n } else if ((v || v === 0 || v === '') && typeof v !== 'function') {\n if (v === true || v === '') {\n v = name;\n // in non-xml mode, allow boolean attributes\n if (!opts || !opts.xml) {\n s += ' ' + name;\n continue;\n }\n }\n s += ' ' + name + '=\"' + encodeEntities(v) + '\"';\n }\n }\n }\n\n // account for >1 multiline attribute\n if (pretty) {\n var sub = s.replace(/^\\n\\s*/, ' ');\n if (sub !== s && !~sub.indexOf('\\n')) s = sub;else if (pretty && ~s.indexOf('\\n')) s += '\\n';\n }\n\n s = '<' + nodeName + s + '>';\n if (String(nodeName).match(/[\\s\\n\\\\/='\"\\0<>]/)) throw s;\n\n var isVoid = String(nodeName).match(VOID_ELEMENTS);\n if (isVoid) s = s.replace(/>$/, ' />');\n\n var pieces = [];\n if (html) {\n // if multiline, indent.\n if (pretty && isLargeString(html)) {\n html = '\\n' + indentChar + indent(html, indentChar);\n }\n s += html;\n } else if (vnode.children) {\n var hasLarge = pretty && ~s.indexOf('\\n');\n for (var i = 0; i < vnode.children.length; i++) {\n var child = vnode.children[i];\n if (child != null && child !== false) {\n var childSvgMode = nodeName === 'svg' ? true : nodeName === 'foreignObject' ? false : isSvgMode,\n ret = _renderToString(child, opts, store, childSvgMode, css);\n if (pretty && !hasLarge && isLargeString(ret)) hasLarge = true;\n if (ret) pieces.push(ret);\n }\n }\n if (pretty && hasLarge) {\n for (var i = pieces.length; i--;) {\n pieces[i] = '\\n' + indentChar + indent(pieces[i], indentChar);\n }\n }\n }\n\n if (pieces.length) {\n s += pieces.join('');\n } else if (opts && opts.xml) {\n return s.substring(0, s.length - 1) + ' />';\n }\n\n if (!isVoid) {\n if (pretty && ~s.indexOf('\\n')) s += '\\n';\n s += '';\n }\n\n return s;\n}\n\nfunction assign$1(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\nfunction getNodeProps$1(vnode) {\n var props = assign$1({}, vnode.attributes);\n props.children = vnode.children;\n\n var defaultProps = vnode.nodeName.defaultProps;\n if (defaultProps !== undefined) {\n for (var i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i];\n }\n }\n }\n\n return props;\n}\n\nvar WeElement = Component;\nvar defineElement = define;\nfunction createRef() {\n return {};\n}\n\noptions.root.Omi = {\n h: h,\n createElement: h,\n cloneElement: cloneElement,\n createRef: createRef,\n Component: Component,\n render: render,\n rerender: rerender,\n options: options,\n WeElement: WeElement,\n define: define,\n rpx: rpx,\n ModelView: ModelView,\n defineElement: defineElement,\n classNames: classNames,\n extractClass: extractClass,\n getHost: getHost,\n renderToString: renderToString\n};\noptions.root.omi = options.root.Omi;\noptions.root.Omi.version = 'omio-2.0.5';\n\nvar omi = {\n h: h,\n createElement: h,\n cloneElement: cloneElement,\n createRef: createRef,\n Component: Component,\n render: render,\n rerender: rerender,\n options: options,\n WeElement: WeElement,\n define: define,\n rpx: rpx,\n ModelView: ModelView,\n defineElement: defineElement,\n classNames: classNames,\n extractClass: extractClass,\n getHost: getHost,\n renderToString: renderToString\n};\n\nexport default omi;\nexport { h, h as createElement, cloneElement, createRef, Component, render, rerender, options, WeElement, define, rpx, ModelView, defineElement, classNames, extractClass, getHost, renderToString };\n//# sourceMappingURL=omi.esm.js.map\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/omio/dist/omi.esm.js","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/css-loader/lib/css-base.js","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\n} catch(e) {\n\t// This works if the window reference is available\n\tif(typeof window === \"object\")\n\t\tg = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n\n// WEBPACK FOOTER //\n// (webpack)/buildin/global.js","'use strict';\n\nvar asap = require('asap/raw');\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._75 = 0;\n this._83 = 0;\n this._18 = null;\n this._38 = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._47 = null;\nPromise._71 = null;\nPromise._44 = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._83 === 3) {\n self = self._18;\n }\n if (Promise._47) {\n Promise._47(self);\n }\n if (self._83 === 0) {\n if (self._75 === 0) {\n self._75 = 1;\n self._38 = deferred;\n return;\n }\n if (self._75 === 1) {\n self._75 = 2;\n self._38 = [self._38, deferred];\n return;\n }\n self._38.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n asap(function() {\n var cb = self._83 === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._83 === 1) {\n resolve(deferred.promise, self._18);\n } else {\n reject(deferred.promise, self._18);\n }\n return;\n }\n var ret = tryCallOne(cb, self._18);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._83 = 3;\n self._18 = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._83 = 1;\n self._18 = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._83 = 2;\n self._18 = newValue;\n if (Promise._71) {\n Promise._71(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._75 === 1) {\n handle(self, self._38);\n self._38 = null;\n }\n if (self._75 === 2) {\n for (var i = 0; i < self._38.length; i++) {\n handle(self, self._38[i]);\n }\n self._38 = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/core.js","'use strict';\n\nif (typeof Promise === 'undefined') {\n // Rejection tracking prevents a common issue where React gets into an\n // inconsistent state due to an error, but it gets swallowed by a Promise,\n // and the user has no idea what causes React's erratic future behavior.\n require('promise/lib/rejection-tracking').enable();\n window.Promise = require('promise/lib/es6-extensions.js');\n}\n\n// fetch() polyfill for making API calls.\nrequire('whatwg-fetch');\n\n// Object.assign() is commonly used with React.\n// It will use the native implementation if it's present and isn't buggy.\nObject.assign = require('object-assign');\n\n// In tests, polyfill requestAnimationFrame since jsdom doesn't provide it yet.\n// We don't polyfill it in the browser--this is user's responsibility.\nif (process.env.NODE_ENV === 'test') {\n require('raf').polyfill(global);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./config/polyfills.js","'use strict';\n\nvar Promise = require('./core');\n\nvar DEFAULT_WHITELIST = [\n ReferenceError,\n TypeError,\n RangeError\n];\n\nvar enabled = false;\nexports.disable = disable;\nfunction disable() {\n enabled = false;\n Promise._47 = null;\n Promise._71 = null;\n}\n\nexports.enable = enable;\nfunction enable(options) {\n options = options || {};\n if (enabled) disable();\n enabled = true;\n var id = 0;\n var displayId = 0;\n var rejections = {};\n Promise._47 = function (promise) {\n if (\n promise._83 === 2 && // IS REJECTED\n rejections[promise._56]\n ) {\n if (rejections[promise._56].logged) {\n onHandled(promise._56);\n } else {\n clearTimeout(rejections[promise._56].timeout);\n }\n delete rejections[promise._56];\n }\n };\n Promise._71 = function (promise, err) {\n if (promise._75 === 0) { // not yet handled\n promise._56 = id++;\n rejections[promise._56] = {\n displayId: null,\n error: err,\n timeout: setTimeout(\n onUnhandled.bind(null, promise._56),\n // For reference errors and type errors, this almost always\n // means the programmer made a mistake, so log them after just\n // 100ms\n // otherwise, wait 2 seconds to see if they get handled\n matchWhitelist(err, DEFAULT_WHITELIST)\n ? 100\n : 2000\n ),\n logged: false\n };\n }\n };\n function onUnhandled(id) {\n if (\n options.allRejections ||\n matchWhitelist(\n rejections[id].error,\n options.whitelist || DEFAULT_WHITELIST\n )\n ) {\n rejections[id].displayId = displayId++;\n if (options.onUnhandled) {\n rejections[id].logged = true;\n options.onUnhandled(\n rejections[id].displayId,\n rejections[id].error\n );\n } else {\n rejections[id].logged = true;\n logError(\n rejections[id].displayId,\n rejections[id].error\n );\n }\n }\n }\n function onHandled(id) {\n if (rejections[id].logged) {\n if (options.onHandled) {\n options.onHandled(rejections[id].displayId, rejections[id].error);\n } else if (!rejections[id].onUnhandled) {\n console.warn(\n 'Promise Rejection Handled (id: ' + rejections[id].displayId + '):'\n );\n console.warn(\n ' This means you can ignore any previous messages of the form \"Possible Unhandled Promise Rejection\" with id ' +\n rejections[id].displayId + '.'\n );\n }\n }\n }\n}\n\nfunction logError(id, error) {\n console.warn('Possible Unhandled Promise Rejection (id: ' + id + '):');\n var errStr = (error && (error.stack || error)) + '';\n errStr.split('\\n').forEach(function (line) {\n console.warn(' ' + line);\n });\n}\n\nfunction matchWhitelist(error, list) {\n return list.some(function (cls) {\n return error instanceof cls;\n });\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/rejection-tracking.js","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {characterData: true});\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/asap/browser-raw.js","'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n var p = new Promise(Promise._44);\n p._83 = 1;\n p._18 = value;\n return p;\n}\nPromise.resolve = function (value) {\n if (value instanceof Promise) return value;\n\n if (value === null) return NULL;\n if (value === undefined) return UNDEFINED;\n if (value === true) return TRUE;\n if (value === false) return FALSE;\n if (value === 0) return ZERO;\n if (value === '') return EMPTYSTRING;\n\n if (typeof value === 'object' || typeof value === 'function') {\n try {\n var then = value.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(value));\n }\n } catch (ex) {\n return new Promise(function (resolve, reject) {\n reject(ex);\n });\n }\n }\n return valuePromise(value);\n};\n\nPromise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\n\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n if (val instanceof Promise && val.then === Promise.prototype.then) {\n while (val._83 === 3) {\n val = val._18;\n }\n if (val._83 === 1) return res(i, val._18);\n if (val._83 === 2) reject(val._18);\n val.then(function (val) {\n res(i, val);\n }, reject);\n return;\n } else {\n var then = val.then;\n if (typeof then === 'function') {\n var p = new Promise(then.bind(val));\n p.then(function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n values.forEach(function(value){\n Promise.resolve(value).then(resolve, reject);\n });\n });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/es6-extensions.js","(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = 'status' in options ? options.status : 200\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/whatwg-fetch/fetch.js","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/object-assign/index.js","import { define, WeElement } from 'omi'\n\nimport './my-head'\nimport './my-content'\nimport './my-sidebar'\nimport './my-demo'\n\ndefine('my-frame', class extends WeElement {\n\n installed(){\n this.store.init()\n }\n\n render() {\n return (\n
\n \n
\n \n
\n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-frame.js","import { define, WeElement } from 'omi'\nimport logo from './omi-logo2019.svg'\n\ndefine('my-head', class extends WeElement {\n static css = require('./_index.css')\n\n toggleMenus = evt => {\n this.store.toogleSidebar()\n evt.stopPropagation()\n }\n\n hideSidebar = evt => {\n this.store.hideSidebar()\n }\n\n render() {\n return (\n
\n
\n \"\"\n
\n\n \n \n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-head/index.js","module.exports = __webpack_public_path__ + \"static/media/omi-logo2019.923166c3.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/omi-logo2019.svg\n// module id = 13\n// module chunks = 30 31","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAqklEQVRoQ+2WQQ6AMAgE4f+Pxg+oSTNbDXR7Z5UZQpvR/GTz/w838LdBG7ABSMAjBAHichvACGHAXANVVRCOtDwzb2E/GnADUv4R5xkQA9wWN3cLbUMmDrYBMdDluLkGfJEtD8N7wXkXWfsREk/Atri5W2gbMnGwDYiBLsfNNdB+jbqB5Wn2U0KM7KO4uVvoI4D4MzaAEcIAG4AAcbkNYIQwwAYgQFze3sAFU6MwMZGH3LoAAAAASUVORK5CYII=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/menu.png\n// module id = 14\n// module chunks = 30 31","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/_index.css\n// module id = 15\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".head{\\n position:fixed;\\n height:60px;\\n line-height: 60px;\\n border-bottom: 1px solid #eee;\\n width:100%;\\n background-color:#24292e;\\n z-index:100;\\n top: 0;\\n}\\n\\nul,li{\\n display: inline-block;\\n}\\n\\n.logo_box{\\n width:100px;\\n display: inline-block;\\n text-align:center;\\n line-height: 60px;\\n}\\n\\n.menu a,.logo_box a{\\n display: inline-block;\\n height:60px;\\n color: white;\\n}\\n\\n.menu{\\n position: absolute;\\n right:20px;\\n}\\n\\n.menu li{\\n margin-left:15px;\\n}\\n\\n.logo_box a{\\n font-size: 34px;\\n font-weight: bold;\\n color: #00bff3;\\n padding: 0px 15px;\\n line-height: 60px;\\n cursor: pointer;\\n}\\n\\n.menu a:hover{\\n color: white;\\n}\\n\\n.m_menu{\\n position:fixed;\\n display:none;\\n cursor: pointer;\\n}\\n\\n.menu li{\\n display:inline-block;\\n}\\n\\n.logo{\\n width: 40px;\\n height: 40px;\\n margin-left: 10px;\\n margin-top: 10px;\\n cursor: pointer;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n\\n .logo_box{\\n display:inline-block;\\n }\\n\\n .logo{\\n display: none;\\n }\\n\\n .head{\\n text-align:center;\\n }\\n\\n .m_menu{\\n top:0;\\n left:0;\\n display:block;\\n width:50px;\\n height:50px;\\n padding-top: 6px;\\n }\\n\\n .m_menu img{\\n width:30px;\\n }\\n\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-head/_index.css\n// module id = 16\n// module chunks = 30 31","import { define, WeElement } from 'omi'\nimport '../my-footer'\n\ndefine('my-content', class extends WeElement {\n static css = require('./_index.css')\n\n static use = [\n 'html'\n ]\n\n install() {\n this.store.myContent = this\n }\n\n installed() {\n this.initCodeStyle()\n }\n\n afterUpdate() {\n this.initCodeStyle()\n }\n\n touchEnd = () => {\n this.store.hideSidebar()\n }\n\n initCodeStyle() {\n let codes = document.querySelectorAll('code')\n\n let codesArr = Array.prototype.slice.call(codes);\n let codeHlNumArr = []\n codesArr.forEach(code => {\n let arr = code.className.match(/{([\\S\\s]*)}/)\n let pre = code.parentNode\n //bug!\n arr && pre.setAttribute('data-line', arr[1])\n if (code.className) {\n pre.className = code.className\n\n const temp = code.className.match(/language-\\w*/g)[0]\n if (temp) {\n code.innerHTML = Prism.highlight(code.innerText, Prism.languages[temp.split('-')[1]], temp.split('-')[1])\n }\n } else {\n let pre = code.parentNode\n code.className = 'language-markup'\n pre.className = 'language-markup'\n code.innerHTML = Prism.highlight(code.innerText, Prism.languages.markup, 'markup')\n }\n // let hllNums = null\n // if (arr) {\n // let numArr = arr[0].replace(/[{|}]/g, '').split(',')\n // hllNums = this._arrToNumber(numArr)\n // }\n //codeHlNumArr.push(hllNums)\n })\n\n // codesArr.forEach((code, index) => {\n // let newP = document.createElement('div')\n // newP.className = '_code-ctn'\n // let pre = code.parentNode\n // let ctn = pre.parentNode\n // if (pre.nodeName === 'PRE') {\n // ctn.insertBefore(newP, pre)\n\n // let hl = document.createElement('div')\n // hl.className = '_hl'\n // newP.appendChild(hl)\n // newP.appendChild(pre)\n // let nums = codeHlNumArr[index]\n\n // let max = Math.max.apply(null, nums)\n\n // let inner = ''\n // for (let i = 0; i <= max; i++) {\n // if (nums.indexOf(i) == -1) {\n // inner += '
'\n // } else {\n // inner += '
'\n // }\n // }\n // hl.innerHTML = inner\n // }\n // })\n //fix line-highlight\n window.dispatchEvent(new Event('resize'));\n }\n\n _arrToNumber(numArr) {\n let arr = []\n numArr.forEach(item => {\n if (item.indexOf('-') !== -1) {\n const tempArr = item.split('-')\n const begin = Number(tempArr[0])\n const end = Number(tempArr[1])\n for (let i = begin; i < end + 1; i++) {\n arr.push(i)\n }\n } else {\n arr.push(Number(item))\n }\n })\n return arr\n }\n\n render() {\n return (\n
\n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-content/index.js","import { define, WeElement } from 'omi'\n\ndefine('my-footer', class extends WeElement {\n static css = require('./_index.css')\n\n static use = [\n 'position',\n 'menu'\n ]\n\n render() {\n const [\n position,\n menus\n ] = this.use\n const pre = this.store.getPre()\n const next = this.store.getNext()\n console.log(pre,next)\n return (\n
\n {pre &&← {pre.name}}\n {next &&}\n
\n )\n }\n\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-footer/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-footer/_index.css\n// module id = 19\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".ft{\\n position: relative;\\n margin-top: 20px\\n}\\n\\n.pre{\\n position: absolute;\\n left:15px;\\n}\\n\\n.next{\\n position: absolute;\\n right: 15px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-footer/_index.css\n// module id = 20\n// module chunks = 30 31","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-content/_index.css\n// module id = 21\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".content{\\n margin-top: 60px;\\n margin-bottom: 30px;\\n margin-left: 260px;\\n padding: 1px 10px 10px 20px;\\n color: #24292e;\\n /* overflow: hidden; */\\n max-width: 900px;\\n}\\n\\nh3{\\n color:#444444;\\n}\\n\\npre{\\n border: 1px solid #eee;\\n width: 100%;\\n}\\nli{\\n text-indent: 20px;\\n list-style:disc inside ;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n .content{\\n margin-left: 0;\\n border-left: none;\\n padding: 1px 10px 10px 10px;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-content/_index.css\n// module id = 22\n// module chunks = 30 31","import { define, WeElement } from 'omi'\nimport '../my-list'\n\ndefine('my-sidebar', class extends WeElement {\n static css = require('./_index.css')\n\n static use = [\n 'menus',\n 'sideBarShow',\n 'lan'\n ]\n\n render() {\n const [menus, sideBarShow, lan] = this.use\n\n return (\n
\n {menus[lan].map((menu, index) => (\n \n ))}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-sidebar/index.js","import { define, WeElement } from 'omi'\n\ndefine('my-list', class extends WeElement {\n static css = require('./_index.css')\n\n static use = [\n 'position'\n ]\n\n render(props) {\n const [position] = this.use\n\n return (\n
    \n
  • {props.menu.title}
  • \n {props.menu.list &&\n props.menu.list.map((item, subIndex) => {\n const cls = position[0] === props.index && position[1] === subIndex ? { class: 'current' } : null\n return
  • \n \n {item.name}\n \n
  • \n })}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-list/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-list/_index.css\n// module id = 25\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"li.title{\\n font-size: 14px;\\n font-weight: bold;\\n margin-bottom:10px;\\n margin-top:10px;\\n text-indent: 23px;\\n}\\nli{\\n margin-bottom:1px;\\n text-indent: 33px;\\n}\\nli a{\\n display:block;\\n font-size:14px;\\n height:30px;\\n line-height:30px;\\n color: black;\\n background-color:#eee;\\n}\\nli a.current,li a.current:hover{\\n background-color:#24292e;\\n color: white;\\n cursor: default;\\n}\\nli a:hover{\\n background-color:#f0f8ff;\\n}\\n\\n\\nul,li{\\n list-style:none;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-list/_index.css\n// module id = 26\n// module chunks = 30 31","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-sidebar/_index.css\n// module id = 27\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"@media only screen and (max-width: 768px) {\\n .list{\\n transform: translateX(-100%);\\n background-color:white;\\n left:0 !important;\\n -moz-transition: all .6s ease;\\n -o-transition: all .6s ease;\\n -webkit-transition: all .6s ease;\\n transition: all .6s ease;\\n width: 70% !important;\\n z-index: 100000;\\n border-right: none !important;\\n }\\n\\n .list.show {\\n -moz-transform: translateX(0%) translateZ(0);\\n -ms-transform: translateX(0%) translateZ(0);\\n -o-transform: translateX(0%) translateZ(0);\\n -webkit-transform: translateX(0%) translateZ(0);\\n transform: translateX(0%) translateZ(0);\\n }\\n}\\n\\n.list{\\n width: 261px;\\n text-indent: 20px;\\n border-right: 1px solid #eee;\\n overflow-x: hidden;\\n overflow-y: auto;\\n position:fixed;\\n top:60px;\\n background-color: white;\\n height: 100%;\\n border-right: 1px solid #ccc;\\n padding-bottom: 100px;\\n}\\n.version{\\n height:20px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-sidebar/_index.css\n// module id = 28\n// module chunks = 30 31","import { define, WeElement } from 'omi'\nimport css from './_index.css'\n\ndefine('my-demo', class extends WeElement {\n install() {\n this.store.myDemo = this\n if(this.checkPc())\n this.show = true\n else\n this.show = false\n this.demo = this.store.demo\n }\n\n css() {\n return css\n }\n\n checkPc() {\n let userAgentInfo = navigator.userAgent\n let mp = [\"Android\", \"iPhone\", \"SymbianOS\", \"Windows Phone\", \"iPad\", \"iPod\"]\n for (let i = 0; i < mp.length; i++)\n if (userAgentInfo.indexOf(mp[i]) > 0)\n return false\n return true\n }\n\n onShow = () => {\n this.show = true\n this.update()\n }\n\n onClose = () => {\n this.show = false\n this.update()\n }\n \n render() {\n if(!this.demo) return\n return (\n
\n { this.show && }\n\n {!this.show &&
\n \n
}\n\n {this.show &&
\n \n
}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-demo/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/_index.css\n// module id = 30\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"iframe{\\n width: 750px;\\n height: 100%;\\n top: 60px;\\n right: 0;\\n position: fixed;\\n border: none;\\n z-index: 9999;\\n border-left: 2px solid #24292E; \\n}\\n\\n.switch{\\n width: 40px;\\n height: 40px;\\n background-color: #AA0000;\\n border-radius: 50%;\\n position: fixed;\\n right: 50px;\\n bottom: 50px;\\n cursor: pointer;\\n text-align: center;\\n z-index: 10000;\\n}\\n\\n.switch img{\\n width: 30px;\\n height: 30px;\\n margin-top:5px; \\n}\\n\\n.switch.close img{\\n margin-top:10px; \\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n@media only screen and (max-width: 768px) {\\n iframe{\\n width: 100%;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-demo/_index.css\n// module id = 31\n// module chunks = 30 31","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/code.png\n// module id = 32\n// module chunks = 30 31","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/close.png\n// module id = 33\n// module chunks = 30 31","import config from '../docs/config.js'\nimport 'omi-router'\n\nclass Store {\n constructor(data) {\n this.data = {\n position: [-1, -1],\n menus: config.menus,\n lan: data.lan,\n html: '',\n sideBarShow: window.innerWidth > 768\n }\n let id = 0\n this.map = {}\n this.positionMap = {}\n config.menus[this.data.lan].forEach((menu, index) => {\n menu.list.forEach((item, subIndex) => {\n item.id = id++\n item.position = [index, subIndex]\n this.map[item.id] = item\n item.index = index\n item.subIndex = subIndex\n this.positionMap[index+'-'+subIndex] = item\n })\n })\n this.preIndex = 0\n this.preSubIndex = 0\n }\n\n getNext(){\n const item = this.positionMap[this.data.position.join('-')]\n if(item){\n return this.map[item.id+1]\n }\n }\n\n getPre(){\n const item = this.positionMap[this.data.position.join('-')]\n if(item){\n return this.map[item.id-1]\n }\n }\n\n init() {\n this.remarkable = new Remarkable({ html: true })\n if (location.hash === \"\") {\n this.data.position = [0, 0]\n this.getMarkDown(this.data.menus[this.data.lan][0].list[0].md, this.data.lan, m => {\n this.data.html = this.remarkable.render(m)\n })\n }\n this.initRouter()\n }\n\n toogleSidebar() {\n this.data.sideBarShow = !this.data.sideBarShow\n }\n\n hideSidebar() {\n this.data.sideBarShow = false\n }\n\n initRouter() {\n const menus = this.data.menus[this.data.lan]\n menus.forEach(item => {\n item.list.forEach(subItem => {\n route('/' + subItem.md, evt => {\n menus[this.preIndex].list[this.preSubIndex].selected = false\n this.preIndex = evt.query.index\n this.preSubIndex = evt.query.subIndex\n this.data.position = [Number(evt.query.index), Number(evt.query.subIndex)]\n this.data.sideBarShow = false\n\n this.getMarkDown(subItem.md, this.data.lan, m => {\n this.data.html = this.remarkable.render(m)\n document.body.scrollTop = 0\n document.documentElement.scrollTop = 0\n })\n })\n })\n })\n }\n\n getMarkDown(name, lan, callback) {\n import('../docs/' + lan + '/' + name + '.md').then(m => {\n callback(m)\n })\n }\n}\n\nexport default Store\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/index.js","const config = {\n menus: {\n 'zh-cn': [\n {\n title: 'Omi',\n list: [\n { name: '简介', md: 'introduction' },\n { name: '安装', md: 'installation' }\n ]\n },\n {\n title: '基础概念',\n list: [\n { name: 'JSX', md: 'jsx' },\n { name: 'Props', md: 'props' },\n { name: '事件', md: 'event' },\n { name: '生命周期', md: 'lifecycle' },\n { name: 'Ref', md: 'ref' },\n { name: 'Class', md: 'class' },\n { name: 'Store', md: 'store' },\n { name: 'CSS', md: 'css' }\n ]\n },\n {\n title: '其他',\n list: [\n { name: '生态与例子', md: 'other' },\n { name: 'Mps', md: 'mps' },\n { name: 'Omip 多端开发', md: 'omip' },\n { name: '服务端渲染', md: 'ssr' },\n { name: '路由', md: 'router' },\n { name: 'Omiu', md: 'omiu' }\n ]\n }\n ],\n en: [\n {\n title: 'Omi',\n list: [\n { name: 'Introduction', md: 'introduction' },\n { name: 'Installation', md: 'installation' }\n ]\n },\n {\n title: 'Base',\n list: [\n { name: 'JSX', md: 'jsx' },\n { name: 'Props', md: 'props' },\n { name: 'Event', md: 'event' },\n { name: 'Lifecycle', md: 'lifecycle' },\n { name: 'Ref', md: 'ref' },\n { name: 'Class', md: 'class' },\n { name: 'Store', md: 'store' },\n { name: 'CSS', md: 'css' }\n ]\n },\n {\n title: 'Other',\n list: [\n { name: 'Ecosystem and examples', md: 'other' },\n { name: 'Server-Side Rendering', md: 'ssr' },\n { name: 'Router', md: 'router' },\n { name: 'Omiu', md: 'omiu' }\n ]\n }\n ]\n }\n}\n\nexport default config\n\n\n\n// WEBPACK FOOTER //\n// ./src/docs/config.js","/*!\n * omi-router v2.0.9 by dntzhang\n * Router for Omi.\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n */\n\nvar p2r = require('path-to-regexp')\nvar mapping = {}\nvar root = getGlobal()\n\nroot.route = route\nroot.route.params = null\nroot.historyLength = 0\n\nroot.route.to = function (path, data) {\n root.route._routeByTo = true\n root.route.data = data\n if (path[0] === '#') {\n location.hash = path\n } else {\n location.hash = '#' + path\n }\n}\n\nwindow.addEventListener('hashchange', change)\n\nfunction change(evt) {\n var byNative = false\n //need to fix a line by omi-link\n if(window.history.length === root.historyLength && !root.route._routeByTo){\n //keep alive mode\n byNative = true\n }\n root.route._routeByTo = false\n root.historyLength = window.history.length\n var prevent = false\n if (evt.type === 'hashchange' && root.route.before) {\n prevent = root.route.before(evt) === false\n }\n if (prevent) return\n var path = window.location.hash.replace('#', '')\n if(path === '') path = '/'\n var notFound = true\n Object.keys(mapping).every(function(key){\n var toArr = path.split('?')[0].match(mapping[key].reg)\n if (toArr) {\n var pathArr = key.match(mapping[key].reg)\n root.route.params = getParams(toArr, pathArr)\n root.route.query = getUrlParams(path)\n mapping[key].callback({\n params: root.route.params,\n query: getUrlParams(path),\n data: root.route.data,\n byNative: byNative\n })\n root.route.data = null\n notFound = false\n return false\n }\n return true\n })\n\n if (notFound) {\n mapping['*'] && mapping['*'].callback({ byNative: byNative })\n }\n\n if (evt.type === 'hashchange' && root.route.after) {\n root.route.after(evt)\n }\n}\n\ndocument.addEventListener('DOMContentLoaded', change)\n\nfunction getParams(toArr, pathArr) {\n var params = {}\n toArr.forEach(function (item, index) {\n if (index > 0) {\n params[pathArr[index].replace(':', '')] = item\n }\n })\n return params\n}\n\n\nexport default function route(path, callback) {\n mapping[path] = {\n callback: callback,\n reg: p2r(path)\n }\n}\n\nfunction getGlobal() {\n if (\n typeof global !== 'object' ||\n !global ||\n global.Math !== Math ||\n global.Array !== Array\n ) {\n return (\n self ||\n window ||\n global ||\n (function () {\n return this\n })()\n )\n }\n return global\n}\n\nfunction getUrlParams(url) {\n url = url.replace(/#.*$/, '')\n var queryArray = url.split(/[?&]/).slice(1)\n var i, args = {}\n for (i = 0; i < queryArray.length; i++) {\n var match = queryArray[i].match(/([^=]+)=([^=]+)/)\n if (match !== null) {\n args[match[1]] = decodeURIComponent(match[2])\n }\n }\n return args\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/omi-router/index.js","/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * Default configs.\n */\nvar DEFAULT_DELIMITER = '/'\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \":test(\\\\d+)?\" => [\"test\", \"\\d+\", undefined, \"?\"]\n // \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n '(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = (options && options.delimiter) || DEFAULT_DELIMITER\n var whitelist = (options && options.whitelist) || undefined\n var pathEscaped = false\n var res\n\n while ((res = PATH_REGEXP.exec(str)) !== null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n pathEscaped = true\n continue\n }\n\n var prev = ''\n var name = res[2]\n var capture = res[3]\n var group = res[4]\n var modifier = res[5]\n\n if (!pathEscaped && path.length) {\n var k = path.length - 1\n var c = path[k]\n var matches = whitelist ? whitelist.indexOf(c) > -1 : true\n\n if (matches) {\n prev = c\n path = path.slice(0, k)\n }\n }\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n pathEscaped = false\n }\n\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var pattern = capture || group\n var delimiter = prev || defaultDelimiter\n\n tokens.push({\n name: name || key++,\n prefix: prev,\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n pattern: pattern\n ? escapeGroup(pattern)\n : '[^' + escapeString(delimiter === defaultDelimiter ? delimiter : (delimiter + defaultDelimiter)) + ']+?'\n })\n }\n\n // Push any remaining characters.\n if (path || index < str.length) {\n tokens.push(path + str.substr(index))\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n }\n }\n\n return function (data, options) {\n var path = ''\n var encode = (options && options.encode) || encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n continue\n }\n\n var value = data ? data[token.name] : undefined\n var segment\n\n if (Array.isArray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got array')\n }\n\n if (value.length === 0) {\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j], token)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\"')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n segment = encode(String(value), token)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n continue\n }\n\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to be ' + (token.repeat ? 'an array' : 'a string'))\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$/()])/g, '\\\\$1')\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {Array=} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n if (!keys) return path\n\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n pattern: null\n })\n }\n }\n\n return path\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n return new RegExp('(?:' + parts.join('|') + ')', flags(options))\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n options = options || {}\n\n var strict = options.strict\n var start = options.start !== false\n var end = options.end !== false\n var delimiter = options.delimiter || DEFAULT_DELIMITER\n var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|')\n var route = start ? '^' : ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var capture = token.repeat\n ? '(?:' + token.pattern + ')(?:' + escapeString(token.delimiter) + '(?:' + token.pattern + '))*'\n : token.pattern\n\n if (keys) keys.push(token)\n\n if (token.optional) {\n if (!token.prefix) {\n route += '(' + capture + ')?'\n } else {\n route += '(?:' + escapeString(token.prefix) + '(' + capture + '))?'\n }\n } else {\n route += escapeString(token.prefix) + '(' + capture + ')'\n }\n }\n }\n\n if (end) {\n if (!strict) route += '(?:' + escapeString(delimiter) + ')?'\n\n route += endsWith === '$' ? '$' : '(?=' + endsWith + ')'\n } else {\n var endToken = tokens[tokens.length - 1]\n var isEndDelimited = typeof endToken === 'string'\n ? endToken[endToken.length - 1] === delimiter\n : endToken === undefined\n\n if (!strict) route += '(?:' + escapeString(delimiter) + '(?=' + endsWith + '))?'\n if (!isEndDelimited) route += '(?=' + escapeString(delimiter) + '|' + endsWith + ')'\n }\n\n return new RegExp(route, flags(options))\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (path instanceof RegExp) {\n return regexpToRegexp(path, keys)\n }\n\n if (Array.isArray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), keys, options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), keys, options)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/path-to-regexp/index.js","var map = {\n\t\"./en/class.md\": [\n\t\t39,\n\t\t29\n\t],\n\t\"./en/css.md\": [\n\t\t40,\n\t\t28\n\t],\n\t\"./en/event.md\": [\n\t\t41,\n\t\t27\n\t],\n\t\"./en/installation.md\": [\n\t\t42,\n\t\t26\n\t],\n\t\"./en/introduction.md\": [\n\t\t43,\n\t\t25\n\t],\n\t\"./en/jsx.md\": [\n\t\t44,\n\t\t24\n\t],\n\t\"./en/lifecycle.md\": [\n\t\t45,\n\t\t23\n\t],\n\t\"./en/omiu.md\": [\n\t\t46,\n\t\t22\n\t],\n\t\"./en/other.md\": [\n\t\t47,\n\t\t21\n\t],\n\t\"./en/props.md\": [\n\t\t48,\n\t\t20\n\t],\n\t\"./en/ref.md\": [\n\t\t49,\n\t\t19\n\t],\n\t\"./en/router.md\": [\n\t\t50,\n\t\t18\n\t],\n\t\"./en/ssr.md\": [\n\t\t51,\n\t\t17\n\t],\n\t\"./en/store.md\": [\n\t\t52,\n\t\t16\n\t],\n\t\"./zh-cn/class.md\": [\n\t\t53,\n\t\t15\n\t],\n\t\"./zh-cn/css.md\": [\n\t\t54,\n\t\t14\n\t],\n\t\"./zh-cn/event.md\": [\n\t\t55,\n\t\t13\n\t],\n\t\"./zh-cn/installation.md\": [\n\t\t56,\n\t\t12\n\t],\n\t\"./zh-cn/introduction.md\": [\n\t\t57,\n\t\t11\n\t],\n\t\"./zh-cn/jsx.md\": [\n\t\t58,\n\t\t10\n\t],\n\t\"./zh-cn/lifecycle.md\": [\n\t\t59,\n\t\t9\n\t],\n\t\"./zh-cn/mps.md\": [\n\t\t60,\n\t\t8\n\t],\n\t\"./zh-cn/omip.md\": [\n\t\t61,\n\t\t7\n\t],\n\t\"./zh-cn/omiu.md\": [\n\t\t62,\n\t\t6\n\t],\n\t\"./zh-cn/other.md\": [\n\t\t63,\n\t\t5\n\t],\n\t\"./zh-cn/props.md\": [\n\t\t64,\n\t\t4\n\t],\n\t\"./zh-cn/ref.md\": [\n\t\t65,\n\t\t3\n\t],\n\t\"./zh-cn/router.md\": [\n\t\t66,\n\t\t2\n\t],\n\t\"./zh-cn/ssr.md\": [\n\t\t67,\n\t\t1\n\t],\n\t\"./zh-cn/store.md\": [\n\t\t68,\n\t\t0\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids)\n\t\treturn Promise.reject(new Error(\"Cannot find module '\" + req + \"'.\"));\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(ids[0]);\n\t});\n};\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 38;\nmodule.exports = webpackAsyncContext;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs lazy ^\\.\\/.*\\.md$\n// module id = 38\n// module chunks = 30 31","import { render } from 'omi'\nimport './assets/index.css'\nimport './elements/my-frame.js'\nimport Store from './store'\n\nrender(, '#root', new Store({ lan: 'en' }))\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["../static/js/index.2000b09a.js","../webpack/bootstrap 8904c1109e4d16cf6e7b","../node_modules/omio/dist/omi.esm.js","../node_modules/css-loader/lib/css-base.js","../node_modules/webpack/buildin/global.js","../node_modules/promise/lib/core.js","../config/polyfills.js","../node_modules/promise/lib/rejection-tracking.js","../node_modules/asap/browser-raw.js","../node_modules/promise/lib/es6-extensions.js","../node_modules/whatwg-fetch/fetch.js","../node_modules/object-assign/index.js","elements/my-frame.js","elements/my-head/index.js","elements/my-head/omi-logo2019.svg","elements/my-head/menu.png","webpack:///./src/elements/my-head/_index.css?911a","elements/my-head/_index.css","elements/my-content/index.js","elements/my-footer/index.js","webpack:///./src/elements/my-footer/_index.css?4020","elements/my-footer/_index.css","webpack:///./src/elements/my-content/_index.css?ea33","elements/my-content/_index.css","elements/my-sidebar/index.js","elements/my-list/index.js","webpack:///./src/elements/my-list/_index.css?7382","elements/my-list/_index.css","webpack:///./src/elements/my-sidebar/_index.css?a491","elements/my-sidebar/_index.css","elements/my-demo/index.js","webpack:///./src/elements/my-demo/_index.css?fba4","elements/my-demo/_index.css","elements/my-demo/code.png","elements/my-demo/close.png","store/index.js","docs/config.js","../node_modules/omi-router/index.js","../node_modules/path-to-regexp/index.js","docs lazy /^/.//.*/.md$","index.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","i","l","call","parentJsonpFunction","window","chunkIds","moreModules","executeModules","chunkId","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","shift","30","e","onScriptComplete","script","onerror","onload","clearTimeout","timeout","chunk","Error","undefined","installedChunkData","Promise","resolve","promise","reject","head","document","getElementsByTagName","createElement","type","charset","async","nc","setAttribute","src","p","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","setTimeout","appendChild","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error","s","global","VNode","h","nodeName","attributes","lastSimple","child","simple","children","EMPTY_CHILDREN","arguments","stack","pop","String","key","options","vnode","toObject","val","TypeError","assign","target","source","from","symbols","to","getOwnPropertySymbols","propIsEnumerable","extend","obj","props","applyRef","ref","value","current","isArray","toString","nProps","result","keys","forEach","getUse","data","paths","path","index","getTargetByPath","tempPath","tempVal","args","apply","origin","arr","replace","split","len","cloneElement","slice","enqueueRender","component","items","debounceRendering","defer","rerender","renderComponent","isSameNodeType","node","hydrating","splitText","ctor","mapping","_componentConstructor","isNamedNode","normalizedNodeName","toLowerCase","getNodeProps","defaultProps","createNode","isSvg","doc","createElementNS","parseCSSText","cssText","cssTxt","style","_ref","match","a","b","rule","properties","map","x","trim","Array","Symbol","iterator","_ref3","next","done","_ref2","toUpperCase","removeNode","parentNode","removeChild","setAccessor","old","isWeb","_typeof","IS_NON_DIMENSIONAL$1","test","oldJson","currentJson","changed","ckey","setStyles","innerHTML","__html","useCapture","substring","addEventListener","eventProxy","touchStart","touchEnd","removeEventListener","_listeners","setProperty","removeAttribute","ns","removeAttributeNS","setAttributeNS","className","this","event","___touchX","touches","pageX","___touchY","pageY","___scrollTop","body","scrollTop","Math","abs","changedTouches","dispatchEvent","CustomEvent","detail","getCtorName","styleCache","item","attrName","styleId","scoper","css","prefix","re","RegExp","g0","g1","g2","g3","addStyle","id","ele","getElementById","someThingStyles","ActiveXObject","styleSheet","textContent","addStyleWithoutId","addScopedAttrStatic","vdom","attr","scopedStyle","scopeVdom","addStyleToHead","staticStyleMapping","scopeHost","flushMounts","mounts","afterMount","installed","constructor","diff","dom","context","mountAll","parent","componentRoot","diffLevel","isSvgMode","ownerSVGElement","ret","idiff","out","prevSvgMode","vnodeName","buildComponentFromVNode","_component","nodeValue","createTextNode","replaceChild","recollectNodeTree","firstChild","fc","vchildren","nextSibling","innerDiffNode","dangerouslySetInnerHTML","diffAttributes","isHydrating","j","f","vchild","originalChildren","childNodes","keyed","keyedLen","min","childrenLen","vlen","_child","__key","insertBefore","unmountOnly","unmountComponent","removeChildren","lastChild","previousSibling","attrs","collectComponent","components","createComponent","Ctor","inst","list","render","Component","doRender","scopedCssAttr","use","store","instances","nextBase","splice","fireTick","callbacks","fn","scope","nextTickCallback","nextItem","proxyUpdate","obaa","_willUpdate","mergeUpdate","update","setComponentProps","opts","_disable","__ref","base","beforeInstall","install","observe","receiveProps","prevContext","prevProps","syncComponentUpdates","shallowComparison","isChild","rendered","cbase","previousProps","previousState","prevState","previousContext","isUpdate","initialBase","initialChildComponent","skip","beforeUpdate","beforeRender","getChildContext","toUnmount","childComponent","childProps","_parentComponent","baseParent","componentRef","t","unshift","afterUpdate","updated","_renderCallbacks","originalComponent","oldDom","isDirectOwner","isOwner","beforeUnmount","uninstall","inner","_classCallCheck","instance","Constructor","empty","merge","querySelector","extendStoreUpate","patchs","prop","fixPath","patch","_this","updateAll","matchGlobalData","globalData","updatePath","needUpdate","onChange","diffResult","keyA","indexOf","includePath","keyB","pathA","pathB","substr","mpPath","isNaN","Number","define","getPath","getUpdatePath","dataToPath","_objToPath","_arrayToPath","rpx","str","innerWidth","_classCallCheck$1","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","writable","setPrototypeOf","__proto__","classNames","classes","arg","argType","hasOwn","join","extractClass","_Array$prototype$slic","class","getHost","styleObjToCss","JS_TO_CSS","IS_NON_DIMENSIONAL","renderToString","scopedCSS","html","_renderToString","values","isComponent","pretty","indentChar","encodeEntities","mapping$1","getNodeProps$1","__x","cssStr","cssAttr","scopedCSSAttr","sortAttributes","sort","v","allAttributes","hooked","attributeHook","xml","sub","isVoid","VOID_ELEMENTS","pieces","isLargeString","indent","hasLarge","childSvgMode","assign$1","createRef","root","propertyIsEnumerable","Element","runListeners","oEvent","iLstId","iElId","oEvtListeners","oListeners","aEls","aEvts","sEventType","fListener","nElIdx","aElListeners","proto","propertiesObject","F","usePromise","__config__","platform","systemVersion","then","bind","callback","_observe","$observer","eventPropArr","$observeProps","$observerPath","mock","isInArray","watch","isString","propertyChangedHandler","propChanged","all","onPropertyChanged","oldValue","rootName","_getRootName","handler","methods","triggerStr","cprop","isFunction","currentValue","set","add","exec","size","elementId","_preCss","componentChange","fire","every","is","ModelView","_Component","vm","char","ignoreLines","WeElement","defineElement","Omi","omi","version","default","cssWithMappingToString","useSourceMap","content","cssMapping","btoa","sourceMapping","toComment","concat","sources","sourceRoot","sourceMap","unescape","encodeURIComponent","JSON","stringify","mediaQuery","alreadyImportedModules","g","Function","eval","noop","getThen","ex","LAST_ERROR","IS_ERROR","tryCallOne","tryCallTwo","_75","_83","_18","_38","doResolve","safeThen","onFulfilled","onRejected","res","handle","Handler","deferred","_47","handleResolved","asap","cb","newValue","finale","_71","reason","require","_44","enable","disable","enabled","onUnhandled","allRejections","matchWhitelist","rejections","whitelist","DEFAULT_WHITELIST","displayId","logged","logError","onHandled","warn","_56","line","some","cls","RangeError","rawAsap","task","queue","requestFlush","flushing","flush","currentIndex","capacity","scan","newLength","makeRequestCallFromTimer","handleTimer","timeoutHandle","clearInterval","intervalHandle","setInterval","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","toggle","observer","characterData","valuePromise","TRUE","FALSE","NULL","UNDEFINED","ZERO","EMPTYSTRING","remaining","race","normalizeName","normalizeValue","iteratorFor","support","iterable","Headers","headers","append","header","getOwnPropertyNames","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","readBlobAsText","readAsText","readArrayBufferAsText","buf","view","Uint8Array","chars","fromCharCode","bufferClone","byteLength","buffer","Body","_initBody","_bodyInit","_bodyText","Blob","isPrototypeOf","_bodyBlob","formData","FormData","_bodyFormData","searchParams","URLSearchParams","arrayBuffer","isDataView","_bodyArrayBuffer","ArrayBuffer","isArrayBufferView","rejected","text","decode","json","parse","normalizeMethod","method","upcased","Request","input","url","credentials","mode","referrer","form","bytes","decodeURIComponent","parseHeaders","rawHeaders","parts","Response","bodyInit","status","ok","statusText","fetch","viewClasses","DataView","isView","has","thisArg","entries","clone","response","redirectStatuses","redirect","location","init","request","xhr","XMLHttpRequest","getAllResponseHeaders","responseURL","responseText","ontimeout","open","withCredentials","responseType","setRequestHeader","send","polyfill","test1","test2","test3","letter","_createClass","defineProperties","descriptor","protoProps","staticProps","_omi","_WeElement","_class","getPrototypeOf","_temp2","_omiLogo","_omiLogo2","_temp","_ret","_len","_key","toggleMenus","evt","toogleSidebar","stopPropagation","hideSidebar","onClick","alt","href","logo","lan","myContent","initCodeStyle","codes","querySelectorAll","codesArr","code","pre","temp","Prism","highlight","innerText","languages","markup","Event","numArr","tempArr","begin","end","ontouchend","_slicedToArray","sliceIterator","_arr","_n","_d","_e","_s","_i","_use","getPre","getNext","log","md","subIndex","menus","sideBarShow","menu","_extends","position","title","_index","_index2","_class2","onShow","show","onClose","myDemo","checkPc","demo","userAgentInfo","navigator","userAgent","mp","innerHeight","_config","_config2","Store","config","positionMap","preIndex","preSubIndex","_this2","remarkable","Remarkable","hash","getMarkDown","initRouter","_this3","subItem","route","selected","query","documentElement","zh-cn","en","change","byNative","history","historyLength","_routeByTo","prevent","before","notFound","toArr","reg","pathArr","params","getParams","getUrlParams","after","p2r","queryArray","tokens","defaultDelimiter","delimiter","DEFAULT_DELIMITER","pathEscaped","PATH_REGEXP","escaped","offset","prev","capture","group","modifier","k","repeat","optional","pattern","escapeGroup","escapeString","compile","tokensToFunction","matches","encode","token","segment","flags","sensitive","regexpToRegexp","groups","arrayToRegexp","pathToRegexp","stringToRegexp","tokensToRegExp","strict","start","endsWith","endToken","isEndDelimited","webpackAsyncContext","req","ids","./en/class.md","./en/css.md","./en/event.md","./en/installation.md","./en/introduction.md","./en/jsx.md","./en/lifecycle.md","./en/omiu.md","./en/other.md","./en/props.md","./en/ref.md","./en/router.md","./en/ssr.md","./en/store.md","./zh-cn/class.md","./zh-cn/css.md","./zh-cn/event.md","./zh-cn/installation.md","./zh-cn/introduction.md","./zh-cn/jsx.md","./zh-cn/lifecycle.md","./zh-cn/mps.md","./zh-cn/omip.md","./zh-cn/omiu.md","./zh-cn/other.md","./zh-cn/props.md","./zh-cn/ref.md","./zh-cn/router.md","./zh-cn/ssr.md","./zh-cn/store.md","_store","_store2"],"mappings":"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","file":"static/js/index.2000b09a.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// install a JSONP callback for chunk loading\n/******/ \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n/******/ \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n/******/ \t\t// add \"moreModules\" to the modules object,\n/******/ \t\t// then flag all \"chunkIds\" as loaded and fire callback\n/******/ \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n/******/ \t\tfor(;i < chunkIds.length; i++) {\n/******/ \t\t\tchunkId = chunkIds[i];\n/******/ \t\t\tif(installedChunks[chunkId]) {\n/******/ \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n/******/ \t\t\t}\n/******/ \t\t\tinstalledChunks[chunkId] = 0;\n/******/ \t\t}\n/******/ \t\tfor(moduleId in moreModules) {\n/******/ \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n/******/ \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n/******/ \t\t\t}\n/******/ \t\t}\n/******/ \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n/******/ \t\twhile(resolves.length) {\n/******/ \t\t\tresolves.shift()();\n/******/ \t\t}\n/******/\n/******/ \t};\n/******/\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// objects to store loaded and loading chunks\n/******/ \tvar installedChunks = {\n/******/ \t\t30: 0\n/******/ \t};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/ \t// This file contains only the entry chunk.\n/******/ \t// The chunk loading function for additional chunks\n/******/ \t__webpack_require__.e = function requireEnsure(chunkId) {\n/******/ \t\tvar installedChunkData = installedChunks[chunkId];\n/******/ \t\tif(installedChunkData === 0) {\n/******/ \t\t\treturn new Promise(function(resolve) { resolve(); });\n/******/ \t\t}\n/******/\n/******/ \t\t// a Promise means \"currently loading\".\n/******/ \t\tif(installedChunkData) {\n/******/ \t\t\treturn installedChunkData[2];\n/******/ \t\t}\n/******/\n/******/ \t\t// setup Promise in chunk cache\n/******/ \t\tvar promise = new Promise(function(resolve, reject) {\n/******/ \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n/******/ \t\t});\n/******/ \t\tinstalledChunkData[2] = promise;\n/******/\n/******/ \t\t// start chunk loading\n/******/ \t\tvar head = document.getElementsByTagName('head')[0];\n/******/ \t\tvar script = document.createElement('script');\n/******/ \t\tscript.type = 'text/javascript';\n/******/ \t\tscript.charset = 'utf-8';\n/******/ \t\tscript.async = true;\n/******/ \t\tscript.timeout = 120000;\n/******/\n/******/ \t\tif (__webpack_require__.nc) {\n/******/ \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n/******/ \t\t}\n/******/ \t\tscript.src = __webpack_require__.p + \"static/js/\" + ({}[chunkId]||chunkId) + \".\" + {\"0\":\"f770eb0e\",\"1\":\"0d025b66\",\"2\":\"9632a8c5\",\"3\":\"1c5042fb\",\"4\":\"1a938e71\",\"5\":\"f187d1bc\",\"6\":\"62a98a69\",\"7\":\"70efbb66\",\"8\":\"06eeaa91\",\"9\":\"c60ec43c\",\"10\":\"e6acfca5\",\"11\":\"94470037\",\"12\":\"1551e567\",\"13\":\"a7923ed9\",\"14\":\"84f14bf7\",\"15\":\"e34c03c9\",\"16\":\"48415b29\",\"17\":\"d859539c\",\"18\":\"44386d31\",\"19\":\"50bd4319\",\"20\":\"83b21c96\",\"21\":\"fc4d0781\",\"22\":\"d0e764c7\",\"23\":\"b1e284bd\",\"24\":\"d0714382\",\"25\":\"204510ac\",\"26\":\"d3e0fb29\",\"27\":\"cd58c5d2\",\"28\":\"3ca205f6\",\"29\":\"18dc7b40\"}[chunkId] + \".chunk.js\";\n/******/ \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n/******/ \t\tscript.onerror = script.onload = onScriptComplete;\n/******/ \t\tfunction onScriptComplete() {\n/******/ \t\t\t// avoid mem leaks in IE.\n/******/ \t\t\tscript.onerror = script.onload = null;\n/******/ \t\t\tclearTimeout(timeout);\n/******/ \t\t\tvar chunk = installedChunks[chunkId];\n/******/ \t\t\tif(chunk !== 0) {\n/******/ \t\t\t\tif(chunk) {\n/******/ \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n/******/ \t\t\t\t}\n/******/ \t\t\t\tinstalledChunks[chunkId] = undefined;\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t\thead.appendChild(script);\n/******/\n/******/ \t\treturn promise;\n/******/ \t};\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"./\";\n/******/\n/******/ \t// on error function for async loading\n/******/ \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 71);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol===\"function\"&&obj.constructor===Symbol&&obj!==Symbol.prototype?\"symbol\":typeof obj;};/**\n * omi v2.0.5 http://omijs.org\n * Omi === Preact + Scoped CSS + Store System + Native Support in 3kb javascript.\n * By dntzhang https://github.com/dntzhang\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n *//** Virtual DOM Node */function VNode(){}function getGlobal(){if((typeof global==='undefined'?'undefined':_typeof(global))!=='object'||!global||global.Math!==Math||global.Array!==Array){if(typeof self!=='undefined'){return self;}else if(typeof window!=='undefined'){return window;}else if(typeof global!=='undefined'){return global;}return function(){return this;}();}return global;}/** Global options\n *\t@public\n *\t@namespace options {Object}\n */var options={scopedStyle:true,mapping:{},isWeb:true,staticStyleMapping:{},doc:(typeof document==='undefined'?'undefined':_typeof(document))==='object'?document:null,root:getGlobal(),//styleCache :[{ctor:ctor,ctorName:ctorName,style:style}]\nstyleCache:[]//componentChange(component, element) { },\n/** If `true`, `prop` changes trigger synchronous component updates.\n *\t@name syncComponentUpdates\n *\t@type Boolean\n *\t@default true\n *///syncComponentUpdates: true,\n/** Processes all created VNodes.\n *\t@param {VNode} vnode\tA newly-created VNode to normalize/process\n *///vnode(vnode) { }\n/** Hook invoked after a component is mounted. *///afterMount(component) { },\n/** Hook invoked after the DOM is updated with a component's latest render. *///afterUpdate(component) { }\n/** Hook invoked immediately before a component is unmounted. */// beforeUnmount(component) { }\n};var stack=[];var EMPTY_CHILDREN=[];/**\n * JSX/hyperscript reviver.\n * @see http://jasonformat.com/wtf-is-jsx\n * Benchmarks: https://esbench.com/bench/57ee8f8e330ab09900a1a1a0\n *\n * Note: this is exported as both `h()` and `createElement()` for compatibility reasons.\n *\n * Creates a VNode (virtual DOM element). A tree of VNodes can be used as a lightweight representation\n * of the structure of a DOM tree. This structure can be realized by recursively comparing it against\n * the current _actual_ DOM structure, and applying only the differences.\n *\n * `h()`/`createElement()` accepts an element name, a list of attributes/props,\n * and optionally children to append to the element.\n *\n * @example The following DOM tree\n *\n * `
Hello!
`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */function h(nodeName,attributes){var children=EMPTY_CHILDREN,lastSimple,child,simple,i;for(i=arguments.length;i-->2;){stack.push(arguments[i]);}if(attributes&&attributes.children!=null){if(!stack.length)stack.push(attributes.children);delete attributes.children;}while(stack.length){if((child=stack.pop())&&child.pop!==undefined){for(i=child.length;i--;){stack.push(child[i]);}}else{if(typeof child==='boolean')child=null;if(simple=typeof nodeName!=='function'){if(child==null)child='';else if(typeof child==='number')child=String(child);else if(typeof child!=='string')simple=false;}if(simple&&lastSimple){children[children.length-1]+=child;}else if(children===EMPTY_CHILDREN){children=[child];}else{children.push(child);}lastSimple=simple;}}var p=new VNode();p.nodeName=nodeName;p.children=children;p.attributes=attributes==null?undefined:attributes;p.key=attributes==null?undefined:attributes.key;// if a \"vnode hook\" is defined, pass every created VNode to it\nif(options.vnode!==undefined)options.vnode(p);return p;}/* eslint-disable no-unused-vars */var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError('Object.assign cannot be called with null or undefined');}return Object(val);}function assign(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s8){usePromise=true;}}}var defer=usePromise?Promise.resolve().then.bind(Promise.resolve()):setTimeout;function isArray(obj){return Object.prototype.toString.call(obj)==='[object Array]';}function nProps(props){if(!props||isArray(props))return{};var result={};Object.keys(props).forEach(function(key){result[key]=props[key].value;});return result;}function getUse(data,paths){var obj=[];paths.forEach(function(path,index){var isPath=typeof path==='string';if(isPath){obj[index]=getTargetByPath(data,path);}else{var key=Object.keys(path)[0];var value=path[key];if(typeof value==='string'){obj[index]=getTargetByPath(data,value);}else{var tempPath=value[0];if(typeof tempPath==='string'){var tempVal=getTargetByPath(data,tempPath);obj[index]=value[1]?value[1](tempVal):tempVal;}else{var args=[];tempPath.forEach(function(path){args.push(getTargetByPath(data,path));});obj[index]=value[1].apply(null,args);}}obj[key]=obj[index];}});return obj;}function getTargetByPath(origin,path){var arr=path.replace(/]/g,'').replace(/\\[/g,'.').split('.');var current=origin;for(var i=0,len=arr.length;i2?[].slice.call(arguments,2):vnode.children);}// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL$1=/acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;/** Managed queue of dirty components to be re-rendered */var items=[];function enqueueRender(component){if(items.push(component)==1){(options.debounceRendering||defer)(rerender);}}/** Rerender all enqueued dirty components */function rerender(){var p;while(p=items.pop()){renderComponent(p);}}var mapping=options.mapping;/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hydrating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */function isSameNodeType(node,vnode,hydrating){if(typeof vnode==='string'||typeof vnode==='number'){return node.splitText!==undefined;}if(typeof vnode.nodeName==='string'){var ctor=mapping[vnode.nodeName];if(ctor){return hydrating||node._componentConstructor===ctor;}return!node._componentConstructor&&isNamedNode(node,vnode.nodeName);}return hydrating||node._componentConstructor===vnode.nodeName;}/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */function isNamedNode(node,nodeName){return node.normalizedNodeName===nodeName||node.nodeName.toLowerCase()===nodeName.toLowerCase();}/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n *\n * @param {VNode} vnode\n * @returns {Object} props\n */function getNodeProps(vnode){var props=extend({},vnode.attributes);props.children=vnode.children;var defaultProps=vnode.nodeName.defaultProps;if(defaultProps!==undefined){for(var i in defaultProps){if(props[i]===undefined){props[i]=defaultProps[i];}}}return props;}/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */function createNode(nodeName,isSvg){var node=isSvg?options.doc.createElementNS('http://www.w3.org/2000/svg',nodeName):options.doc.createElement(nodeName);node.normalizedNodeName=nodeName;return node;}function parseCSSText(cssText){var cssTxt=cssText.replace(/\\/\\*(.|\\s)*?\\*\\//g,' ').replace(/\\s+/g,' ');var style={},_ref=cssTxt.match(/ ?(.*?) ?{([^}]*)}/)||[a,b,cssTxt],a=_ref[0],b=_ref[1],rule=_ref[2];var cssToJs=function cssToJs(s){return s.replace(/\\W+\\w/g,function(match){return match.slice(-1).toUpperCase();});};var properties=rule.split(';').map(function(o){return o.split(':').map(function(x){return x&&x.trim();});});for(var i=properties,i=Array.isArray(i),i=0,i=i?i:i[Symbol.iterator]();;){var _ref3;if(i){if(i>=i.length)break;_ref3=i[i++];}else{i=i.next();if(i.done)break;_ref3=i.value;}var _ref2=_ref3;var property=_ref2[0];var value=_ref2[1];style[cssToJs(property)]=value;}return style;}/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */function removeNode(node){var parentNode=node.parentNode;if(parentNode)parentNode.removeChild(node);}/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */function setAccessor(node,name,old,value,isSvg){if(name==='className')name='class';if(name==='key'){// ignore\n}else if(name==='ref'){applyRef(old,null);applyRef(value,node);}else if(name==='class'&&!isSvg){node.className=value||'';}else if(name==='style'){if(options.isWeb){if(!value||typeof value==='string'||typeof old==='string'){node.style.cssText=value||'';}if(value&&(typeof value==='undefined'?'undefined':_typeof(value))==='object'){if(typeof old!=='string'){for(var i in old){if(!(i in value))node.style[i]='';}}for(var i in value){node.style[i]=typeof value[i]==='number'&&IS_NON_DIMENSIONAL$1.test(i)===false?value[i]+'px':value[i];}}}else{var oldJson=old,currentJson=value;if(typeof old==='string'){oldJson=parseCSSText(old);}if(typeof value=='string'){currentJson=parseCSSText(value);}var result={},changed=false;if(oldJson){for(var key in oldJson){if((typeof currentJson==='undefined'?'undefined':_typeof(currentJson))=='object'&&!(key in currentJson)){result[key]='';changed=true;}}for(var ckey in currentJson){if(currentJson[ckey]!==oldJson[ckey]){result[ckey]=currentJson[ckey];changed=true;}}if(changed){node.setStyles(result);}}else{node.setStyles(currentJson);}}}else if(name==='dangerouslySetInnerHTML'){if(value)node.innerHTML=value.__html||'';}else if(name[0]=='o'&&name[1]=='n'){var useCapture=name!==(name=name.replace(/Capture$/,''));name=name.toLowerCase().substring(2);if(value){if(!old){node.addEventListener(name,eventProxy,useCapture);if(name=='tap'){node.addEventListener('touchstart',touchStart,useCapture);node.addEventListener('touchend',touchEnd,useCapture);}}}else{node.removeEventListener(name,eventProxy,useCapture);if(name=='tap'){node.removeEventListener('touchstart',touchStart,useCapture);node.removeEventListener('touchend',touchEnd,useCapture);}}(node._listeners||(node._listeners={}))[name]=value;}else if(name!=='list'&&name!=='type'&&!isSvg&&name in node){setProperty(node,name,value==null?'':value);if(value==null||value===false)node.removeAttribute(name);}else{var ns=isSvg&&name!==(name=name.replace(/^xlink:?/,''));if(value==null||value===false){if(ns)node.removeAttributeNS('http://www.w3.org/1999/xlink',name.toLowerCase());else node.removeAttribute(name);}else if(typeof value!=='function'){if(ns)node.setAttributeNS('http://www.w3.org/1999/xlink',name.toLowerCase(),value);else node.setAttribute(name,value);}}}/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */function setProperty(node,name,value){try{node[name]=value;}catch(e){}}/** Proxy an event to hooked event handlers\n *\t@private\n */function eventProxy(e){return this._listeners[e.type](options.event&&options.event(e)||e);}function touchStart(e){this.___touchX=e.touches[0].pageX;this.___touchY=e.touches[0].pageY;this.___scrollTop=document.body.scrollTop;}function touchEnd(e){if(Math.abs(e.changedTouches[0].pageX-this.___touchX)<30&&Math.abs(e.changedTouches[0].pageY-this.___touchY)<30&&Math.abs(document.body.scrollTop-this.___scrollTop)<30){this.dispatchEvent(new CustomEvent('tap',{detail:e}));}}var styleId=0;function getCtorName(ctor){for(var i=0,len=options.styleCache.length;i-1;){if(item===arr[i])return true;}return false;};obaa.isFunction=function(obj){return Object.prototype.toString.call(obj)=='[object Function]';};obaa._getRootName=function(prop,path){if(path==='#'){return prop;}return path.split('-')[1];};obaa.add=function(obj,prop){var $observer=obj.$observer;$observer.watch(obj,prop);};obaa.set=function(obj,prop,value,exec){if(!exec){obj[prop]=value;}var $observer=obj.$observer;$observer.watch(obj,prop);if(exec){obj[prop]=value;}};Array.prototype.size=function(length){this.length=length;};var callbacks=[];var nextTickCallback=[];function fireTick(){callbacks.forEach(function(item){item.fn.call(item.scope);});nextTickCallback.forEach(function(nextItem){nextItem.fn.call(nextItem.scope);});nextTickCallback.length=0;}function proxyUpdate(ele){var timeout=null;obaa(ele.data,function(){if(ele._willUpdate){return;}if(ele.constructor.mergeUpdate){clearTimeout(timeout);timeout=setTimeout(function(){ele.update();fireTick();},0);}else{ele.update();fireTick();}});}/** Set a component's `props` (generally derived from JSX attributes).\n *\t@param {Object} props\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.renderSync=false]\tIf `true` and {@link options.syncComponentUpdates} is `true`, triggers synchronous rendering.\n *\t@param {boolean} [opts.render=true]\t\t\tIf `false`, no render will be triggered.\n */function setComponentProps(component,props,opts,context,mountAll){if(component._disable)return;component._disable=true;if(component.__ref=props.ref)delete props.ref;if(component.__key=props.key)delete props.key;if(!component.base||mountAll){if(component.beforeInstall)component.beforeInstall();if(component.install)component.install();if(component.constructor.observe){proxyUpdate(component);}}else if(component.receiveProps){component.receiveProps(props,component.data,component.props);}if(context&&context!==component.context){if(!component.prevContext)component.prevContext=component.context;component.context=context;}if(!component.prevProps)component.prevProps=component.props;component.props=props;component._disable=false;if(opts!==0){if(opts===1||options.syncComponentUpdates!==false||!component.base){renderComponent(component,1,mountAll);}else{enqueueRender(component);}}applyRef(component.__ref,component);}function shallowComparison(old,attrs){var name;for(name in old){if(attrs[name]==null&&old[name]!=null){return true;}}if(old.children.length>0||attrs.children.length>0){return true;}for(name in attrs){if(name!='children'){var type=_typeof(attrs[name]);if(type=='function'||type=='object'){return true;}else if(attrs[name]!=old[name]){return true;}}}}/** Render a Component, triggering necessary lifecycle events and taking High-Order Components into account.\n *\t@param {Component} component\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.build=false]\t\tIf `true`, component will build and store a DOM node if not already associated with one.\n *\t@private\n */function renderComponent(component,opts,mountAll,isChild){if(component._disable)return;var props=component.props,data=component.data,context=component.context,previousProps=component.prevProps||props,previousState=component.prevState||data,previousContext=component.prevContext||context,isUpdate=component.base,nextBase=component.nextBase,initialBase=isUpdate||nextBase,initialChildComponent=component._component,skip=false,rendered,inst,cbase;// if updating\nif(isUpdate){component.props=previousProps;component.data=previousState;component.context=previousContext;if(component.store||opts==2||shallowComparison(previousProps,props)){skip=false;if(component.beforeUpdate){component.beforeUpdate(props,data,context);}}else{skip=true;}component.props=props;component.data=data;component.context=context;}component.prevProps=component.prevState=component.prevContext=component.nextBase=null;if(!skip){component.beforeRender&&component.beforeRender();rendered=component.render(props,data,context);//don't rerender\nif(component.constructor.css||component.css){addScopedAttrStatic(rendered,'_s'+getCtorName(component.constructor));}scopeHost(rendered,component.scopedCssAttr);// context to pass to the child, can be updated via (grand-)parent component\nif(component.getChildContext){context=extend(extend({},context),component.getChildContext());}var childComponent=rendered&&rendered.nodeName,toUnmount,base,ctor=options.mapping[childComponent];if(ctor){// set up high order component link\nvar childProps=getNodeProps(rendered);inst=initialChildComponent;if(inst&&inst.constructor===ctor&&childProps.key==inst.__key){setComponentProps(inst,childProps,1,context,false);}else{toUnmount=inst;component._component=inst=createComponent(ctor,childProps,context);inst.nextBase=inst.nextBase||nextBase;inst._parentComponent=component;setComponentProps(inst,childProps,0,context,false);renderComponent(inst,1,mountAll,true);}base=inst.base;}else{cbase=initialBase;// destroy high order component link\ntoUnmount=initialChildComponent;if(toUnmount){cbase=component._component=null;}if(initialBase||opts===1){if(cbase)cbase._component=null;base=diff(cbase,rendered,context,mountAll||!isUpdate,initialBase&&initialBase.parentNode,true);}}if(initialBase&&base!==initialBase&&inst!==initialChildComponent){var baseParent=initialBase.parentNode;if(baseParent&&base!==baseParent){baseParent.replaceChild(base,initialBase);if(!toUnmount){initialBase._component=null;recollectNodeTree(initialBase,false);}}}if(toUnmount){unmountComponent(toUnmount);}component.base=base;if(base&&!isChild){var componentRef=component,t=component;while(t=t._parentComponent){(componentRef=t).base=base;}base._component=componentRef;base._componentConstructor=componentRef.constructor;}}if(!isUpdate||mountAll){mounts.unshift(component);}else if(!skip){// Ensure that pending componentDidMount() hooks of child components\n// are called before the componentDidUpdate() hook in the parent.\n// Note: disabled as it causes duplicate hooks, see https://github.com/developit/preact/issues/750\n// flushMounts();\nif(component.afterUpdate){//deprecated\ncomponent.afterUpdate(previousProps,previousState,previousContext);}if(component.updated){component.updated(previousProps,previousState,previousContext);}if(options.afterUpdate)options.afterUpdate(component);}if(component._renderCallbacks!=null){while(component._renderCallbacks.length){component._renderCallbacks.pop().call(component);}}if(!diffLevel&&!isChild)flushMounts();}/** Apply the Component referenced by a VNode to the DOM.\n *\t@param {Element} dom\tThe DOM node to mutate\n *\t@param {VNode} vnode\tA Component-referencing VNode\n *\t@returns {Element} dom\tThe created/mutated element\n *\t@private\n */function buildComponentFromVNode(dom,vnode,context,mountAll){var c=dom&&dom._component,originalComponent=c,oldDom=dom,isDirectOwner=c&&dom._componentConstructor===vnode.nodeName,isOwner=isDirectOwner,props=getNodeProps(vnode);while(c&&!isOwner&&(c=c._parentComponent)){isOwner=c.constructor===vnode.nodeName;}if(c&&isOwner&&(!mountAll||c._component)){setComponentProps(c,props,3,context,mountAll);dom=c.base;}else{if(originalComponent&&!isDirectOwner){unmountComponent(originalComponent);dom=oldDom=null;}c=createComponent(vnode.nodeName,props,context,vnode);if(dom&&!c.nextBase){c.nextBase=dom;// passing dom/oldDom as nextBase will recycle it if unused, so bypass recycling on L229:\noldDom=null;}setComponentProps(c,props,1,context,mountAll);dom=c.base;if(oldDom&&dom!==oldDom){oldDom._component=null;recollectNodeTree(oldDom,false);}}return dom;}/** Remove a component from the DOM and recycle it.\n *\t@param {Component} component\tThe Component instance to unmount\n *\t@private\n */function unmountComponent(component){if(options.beforeUnmount)options.beforeUnmount(component);var base=component.base;component._disable=true;if(component.uninstall)component.uninstall();if(component.store&&component.store.instances){for(var i=0,len=component.store.instances.length;i0){this.instances.forEach(function(instance){if(updateAll||_this.updateAll||instance.constructor.updatePath&&needUpdate(patch,instance.constructor.updatePath)){//update this.use\ninstance.use=getUse(store.data,instance.constructor.use);instance.update();}});this.onChange&&this.onChange(patch);}};}function matchGlobalData(globalData,diffResult){if(!globalData)return false;for(var keyA in diffResult){if(globalData.indexOf(keyA)>-1){return true;}for(var i=0,len=globalData.length;i0){return{class:classNames.apply(null,args)};}}function getHost(component){var base=component.base;if(base){while(base.parentNode){if(base.parentNode._component){return base.parentNode._component;}else{base=base.parentNode;}}}}/**\n * preact-render-to-string based on preact-render-to-string\n * by Jason Miller\n * Licensed under the MIT License\n * https://github.com/developit/preact-render-to-string\n *\n * modified by dntzhang\n */var encodeEntities=function encodeEntities(s){return String(s).replace(/&/g,'&').replace(//g,'>').replace(/\"/g,'"');};var indent=function indent(s,char){return String(s).replace(/(\\n+)/g,'$1'+(char||'\\t'));};var mapping$1=options.mapping;var VOID_ELEMENTS=/^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/;var isLargeString=function isLargeString(s,length,ignoreLines){return String(s).length>(length||40)||!ignoreLines&&String(s).indexOf('\\n')!==-1||String(s).indexOf('<')!==-1;};var JS_TO_CSS={};// Convert an Object style to a CSSText string\nfunction styleObjToCss(s){var str='';for(var prop in s){var val=s[prop];if(val!=null){if(str)str+=' ';// str += jsToCss(prop);\nstr+=JS_TO_CSS[prop]||(JS_TO_CSS[prop]=prop.replace(/([A-Z])/g,'-$1').toLowerCase());str+=': ';str+=val;if(typeof val==='number'&&IS_NON_DIMENSIONAL.test(prop)===false){str+='px';}str+=';';}}return str||undefined;}function renderToString(vnode,opts,store,isSvgMode){store=store||{};opts=Object.assign({scopedCSS:true},opts);var css={};var html=_renderToString(vnode,opts,store,isSvgMode,css);return{css:Object.values(css),html:html};}/** The default export is an alias of `render()`. */function _renderToString(vnode,opts,store,isSvgMode,css){if(vnode==null||typeof vnode==='boolean'){return'';}var nodeName=vnode.nodeName,attributes=vnode.attributes,isComponent=false;var pretty=true&&opts.pretty,indentChar=pretty&&typeof pretty==='string'?pretty:'\\t';// #text nodes\nif((typeof vnode==='undefined'?'undefined':_typeof(vnode))!=='object'&&!nodeName){return encodeEntities(vnode);}// components\nvar ctor=mapping$1[nodeName];if(ctor){isComponent=true;var props=getNodeProps$1(vnode),rendered;// class-based components\nvar c=new ctor(props,store);// turn off stateful re-rendering:\nc._disable=c.__x=true;c.props=props;c.store=store;if(c.install)c.install();if(c.beforeRender)c.beforeRender();rendered=c.render(c.props,c.data,c.store);if(opts.scopedCSS){if(c.constructor.css||c.css){var cssStr=c.constructor.css?c.constructor.css:typeof c.css==='function'?c.css():c.css;var cssAttr='_s'+getCtorName(c.constructor);css[cssAttr]='';addScopedAttrStatic(rendered,'_s'+getCtorName(c.constructor));}c.scopedCSSAttr=vnode.css;scopeHost(rendered,c.scopedCSSAttr);}return _renderToString(rendered,opts,store,false,css);}// render JSX to HTML\nvar s='',html;if(attributes){var attrs=Object.keys(attributes);// allow sorting lexicographically for more determinism (useful for tests, such as via preact-jsx-chai)\nif(opts&&opts.sortAttributes===true)attrs.sort();for(var i=0;i]/))continue;if(!(opts&&opts.allAttributes)&&(name==='key'||name==='ref'))continue;if(name==='className'){if(attributes.class)continue;name='class';}else if(isSvgMode&&name.match(/^xlink:?./)){name=name.toLowerCase().replace(/^xlink:?/,'xlink:');}if(name==='style'&&v&&(typeof v==='undefined'?'undefined':_typeof(v))==='object'){v=styleObjToCss(v);}var hooked=opts.attributeHook&&opts.attributeHook(name,v,store,opts,isComponent);if(hooked||hooked===''){s+=hooked;continue;}if(name==='dangerouslySetInnerHTML'){html=v&&v.__html;}else if((v||v===0||v==='')&&typeof v!=='function'){if(v===true||v===''){v=name;// in non-xml mode, allow boolean attributes\nif(!opts||!opts.xml){s+=' '+name;continue;}}s+=' '+name+'=\"'+encodeEntities(v)+'\"';}}}// account for >1 multiline attribute\nif(pretty){var sub=s.replace(/^\\n\\s*/,' ');if(sub!==s&&!~sub.indexOf('\\n'))s=sub;else if(pretty&&~s.indexOf('\\n'))s+='\\n';}s='<'+nodeName+s+'>';if(String(nodeName).match(/[\\s\\n\\\\/='\"\\0<>]/))throw s;var isVoid=String(nodeName).match(VOID_ELEMENTS);if(isVoid)s=s.replace(/>$/,' />');var pieces=[];if(html){// if multiline, indent.\nif(pretty&&isLargeString(html)){html='\\n'+indentChar+indent(html,indentChar);}s+=html;}else if(vnode.children){var hasLarge=pretty&&~s.indexOf('\\n');for(var i=0;i';}if(!isVoid){if(pretty&&~s.indexOf('\\n'))s+='\\n';s+='';}return s;}function assign$1(obj,props){for(var i in props){obj[i]=props[i];}return obj;}function getNodeProps$1(vnode){var props=assign$1({},vnode.attributes);props.children=vnode.children;var defaultProps=vnode.nodeName.defaultProps;if(defaultProps!==undefined){for(var i in defaultProps){if(props[i]===undefined){props[i]=defaultProps[i];}}}return props;}var WeElement=Component;var defineElement=define;function createRef(){return{};}options.root.Omi={h:h,createElement:h,cloneElement:cloneElement,createRef:createRef,Component:Component,render:render,rerender:rerender,options:options,WeElement:WeElement,define:define,rpx:rpx,ModelView:ModelView,defineElement:defineElement,classNames:classNames,extractClass:extractClass,getHost:getHost,renderToString:renderToString};options.root.omi=options.root.Omi;options.root.Omi.version='omio-2.0.5';var omi={h:h,createElement:h,cloneElement:cloneElement,createRef:createRef,Component:Component,render:render,rerender:rerender,options:options,WeElement:WeElement,define:define,rpx:rpx,ModelView:ModelView,defineElement:defineElement,classNames:classNames,extractClass:extractClass,getHost:getHost,renderToString:renderToString};exports.default=omi;exports.h=h;exports.createElement=h;exports.cloneElement=cloneElement;exports.createRef=createRef;exports.Component=Component;exports.render=render;exports.rerender=rerender;exports.options=options;exports.WeElement=WeElement;exports.define=define;exports.rpx=rpx;exports.ModelView=ModelView;exports.defineElement=defineElement;exports.classNames=classNames;exports.extractClass=extractClass;exports.getHost=getHost;exports.renderToString=renderToString;//# sourceMappingURL=omi.esm.js.map\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/// css base code, injected by the css-loader\nmodule.exports=function(useSourceMap){var list=[];// return the list of modules as css string\nlist.toString=function toString(){return this.map(function(item){var content=cssWithMappingToString(item,useSourceMap);if(item[2]){return\"@media \"+item[2]+\"{\"+content+\"}\";}else{return content;}}).join(\"\");};// import a list of modules into the list\nlist.i=function(modules,mediaQuery){if(typeof modules===\"string\")modules=[[null,modules,\"\"]];var alreadyImportedModules={};for(var i=0;icapacity){// Manually shift all values starting at the index back to the\n// beginning of the queue.\nfor(var scan=0,newLength=queue.length-index;scan-1;};}function normalizeName(name){if(typeof name!=='string'){name=String(name);}if(/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)){throw new TypeError('Invalid character in header field name');}return name.toLowerCase();}function normalizeValue(value){if(typeof value!=='string'){value=String(value);}return value;}// Build a destructive iterator for the value list\nfunction iteratorFor(items){var iterator={next:function next(){var value=items.shift();return{done:value===undefined,value:value};}};if(support.iterable){iterator[Symbol.iterator]=function(){return iterator;};}return iterator;}function Headers(headers){this.map={};if(headers instanceof Headers){headers.forEach(function(value,name){this.append(name,value);},this);}else if(Array.isArray(headers)){headers.forEach(function(header){this.append(header[0],header[1]);},this);}else if(headers){Object.getOwnPropertyNames(headers).forEach(function(name){this.append(name,headers[name]);},this);}}Headers.prototype.append=function(name,value){name=normalizeName(name);value=normalizeValue(value);var oldValue=this.map[name];this.map[name]=oldValue?oldValue+','+value:value;};Headers.prototype['delete']=function(name){delete this.map[normalizeName(name)];};Headers.prototype.get=function(name){name=normalizeName(name);return this.has(name)?this.map[name]:null;};Headers.prototype.has=function(name){return this.map.hasOwnProperty(normalizeName(name));};Headers.prototype.set=function(name,value){this.map[normalizeName(name)]=normalizeValue(value);};Headers.prototype.forEach=function(callback,thisArg){for(var name in this.map){if(this.map.hasOwnProperty(name)){callback.call(thisArg,this.map[name],name,this);}}};Headers.prototype.keys=function(){var items=[];this.forEach(function(value,name){items.push(name);});return iteratorFor(items);};Headers.prototype.values=function(){var items=[];this.forEach(function(value){items.push(value);});return iteratorFor(items);};Headers.prototype.entries=function(){var items=[];this.forEach(function(value,name){items.push([name,value]);});return iteratorFor(items);};if(support.iterable){Headers.prototype[Symbol.iterator]=Headers.prototype.entries;}function consumed(body){if(body.bodyUsed){return Promise.reject(new TypeError('Already read'));}body.bodyUsed=true;}function fileReaderReady(reader){return new Promise(function(resolve,reject){reader.onload=function(){resolve(reader.result);};reader.onerror=function(){reject(reader.error);};});}function readBlobAsArrayBuffer(blob){var reader=new FileReader();var promise=fileReaderReady(reader);reader.readAsArrayBuffer(blob);return promise;}function readBlobAsText(blob){var reader=new FileReader();var promise=fileReaderReady(reader);reader.readAsText(blob);return promise;}function readArrayBufferAsText(buf){var view=new Uint8Array(buf);var chars=new Array(view.length);for(var i=0;i-1?upcased:method;}function Request(input,options){options=options||{};var body=options.body;if(input instanceof Request){if(input.bodyUsed){throw new TypeError('Already read');}this.url=input.url;this.credentials=input.credentials;if(!options.headers){this.headers=new Headers(input.headers);}this.method=input.method;this.mode=input.mode;if(!body&&input._bodyInit!=null){body=input._bodyInit;input.bodyUsed=true;}}else{this.url=String(input);}this.credentials=options.credentials||this.credentials||'omit';if(options.headers||!this.headers){this.headers=new Headers(options.headers);}this.method=normalizeMethod(options.method||this.method||'GET');this.mode=options.mode||this.mode||null;this.referrer=null;if((this.method==='GET'||this.method==='HEAD')&&body){throw new TypeError('Body not allowed for GET or HEAD requests');}this._initBody(body);}Request.prototype.clone=function(){return new Request(this,{body:this._bodyInit});};function decode(body){var form=new FormData();body.trim().split('&').forEach(function(bytes){if(bytes){var split=bytes.split('=');var name=split.shift().replace(/\\+/g,' ');var value=split.join('=').replace(/\\+/g,' ');form.append(decodeURIComponent(name),decodeURIComponent(value));}});return form;}function parseHeaders(rawHeaders){var headers=new Headers();rawHeaders.split(/\\r?\\n/).forEach(function(line){var parts=line.split(':');var key=parts.shift().trim();if(key){var value=parts.join(':').trim();headers.append(key,value);}});return headers;}Body.call(Request.prototype);function Response(bodyInit,options){if(!options){options={};}this.type='default';this.status='status'in options?options.status:200;this.ok=this.status>=200&&this.status<300;this.statusText='statusText'in options?options.statusText:'OK';this.headers=new Headers(options.headers);this.url=options.url||'';this._initBody(bodyInit);}Body.call(Response.prototype);Response.prototype.clone=function(){return new Response(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new Headers(this.headers),url:this.url});};Response.error=function(){var response=new Response(null,{status:0,statusText:''});response.type='error';return response;};var redirectStatuses=[301,302,303,307,308];Response.redirect=function(url,status){if(redirectStatuses.indexOf(status)===-1){throw new RangeError('Invalid status code');}return new Response(null,{status:status,headers:{location:url}});};self.Headers=Headers;self.Request=Request;self.Response=Response;self.fetch=function(input,init){return new Promise(function(resolve,reject){var request=new Request(input,init);var xhr=new XMLHttpRequest();xhr.onload=function(){var options={status:xhr.status,statusText:xhr.statusText,headers:parseHeaders(xhr.getAllResponseHeaders()||'')};options.url='responseURL'in xhr?xhr.responseURL:options.headers.get('X-Request-URL');var body='response'in xhr?xhr.response:xhr.responseText;resolve(new Response(body,options));};xhr.onerror=function(){reject(new TypeError('Network request failed'));};xhr.ontimeout=function(){reject(new TypeError('Network request failed'));};xhr.open(request.method,request.url,true);if(request.credentials==='include'){xhr.withCredentials=true;}if('responseType'in xhr&&support.blob){xhr.responseType='blob';}request.headers.forEach(function(value,name){xhr.setRequestHeader(name,value);});xhr.send(typeof request._bodyInit==='undefined'?null:request._bodyInit);});};self.fetch.polyfill=true;})(typeof self!=='undefined'?self:undefined);\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*//* eslint-disable no-unused-vars */var getOwnPropertySymbols=Object.getOwnPropertySymbols;var hasOwnProperty=Object.prototype.hasOwnProperty;var propIsEnumerable=Object.prototype.propertyIsEnumerable;function toObject(val){if(val===null||val===undefined){throw new TypeError('Object.assign cannot be called with null or undefined');}return Object(val);}function shouldUseNative(){try{if(!Object.assign){return false;}// Detect buggy property enumeration order in older V8 versions.\n// https://bugs.chromium.org/p/v8/issues/detail?id=4118\nvar test1=new String('abc');// eslint-disable-line no-new-wrappers\ntest1[5]='de';if(Object.getOwnPropertyNames(test1)[0]==='5'){return false;}// https://bugs.chromium.org/p/v8/issues/detail?id=3056\nvar test2={};for(var i=0;i<10;i++){test2['_'+String.fromCharCode(i)]=i;}var order2=Object.getOwnPropertyNames(test2).map(function(n){return test2[n];});if(order2.join('')!=='0123456789'){return false;}// https://bugs.chromium.org/p/v8/issues/detail?id=3056\nvar test3={};'abcdefghijklmnopqrst'.split('').forEach(function(letter){test3[letter]=letter;});if(Object.keys(Object.assign({},test3)).join('')!=='abcdefghijklmnopqrst'){return false;}return true;}catch(err){// We don't expect any of the above to throw, but better to be safe.\nreturn false;}}module.exports=shouldUseNative()?Object.assign:function(target,source){var from;var to=toObject(target);var symbols;for(var s=1;s {\n// let newP = document.createElement('div')\n// newP.className = '_code-ctn'\n// let pre = code.parentNode\n// let ctn = pre.parentNode\n// if (pre.nodeName === 'PRE') {\n// ctn.insertBefore(newP, pre)\n// let hl = document.createElement('div')\n// hl.className = '_hl'\n// newP.appendChild(hl)\n// newP.appendChild(pre)\n// let nums = codeHlNumArr[index]\n// let max = Math.max.apply(null, nums)\n// let inner = ''\n// for (let i = 0; i <= max; i++) {\n// if (nums.indexOf(i) == -1) {\n// inner += '
'\n// } else {\n// inner += '
'\n// }\n// }\n// hl.innerHTML = inner\n// }\n// })\n//fix line-highlight\nwindow.dispatchEvent(new Event('resize'));}},{key:'_arrToNumber',value:function _arrToNumber(numArr){var arr=[];numArr.forEach(function(item){if(item.indexOf('-')!==-1){var tempArr=item.split('-');var begin=Number(tempArr[0]);var end=Number(tempArr[1]);for(var i=begin;i0)return false;}return true;}},{key:'render',value:function render(){if(!this.demo)return;return Omi.h('div',null,this.show&&Omi.h('iframe',{style:'height:'+(window.innerHeight-59)+'px',src:this.demo}),!this.show&&Omi.h('div',{'class':'switch code',onClick:this.onShow},Omi.h('img',{src:__webpack_require__(32)})),this.show&&Omi.h('div',{'class':'switch close',onClick:this.onClose},Omi.h('img',{src:__webpack_require__(33)})));}}]);return _class2;}(_omi.WeElement));\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n var result = __webpack_require__(31);\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(1)(undefined);\n// imports\n\n\n// module\nexports.push([module.i, \"iframe{\\n width: 750px;\\n height: 100%;\\n top: 60px;\\n right: 0;\\n position: fixed;\\n border: none;\\n z-index: 9999;\\n border-left: 2px solid #24292E; \\n}\\n\\n.switch{\\n width: 40px;\\n height: 40px;\\n background-color: #AA0000;\\n border-radius: 50%;\\n position: fixed;\\n right: 50px;\\n bottom: 50px;\\n cursor: pointer;\\n text-align: center;\\n z-index: 10000;\\n}\\n\\n.switch img{\\n width: 30px;\\n height: 30px;\\n margin-top:5px; \\n}\\n\\n.switch.close img{\\n margin-top:10px; \\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n@media only screen and (max-width: 768px) {\\n iframe{\\n width: 100%;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC\"\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports) {\n\nmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==\"\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(exports,\"__esModule\",{value:true});var _createClass=function(){function defineProperties(target,props){for(var i=0;i768};var id=0;this.map={};this.positionMap={};_config2.default.menus[this.data.lan].forEach(function(menu,index){menu.list.forEach(function(item,subIndex){item.id=id++;item.position=[index,subIndex];_this.map[item.id]=item;item.index=index;item.subIndex=subIndex;_this.positionMap[index+'-'+subIndex]=item;});});this.preIndex=0;this.preSubIndex=0;}_createClass(Store,[{key:'getNext',value:function getNext(){var item=this.positionMap[this.data.position.join('-')];if(item){return this.map[item.id+1];}}},{key:'getPre',value:function getPre(){var item=this.positionMap[this.data.position.join('-')];if(item){return this.map[item.id-1];}}},{key:'init',value:function init(){var _this2=this;this.remarkable=new Remarkable({html:true});if(location.hash===\"\"){this.data.position=[0,0];this.getMarkDown(this.data.menus[this.data.lan][0].list[0].md,this.data.lan,function(m){_this2.data.html=_this2.remarkable.render(m);});}this.initRouter();}},{key:'toogleSidebar',value:function toogleSidebar(){this.data.sideBarShow=!this.data.sideBarShow;}},{key:'hideSidebar',value:function hideSidebar(){this.data.sideBarShow=false;}},{key:'initRouter',value:function initRouter(){var _this3=this;var menus=this.data.menus[this.data.lan];menus.forEach(function(item){item.list.forEach(function(subItem){route('/'+subItem.md,function(evt){menus[_this3.preIndex].list[_this3.preSubIndex].selected=false;_this3.preIndex=evt.query.index;_this3.preSubIndex=evt.query.subIndex;_this3.data.position=[Number(evt.query.index),Number(evt.query.subIndex)];_this3.data.sideBarShow=false;_this3.getMarkDown(subItem.md,_this3.data.lan,function(m){_this3.data.html=_this3.remarkable.render(m);document.body.scrollTop=0;document.documentElement.scrollTop=0;});});});});}},{key:'getMarkDown',value:function getMarkDown(name,lan,callback){__webpack_require__(38)(\"./\"+lan+'/'+name+'.md').then(function(m){callback(m);});}}]);return Store;}();exports.default=Store;\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(exports,\"__esModule\",{value:true});var config={menus:{'zh-cn':[{title:'Omi',list:[{name:'简介',md:'introduction'},{name:'安装',md:'installation'}]},{title:'基础概念',list:[{name:'JSX',md:'jsx'},{name:'Props',md:'props'},{name:'事件',md:'event'},{name:'生命周期',md:'lifecycle'},{name:'Ref',md:'ref'},{name:'Class',md:'class'},{name:'Store',md:'store'},{name:'CSS',md:'css'}]},{title:'其他',list:[{name:'生态与例子',md:'other'},{name:'Mps',md:'mps'},{name:'Omip 多端开发',md:'omip'},{name:'服务端渲染',md:'ssr'},{name:'路由',md:'router'},{name:'Omiu',md:'omiu'}]}],en:[{title:'Omi',list:[{name:'Introduction',md:'introduction'},{name:'Installation',md:'installation'}]},{title:'Base',list:[{name:'JSX',md:'jsx'},{name:'Props',md:'props'},{name:'Event',md:'event'},{name:'Lifecycle',md:'lifecycle'},{name:'Ref',md:'ref'},{name:'Class',md:'class'},{name:'Store',md:'store'},{name:'CSS',md:'css'}]},{title:'Other',list:[{name:'Ecosystem and examples',md:'other'},{name:'Server-Side Rendering',md:'ssr'},{name:'Router',md:'router'},{name:'Omiu',md:'omiu'}]}]}};exports.default=config;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {Object.defineProperty(exports,\"__esModule\",{value:true});var _typeof=typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol===\"function\"&&obj.constructor===Symbol&&obj!==Symbol.prototype?\"symbol\":typeof obj;};exports.default=route;/*!\n * omi-router v2.0.9 by dntzhang\n * Router for Omi.\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n */var p2r=__webpack_require__(37);var mapping={};var root=getGlobal();root.route=route;root.route.params=null;root.historyLength=0;root.route.to=function(path,data){root.route._routeByTo=true;root.route.data=data;if(path[0]==='#'){location.hash=path;}else{location.hash='#'+path;}};window.addEventListener('hashchange',change);function change(evt){var byNative=false;//need to fix a line by omi-link\nif(window.history.length===root.historyLength&&!root.route._routeByTo){//keep alive mode\nbyNative=true;}root.route._routeByTo=false;root.historyLength=window.history.length;var prevent=false;if(evt.type==='hashchange'&&root.route.before){prevent=root.route.before(evt)===false;}if(prevent)return;var path=window.location.hash.replace('#','');if(path==='')path='/';var notFound=true;Object.keys(mapping).every(function(key){var toArr=path.split('?')[0].match(mapping[key].reg);if(toArr){var pathArr=key.match(mapping[key].reg);root.route.params=getParams(toArr,pathArr);root.route.query=getUrlParams(path);mapping[key].callback({params:root.route.params,query:getUrlParams(path),data:root.route.data,byNative:byNative});root.route.data=null;notFound=false;return false;}return true;});if(notFound){mapping['*']&&mapping['*'].callback({byNative:byNative});}if(evt.type==='hashchange'&&root.route.after){root.route.after(evt);}}document.addEventListener('DOMContentLoaded',change);function getParams(toArr,pathArr){var params={};toArr.forEach(function(item,index){if(index>0){params[pathArr[index].replace(':','')]=item;}});return params;}function route(path,callback){mapping[path]={callback:callback,reg:p2r(path)};}function getGlobal(){if((typeof global==='undefined'?'undefined':_typeof(global))!=='object'||!global||global.Math!==Math||global.Array!==Array){return self||window||global||function(){return this;}();}return global;}function getUrlParams(url){url=url.replace(/#.*$/,'');var queryArray=url.split(/[?&]/).slice(1);var i,args={};for(i=0;i [\"test\", \"\\d+\", undefined, \"?\"]\n// \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n'(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'].join('|'),'g');/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */function parse(str,options){var tokens=[];var key=0;var index=0;var path='';var defaultDelimiter=options&&options.delimiter||DEFAULT_DELIMITER;var whitelist=options&&options.whitelist||undefined;var pathEscaped=false;var res;while((res=PATH_REGEXP.exec(str))!==null){var m=res[0];var escaped=res[1];var offset=res.index;path+=str.slice(index,offset);index=offset+m.length;// Ignore already escaped sequences.\nif(escaped){path+=escaped[1];pathEscaped=true;continue;}var prev='';var name=res[2];var capture=res[3];var group=res[4];var modifier=res[5];if(!pathEscaped&&path.length){var k=path.length-1;var c=path[k];var matches=whitelist?whitelist.indexOf(c)>-1:true;if(matches){prev=c;path=path.slice(0,k);}}// Push the current path onto the tokens.\nif(path){tokens.push(path);path='';pathEscaped=false;}var repeat=modifier==='+'||modifier==='*';var optional=modifier==='?'||modifier==='*';var pattern=capture||group;var delimiter=prev||defaultDelimiter;tokens.push({name:name||key++,prefix:prev,delimiter:delimiter,optional:optional,repeat:repeat,pattern:pattern?escapeGroup(pattern):'[^'+escapeString(delimiter===defaultDelimiter?delimiter:delimiter+defaultDelimiter)+']+?'});}// Push any remaining characters.\nif(path||indexHello!`\n *\n * can be constructed using this function as:\n *\n * `h('div', { id: 'foo', name : 'bar' }, 'Hello!');`\n *\n * @param {string} nodeName\tAn element name. Ex: `div`, `a`, `span`, etc.\n * @param {Object} attributes\tAny attributes/props to set on the created element.\n * @param rest\t\t\tAdditional arguments are taken to be children to append. Can be infinitely nested Arrays.\n *\n * @public\n */\nfunction h(nodeName, attributes) {\n var children = EMPTY_CHILDREN,\n lastSimple,\n child,\n simple,\n i;\n for (i = arguments.length; i-- > 2;) {\n stack.push(arguments[i]);\n }\n if (attributes && attributes.children != null) {\n if (!stack.length) stack.push(attributes.children);\n delete attributes.children;\n }\n while (stack.length) {\n if ((child = stack.pop()) && child.pop !== undefined) {\n for (i = child.length; i--;) {\n stack.push(child[i]);\n }\n } else {\n if (typeof child === 'boolean') child = null;\n\n if (simple = typeof nodeName !== 'function') {\n if (child == null) child = '';else if (typeof child === 'number') child = String(child);else if (typeof child !== 'string') simple = false;\n }\n\n if (simple && lastSimple) {\n children[children.length - 1] += child;\n } else if (children === EMPTY_CHILDREN) {\n children = [child];\n } else {\n children.push(child);\n }\n\n lastSimple = simple;\n }\n }\n\n var p = new VNode();\n p.nodeName = nodeName;\n p.children = children;\n p.attributes = attributes == null ? undefined : attributes;\n p.key = attributes == null ? undefined : attributes.key;\n\n // if a \"vnode hook\" is defined, pass every created VNode to it\n if (options.vnode !== undefined) options.vnode(p);\n\n return p;\n}\n\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction assign(target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n}\n\nif (typeof Element !== 'undefined' && !Element.prototype.addEventListener) {\n var runListeners = function runListeners(oEvent) {\n if (!oEvent) {\n oEvent = window.event;\n }\n for (var iLstId = 0, iElId = 0, oEvtListeners = oListeners[oEvent.type]; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n for (iLstId; iLstId < oEvtListeners.aEvts[iElId].length; iLstId++) {\n oEvtListeners.aEvts[iElId][iLstId].call(this, oEvent);\n }\n break;\n }\n }\n };\n\n var oListeners = {};\n\n Element.prototype.addEventListener = function (sEventType, fListener /*, useCapture (will be ignored!) */) {\n if (oListeners.hasOwnProperty(sEventType)) {\n var oEvtListeners = oListeners[sEventType];\n for (var nElIdx = -1, iElId = 0; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n nElIdx = iElId;break;\n }\n }\n if (nElIdx === -1) {\n oEvtListeners.aEls.push(this);\n oEvtListeners.aEvts.push([fListener]);\n this[\"on\" + sEventType] = runListeners;\n } else {\n var aElListeners = oEvtListeners.aEvts[nElIdx];\n if (this[\"on\" + sEventType] !== runListeners) {\n aElListeners.splice(0);\n this[\"on\" + sEventType] = runListeners;\n }\n for (var iLstId = 0; iLstId < aElListeners.length; iLstId++) {\n if (aElListeners[iLstId] === fListener) {\n return;\n }\n }\n aElListeners.push(fListener);\n }\n } else {\n oListeners[sEventType] = { aEls: [this], aEvts: [[fListener]] };\n this[\"on\" + sEventType] = runListeners;\n }\n };\n Element.prototype.removeEventListener = function (sEventType, fListener /*, useCapture (will be ignored!) */) {\n if (!oListeners.hasOwnProperty(sEventType)) {\n return;\n }\n var oEvtListeners = oListeners[sEventType];\n for (var nElIdx = -1, iElId = 0; iElId < oEvtListeners.aEls.length; iElId++) {\n if (oEvtListeners.aEls[iElId] === this) {\n nElIdx = iElId;break;\n }\n }\n if (nElIdx === -1) {\n return;\n }\n for (var iLstId = 0, aElListeners = oEvtListeners.aEvts[nElIdx]; iLstId < aElListeners.length; iLstId++) {\n if (aElListeners[iLstId] === fListener) {\n aElListeners.splice(iLstId, 1);\n }\n }\n };\n}\n\nif (typeof Object.create !== 'function') {\n Object.create = function (proto, propertiesObject) {\n if (typeof proto !== 'object' && typeof proto !== 'function') {\n throw new TypeError('Object prototype may only be an Object: ' + proto);\n } else if (proto === null) {\n throw new Error(\"This browser's implementation of Object.create is a shim and doesn't support 'null' as the first argument.\");\n }\n\n // if (typeof propertiesObject != 'undefined') {\n // throw new Error(\"This browser's implementation of Object.create is a shim and doesn't support a second argument.\");\n // }\n\n function F() {}\n F.prototype = proto;\n\n return new F();\n };\n}\n\nif (!String.prototype.trim) {\n String.prototype.trim = function () {\n return this.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n };\n}\n\n/**\n * Copy all properties from `props` onto `obj`.\n * @param {Object} obj\t\tObject onto which properties should be copied.\n * @param {Object} props\tObject from which to copy properties.\n * @returns obj\n * @private\n */\nfunction extend(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\n/** Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} [ref=null]\n * @param {any} [value]\n */\nfunction applyRef(ref, value) {\n if (ref) {\n if (typeof ref == 'function') ref(value);else ref.current = value;\n }\n}\n\n/**\n * Call a function asynchronously, as soon as possible. Makes\n * use of HTML Promise to schedule the callback if available,\n * otherwise falling back to `setTimeout` (mainly for IE<11).\n *\n * @param {Function} callback\n */\n\nvar usePromise = typeof Promise == 'function';\n\n// for native\nif (typeof document !== 'object' && typeof global !== 'undefined' && global.__config__) {\n if (global.__config__.platform === 'android') {\n usePromise = true;\n } else {\n var systemVersion = global.__config__.systemVersion && global.__config__.systemVersion.split('.')[0] || 0;\n if (systemVersion > 8) {\n usePromise = true;\n }\n }\n}\n\nvar defer = usePromise ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\nfunction isArray(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n}\n\nfunction nProps(props) {\n if (!props || isArray(props)) return {};\n var result = {};\n Object.keys(props).forEach(function (key) {\n result[key] = props[key].value;\n });\n return result;\n}\n\nfunction getUse(data, paths) {\n var obj = [];\n paths.forEach(function (path, index) {\n var isPath = typeof path === 'string';\n if (isPath) {\n obj[index] = getTargetByPath(data, path);\n } else {\n var key = Object.keys(path)[0];\n var value = path[key];\n if (typeof value === 'string') {\n obj[index] = getTargetByPath(data, value);\n } else {\n var tempPath = value[0];\n if (typeof tempPath === 'string') {\n var tempVal = getTargetByPath(data, tempPath);\n obj[index] = value[1] ? value[1](tempVal) : tempVal;\n } else {\n var args = [];\n tempPath.forEach(function (path) {\n args.push(getTargetByPath(data, path));\n });\n obj[index] = value[1].apply(null, args);\n }\n }\n obj[key] = obj[index];\n }\n });\n return obj;\n}\n\nfunction getTargetByPath(origin, path) {\n var arr = path.replace(/]/g, '').replace(/\\[/g, '.').split('.');\n var current = origin;\n for (var i = 0, len = arr.length; i < len; i++) {\n current = current[arr[i]];\n }\n return current;\n}\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {VNode} vnode\t\tThe virtual DOM element to clone\n * @param {Object} props\tAttributes/props to add when cloning\n * @param {VNode} rest\t\tAny additional arguments will be used as replacement children.\n */\nfunction cloneElement(vnode, props) {\n return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\n// DOM properties that should NOT have \"px\" added when numeric\nvar IS_NON_DIMENSIONAL$1 = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\n/** Managed queue of dirty components to be re-rendered */\n\nvar items = [];\n\nfunction enqueueRender(component) {\n if (items.push(component) == 1) {\n(options.debounceRendering || defer)(rerender);\n }\n}\n\n/** Rerender all enqueued dirty components */\nfunction rerender() {\n var p;\n while (p = items.pop()) {\n renderComponent(p);\n }\n}\n\nvar mapping = options.mapping;\n/**\n * Check if two nodes are equivalent.\n *\n * @param {Node} node\t\t\tDOM Node to compare\n * @param {VNode} vnode\t\t\tVirtual DOM node to compare\n * @param {boolean} [hydrating=false]\tIf true, ignores component constructors when comparing.\n * @private\n */\nfunction isSameNodeType(node, vnode, hydrating) {\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n return node.splitText !== undefined;\n }\n if (typeof vnode.nodeName === 'string') {\n var ctor = mapping[vnode.nodeName];\n if (ctor) {\n return hydrating || node._componentConstructor === ctor;\n }\n return !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n }\n return hydrating || node._componentConstructor === vnode.nodeName;\n}\n\n/**\n * Check if an Element has a given nodeName, case-insensitively.\n *\n * @param {Element} node\tA DOM Element to inspect the name of.\n * @param {String} nodeName\tUnnormalized name to compare against.\n */\nfunction isNamedNode(node, nodeName) {\n return node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\n}\n\n/**\n * Reconstruct Component-style `props` from a VNode.\n * Ensures default/fallback values from `defaultProps`:\n * Own-properties of `defaultProps` not present in `vnode.attributes` are added.\n *\n * @param {VNode} vnode\n * @returns {Object} props\n */\nfunction getNodeProps(vnode) {\n var props = extend({}, vnode.attributes);\n props.children = vnode.children;\n\n var defaultProps = vnode.nodeName.defaultProps;\n if (defaultProps !== undefined) {\n for (var i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i];\n }\n }\n }\n\n return props;\n}\n\n/** Create an element with the given nodeName.\n *\t@param {String} nodeName\n *\t@param {Boolean} [isSvg=false]\tIf `true`, creates an element within the SVG namespace.\n *\t@returns {Element} node\n */\nfunction createNode(nodeName, isSvg) {\n var node = isSvg ? options.doc.createElementNS('http://www.w3.org/2000/svg', nodeName) : options.doc.createElement(nodeName);\n node.normalizedNodeName = nodeName;\n return node;\n}\n\nfunction parseCSSText(cssText) {\n var cssTxt = cssText.replace(/\\/\\*(.|\\s)*?\\*\\//g, ' ').replace(/\\s+/g, ' ');\n var style = {},\n _ref = cssTxt.match(/ ?(.*?) ?{([^}]*)}/) || [a, b, cssTxt],\n a = _ref[0],\n b = _ref[1],\n rule = _ref[2];\n\n var cssToJs = function cssToJs(s) {\n return s.replace(/\\W+\\w/g, function (match) {\n return match.slice(-1).toUpperCase();\n });\n };\n var properties = rule.split(';').map(function (o) {\n return o.split(':').map(function (x) {\n return x && x.trim();\n });\n });\n for (var i = properties, i = Array.isArray(i), i = 0, i = i ? i : i[Symbol.iterator]();;) {\n var _ref3;\n\n if (i) {\n if (i >= i.length) break;\n _ref3 = i[i++];\n } else {\n i = i.next();\n if (i.done) break;\n _ref3 = i.value;\n }\n\n var _ref2 = _ref3;\n var property = _ref2[0];\n var value = _ref2[1];\n style[cssToJs(property)] = value;\n }return style;\n}\n\n/** Remove a child node from its parent if attached.\n *\t@param {Element} node\t\tThe node to remove\n */\nfunction removeNode(node) {\n var parentNode = node.parentNode;\n if (parentNode) parentNode.removeChild(node);\n}\n\n/** Set a named attribute on the given Node, with special behavior for some names and event handlers.\n *\tIf `value` is `null`, the attribute/handler will be removed.\n *\t@param {Element} node\tAn element to mutate\n *\t@param {string} name\tThe name/key to set, such as an event or attribute name\n *\t@param {any} old\tThe last value that was set for this name/node pair\n *\t@param {any} value\tAn attribute value, such as a function to be used as an event handler\n *\t@param {Boolean} isSvg\tAre we currently diffing inside an svg?\n *\t@private\n */\nfunction setAccessor(node, name, old, value, isSvg) {\n if (name === 'className') name = 'class';\n\n if (name === 'key') {\n // ignore\n } else if (name === 'ref') {\n applyRef(old, null);\n applyRef(value, node);\n } else if (name === 'class' && !isSvg) {\n node.className = value || '';\n } else if (name === 'style') {\n if (options.isWeb) {\n if (!value || typeof value === 'string' || typeof old === 'string') {\n node.style.cssText = value || '';\n }\n if (value && typeof value === 'object') {\n if (typeof old !== 'string') {\n for (var i in old) {\n if (!(i in value)) node.style[i] = '';\n }\n }\n for (var i in value) {\n node.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL$1.test(i) === false ? value[i] + 'px' : value[i];\n }\n }\n } else {\n var oldJson = old,\n currentJson = value;\n if (typeof old === 'string') {\n oldJson = parseCSSText(old);\n }\n if (typeof value == 'string') {\n currentJson = parseCSSText(value);\n }\n\n var result = {},\n changed = false;\n\n if (oldJson) {\n for (var key in oldJson) {\n if (typeof currentJson == 'object' && !(key in currentJson)) {\n result[key] = '';\n changed = true;\n }\n }\n\n for (var ckey in currentJson) {\n if (currentJson[ckey] !== oldJson[ckey]) {\n result[ckey] = currentJson[ckey];\n changed = true;\n }\n }\n\n if (changed) {\n node.setStyles(result);\n }\n } else {\n node.setStyles(currentJson);\n }\n }\n } else if (name === 'dangerouslySetInnerHTML') {\n if (value) node.innerHTML = value.__html || '';\n } else if (name[0] == 'o' && name[1] == 'n') {\n var useCapture = name !== (name = name.replace(/Capture$/, ''));\n name = name.toLowerCase().substring(2);\n if (value) {\n if (!old) {\n node.addEventListener(name, eventProxy, useCapture);\n if (name == 'tap') {\n node.addEventListener('touchstart', touchStart, useCapture);\n node.addEventListener('touchend', touchEnd, useCapture);\n }\n }\n } else {\n node.removeEventListener(name, eventProxy, useCapture);\n if (name == 'tap') {\n node.removeEventListener('touchstart', touchStart, useCapture);\n node.removeEventListener('touchend', touchEnd, useCapture);\n }\n }\n(node._listeners || (node._listeners = {}))[name] = value;\n } else if (name !== 'list' && name !== 'type' && !isSvg && name in node) {\n setProperty(node, name, value == null ? '' : value);\n if (value == null || value === false) node.removeAttribute(name);\n } else {\n var ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\n if (value == null || value === false) {\n if (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n } else if (typeof value !== 'function') {\n if (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n }\n }\n}\n\n/** Attempt to set a DOM property to the given value.\n *\tIE & FF throw for certain property-value combinations.\n */\nfunction setProperty(node, name, value) {\n try {\n node[name] = value;\n } catch (e) {}\n}\n\n/** Proxy an event to hooked event handlers\n *\t@private\n */\nfunction eventProxy(e) {\n return this._listeners[e.type](options.event && options.event(e) || e);\n}\n\nfunction touchStart(e) {\n this.___touchX = e.touches[0].pageX;\n this.___touchY = e.touches[0].pageY;\n this.___scrollTop = document.body.scrollTop;\n}\n\nfunction touchEnd(e) {\n if (Math.abs(e.changedTouches[0].pageX - this.___touchX) < 30 && Math.abs(e.changedTouches[0].pageY - this.___touchY) < 30 && Math.abs(document.body.scrollTop - this.___scrollTop) < 30) {\n this.dispatchEvent(new CustomEvent('tap', { detail: e }));\n }\n}\n\nvar styleId = 0;\n\nfunction getCtorName(ctor) {\n for (var i = 0, len = options.styleCache.length; i < len; i++) {\n var item = options.styleCache[i];\n\n if (item.ctor === ctor) {\n return item.attrName;\n }\n }\n\n var attrName = 's' + styleId;\n options.styleCache.push({ ctor: ctor, attrName: attrName });\n styleId++;\n\n return attrName;\n}\n\n// many thanks to https://github.com/thomaspark/scoper/\nfunction scoper(css, prefix) {\n prefix = '[' + prefix.toLowerCase() + ']';\n // https://www.w3.org/TR/css-syntax-3/#lexical\n css = css.replace(/\\/\\*[^*]*\\*+([^/][^*]*\\*+)*\\//g, '');\n // eslint-disable-next-line\n var re = new RegExp('([^\\r\\n,{}:]+)(:[^\\r\\n,{}]+)?(,(?=[^{}]*{)|\\s*{)', 'g');\n /**\n * Example:\n *\n * .classname::pesudo { color:red }\n *\n * g1 is normal selector `.classname`\n * g2 is pesudo class or pesudo element\n * g3 is the suffix\n */\n css = css.replace(re, function (g0, g1, g2, g3) {\n if (typeof g2 === 'undefined') {\n g2 = '';\n }\n\n /* eslint-ignore-next-line */\n if (g1.match(/^\\s*(@media|\\d+%?|@-webkit-keyframes|@keyframes|to|from|@font-face)/)) {\n return g1 + g2 + g3;\n }\n\n var appendClass = g1.replace(/(\\s*)$/, '') + prefix + g2;\n //let prependClass = prefix + ' ' + g1.trim() + g2;\n\n return appendClass + g3;\n //return appendClass + ',' + prependClass + g3;\n });\n\n return css;\n}\n\nfunction addStyle(cssText, id) {\n id = id.toLowerCase();\n var ele = document.getElementById(id);\n var head = document.getElementsByTagName('head')[0];\n if (ele && ele.parentNode === head) {\n head.removeChild(ele);\n }\n\n var someThingStyles = document.createElement('style');\n head.appendChild(someThingStyles);\n someThingStyles.setAttribute('type', 'text/css');\n someThingStyles.setAttribute('id', id);\n if (window.ActiveXObject) {\n someThingStyles.styleSheet.cssText = cssText;\n } else {\n someThingStyles.textContent = cssText;\n }\n}\n\nfunction addStyleWithoutId(cssText) {\n var head = document.getElementsByTagName('head')[0];\n var someThingStyles = document.createElement('style');\n head.appendChild(someThingStyles);\n someThingStyles.setAttribute('type', 'text/css');\n\n if (window.ActiveXObject) {\n someThingStyles.styleSheet.cssText = cssText;\n } else {\n someThingStyles.textContent = cssText;\n }\n}\n\nfunction addScopedAttrStatic(vdom, attr) {\n if (options.scopedStyle) {\n scopeVdom(attr, vdom);\n }\n}\n\nfunction addStyleToHead(style, attr) {\n if (options.scopedStyle) {\n if (!options.staticStyleMapping[attr]) {\n addStyle(scoper(style, attr), attr);\n options.staticStyleMapping[attr] = true;\n }\n } else if (!options.staticStyleMapping[attr]) {\n addStyleWithoutId(style);\n options.staticStyleMapping[attr] = true;\n }\n}\n\nfunction scopeVdom(attr, vdom) {\n if (typeof vdom === 'object') {\n vdom.attributes = vdom.attributes || {};\n vdom.attributes[attr] = '';\n vdom.css = vdom.css || {};\n vdom.css[attr] = '';\n vdom.children.forEach(function (child) {\n return scopeVdom(attr, child);\n });\n }\n}\n\nfunction scopeHost(vdom, css) {\n if (typeof vdom === 'object' && css) {\n vdom.attributes = vdom.attributes || {};\n for (var key in css) {\n vdom.attributes[key] = '';\n }\n }\n}\n\n/** Queue of components that have been mounted and are awaiting componentDidMount */\nvar mounts = [];\n\n/** Diff recursion count, used to track the end of the diff cycle. */\nvar diffLevel = 0;\n\n/** Global flag indicating if the diff is currently within an SVG */\nvar isSvgMode = false;\n\n/** Global flag indicating if the diff is performing hydration */\nvar hydrating = false;\n\n/** Invoke queued componentDidMount lifecycle methods */\nfunction flushMounts() {\n var c;\n while (c = mounts.pop()) {\n if (options.afterMount) options.afterMount(c);\n if (c.installed) c.installed();\n if (c.constructor.css || c.css) {\n addStyleToHead(c.constructor.css ? c.constructor.css : typeof c.css === 'function' ? c.css() : c.css, '_s' + getCtorName(c.constructor));\n }\n }\n}\n\n/** Apply differences in a given vnode (and it's deep children) to a real DOM Node.\n *\t@param {Element} [dom=null]\t\tA DOM node to mutate into the shape of the `vnode`\n *\t@param {VNode} vnode\t\t\tA VNode (with descendants forming a tree) representing the desired DOM structure\n *\t@returns {Element} dom\t\t\tThe created/mutated element\n *\t@private\n */\nfunction diff(dom, vnode, context, mountAll, parent, componentRoot) {\n // diffLevel having been 0 here indicates initial entry into the diff (not a subdiff)\n if (!diffLevel++) {\n // when first starting the diff, check if we're diffing an SVG or within an SVG\n isSvgMode = parent != null && parent.ownerSVGElement !== undefined;\n\n // hydration is indicated by the existing element to be diffed not having a prop cache\n hydrating = dom != null && !('__omiattr_' in dom);\n }\n var ret;\n\n if (isArray(vnode)) {\n vnode = {\n nodeName: 'span',\n children: vnode\n };\n }\n\n ret = idiff(dom, vnode, context, mountAll, componentRoot);\n // append the element if its a new parent\n if (parent && ret.parentNode !== parent) parent.appendChild(ret);\n\n // diffLevel being reduced to 0 means we're exiting the diff\n if (! --diffLevel) {\n hydrating = false;\n // invoke queued componentDidMount lifecycle methods\n if (!componentRoot) flushMounts();\n }\n\n return ret;\n}\n\n/** Internals of `diff()`, separated to allow bypassing diffLevel / mount flushing. */\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n var out = dom,\n prevSvgMode = isSvgMode;\n\n // empty values (null, undefined, booleans) render as empty Text nodes\n if (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n // If the VNode represents a Component, perform a component diff:\n var vnodeName = vnode.nodeName;\n if (options.mapping[vnodeName]) {\n vnode.nodeName = options.mapping[vnodeName];\n return buildComponentFromVNode(dom, vnode, context, mountAll);\n }\n if (typeof vnodeName == 'function') {\n return buildComponentFromVNode(dom, vnode, context, mountAll);\n }\n\n // Fast case: Strings & Numbers create/update Text nodes.\n if (typeof vnode === 'string' || typeof vnode === 'number') {\n // update if it's already a Text node:\n if (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\n /* istanbul ignore if */ /* Browser quirk that can't be covered: https://github.com/developit/preact/commit/fd4f21f5c45dfd75151bd27b4c217d8003aa5eb9 */\n if (dom.nodeValue != vnode) {\n dom.nodeValue = vnode;\n }\n } else {\n // it wasn't a Text node: replace it with one and recycle the old Element\n out = document.createTextNode(vnode);\n if (dom) {\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n recollectNodeTree(dom, true);\n }\n }\n\n //ie8 error\n try {\n out['__omiattr_'] = true;\n } catch (e) {}\n\n return out;\n }\n\n // Tracks entering and exiting SVG namespace when descending through the tree.\n isSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n // If there's no existing element or it's the wrong type, create a new one:\n vnodeName = String(vnodeName);\n if (!dom || !isNamedNode(dom, vnodeName)) {\n out = createNode(vnodeName, isSvgMode);\n\n if (dom) {\n // move children into the replacement node\n while (dom.firstChild) {\n out.appendChild(dom.firstChild);\n } // if the previous Element was mounted into the DOM, replace it inline\n if (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n // recycle the old element (skips non-Element node types)\n recollectNodeTree(dom, true);\n }\n }\n\n var fc = out.firstChild,\n props = out['__omiattr_'],\n vchildren = vnode.children;\n\n if (props == null) {\n props = out['__omiattr_'] = {};\n for (var a = out.attributes, i = a.length; i--;) {\n props[a[i].name] = a[i].value;\n }\n }\n\n // Optimization: fast-path for elements containing a single TextNode:\n if (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\n if (fc.nodeValue != vchildren[0]) {\n fc.nodeValue = vchildren[0];\n }\n }\n // otherwise, if there are existing or new children, diff them:\n else if (vchildren && vchildren.length || fc != null) {\n innerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML != null);\n }\n\n // Apply attributes/props from VNode to the DOM Element:\n diffAttributes(out, vnode.attributes, props);\n\n // restore previous SVG mode: (in case we're exiting an SVG namespace)\n isSvgMode = prevSvgMode;\n\n return out;\n}\n\n/** Apply child and attribute changes between a VNode and a DOM Node to the DOM.\n *\t@param {Element} dom\t\t\tElement whose children should be compared & mutated\n *\t@param {Array} vchildren\t\tArray of VNodes to compare to `dom.childNodes`\n *\t@param {Object} context\t\t\tImplicitly descendant context object (from most recent `getChildContext()`)\n *\t@param {Boolean} mountAll\n *\t@param {Boolean} isHydrating\tIf `true`, consumes externally created elements similar to hydration\n */\nfunction innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n var originalChildren = dom.childNodes,\n children = [],\n keyed = {},\n keyedLen = 0,\n min = 0,\n len = originalChildren.length,\n childrenLen = 0,\n vlen = vchildren ? vchildren.length : 0,\n j,\n c,\n f,\n vchild,\n child;\n\n // Build up a map of keyed children and an Array of unkeyed children:\n if (len !== 0) {\n for (var i = 0; i < len; i++) {\n var _child = originalChildren[i],\n props = _child['__omiattr_'],\n key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n if (key != null) {\n keyedLen++;\n keyed[key] = _child;\n } else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n children[childrenLen++] = _child;\n }\n }\n }\n\n if (vlen !== 0) {\n for (var i = 0; i < vlen; i++) {\n vchild = vchildren[i];\n child = null;\n\n // attempt to find a node based on key matching\n var key = vchild.key;\n if (key != null) {\n if (keyedLen && keyed[key] !== undefined) {\n child = keyed[key];\n keyed[key] = undefined;\n keyedLen--;\n }\n }\n // attempt to pluck a node of the same type from the existing children\n else if (!child && min < childrenLen) {\n for (j = min; j < childrenLen; j++) {\n if (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\n child = c;\n children[j] = undefined;\n if (j === childrenLen - 1) childrenLen--;\n if (j === min) min++;\n break;\n }\n }\n }\n\n // morph the matched/found/created DOM child to match vchild (deep)\n child = idiff(child, vchild, context, mountAll);\n\n f = originalChildren[i];\n if (child && child !== dom && child !== f) {\n if (f == null) {\n dom.appendChild(child);\n } else if (child === f.nextSibling) {\n removeNode(f);\n } else {\n dom.insertBefore(child, f);\n }\n }\n }\n }\n\n // remove unused keyed children:\n if (keyedLen) {\n for (var i in keyed) {\n if (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n }\n }\n\n // remove orphaned unkeyed children:\n while (min <= childrenLen) {\n if ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n }\n}\n\n/** Recursively recycle (or just unmount) a node and its descendants.\n *\t@param {Node} node\t\t\t\t\t\tDOM node to start unmount/removal from\n *\t@param {Boolean} [unmountOnly=false]\tIf `true`, only triggers unmount lifecycle, skips removal\n */\nfunction recollectNodeTree(node, unmountOnly) {\n var component = node._component;\n if (component) {\n // if node is owned by a Component, unmount that component (ends up recursing back here)\n unmountComponent(component);\n } else {\n // If the node's VNode had a ref function, invoke it with null here.\n // (this is part of the React spec, and smart for unsetting references)\n if (node['__omiattr_'] != null) applyRef(node['__omiattr_'].ref, null);\n\n if (unmountOnly === false || node['__omiattr_'] == null) {\n removeNode(node);\n }\n\n removeChildren(node);\n }\n}\n\n/** Recollect/unmount all children.\n *\t- we use .lastChild here because it causes less reflow than .firstChild\n *\t- it's also cheaper than accessing the .childNodes Live NodeList\n */\nfunction removeChildren(node) {\n node = node.lastChild;\n while (node) {\n var next = node.previousSibling;\n recollectNodeTree(node, true);\n node = next;\n }\n}\n\n/** Apply differences in attributes from a VNode to the given DOM Element.\n *\t@param {Element} dom\t\tElement with attributes to diff `attrs` against\n *\t@param {Object} attrs\t\tThe desired end-state key-value attribute pairs\n *\t@param {Object} old\t\t\tCurrent/previous attributes (from previous VNode or element's prop cache)\n */\nfunction diffAttributes(dom, attrs, old) {\n var name;\n\n // remove attributes no longer present on the vnode by setting them to undefined\n for (name in old) {\n if (!(attrs && attrs[name] != null) && old[name] != null) {\n setAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);\n }\n }\n\n // add new & update changed attributes\n for (name in attrs) {\n if (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n setAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n }\n }\n}\n\n/** Retains a pool of Components for re-use, keyed on component name.\n *\tNote: since component names are not unique or even necessarily available, these are primarily a form of sharding.\n *\t@private\n */\nvar components = {};\n\n/** Reclaim a component for later re-use by the recycler. */\nfunction collectComponent(component) {\n var name = component.constructor.name;(components[name] || (components[name] = [])).push(component);\n}\n\n/** Create a component. Normalizes differences between PFC's and classful Components. */\nfunction createComponent(Ctor, props, context, vnode) {\n var list = components[Ctor.name],\n inst;\n\n if (Ctor.prototype && Ctor.prototype.render) {\n inst = new Ctor(props, context);\n Component.call(inst, props, context);\n } else {\n inst = new Component(props, context);\n inst.constructor = Ctor;\n inst.render = doRender;\n }\n vnode && (inst.scopedCssAttr = vnode.css);\n\n if (inst.constructor.use && inst.store && inst.store.data) {\n inst.store.instances.push(inst);\n inst.use = getUse(inst.store.data, inst.constructor.use);\n }\n\n if (list) {\n for (var i = list.length; i--;) {\n if (list[i].constructor === Ctor) {\n inst.nextBase = list[i].nextBase;\n list.splice(i, 1);\n break;\n }\n }\n }\n return inst;\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, data, context) {\n return this.constructor(props, context);\n}\n\n/* obaa 1.0.0\n * By dntzhang\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n */\n\nvar obaa = function obaa(target, arr, callback) {\n var _observe = function _observe(target, arr, callback) {\n if (!target.$observer) target.$observer = this;\n var $observer = target.$observer;\n var eventPropArr = [];\n if (obaa.isArray(target)) {\n if (target.length === 0) {\n target.$observeProps = {};\n target.$observeProps.$observerPath = '#';\n }\n $observer.mock(target);\n }\n for (var prop in target) {\n if (target.hasOwnProperty(prop)) {\n if (callback) {\n if (obaa.isArray(arr) && obaa.isInArray(arr, prop)) {\n eventPropArr.push(prop);\n $observer.watch(target, prop);\n } else if (obaa.isString(arr) && prop == arr) {\n eventPropArr.push(prop);\n $observer.watch(target, prop);\n }\n } else {\n eventPropArr.push(prop);\n $observer.watch(target, prop);\n }\n }\n }\n $observer.target = target;\n if (!$observer.propertyChangedHandler) $observer.propertyChangedHandler = [];\n var propChanged = callback ? callback : arr;\n $observer.propertyChangedHandler.push({\n all: !callback,\n propChanged: propChanged,\n eventPropArr: eventPropArr\n });\n };\n _observe.prototype = {\n onPropertyChanged: function onPropertyChanged(prop, value, oldValue, target, path) {\n if (value !== oldValue && this.propertyChangedHandler) {\n var rootName = obaa._getRootName(prop, path);\n for (var i = 0, len = this.propertyChangedHandler.length; i < len; i++) {\n var handler = this.propertyChangedHandler[i];\n if (handler.all || obaa.isInArray(handler.eventPropArr, rootName) || rootName.indexOf('Array-') === 0) {\n handler.propChanged.call(this.target, prop, value, oldValue, path);\n }\n }\n }\n if (prop.indexOf('Array-') !== 0 && typeof value === 'object') {\n this.watch(target, prop, target.$observeProps.$observerPath);\n }\n },\n mock: function mock(target) {\n var self = this;\n obaa.methods.forEach(function (item) {\n target[item] = function () {\n var old = Array.prototype.slice.call(this, 0);\n var result = Array.prototype[item].apply(this, Array.prototype.slice.call(arguments));\n if (new RegExp('\\\\b' + item + '\\\\b').test(obaa.triggerStr)) {\n for (var cprop in this) {\n if (this.hasOwnProperty(cprop) && !obaa.isFunction(this[cprop])) {\n self.watch(this, cprop, this.$observeProps.$observerPath);\n }\n }\n //todo\n self.onPropertyChanged('Array-' + item, this, old, this, this.$observeProps.$observerPath);\n }\n return result;\n };\n target['pure' + item.substring(0, 1).toUpperCase() + item.substring(1)] = function () {\n return Array.prototype[item].apply(this, Array.prototype.slice.call(arguments));\n };\n });\n },\n watch: function watch(target, prop, path) {\n if (prop === '$observeProps' || prop === '$observer') return;\n if (obaa.isFunction(target[prop])) return;\n if (!target.$observeProps) target.$observeProps = {};\n if (path !== undefined) {\n target.$observeProps.$observerPath = path;\n } else {\n target.$observeProps.$observerPath = '#';\n }\n var self = this;\n var currentValue = target.$observeProps[prop] = target[prop];\n Object.defineProperty(target, prop, {\n get: function get() {\n return this.$observeProps[prop];\n },\n set: function set(value) {\n var old = this.$observeProps[prop];\n this.$observeProps[prop] = value;\n self.onPropertyChanged(prop, value, old, this, target.$observeProps.$observerPath);\n }\n });\n if (typeof currentValue == 'object') {\n if (obaa.isArray(currentValue)) {\n this.mock(currentValue);\n if (currentValue.length === 0) {\n if (!currentValue.$observeProps) currentValue.$observeProps = {};\n if (path !== undefined) {\n currentValue.$observeProps.$observerPath = path;\n } else {\n currentValue.$observeProps.$observerPath = '#';\n }\n }\n }\n for (var cprop in currentValue) {\n if (currentValue.hasOwnProperty(cprop)) {\n this.watch(currentValue, cprop, target.$observeProps.$observerPath + '-' + prop);\n }\n }\n }\n }\n };\n return new _observe(target, arr, callback);\n};\n\nobaa.methods = ['concat', 'copyWithin', 'entries', 'every', 'fill', 'filter', 'find', 'findIndex', 'forEach', 'includes', 'indexOf', 'join', 'keys', 'lastIndexOf', 'map', 'pop', 'push', 'reduce', 'reduceRight', 'reverse', 'shift', 'slice', 'some', 'sort', 'splice', 'toLocaleString', 'toString', 'unshift', 'values', 'size'];\nobaa.triggerStr = ['concat', 'copyWithin', 'fill', 'pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift', 'size'].join(',');\n\nobaa.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n};\n\nobaa.isString = function (obj) {\n return typeof obj === 'string';\n};\n\nobaa.isInArray = function (arr, item) {\n for (var i = arr.length; --i > -1;) {\n if (item === arr[i]) return true;\n }\n return false;\n};\n\nobaa.isFunction = function (obj) {\n return Object.prototype.toString.call(obj) == '[object Function]';\n};\n\nobaa._getRootName = function (prop, path) {\n if (path === '#') {\n return prop;\n }\n return path.split('-')[1];\n};\n\nobaa.add = function (obj, prop) {\n var $observer = obj.$observer;\n $observer.watch(obj, prop);\n};\n\nobaa.set = function (obj, prop, value, exec) {\n if (!exec) {\n obj[prop] = value;\n }\n var $observer = obj.$observer;\n $observer.watch(obj, prop);\n if (exec) {\n obj[prop] = value;\n }\n};\n\nArray.prototype.size = function (length) {\n this.length = length;\n};\n\nvar callbacks = [];\nvar nextTickCallback = [];\n\nfunction fireTick() {\n callbacks.forEach(function (item) {\n item.fn.call(item.scope);\n });\n\n nextTickCallback.forEach(function (nextItem) {\n nextItem.fn.call(nextItem.scope);\n });\n nextTickCallback.length = 0;\n}\n\nfunction proxyUpdate(ele) {\n var timeout = null;\n obaa(ele.data, function () {\n if (ele._willUpdate) {\n return;\n }\n if (ele.constructor.mergeUpdate) {\n clearTimeout(timeout);\n\n timeout = setTimeout(function () {\n ele.update();\n fireTick();\n }, 0);\n } else {\n ele.update();\n fireTick();\n }\n });\n}\n\n/** Set a component's `props` (generally derived from JSX attributes).\n *\t@param {Object} props\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.renderSync=false]\tIf `true` and {@link options.syncComponentUpdates} is `true`, triggers synchronous rendering.\n *\t@param {boolean} [opts.render=true]\t\t\tIf `false`, no render will be triggered.\n */\nfunction setComponentProps(component, props, opts, context, mountAll) {\n if (component._disable) return;\n component._disable = true;\n\n if (component.__ref = props.ref) delete props.ref;\n if (component.__key = props.key) delete props.key;\n\n if (!component.base || mountAll) {\n if (component.beforeInstall) component.beforeInstall();\n if (component.install) component.install();\n if (component.constructor.observe) {\n proxyUpdate(component);\n }\n } else if (component.receiveProps) {\n component.receiveProps(props, component.data, component.props);\n }\n\n if (context && context !== component.context) {\n if (!component.prevContext) component.prevContext = component.context;\n component.context = context;\n }\n\n if (!component.prevProps) component.prevProps = component.props;\n component.props = props;\n\n component._disable = false;\n\n if (opts !== 0) {\n if (opts === 1 || options.syncComponentUpdates !== false || !component.base) {\n renderComponent(component, 1, mountAll);\n } else {\n enqueueRender(component);\n }\n }\n\n applyRef(component.__ref, component);\n}\n\nfunction shallowComparison(old, attrs) {\n var name;\n\n for (name in old) {\n if (attrs[name] == null && old[name] != null) {\n return true;\n }\n }\n\n if (old.children.length > 0 || attrs.children.length > 0) {\n return true;\n }\n\n for (name in attrs) {\n if (name != 'children') {\n var type = typeof attrs[name];\n if (type == 'function' || type == 'object') {\n return true;\n } else if (attrs[name] != old[name]) {\n return true;\n }\n }\n }\n}\n\n/** Render a Component, triggering necessary lifecycle events and taking High-Order Components into account.\n *\t@param {Component} component\n *\t@param {Object} [opts]\n *\t@param {boolean} [opts.build=false]\t\tIf `true`, component will build and store a DOM node if not already associated with one.\n *\t@private\n */\nfunction renderComponent(component, opts, mountAll, isChild) {\n if (component._disable) return;\n\n var props = component.props,\n data = component.data,\n context = component.context,\n previousProps = component.prevProps || props,\n previousState = component.prevState || data,\n previousContext = component.prevContext || context,\n isUpdate = component.base,\n nextBase = component.nextBase,\n initialBase = isUpdate || nextBase,\n initialChildComponent = component._component,\n skip = false,\n rendered,\n inst,\n cbase;\n\n // if updating\n if (isUpdate) {\n component.props = previousProps;\n component.data = previousState;\n component.context = previousContext;\n if (component.store || opts == 2 || shallowComparison(previousProps, props)) {\n skip = false;\n if (component.beforeUpdate) {\n component.beforeUpdate(props, data, context);\n }\n } else {\n skip = true;\n }\n component.props = props;\n component.data = data;\n component.context = context;\n }\n\n component.prevProps = component.prevState = component.prevContext = component.nextBase = null;\n\n if (!skip) {\n component.beforeRender && component.beforeRender();\n rendered = component.render(props, data, context);\n\n //don't rerender\n if (component.constructor.css || component.css) {\n addScopedAttrStatic(rendered, '_s' + getCtorName(component.constructor));\n }\n\n scopeHost(rendered, component.scopedCssAttr);\n\n // context to pass to the child, can be updated via (grand-)parent component\n if (component.getChildContext) {\n context = extend(extend({}, context), component.getChildContext());\n }\n\n var childComponent = rendered && rendered.nodeName,\n toUnmount,\n base,\n ctor = options.mapping[childComponent];\n\n if (ctor) {\n // set up high order component link\n\n var childProps = getNodeProps(rendered);\n inst = initialChildComponent;\n\n if (inst && inst.constructor === ctor && childProps.key == inst.__key) {\n setComponentProps(inst, childProps, 1, context, false);\n } else {\n toUnmount = inst;\n\n component._component = inst = createComponent(ctor, childProps, context);\n inst.nextBase = inst.nextBase || nextBase;\n inst._parentComponent = component;\n setComponentProps(inst, childProps, 0, context, false);\n renderComponent(inst, 1, mountAll, true);\n }\n\n base = inst.base;\n } else {\n cbase = initialBase;\n\n // destroy high order component link\n toUnmount = initialChildComponent;\n if (toUnmount) {\n cbase = component._component = null;\n }\n\n if (initialBase || opts === 1) {\n if (cbase) cbase._component = null;\n base = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);\n }\n }\n\n if (initialBase && base !== initialBase && inst !== initialChildComponent) {\n var baseParent = initialBase.parentNode;\n if (baseParent && base !== baseParent) {\n baseParent.replaceChild(base, initialBase);\n\n if (!toUnmount) {\n initialBase._component = null;\n recollectNodeTree(initialBase, false);\n }\n }\n }\n\n if (toUnmount) {\n unmountComponent(toUnmount);\n }\n\n component.base = base;\n if (base && !isChild) {\n var componentRef = component,\n t = component;\n while (t = t._parentComponent) {\n(componentRef = t).base = base;\n }\n base._component = componentRef;\n base._componentConstructor = componentRef.constructor;\n }\n }\n\n if (!isUpdate || mountAll) {\n mounts.unshift(component);\n } else if (!skip) {\n // Ensure that pending componentDidMount() hooks of child components\n // are called before the componentDidUpdate() hook in the parent.\n // Note: disabled as it causes duplicate hooks, see https://github.com/developit/preact/issues/750\n // flushMounts();\n\n if (component.afterUpdate) {\n //deprecated\n component.afterUpdate(previousProps, previousState, previousContext);\n }\n if (component.updated) {\n component.updated(previousProps, previousState, previousContext);\n }\n if (options.afterUpdate) options.afterUpdate(component);\n }\n\n if (component._renderCallbacks != null) {\n while (component._renderCallbacks.length) {\n component._renderCallbacks.pop().call(component);\n }\n }\n\n if (!diffLevel && !isChild) flushMounts();\n}\n\n/** Apply the Component referenced by a VNode to the DOM.\n *\t@param {Element} dom\tThe DOM node to mutate\n *\t@param {VNode} vnode\tA Component-referencing VNode\n *\t@returns {Element} dom\tThe created/mutated element\n *\t@private\n */\nfunction buildComponentFromVNode(dom, vnode, context, mountAll) {\n var c = dom && dom._component,\n originalComponent = c,\n oldDom = dom,\n isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n isOwner = isDirectOwner,\n props = getNodeProps(vnode);\n while (c && !isOwner && (c = c._parentComponent)) {\n isOwner = c.constructor === vnode.nodeName;\n }\n\n if (c && isOwner && (!mountAll || c._component)) {\n setComponentProps(c, props, 3, context, mountAll);\n dom = c.base;\n } else {\n if (originalComponent && !isDirectOwner) {\n unmountComponent(originalComponent);\n dom = oldDom = null;\n }\n\n c = createComponent(vnode.nodeName, props, context, vnode);\n if (dom && !c.nextBase) {\n c.nextBase = dom;\n // passing dom/oldDom as nextBase will recycle it if unused, so bypass recycling on L229:\n oldDom = null;\n }\n setComponentProps(c, props, 1, context, mountAll);\n dom = c.base;\n\n if (oldDom && dom !== oldDom) {\n oldDom._component = null;\n recollectNodeTree(oldDom, false);\n }\n }\n\n return dom;\n}\n\n/** Remove a component from the DOM and recycle it.\n *\t@param {Component} component\tThe Component instance to unmount\n *\t@private\n */\nfunction unmountComponent(component) {\n if (options.beforeUnmount) options.beforeUnmount(component);\n\n var base = component.base;\n\n component._disable = true;\n\n if (component.uninstall) component.uninstall();\n\n if (component.store && component.store.instances) {\n for (var i = 0, len = component.store.instances.length; i < len; i++) {\n if (component.store.instances[i] === component) {\n component.store.instances.splice(i, 1);\n break;\n }\n }\n }\n\n component.base = null;\n\n // recursively tear down & recollect high-order component children:\n var inner = component._component;\n if (inner) {\n unmountComponent(inner);\n } else if (base) {\n if (base['__omiattr_'] != null) applyRef(base['__omiattr_'].ref, null);\n\n component.nextBase = base;\n\n removeNode(base);\n collectComponent(component);\n\n removeChildren(base);\n }\n\n applyRef(component.__ref, null);\n}\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar id = 0;\n\nvar Component = function () {\n function Component(props, store) {\n _classCallCheck(this, Component);\n\n this.props = assign(nProps(this.constructor.props), this.constructor.defaultProps, props);\n this.elementId = id++;\n this.data = this.constructor.data || this.data || {};\n\n this._preCss = null;\n\n this.store = store;\n }\n\n Component.prototype.update = function update(callback) {\n this._willUpdate = true;\n if (callback) (this._renderCallbacks = this._renderCallbacks || []).push(callback);\n renderComponent(this, 2);\n if (options.componentChange) options.componentChange(this, this.base);\n this._willUpdate = false;\n };\n\n Component.prototype.fire = function fire(type, data) {\n var _this = this;\n\n Object.keys(this.props).every(function (key) {\n if ('on' + type.toLowerCase() === key.toLowerCase()) {\n _this.props[key]({ detail: data });\n return false;\n }\n return true;\n });\n };\n\n Component.prototype.render = function render() {};\n\n return Component;\n}();\n\nComponent.is = 'WeElement';\n\n/** Render JSX into a `parent` Element.\n *\t@param {VNode} vnode\t\tA (JSX) VNode to render\n *\t@param {Element} parent\t\tDOM element to render into\n *\t@param {object} [store]\n *\t@public\n */\nfunction render(vnode, parent, store, empty, merge) {\n parent = typeof parent === 'string' ? document.querySelector(parent) : parent;\n if (store && store.data) {\n store.instances = [];\n extendStoreUpate(store);\n var timeout = null;\n var patchs = {};\n obaa(store.data, function (prop, val, old, path) {\n clearTimeout(timeout);\n var key = fixPath(path + '-' + prop);\n patchs[key] = true;\n timeout = setTimeout(function () {\n store.update(patchs);\n patchs = {};\n }, 0);\n });\n }\n\n if (empty) {\n while (parent.firstChild) {\n parent.removeChild(parent.firstChild);\n }\n }\n\n if (merge) {\n merge = typeof merge === 'string' ? document.querySelector(merge) : merge;\n }\n\n return diff(merge, vnode, store, false, parent, false);\n}\n\nfunction extendStoreUpate(store) {\n store.update = function (patch) {\n var _this = this;\n\n var updateAll = matchGlobalData(this.globalData, patch);\n if (Object.keys(patch).length > 0) {\n this.instances.forEach(function (instance) {\n if (updateAll || _this.updateAll || instance.constructor.updatePath && needUpdate(patch, instance.constructor.updatePath)) {\n //update this.use\n instance.use = getUse(store.data, instance.constructor.use);\n instance.update();\n }\n });\n this.onChange && this.onChange(patch);\n }\n };\n}\n\nfunction matchGlobalData(globalData, diffResult) {\n if (!globalData) return false;\n for (var keyA in diffResult) {\n if (globalData.indexOf(keyA) > -1) {\n return true;\n }\n for (var i = 0, len = globalData.length; i < len; i++) {\n if (includePath(keyA, globalData[i])) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction needUpdate(diffResult, updatePath) {\n for (var keyA in diffResult) {\n if (updatePath[keyA]) {\n return true;\n }\n for (var keyB in updatePath) {\n if (includePath(keyA, keyB)) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction includePath(pathA, pathB) {\n if (pathA.indexOf(pathB) === 0) {\n var next = pathA.substr(pathB.length, 1);\n if (next === '[' || next === '.') {\n return true;\n }\n }\n return false;\n}\n\nfunction fixPath(path) {\n var mpPath = '';\n var arr = path.replace('#-', '').split('-');\n arr.forEach(function (item, index) {\n if (index) {\n if (isNaN(Number(item))) {\n mpPath += '.' + item;\n } else {\n mpPath += '[' + item + ']';\n }\n } else {\n mpPath += item;\n }\n });\n return mpPath;\n}\n\nfunction define(name, ctor) {\n options.mapping[name] = ctor;\n if (ctor.use) {\n ctor.updatePath = getPath(ctor.use);\n } else if (ctor.data) {\n //Compatible with older versions\n ctor.updatePath = getUpdatePath(ctor.data);\n }\n}\n\nfunction getPath(obj) {\n if (Object.prototype.toString.call(obj) === '[object Array]') {\n var result = {};\n obj.forEach(function (item) {\n if (typeof item === 'string') {\n result[item] = true;\n } else {\n var tempPath = item[Object.keys(item)[0]];\n if (typeof tempPath === 'string') {\n result[tempPath] = true;\n } else {\n if (typeof tempPath[0] === 'string') {\n result[tempPath[0]] = true;\n } else {\n tempPath[0].forEach(function (path) {\n return result[path] = true;\n });\n }\n }\n }\n });\n return result;\n } else {\n return getUpdatePath(obj);\n }\n}\n\nfunction getUpdatePath(data) {\n var result = {};\n dataToPath(data, result);\n return result;\n}\n\nfunction dataToPath(data, result) {\n Object.keys(data).forEach(function (key) {\n result[key] = true;\n var type = Object.prototype.toString.call(data[key]);\n if (type === '[object Object]') {\n _objToPath(data[key], key, result);\n } else if (type === '[object Array]') {\n _arrayToPath(data[key], key, result);\n }\n });\n}\n\nfunction _objToPath(data, path, result) {\n Object.keys(data).forEach(function (key) {\n result[path + '.' + key] = true;\n delete result[path];\n var type = Object.prototype.toString.call(data[key]);\n if (type === '[object Object]') {\n _objToPath(data[key], path + '.' + key, result);\n } else if (type === '[object Array]') {\n _arrayToPath(data[key], path + '.' + key, result);\n }\n });\n}\n\nfunction _arrayToPath(data, path, result) {\n data.forEach(function (item, index) {\n result[path + '[' + index + ']'] = true;\n delete result[path];\n var type = Object.prototype.toString.call(item);\n if (type === '[object Object]') {\n _objToPath(item, path + '[' + index + ']', result);\n } else if (type === '[object Array]') {\n _arrayToPath(item, path + '[' + index + ']', result);\n }\n });\n}\n\nfunction rpx(str) {\n return str.replace(/([1-9]\\d*|0)(\\.\\d*)*rpx/g, function (a, b) {\n return window.innerWidth * Number(b) / 750 + 'px';\n });\n}\n\nfunction _classCallCheck$1(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ModelView = function (_Component) {\n _inherits(ModelView, _Component);\n\n function ModelView() {\n _classCallCheck$1(this, ModelView);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n ModelView.prototype.beforeInstall = function beforeInstall() {\n this.data = this.vm.data;\n };\n\n return ModelView;\n}(Component);\n\nModelView.observe = true;\nModelView.mergeUpdate = true;\n\n/**\n * classNames based on https://github.com/JedWatson/classnames\n * by Jed Watson\n * Licensed under the MIT License\n * https://github.com/JedWatson/classnames/blob/master/LICENSE\n * modified by dntzhang\n */\n\nvar hasOwn = {}.hasOwnProperty;\n\nfunction classNames() {\n var classes = [];\n\n for (var i = 0; i < arguments.length; i++) {\n var arg = arguments[i];\n if (!arg) continue;\n\n var argType = typeof arg;\n\n if (argType === 'string' || argType === 'number') {\n classes.push(arg);\n } else if (Array.isArray(arg) && arg.length) {\n var inner = classNames.apply(null, arg);\n if (inner) {\n classes.push(inner);\n }\n } else if (argType === 'object') {\n for (var key in arg) {\n if (hasOwn.call(arg, key) && arg[key]) {\n classes.push(key);\n }\n }\n }\n }\n\n return classes.join(' ');\n}\n\nfunction extractClass() {\n var _Array$prototype$slic = Array.prototype.slice.call(arguments, 0),\n props = _Array$prototype$slic[0],\n args = _Array$prototype$slic.slice(1);\n\n if (props) {\n if (props.class) {\n args.unshift(props.class);\n delete props.class;\n } else if (props.className) {\n args.unshift(props.className);\n delete props.className;\n }\n }\n if (args.length > 0) {\n return { class: classNames.apply(null, args) };\n }\n}\n\nfunction getHost(component) {\n var base = component.base;\n if (base) {\n while (base.parentNode) {\n if (base.parentNode._component) {\n return base.parentNode._component;\n } else {\n base = base.parentNode;\n }\n }\n }\n}\n\n/**\n * preact-render-to-string based on preact-render-to-string\n * by Jason Miller\n * Licensed under the MIT License\n * https://github.com/developit/preact-render-to-string\n *\n * modified by dntzhang\n */\n\nvar encodeEntities = function encodeEntities(s) {\n return String(s).replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"');\n};\n\nvar indent = function indent(s, char) {\n return String(s).replace(/(\\n+)/g, '$1' + (char || '\\t'));\n};\n\nvar mapping$1 = options.mapping;\n\nvar VOID_ELEMENTS = /^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/;\n\nvar isLargeString = function isLargeString(s, length, ignoreLines) {\n return String(s).length > (length || 40) || !ignoreLines && String(s).indexOf('\\n') !== -1 || String(s).indexOf('<') !== -1;\n};\n\nvar JS_TO_CSS = {};\n\n// Convert an Object style to a CSSText string\nfunction styleObjToCss(s) {\n var str = '';\n for (var prop in s) {\n var val = s[prop];\n if (val != null) {\n if (str) str += ' ';\n // str += jsToCss(prop);\n str += JS_TO_CSS[prop] || (JS_TO_CSS[prop] = prop.replace(/([A-Z])/g, '-$1').toLowerCase());\n str += ': ';\n str += val;\n if (typeof val === 'number' && IS_NON_DIMENSIONAL.test(prop) === false) {\n str += 'px';\n }\n str += ';';\n }\n }\n return str || undefined;\n}\n\nfunction renderToString(vnode, opts, store, isSvgMode) {\n store = store || {};\n opts = Object.assign({\n scopedCSS: true\n }, opts);\n var css = {};\n var html = _renderToString(vnode, opts, store, isSvgMode, css);\n return {\n css: Object.values(css),\n html: html\n };\n}\n\n/** The default export is an alias of `render()`. */\nfunction _renderToString(vnode, opts, store, isSvgMode, css) {\n if (vnode == null || typeof vnode === 'boolean') {\n return '';\n }\n\n var nodeName = vnode.nodeName,\n attributes = vnode.attributes,\n isComponent = false;\n\n var pretty = true && opts.pretty,\n indentChar = pretty && typeof pretty === 'string' ? pretty : '\\t';\n\n // #text nodes\n if (typeof vnode !== 'object' && !nodeName) {\n return encodeEntities(vnode);\n }\n\n // components\n var ctor = mapping$1[nodeName];\n if (ctor) {\n isComponent = true;\n\n var props = getNodeProps$1(vnode),\n rendered;\n // class-based components\n var c = new ctor(props, store);\n // turn off stateful re-rendering:\n c._disable = c.__x = true;\n c.props = props;\n c.store = store;\n if (c.install) c.install();\n if (c.beforeRender) c.beforeRender();\n rendered = c.render(c.props, c.data, c.store);\n\n if (opts.scopedCSS) {\n\n if (c.constructor.css || c.css) {\n\n var cssStr = c.constructor.css ? c.constructor.css : typeof c.css === 'function' ? c.css() : c.css;\n var cssAttr = '_s' + getCtorName(c.constructor);\n css[cssAttr] = '';\n addScopedAttrStatic(rendered, '_s' + getCtorName(c.constructor));\n }\n\n c.scopedCSSAttr = vnode.css;\n scopeHost(rendered, c.scopedCSSAttr);\n }\n\n return _renderToString(rendered, opts, store, false, css);\n }\n\n // render JSX to HTML\n var s = '',\n html;\n\n if (attributes) {\n var attrs = Object.keys(attributes);\n\n // allow sorting lexicographically for more determinism (useful for tests, such as via preact-jsx-chai)\n if (opts && opts.sortAttributes === true) attrs.sort();\n\n for (var i = 0; i < attrs.length; i++) {\n var name = attrs[i],\n v = attributes[name];\n if (name === 'children') continue;\n\n if (name.match(/[\\s\\n\\\\/='\"\\0<>]/)) continue;\n\n if (!(opts && opts.allAttributes) && (name === 'key' || name === 'ref')) continue;\n\n if (name === 'className') {\n if (attributes.class) continue;\n name = 'class';\n } else if (isSvgMode && name.match(/^xlink:?./)) {\n name = name.toLowerCase().replace(/^xlink:?/, 'xlink:');\n }\n\n if (name === 'style' && v && typeof v === 'object') {\n v = styleObjToCss(v);\n }\n\n var hooked = opts.attributeHook && opts.attributeHook(name, v, store, opts, isComponent);\n if (hooked || hooked === '') {\n s += hooked;\n continue;\n }\n\n if (name === 'dangerouslySetInnerHTML') {\n html = v && v.__html;\n } else if ((v || v === 0 || v === '') && typeof v !== 'function') {\n if (v === true || v === '') {\n v = name;\n // in non-xml mode, allow boolean attributes\n if (!opts || !opts.xml) {\n s += ' ' + name;\n continue;\n }\n }\n s += ' ' + name + '=\"' + encodeEntities(v) + '\"';\n }\n }\n }\n\n // account for >1 multiline attribute\n if (pretty) {\n var sub = s.replace(/^\\n\\s*/, ' ');\n if (sub !== s && !~sub.indexOf('\\n')) s = sub;else if (pretty && ~s.indexOf('\\n')) s += '\\n';\n }\n\n s = '<' + nodeName + s + '>';\n if (String(nodeName).match(/[\\s\\n\\\\/='\"\\0<>]/)) throw s;\n\n var isVoid = String(nodeName).match(VOID_ELEMENTS);\n if (isVoid) s = s.replace(/>$/, ' />');\n\n var pieces = [];\n if (html) {\n // if multiline, indent.\n if (pretty && isLargeString(html)) {\n html = '\\n' + indentChar + indent(html, indentChar);\n }\n s += html;\n } else if (vnode.children) {\n var hasLarge = pretty && ~s.indexOf('\\n');\n for (var i = 0; i < vnode.children.length; i++) {\n var child = vnode.children[i];\n if (child != null && child !== false) {\n var childSvgMode = nodeName === 'svg' ? true : nodeName === 'foreignObject' ? false : isSvgMode,\n ret = _renderToString(child, opts, store, childSvgMode, css);\n if (pretty && !hasLarge && isLargeString(ret)) hasLarge = true;\n if (ret) pieces.push(ret);\n }\n }\n if (pretty && hasLarge) {\n for (var i = pieces.length; i--;) {\n pieces[i] = '\\n' + indentChar + indent(pieces[i], indentChar);\n }\n }\n }\n\n if (pieces.length) {\n s += pieces.join('');\n } else if (opts && opts.xml) {\n return s.substring(0, s.length - 1) + ' />';\n }\n\n if (!isVoid) {\n if (pretty && ~s.indexOf('\\n')) s += '\\n';\n s += '';\n }\n\n return s;\n}\n\nfunction assign$1(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\nfunction getNodeProps$1(vnode) {\n var props = assign$1({}, vnode.attributes);\n props.children = vnode.children;\n\n var defaultProps = vnode.nodeName.defaultProps;\n if (defaultProps !== undefined) {\n for (var i in defaultProps) {\n if (props[i] === undefined) {\n props[i] = defaultProps[i];\n }\n }\n }\n\n return props;\n}\n\nvar WeElement = Component;\nvar defineElement = define;\nfunction createRef() {\n return {};\n}\n\noptions.root.Omi = {\n h: h,\n createElement: h,\n cloneElement: cloneElement,\n createRef: createRef,\n Component: Component,\n render: render,\n rerender: rerender,\n options: options,\n WeElement: WeElement,\n define: define,\n rpx: rpx,\n ModelView: ModelView,\n defineElement: defineElement,\n classNames: classNames,\n extractClass: extractClass,\n getHost: getHost,\n renderToString: renderToString\n};\noptions.root.omi = options.root.Omi;\noptions.root.Omi.version = 'omio-2.0.5';\n\nvar omi = {\n h: h,\n createElement: h,\n cloneElement: cloneElement,\n createRef: createRef,\n Component: Component,\n render: render,\n rerender: rerender,\n options: options,\n WeElement: WeElement,\n define: define,\n rpx: rpx,\n ModelView: ModelView,\n defineElement: defineElement,\n classNames: classNames,\n extractClass: extractClass,\n getHost: getHost,\n renderToString: renderToString\n};\n\nexport default omi;\nexport { h, h as createElement, cloneElement, createRef, Component, render, rerender, options, WeElement, define, rpx, ModelView, defineElement, classNames, extractClass, getHost, renderToString };\n//# sourceMappingURL=omi.esm.js.map\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/omio/dist/omi.esm.js","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/css-loader/lib/css-base.js","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\n} catch(e) {\n\t// This works if the window reference is available\n\tif(typeof window === \"object\")\n\t\tg = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n\n// WEBPACK FOOTER //\n// (webpack)/buildin/global.js","'use strict';\n\nvar asap = require('asap/raw');\n\nfunction noop() {}\n\n// States:\n//\n// 0 - pending\n// 1 - fulfilled with _value\n// 2 - rejected with _value\n// 3 - adopted the state of another promise, _value\n//\n// once the state is no longer pending (0) it is immutable\n\n// All `_` prefixed properties will be reduced to `_{random number}`\n// at build time to obfuscate them and discourage their use.\n// We don't use symbols or Object.defineProperty to fully hide them\n// because the performance isn't good enough.\n\n\n// to avoid using try/catch inside critical functions, we\n// extract them to here.\nvar LAST_ERROR = null;\nvar IS_ERROR = {};\nfunction getThen(obj) {\n try {\n return obj.then;\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nfunction tryCallOne(fn, a) {\n try {\n return fn(a);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\nfunction tryCallTwo(fn, a, b) {\n try {\n fn(a, b);\n } catch (ex) {\n LAST_ERROR = ex;\n return IS_ERROR;\n }\n}\n\nmodule.exports = Promise;\n\nfunction Promise(fn) {\n if (typeof this !== 'object') {\n throw new TypeError('Promises must be constructed via new');\n }\n if (typeof fn !== 'function') {\n throw new TypeError('Promise constructor\\'s argument is not a function');\n }\n this._75 = 0;\n this._83 = 0;\n this._18 = null;\n this._38 = null;\n if (fn === noop) return;\n doResolve(fn, this);\n}\nPromise._47 = null;\nPromise._71 = null;\nPromise._44 = noop;\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n if (this.constructor !== Promise) {\n return safeThen(this, onFulfilled, onRejected);\n }\n var res = new Promise(noop);\n handle(this, new Handler(onFulfilled, onRejected, res));\n return res;\n};\n\nfunction safeThen(self, onFulfilled, onRejected) {\n return new self.constructor(function (resolve, reject) {\n var res = new Promise(noop);\n res.then(resolve, reject);\n handle(self, new Handler(onFulfilled, onRejected, res));\n });\n}\nfunction handle(self, deferred) {\n while (self._83 === 3) {\n self = self._18;\n }\n if (Promise._47) {\n Promise._47(self);\n }\n if (self._83 === 0) {\n if (self._75 === 0) {\n self._75 = 1;\n self._38 = deferred;\n return;\n }\n if (self._75 === 1) {\n self._75 = 2;\n self._38 = [self._38, deferred];\n return;\n }\n self._38.push(deferred);\n return;\n }\n handleResolved(self, deferred);\n}\n\nfunction handleResolved(self, deferred) {\n asap(function() {\n var cb = self._83 === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n if (self._83 === 1) {\n resolve(deferred.promise, self._18);\n } else {\n reject(deferred.promise, self._18);\n }\n return;\n }\n var ret = tryCallOne(cb, self._18);\n if (ret === IS_ERROR) {\n reject(deferred.promise, LAST_ERROR);\n } else {\n resolve(deferred.promise, ret);\n }\n });\n}\nfunction resolve(self, newValue) {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self) {\n return reject(\n self,\n new TypeError('A promise cannot be resolved with itself.')\n );\n }\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = getThen(newValue);\n if (then === IS_ERROR) {\n return reject(self, LAST_ERROR);\n }\n if (\n then === self.then &&\n newValue instanceof Promise\n ) {\n self._83 = 3;\n self._18 = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(then.bind(newValue), self);\n return;\n }\n }\n self._83 = 1;\n self._18 = newValue;\n finale(self);\n}\n\nfunction reject(self, newValue) {\n self._83 = 2;\n self._18 = newValue;\n if (Promise._71) {\n Promise._71(self, newValue);\n }\n finale(self);\n}\nfunction finale(self) {\n if (self._75 === 1) {\n handle(self, self._38);\n self._38 = null;\n }\n if (self._75 === 2) {\n for (var i = 0; i < self._38.length; i++) {\n handle(self, self._38[i]);\n }\n self._38 = null;\n }\n}\n\nfunction Handler(onFulfilled, onRejected, promise){\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, promise) {\n var done = false;\n var res = tryCallTwo(fn, function (value) {\n if (done) return;\n done = true;\n resolve(promise, value);\n }, function (reason) {\n if (done) return;\n done = true;\n reject(promise, reason);\n });\n if (!done && res === IS_ERROR) {\n done = true;\n reject(promise, LAST_ERROR);\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/core.js","'use strict';\n\nif (typeof Promise === 'undefined') {\n // Rejection tracking prevents a common issue where React gets into an\n // inconsistent state due to an error, but it gets swallowed by a Promise,\n // and the user has no idea what causes React's erratic future behavior.\n require('promise/lib/rejection-tracking').enable();\n window.Promise = require('promise/lib/es6-extensions.js');\n}\n\n// fetch() polyfill for making API calls.\nrequire('whatwg-fetch');\n\n// Object.assign() is commonly used with React.\n// It will use the native implementation if it's present and isn't buggy.\nObject.assign = require('object-assign');\n\n// In tests, polyfill requestAnimationFrame since jsdom doesn't provide it yet.\n// We don't polyfill it in the browser--this is user's responsibility.\nif (process.env.NODE_ENV === 'test') {\n require('raf').polyfill(global);\n}\n\n\n\n// WEBPACK FOOTER //\n// ./config/polyfills.js","'use strict';\n\nvar Promise = require('./core');\n\nvar DEFAULT_WHITELIST = [\n ReferenceError,\n TypeError,\n RangeError\n];\n\nvar enabled = false;\nexports.disable = disable;\nfunction disable() {\n enabled = false;\n Promise._47 = null;\n Promise._71 = null;\n}\n\nexports.enable = enable;\nfunction enable(options) {\n options = options || {};\n if (enabled) disable();\n enabled = true;\n var id = 0;\n var displayId = 0;\n var rejections = {};\n Promise._47 = function (promise) {\n if (\n promise._83 === 2 && // IS REJECTED\n rejections[promise._56]\n ) {\n if (rejections[promise._56].logged) {\n onHandled(promise._56);\n } else {\n clearTimeout(rejections[promise._56].timeout);\n }\n delete rejections[promise._56];\n }\n };\n Promise._71 = function (promise, err) {\n if (promise._75 === 0) { // not yet handled\n promise._56 = id++;\n rejections[promise._56] = {\n displayId: null,\n error: err,\n timeout: setTimeout(\n onUnhandled.bind(null, promise._56),\n // For reference errors and type errors, this almost always\n // means the programmer made a mistake, so log them after just\n // 100ms\n // otherwise, wait 2 seconds to see if they get handled\n matchWhitelist(err, DEFAULT_WHITELIST)\n ? 100\n : 2000\n ),\n logged: false\n };\n }\n };\n function onUnhandled(id) {\n if (\n options.allRejections ||\n matchWhitelist(\n rejections[id].error,\n options.whitelist || DEFAULT_WHITELIST\n )\n ) {\n rejections[id].displayId = displayId++;\n if (options.onUnhandled) {\n rejections[id].logged = true;\n options.onUnhandled(\n rejections[id].displayId,\n rejections[id].error\n );\n } else {\n rejections[id].logged = true;\n logError(\n rejections[id].displayId,\n rejections[id].error\n );\n }\n }\n }\n function onHandled(id) {\n if (rejections[id].logged) {\n if (options.onHandled) {\n options.onHandled(rejections[id].displayId, rejections[id].error);\n } else if (!rejections[id].onUnhandled) {\n console.warn(\n 'Promise Rejection Handled (id: ' + rejections[id].displayId + '):'\n );\n console.warn(\n ' This means you can ignore any previous messages of the form \"Possible Unhandled Promise Rejection\" with id ' +\n rejections[id].displayId + '.'\n );\n }\n }\n }\n}\n\nfunction logError(id, error) {\n console.warn('Possible Unhandled Promise Rejection (id: ' + id + '):');\n var errStr = (error && (error.stack || error)) + '';\n errStr.split('\\n').forEach(function (line) {\n console.warn(' ' + line);\n });\n}\n\nfunction matchWhitelist(error, list) {\n return list.some(function (cls) {\n return error instanceof cls;\n });\n}\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/rejection-tracking.js","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {characterData: true});\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/asap/browser-raw.js","'use strict';\n\n//This file contains the ES6 extensions to the core Promises/A+ API\n\nvar Promise = require('./core.js');\n\nmodule.exports = Promise;\n\n/* Static Functions */\n\nvar TRUE = valuePromise(true);\nvar FALSE = valuePromise(false);\nvar NULL = valuePromise(null);\nvar UNDEFINED = valuePromise(undefined);\nvar ZERO = valuePromise(0);\nvar EMPTYSTRING = valuePromise('');\n\nfunction valuePromise(value) {\n var p = new Promise(Promise._44);\n p._83 = 1;\n p._18 = value;\n return p;\n}\nPromise.resolve = function (value) {\n if (value instanceof Promise) return value;\n\n if (value === null) return NULL;\n if (value === undefined) return UNDEFINED;\n if (value === true) return TRUE;\n if (value === false) return FALSE;\n if (value === 0) return ZERO;\n if (value === '') return EMPTYSTRING;\n\n if (typeof value === 'object' || typeof value === 'function') {\n try {\n var then = value.then;\n if (typeof then === 'function') {\n return new Promise(then.bind(value));\n }\n } catch (ex) {\n return new Promise(function (resolve, reject) {\n reject(ex);\n });\n }\n }\n return valuePromise(value);\n};\n\nPromise.all = function (arr) {\n var args = Array.prototype.slice.call(arr);\n\n return new Promise(function (resolve, reject) {\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n if (val instanceof Promise && val.then === Promise.prototype.then) {\n while (val._83 === 3) {\n val = val._18;\n }\n if (val._83 === 1) return res(i, val._18);\n if (val._83 === 2) reject(val._18);\n val.then(function (val) {\n res(i, val);\n }, reject);\n return;\n } else {\n var then = val.then;\n if (typeof then === 'function') {\n var p = new Promise(then.bind(val));\n p.then(function (val) {\n res(i, val);\n }, reject);\n return;\n }\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n }\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.reject = function (value) {\n return new Promise(function (resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function (values) {\n return new Promise(function (resolve, reject) {\n values.forEach(function(value){\n Promise.resolve(value).then(resolve, reject);\n });\n });\n};\n\n/* Prototype Methods */\n\nPromise.prototype['catch'] = function (onRejected) {\n return this.then(null, onRejected);\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/promise/lib/es6-extensions.js","(function(self) {\n 'use strict';\n\n if (self.fetch) {\n return\n }\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob: 'FileReader' in self && 'Blob' in self && (function() {\n try {\n new Blob()\n return true\n } catch(e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isDataView = function(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n var isArrayBufferView = ArrayBuffer.isView || function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.\\^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue+','+value : value\n }\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n }\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n }\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n }\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n }\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n }\n\n Headers.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) { items.push(name) })\n return iteratorFor(items)\n }\n\n Headers.prototype.values = function() {\n var items = []\n this.forEach(function(value) { items.push(value) })\n return iteratorFor(items)\n }\n\n Headers.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) { items.push([name, value]) })\n return iteratorFor(items)\n }\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n throw new Error('unsupported BodyInit type')\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return (methods.indexOf(upcased) > -1) ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'omit'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n }\n\n Request.prototype.clone = function() {\n return new Request(this, { body: this._bodyInit })\n }\n\n function decode(body) {\n var form = new FormData()\n body.trim().split('&').forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers()\n rawHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n }\n\n Body.call(Request.prototype)\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = 'status' in options ? options.status : 200\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = 'statusText' in options ? options.statusText : 'OK'\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n }\n\n Body.call(Response.prototype)\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n }\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n }\n\n var redirectStatuses = [301, 302, 303, 307, 308]\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n }\n\n self.Headers = Headers\n self.Request = Request\n self.Response = Response\n\n self.fetch = function(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n var xhr = new XMLHttpRequest()\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n resolve(new Response(body, options))\n }\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'))\n }\n\n xhr.open(request.method, request.url, true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob'\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n }\n self.fetch.polyfill = true\n})(typeof self !== 'undefined' ? self : this);\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/whatwg-fetch/fetch.js","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/object-assign/index.js","import { define, WeElement } from 'omi'\n\nimport './my-head'\nimport './my-content'\nimport './my-sidebar'\nimport './my-demo'\n\ndefine('my-frame', class extends WeElement {\n\n installed(){\n this.store.init()\n }\n\n render() {\n return (\n
\n \n
\n \n
\n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-frame.js","import { define, WeElement } from 'omi'\nimport logo from './omi-logo2019.svg'\n\ndefine('my-head', class extends WeElement {\n static css = require('./_index.css')\n\n toggleMenus = evt => {\n this.store.toogleSidebar()\n evt.stopPropagation()\n }\n\n hideSidebar = evt => {\n this.store.hideSidebar()\n }\n\n render() {\n return (\n
\n
\n \"\"\n
\n\n \n \n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-head/index.js","module.exports = __webpack_public_path__ + \"static/media/omi-logo2019.923166c3.svg\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/omi-logo2019.svg\n// module id = 13\n// module chunks = 30 31","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAqklEQVRoQ+2WQQ6AMAgE4f+Pxg+oSTNbDXR7Z5UZQpvR/GTz/w838LdBG7ABSMAjBAHichvACGHAXANVVRCOtDwzb2E/GnADUv4R5xkQA9wWN3cLbUMmDrYBMdDluLkGfJEtD8N7wXkXWfsREk/Atri5W2gbMnGwDYiBLsfNNdB+jbqB5Wn2U0KM7KO4uVvoI4D4MzaAEcIAG4AAcbkNYIQwwAYgQFze3sAFU6MwMZGH3LoAAAAASUVORK5CYII=\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/menu.png\n// module id = 14\n// module chunks = 30 31","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-head/_index.css\n// module id = 15\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".head{\\n position:fixed;\\n height:60px;\\n line-height: 60px;\\n border-bottom: 1px solid #eee;\\n width:100%;\\n background-color:#24292e;\\n z-index:100;\\n top: 0;\\n}\\n\\nul,li{\\n display: inline-block;\\n}\\n\\n.logo_box{\\n width:100px;\\n display: inline-block;\\n text-align:center;\\n line-height: 60px;\\n}\\n\\n.menu a,.logo_box a{\\n display: inline-block;\\n height:60px;\\n color: white;\\n}\\n\\n.menu{\\n position: absolute;\\n right:20px;\\n}\\n\\n.menu li{\\n margin-left:15px;\\n}\\n\\n.logo_box a{\\n font-size: 34px;\\n font-weight: bold;\\n color: #00bff3;\\n padding: 0px 15px;\\n line-height: 60px;\\n cursor: pointer;\\n}\\n\\n.menu a:hover{\\n color: white;\\n}\\n\\n.m_menu{\\n position:fixed;\\n display:none;\\n cursor: pointer;\\n}\\n\\n.menu li{\\n display:inline-block;\\n}\\n\\n.logo{\\n width: 40px;\\n height: 40px;\\n margin-left: 10px;\\n margin-top: 10px;\\n cursor: pointer;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n\\n .logo_box{\\n display:inline-block;\\n }\\n\\n .logo{\\n display: none;\\n }\\n\\n .head{\\n text-align:center;\\n }\\n\\n .m_menu{\\n top:0;\\n left:0;\\n display:block;\\n width:50px;\\n height:50px;\\n padding-top: 6px;\\n }\\n\\n .m_menu img{\\n width:30px;\\n }\\n\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-head/_index.css\n// module id = 16\n// module chunks = 30 31","import { define, WeElement } from 'omi'\nimport '../my-footer'\n\ndefine('my-content', class extends WeElement {\n static css = require('./_index.css')\n\n static use = [\n 'html'\n ]\n\n install() {\n this.store.myContent = this\n }\n\n installed() {\n this.initCodeStyle()\n }\n\n afterUpdate() {\n this.initCodeStyle()\n }\n\n touchEnd = () => {\n this.store.hideSidebar()\n }\n\n initCodeStyle() {\n let codes = document.querySelectorAll('code')\n\n let codesArr = Array.prototype.slice.call(codes);\n let codeHlNumArr = []\n codesArr.forEach(code => {\n let arr = code.className.match(/{([\\S\\s]*)}/)\n let pre = code.parentNode\n //bug!\n arr && pre.setAttribute('data-line', arr[1])\n if (code.className) {\n pre.className = code.className\n\n const temp = code.className.match(/language-\\w*/g)[0]\n if (temp) {\n code.innerHTML = Prism.highlight(code.innerText, Prism.languages[temp.split('-')[1]], temp.split('-')[1])\n }\n } else {\n let pre = code.parentNode\n code.className = 'language-markup'\n pre.className = 'language-markup'\n code.innerHTML = Prism.highlight(code.innerText, Prism.languages.markup, 'markup')\n }\n // let hllNums = null\n // if (arr) {\n // let numArr = arr[0].replace(/[{|}]/g, '').split(',')\n // hllNums = this._arrToNumber(numArr)\n // }\n //codeHlNumArr.push(hllNums)\n })\n\n // codesArr.forEach((code, index) => {\n // let newP = document.createElement('div')\n // newP.className = '_code-ctn'\n // let pre = code.parentNode\n // let ctn = pre.parentNode\n // if (pre.nodeName === 'PRE') {\n // ctn.insertBefore(newP, pre)\n\n // let hl = document.createElement('div')\n // hl.className = '_hl'\n // newP.appendChild(hl)\n // newP.appendChild(pre)\n // let nums = codeHlNumArr[index]\n\n // let max = Math.max.apply(null, nums)\n\n // let inner = ''\n // for (let i = 0; i <= max; i++) {\n // if (nums.indexOf(i) == -1) {\n // inner += '
'\n // } else {\n // inner += '
'\n // }\n // }\n // hl.innerHTML = inner\n // }\n // })\n //fix line-highlight\n window.dispatchEvent(new Event('resize'));\n }\n\n _arrToNumber(numArr) {\n let arr = []\n numArr.forEach(item => {\n if (item.indexOf('-') !== -1) {\n const tempArr = item.split('-')\n const begin = Number(tempArr[0])\n const end = Number(tempArr[1])\n for (let i = begin; i < end + 1; i++) {\n arr.push(i)\n }\n } else {\n arr.push(Number(item))\n }\n })\n return arr\n }\n\n render() {\n return (\n
\n \n \n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-content/index.js","import { define, WeElement } from 'omi'\n\ndefine('my-footer', class extends WeElement {\n static css = require('./_index.css')\n\n static use = [\n 'position',\n 'menu'\n ]\n\n render() {\n const [\n position,\n menus\n ] = this.use\n const pre = this.store.getPre()\n const next = this.store.getNext()\n console.log(pre,next)\n return (\n
\n {pre &&← {pre.name}}\n {next &&}\n
\n )\n }\n\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-footer/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-footer/_index.css\n// module id = 19\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".ft{\\n position: relative;\\n margin-top: 20px\\n}\\n\\n.pre{\\n position: absolute;\\n left:15px;\\n}\\n\\n.next{\\n position: absolute;\\n right: 15px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-footer/_index.css\n// module id = 20\n// module chunks = 30 31","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-content/_index.css\n// module id = 21\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \".content{\\n margin-top: 60px;\\n margin-bottom: 30px;\\n margin-left: 260px;\\n padding: 1px 10px 10px 20px;\\n color: #24292e;\\n /* overflow: hidden; */\\n max-width: 900px;\\n}\\n\\nh3{\\n color:#444444;\\n}\\n\\npre{\\n border: 1px solid #eee;\\n width: 100%;\\n}\\nli{\\n text-indent: 20px;\\n list-style:disc inside ;\\n}\\n\\n@media only screen and (max-width: 768px) {\\n .content{\\n margin-left: 0;\\n border-left: none;\\n padding: 1px 10px 10px 10px;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-content/_index.css\n// module id = 22\n// module chunks = 30 31","import { define, WeElement } from 'omi'\nimport '../my-list'\n\ndefine('my-sidebar', class extends WeElement {\n static css = require('./_index.css')\n\n static use = [\n 'menus',\n 'sideBarShow',\n 'lan'\n ]\n\n render() {\n const [menus, sideBarShow, lan] = this.use\n\n return (\n
\n {menus[lan].map((menu, index) => (\n \n ))}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-sidebar/index.js","import { define, WeElement } from 'omi'\n\ndefine('my-list', class extends WeElement {\n static css = require('./_index.css')\n\n static use = [\n 'position'\n ]\n\n render(props) {\n const [position] = this.use\n\n return (\n
    \n
  • {props.menu.title}
  • \n {props.menu.list &&\n props.menu.list.map((item, subIndex) => {\n const cls = position[0] === props.index && position[1] === subIndex ? { class: 'current' } : null\n return
  • \n \n {item.name}\n \n
  • \n })}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-list/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-list/_index.css\n// module id = 25\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"li.title{\\n font-size: 14px;\\n font-weight: bold;\\n margin-bottom:10px;\\n margin-top:10px;\\n text-indent: 23px;\\n}\\nli{\\n margin-bottom:1px;\\n text-indent: 33px;\\n}\\nli a{\\n display:block;\\n font-size:14px;\\n height:30px;\\n line-height:30px;\\n color: black;\\n background-color:#eee;\\n}\\nli a.current,li a.current:hover{\\n background-color:#24292e;\\n color: white;\\n cursor: default;\\n}\\nli a:hover{\\n background-color:#f0f8ff;\\n}\\n\\n\\nul,li{\\n list-style:none;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-list/_index.css\n// module id = 26\n// module chunks = 30 31","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-sidebar/_index.css\n// module id = 27\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"@media only screen and (max-width: 768px) {\\n .list{\\n transform: translateX(-100%);\\n background-color:white;\\n left:0 !important;\\n -moz-transition: all .6s ease;\\n -o-transition: all .6s ease;\\n -webkit-transition: all .6s ease;\\n transition: all .6s ease;\\n width: 70% !important;\\n z-index: 100000;\\n border-right: none !important;\\n }\\n\\n .list.show {\\n -moz-transform: translateX(0%) translateZ(0);\\n -ms-transform: translateX(0%) translateZ(0);\\n -o-transform: translateX(0%) translateZ(0);\\n -webkit-transform: translateX(0%) translateZ(0);\\n transform: translateX(0%) translateZ(0);\\n }\\n}\\n\\n.list{\\n width: 261px;\\n text-indent: 20px;\\n border-right: 1px solid #eee;\\n overflow-x: hidden;\\n overflow-y: auto;\\n position:fixed;\\n top:60px;\\n background-color: white;\\n height: 100%;\\n border-right: 1px solid #ccc;\\n padding-bottom: 100px;\\n}\\n.version{\\n height:20px;\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-sidebar/_index.css\n// module id = 28\n// module chunks = 30 31","import { define, WeElement } from 'omi'\nimport css from './_index.css'\n\ndefine('my-demo', class extends WeElement {\n install() {\n this.store.myDemo = this\n if(this.checkPc())\n this.show = true\n else\n this.show = false\n this.demo = this.store.demo\n }\n\n css() {\n return css\n }\n\n checkPc() {\n let userAgentInfo = navigator.userAgent\n let mp = [\"Android\", \"iPhone\", \"SymbianOS\", \"Windows Phone\", \"iPad\", \"iPod\"]\n for (let i = 0; i < mp.length; i++)\n if (userAgentInfo.indexOf(mp[i]) > 0)\n return false\n return true\n }\n\n onShow = () => {\n this.show = true\n this.update()\n }\n\n onClose = () => {\n this.show = false\n this.update()\n }\n \n render() {\n if(!this.demo) return\n return (\n
\n { this.show && }\n\n {!this.show &&
\n \n
}\n\n {this.show &&
\n \n
}\n
\n )\n }\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/elements/my-demo/index.js","\n var result = require(\"!!../../../node_modules/css-loader/index.js!./_index.css\");\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/_index.css\n// module id = 30\n// module chunks = 30 31","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(undefined);\n// imports\n\n\n// module\nexports.push([module.id, \"iframe{\\n width: 750px;\\n height: 100%;\\n top: 60px;\\n right: 0;\\n position: fixed;\\n border: none;\\n z-index: 9999;\\n border-left: 2px solid #24292E; \\n}\\n\\n.switch{\\n width: 40px;\\n height: 40px;\\n background-color: #AA0000;\\n border-radius: 50%;\\n position: fixed;\\n right: 50px;\\n bottom: 50px;\\n cursor: pointer;\\n text-align: center;\\n z-index: 10000;\\n}\\n\\n.switch img{\\n width: 30px;\\n height: 30px;\\n margin-top:5px; \\n}\\n\\n.switch.close img{\\n margin-top:10px; \\n width: 20px;\\n height: 20px;\\n}\\n\\n\\n@media only screen and (max-width: 768px) {\\n iframe{\\n width: 100%;\\n }\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./src/elements/my-demo/_index.css\n// module id = 31\n// module chunks = 30 31","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAAHdElNRQfiDBQMEgYVXhFiAAABVklEQVRIx+3UsU4UURSA4TNARoiJcR9BCwwJNNpRU0hjpS+hDTTyGkAD1UJnRzCbYKRAKzt9AaMxJoR+Ewho8dEMm5nZOzObbfVUM+ec/79n7uTeiP8xUfjiq6Xp8Ufg6fSCN7iQpasztebcttVaz3pEnGQirNqWt62VG2CoV8rNu8TLCD1DDBoVBc5BeVzr+OthhMwBjQq59wVe+Sy7+FQ8Z/bBB/MT4hG+4+3oLa0Y4f0x/AlYLmUyezVFMx5hE79ruaqiDY9wir2xbFnhqAW/7xovEpUZfXCUwEqxFvfiJs5ae+SO0/sfYR8fE8zdvzi524UGhV/Y6MCbp7ACFjvxiuKd2VFuCz/GNu8wgacVPmNnQrxQlA6TB/7geWX4tsNUUgz1IrzClYVStes4F4riQtHHoFbtulAq457j9UTNScEz8Li7c64hfxXf4jr7OfUE/1TcAoyIn6j/RilHAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE4LTEyLTIwVDExOjE4OjA2KzAxOjAwT3khJwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxOC0xMi0yMFQxMToxODowNiswMTowMD4kmZsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAAElFTkSuQmCC\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/code.png\n// module id = 32\n// module chunks = 30 31","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAQAAACROWYpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAADdcAAA3XAUIom3gAAAAHdElNRQfiDBQMERzDEbvbAAAArElEQVQ4y6XVOw6DMBBFUSf7SmGy2ZCNBerIJN2lAQn/34ArZHFsi3mDHW9mvDMOPDOjYwKCjeMJwGd/MPBI8OALBJ4S3d8e0okuz6jOi1TjVdrnTdrmXVrnEi1zmebcRGNupgf+YzHTjS8A/Ov0Lqxzs+97PLbUMukHG2wd59LimHheHJmX6yrxeiS6vJ2mJu8Hscq1DBe5Hv+M2zon4pd++teum5Hp5EX3WgGu+8eCI/n/bQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxOC0xMi0yMFQxMToxNzoyOCswMTowMKxoBooAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTgtMTItMjBUMTE6MTc6MjgrMDE6MDDdNb42AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg==\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/elements/my-demo/close.png\n// module id = 33\n// module chunks = 30 31","import config from '../docs/config.js'\nimport 'omi-router'\n\nclass Store {\n constructor(data) {\n this.data = {\n position: [-1, -1],\n menus: config.menus,\n lan: data.lan,\n html: '',\n sideBarShow: window.innerWidth > 768\n }\n let id = 0\n this.map = {}\n this.positionMap = {}\n config.menus[this.data.lan].forEach((menu, index) => {\n menu.list.forEach((item, subIndex) => {\n item.id = id++\n item.position = [index, subIndex]\n this.map[item.id] = item\n item.index = index\n item.subIndex = subIndex\n this.positionMap[index+'-'+subIndex] = item\n })\n })\n this.preIndex = 0\n this.preSubIndex = 0\n }\n\n getNext(){\n const item = this.positionMap[this.data.position.join('-')]\n if(item){\n return this.map[item.id+1]\n }\n }\n\n getPre(){\n const item = this.positionMap[this.data.position.join('-')]\n if(item){\n return this.map[item.id-1]\n }\n }\n\n init() {\n this.remarkable = new Remarkable({ html: true })\n if (location.hash === \"\") {\n this.data.position = [0, 0]\n this.getMarkDown(this.data.menus[this.data.lan][0].list[0].md, this.data.lan, m => {\n this.data.html = this.remarkable.render(m)\n })\n }\n this.initRouter()\n }\n\n toogleSidebar() {\n this.data.sideBarShow = !this.data.sideBarShow\n }\n\n hideSidebar() {\n this.data.sideBarShow = false\n }\n\n initRouter() {\n const menus = this.data.menus[this.data.lan]\n menus.forEach(item => {\n item.list.forEach(subItem => {\n route('/' + subItem.md, evt => {\n menus[this.preIndex].list[this.preSubIndex].selected = false\n this.preIndex = evt.query.index\n this.preSubIndex = evt.query.subIndex\n this.data.position = [Number(evt.query.index), Number(evt.query.subIndex)]\n this.data.sideBarShow = false\n\n this.getMarkDown(subItem.md, this.data.lan, m => {\n this.data.html = this.remarkable.render(m)\n document.body.scrollTop = 0\n document.documentElement.scrollTop = 0\n })\n })\n })\n })\n }\n\n getMarkDown(name, lan, callback) {\n import('../docs/' + lan + '/' + name + '.md').then(m => {\n callback(m)\n })\n }\n}\n\nexport default Store\n\n\n\n// WEBPACK FOOTER //\n// ./src/store/index.js","const config = {\n menus: {\n 'zh-cn': [\n {\n title: 'Omi',\n list: [\n { name: '简介', md: 'introduction' },\n { name: '安装', md: 'installation' }\n ]\n },\n {\n title: '基础概念',\n list: [\n { name: 'JSX', md: 'jsx' },\n { name: 'Props', md: 'props' },\n { name: '事件', md: 'event' },\n { name: '生命周期', md: 'lifecycle' },\n { name: 'Ref', md: 'ref' },\n { name: 'Class', md: 'class' },\n { name: 'Store', md: 'store' },\n { name: 'CSS', md: 'css' }\n ]\n },\n {\n title: '其他',\n list: [\n { name: '生态与例子', md: 'other' },\n { name: 'Mps', md: 'mps' },\n { name: 'Omip 多端开发', md: 'omip' },\n { name: '服务端渲染', md: 'ssr' },\n { name: '路由', md: 'router' },\n { name: 'Omiu', md: 'omiu' }\n ]\n }\n ],\n en: [\n {\n title: 'Omi',\n list: [\n { name: 'Introduction', md: 'introduction' },\n { name: 'Installation', md: 'installation' }\n ]\n },\n {\n title: 'Base',\n list: [\n { name: 'JSX', md: 'jsx' },\n { name: 'Props', md: 'props' },\n { name: 'Event', md: 'event' },\n { name: 'Lifecycle', md: 'lifecycle' },\n { name: 'Ref', md: 'ref' },\n { name: 'Class', md: 'class' },\n { name: 'Store', md: 'store' },\n { name: 'CSS', md: 'css' }\n ]\n },\n {\n title: 'Other',\n list: [\n { name: 'Ecosystem and examples', md: 'other' },\n { name: 'Server-Side Rendering', md: 'ssr' },\n { name: 'Router', md: 'router' },\n { name: 'Omiu', md: 'omiu' }\n ]\n }\n ]\n }\n}\n\nexport default config\n\n\n\n// WEBPACK FOOTER //\n// ./src/docs/config.js","/*!\n * omi-router v2.0.9 by dntzhang\n * Router for Omi.\n * Github: https://github.com/Tencent/omi\n * MIT Licensed.\n */\n\nvar p2r = require('path-to-regexp')\nvar mapping = {}\nvar root = getGlobal()\n\nroot.route = route\nroot.route.params = null\nroot.historyLength = 0\n\nroot.route.to = function (path, data) {\n root.route._routeByTo = true\n root.route.data = data\n if (path[0] === '#') {\n location.hash = path\n } else {\n location.hash = '#' + path\n }\n}\n\nwindow.addEventListener('hashchange', change)\n\nfunction change(evt) {\n var byNative = false\n //need to fix a line by omi-link\n if(window.history.length === root.historyLength && !root.route._routeByTo){\n //keep alive mode\n byNative = true\n }\n root.route._routeByTo = false\n root.historyLength = window.history.length\n var prevent = false\n if (evt.type === 'hashchange' && root.route.before) {\n prevent = root.route.before(evt) === false\n }\n if (prevent) return\n var path = window.location.hash.replace('#', '')\n if(path === '') path = '/'\n var notFound = true\n Object.keys(mapping).every(function(key){\n var toArr = path.split('?')[0].match(mapping[key].reg)\n if (toArr) {\n var pathArr = key.match(mapping[key].reg)\n root.route.params = getParams(toArr, pathArr)\n root.route.query = getUrlParams(path)\n mapping[key].callback({\n params: root.route.params,\n query: getUrlParams(path),\n data: root.route.data,\n byNative: byNative\n })\n root.route.data = null\n notFound = false\n return false\n }\n return true\n })\n\n if (notFound) {\n mapping['*'] && mapping['*'].callback({ byNative: byNative })\n }\n\n if (evt.type === 'hashchange' && root.route.after) {\n root.route.after(evt)\n }\n}\n\ndocument.addEventListener('DOMContentLoaded', change)\n\nfunction getParams(toArr, pathArr) {\n var params = {}\n toArr.forEach(function (item, index) {\n if (index > 0) {\n params[pathArr[index].replace(':', '')] = item\n }\n })\n return params\n}\n\n\nexport default function route(path, callback) {\n mapping[path] = {\n callback: callback,\n reg: p2r(path)\n }\n}\n\nfunction getGlobal() {\n if (\n typeof global !== 'object' ||\n !global ||\n global.Math !== Math ||\n global.Array !== Array\n ) {\n return (\n self ||\n window ||\n global ||\n (function () {\n return this\n })()\n )\n }\n return global\n}\n\nfunction getUrlParams(url) {\n url = url.replace(/#.*$/, '')\n var queryArray = url.split(/[?&]/).slice(1)\n var i, args = {}\n for (i = 0; i < queryArray.length; i++) {\n var match = queryArray[i].match(/([^=]+)=([^=]+)/)\n if (match !== null) {\n args[match[1]] = decodeURIComponent(match[2])\n }\n }\n return args\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/omi-router/index.js","/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * Default configs.\n */\nvar DEFAULT_DELIMITER = '/'\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \":test(\\\\d+)?\" => [\"test\", \"\\d+\", undefined, \"?\"]\n // \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n '(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = (options && options.delimiter) || DEFAULT_DELIMITER\n var whitelist = (options && options.whitelist) || undefined\n var pathEscaped = false\n var res\n\n while ((res = PATH_REGEXP.exec(str)) !== null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n pathEscaped = true\n continue\n }\n\n var prev = ''\n var name = res[2]\n var capture = res[3]\n var group = res[4]\n var modifier = res[5]\n\n if (!pathEscaped && path.length) {\n var k = path.length - 1\n var c = path[k]\n var matches = whitelist ? whitelist.indexOf(c) > -1 : true\n\n if (matches) {\n prev = c\n path = path.slice(0, k)\n }\n }\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n pathEscaped = false\n }\n\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var pattern = capture || group\n var delimiter = prev || defaultDelimiter\n\n tokens.push({\n name: name || key++,\n prefix: prev,\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n pattern: pattern\n ? escapeGroup(pattern)\n : '[^' + escapeString(delimiter === defaultDelimiter ? delimiter : (delimiter + defaultDelimiter)) + ']+?'\n })\n }\n\n // Push any remaining characters.\n if (path || index < str.length) {\n tokens.push(path + str.substr(index))\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n }\n }\n\n return function (data, options) {\n var path = ''\n var encode = (options && options.encode) || encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n continue\n }\n\n var value = data ? data[token.name] : undefined\n var segment\n\n if (Array.isArray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got array')\n }\n\n if (value.length === 0) {\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j], token)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\"')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n segment = encode(String(value), token)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n continue\n }\n\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to be ' + (token.repeat ? 'an array' : 'a string'))\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$/()])/g, '\\\\$1')\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {Array=} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n if (!keys) return path\n\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n pattern: null\n })\n }\n }\n\n return path\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n return new RegExp('(?:' + parts.join('|') + ')', flags(options))\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n options = options || {}\n\n var strict = options.strict\n var start = options.start !== false\n var end = options.end !== false\n var delimiter = options.delimiter || DEFAULT_DELIMITER\n var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|')\n var route = start ? '^' : ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var capture = token.repeat\n ? '(?:' + token.pattern + ')(?:' + escapeString(token.delimiter) + '(?:' + token.pattern + '))*'\n : token.pattern\n\n if (keys) keys.push(token)\n\n if (token.optional) {\n if (!token.prefix) {\n route += '(' + capture + ')?'\n } else {\n route += '(?:' + escapeString(token.prefix) + '(' + capture + '))?'\n }\n } else {\n route += escapeString(token.prefix) + '(' + capture + ')'\n }\n }\n }\n\n if (end) {\n if (!strict) route += '(?:' + escapeString(delimiter) + ')?'\n\n route += endsWith === '$' ? '$' : '(?=' + endsWith + ')'\n } else {\n var endToken = tokens[tokens.length - 1]\n var isEndDelimited = typeof endToken === 'string'\n ? endToken[endToken.length - 1] === delimiter\n : endToken === undefined\n\n if (!strict) route += '(?:' + escapeString(delimiter) + '(?=' + endsWith + '))?'\n if (!isEndDelimited) route += '(?=' + escapeString(delimiter) + '|' + endsWith + ')'\n }\n\n return new RegExp(route, flags(options))\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {Array=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (path instanceof RegExp) {\n return regexpToRegexp(path, keys)\n }\n\n if (Array.isArray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), keys, options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), keys, options)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./node_modules/path-to-regexp/index.js","var map = {\n\t\"./en/class.md\": [\n\t\t39,\n\t\t29\n\t],\n\t\"./en/css.md\": [\n\t\t40,\n\t\t28\n\t],\n\t\"./en/event.md\": [\n\t\t41,\n\t\t27\n\t],\n\t\"./en/installation.md\": [\n\t\t42,\n\t\t26\n\t],\n\t\"./en/introduction.md\": [\n\t\t43,\n\t\t25\n\t],\n\t\"./en/jsx.md\": [\n\t\t44,\n\t\t24\n\t],\n\t\"./en/lifecycle.md\": [\n\t\t45,\n\t\t23\n\t],\n\t\"./en/omiu.md\": [\n\t\t46,\n\t\t22\n\t],\n\t\"./en/other.md\": [\n\t\t47,\n\t\t21\n\t],\n\t\"./en/props.md\": [\n\t\t48,\n\t\t20\n\t],\n\t\"./en/ref.md\": [\n\t\t49,\n\t\t19\n\t],\n\t\"./en/router.md\": [\n\t\t50,\n\t\t18\n\t],\n\t\"./en/ssr.md\": [\n\t\t51,\n\t\t17\n\t],\n\t\"./en/store.md\": [\n\t\t52,\n\t\t16\n\t],\n\t\"./zh-cn/class.md\": [\n\t\t53,\n\t\t15\n\t],\n\t\"./zh-cn/css.md\": [\n\t\t54,\n\t\t14\n\t],\n\t\"./zh-cn/event.md\": [\n\t\t55,\n\t\t13\n\t],\n\t\"./zh-cn/installation.md\": [\n\t\t56,\n\t\t12\n\t],\n\t\"./zh-cn/introduction.md\": [\n\t\t57,\n\t\t11\n\t],\n\t\"./zh-cn/jsx.md\": [\n\t\t58,\n\t\t10\n\t],\n\t\"./zh-cn/lifecycle.md\": [\n\t\t59,\n\t\t9\n\t],\n\t\"./zh-cn/mps.md\": [\n\t\t60,\n\t\t8\n\t],\n\t\"./zh-cn/omip.md\": [\n\t\t61,\n\t\t7\n\t],\n\t\"./zh-cn/omiu.md\": [\n\t\t62,\n\t\t6\n\t],\n\t\"./zh-cn/other.md\": [\n\t\t63,\n\t\t5\n\t],\n\t\"./zh-cn/props.md\": [\n\t\t64,\n\t\t4\n\t],\n\t\"./zh-cn/ref.md\": [\n\t\t65,\n\t\t3\n\t],\n\t\"./zh-cn/router.md\": [\n\t\t66,\n\t\t2\n\t],\n\t\"./zh-cn/ssr.md\": [\n\t\t67,\n\t\t1\n\t],\n\t\"./zh-cn/store.md\": [\n\t\t68,\n\t\t0\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids)\n\t\treturn Promise.reject(new Error(\"Cannot find module '\" + req + \"'.\"));\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(ids[0]);\n\t});\n};\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 38;\nmodule.exports = webpackAsyncContext;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs lazy ^\\.\\/.*\\.md$\n// module id = 38\n// module chunks = 30 31","import { render } from 'omi'\nimport './assets/index.css'\nimport './elements/my-frame.js'\nimport Store from './store'\n\nrender(, '#root', new Store({ lan: 'en' }))\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js"],"sourceRoot":""} \ No newline at end of file diff --git a/site/src/docs/en/introduction.md b/site/src/docs/en/introduction.md index c3e88e78c..f30443240 100644 --- a/site/src/docs/en/introduction.md +++ b/site/src/docs/en/introduction.md @@ -58,7 +58,7 @@ You can also use `like-button` tag directly in HTML: - [Online Demo!](https://tencent.github.io/omi/assets/omi.html) -The HTML structure is written in hyperscript and JS is written in ES5. You can use JSX and ES2015 + instead. +You can use JSX and ES2015+ to write the element: ```jsx {8-11} diff --git a/site/src/docs/en/props.md b/site/src/docs/en/props.md index 89016ffe8..36a104b22 100644 --- a/site/src/docs/en/props.md +++ b/site/src/docs/en/props.md @@ -18,7 +18,7 @@ define('my-element', class extends WeElement { Using element: ```jsx - + ``` You can also pass any type of data to props: @@ -36,13 +36,13 @@ define('my-element', class extends WeElement { Using element: ```jsx - + ``` You can set the default value by the static default Props property: ```jsx -define('my-first-element', class extends WeElement { +define('my-element', class extends WeElement { static defaultProps = { name: 'Omi', myAge: 18 diff --git a/site/src/docs/zh-cn/introduction.md b/site/src/docs/zh-cn/introduction.md index 839640bd1..7bcb6e3fd 100644 --- a/site/src/docs/zh-cn/introduction.md +++ b/site/src/docs/zh-cn/introduction.md @@ -64,7 +64,7 @@ Omi (读音 /ˈomɪ/,类似于 欧米) 是下一代前端框架,基于 Web C * [点击这里看执行结果](https://tencent.github.io/omi/assets/omi.html) -上面使用的是 hyperscript 的方式来书写 HTML 结构,用 ES5 书写 JS ,你可以使用 JSX 和 ES2015+ 来替代它们。 +你可以使用 JSX 和 ES2015+ 来书写自定义元素: ```jsx {8-11} diff --git a/site/src/docs/zh-cn/props.md b/site/src/docs/zh-cn/props.md index cb821ab23..0e7a4480b 100644 --- a/site/src/docs/zh-cn/props.md +++ b/site/src/docs/zh-cn/props.md @@ -18,7 +18,7 @@ define('my-element', class extends WeElement { 使用元素: ```jsx - + ``` 你也可以传任意类型的数据给 props: @@ -36,13 +36,13 @@ define('my-element', class extends WeElement { 使用元素: ```jsx - + ``` 你可以通过静态属性 `static defaultProps` 来设置默认值: ```jsx -define('my-first-element', class extends WeElement { +define('my-element', class extends WeElement { static defaultProps = { name: 'Omi', myAge: 18