From 77858c808d76e87301a721a09cc5ca30aad06d22 Mon Sep 17 00:00:00 2001 From: dntzhang Date: Fri, 26 Jul 2019 15:19:03 +0800 Subject: [PATCH] doc - build omis site --- packages/omis/README.CN.md | 15 ++++ packages/omis/README.md | 15 ++++ site/omis-src/src/docs/config.js | 4 +- site/omis-src/src/docs/en/introduction.md | 15 ++++ site/omis-src/src/docs/en/ref.md | 70 ++++--------------- site/omis-src/src/docs/zh-cn/introduction.md | 15 ++++ site/omis-src/src/docs/zh-cn/ref.md | 70 ++++--------------- site/omis/asset-manifest.json | 24 +++---- site/omis/cn.html | 2 +- site/omis/index.html | 2 +- site/omis/service-worker.js | 2 +- site/omis/static/js/0.39ef1a0a.chunk.js | 2 - site/omis/static/js/0.39ef1a0a.chunk.js.map | 1 - site/omis/static/js/0.8011c5a4.chunk.js | 2 + site/omis/static/js/0.8011c5a4.chunk.js.map | 1 + ...395c8cbd.chunk.js => 13.29ee0a83.chunk.js} | 4 +- site/omis/static/js/13.29ee0a83.chunk.js.map | 1 + site/omis/static/js/13.395c8cbd.chunk.js.map | 1 - ....b83b6976.chunk.js => 4.58424fa9.chunk.js} | 4 +- site/omis/static/js/4.58424fa9.chunk.js.map | 1 + site/omis/static/js/4.b83b6976.chunk.js.map | 1 - site/omis/static/js/9.681a35ad.chunk.js | 2 + site/omis/static/js/9.681a35ad.chunk.js.map | 1 + site/omis/static/js/9.cd41291b.chunk.js | 2 - site/omis/static/js/9.cd41291b.chunk.js.map | 1 - .../js/{cn.00c021ee.js => cn.00679351.js} | 4 +- site/omis/static/js/cn.00679351.js.map | 1 + site/omis/static/js/cn.00c021ee.js.map | 1 - site/omis/static/js/index.0673f9b8.js.map | 1 - .../{index.0673f9b8.js => index.55d02fa3.js} | 4 +- site/omis/static/js/index.55d02fa3.js.map | 1 + 31 files changed, 120 insertions(+), 150 deletions(-) delete mode 100644 site/omis/static/js/0.39ef1a0a.chunk.js delete mode 100644 site/omis/static/js/0.39ef1a0a.chunk.js.map create mode 100644 site/omis/static/js/0.8011c5a4.chunk.js create mode 100644 site/omis/static/js/0.8011c5a4.chunk.js.map rename site/omis/static/js/{13.395c8cbd.chunk.js => 13.29ee0a83.chunk.js} (77%) create mode 100644 site/omis/static/js/13.29ee0a83.chunk.js.map delete mode 100644 site/omis/static/js/13.395c8cbd.chunk.js.map rename site/omis/static/js/{4.b83b6976.chunk.js => 4.58424fa9.chunk.js} (82%) create mode 100644 site/omis/static/js/4.58424fa9.chunk.js.map delete mode 100644 site/omis/static/js/4.b83b6976.chunk.js.map create mode 100644 site/omis/static/js/9.681a35ad.chunk.js create mode 100644 site/omis/static/js/9.681a35ad.chunk.js.map delete mode 100644 site/omis/static/js/9.cd41291b.chunk.js delete mode 100644 site/omis/static/js/9.cd41291b.chunk.js.map rename site/omis/static/js/{cn.00c021ee.js => cn.00679351.js} (91%) create mode 100644 site/omis/static/js/cn.00679351.js.map delete mode 100644 site/omis/static/js/cn.00c021ee.js.map delete mode 100644 site/omis/static/js/index.0673f9b8.js.map rename site/omis/static/js/{index.0673f9b8.js => index.55d02fa3.js} (91%) create mode 100644 site/omis/static/js/index.55d02fa3.js.map diff --git a/packages/omis/README.CN.md b/packages/omis/README.CN.md index 34b202d3c..7c293775b 100644 --- a/packages/omis/README.CN.md +++ b/packages/omis/README.CN.md @@ -58,6 +58,21 @@ span{ render(, 'body') ``` +## 参数说明 + +```jsx +const Comp = (props, store, _, $) => { + +} + +Comp.store = (_, $) => { + +} +``` + +* `_` 代表 `component` +* `$` 代表 `globalStore` + ## 快速开始 ```bash diff --git a/packages/omis/README.md b/packages/omis/README.md index b954c0e43..5899ef992 100644 --- a/packages/omis/README.md +++ b/packages/omis/README.md @@ -58,6 +58,21 @@ span{ render(, 'body') ``` +## Description of parameters + +```jsx +const Comp = (props, store, _, $) => { + +} + +Comp.store = (_, $) => { + +} +``` + +* `_` represents `component` +* `$` represents `globalStore` + ## Quick Start ```bash diff --git a/site/omis-src/src/docs/config.js b/site/omis-src/src/docs/config.js index 63c037c74..ee541741e 100644 --- a/site/omis-src/src/docs/config.js +++ b/site/omis-src/src/docs/config.js @@ -15,7 +15,7 @@ const config = { { name: 'Props', md: 'props' }, { name: '事件', md: 'event' }, { name: '生命周期', md: 'lifecycle' }, - // { name: 'Ref', md: 'ref' }, + { name: 'Ref', md: 'ref' }, { name: 'GlobalStore-$', md: 'global-store' }, { name: 'CSS', md: 'css' } ] @@ -36,7 +36,7 @@ const config = { { name: 'Props', md: 'props' }, { name: 'Event', md: 'event' }, { name: 'Lifecycle', md: 'lifecycle' }, - // { name: 'Ref', md: 'ref' }, + { name: 'Ref', md: 'ref' }, { name: 'GlobalStore-$', md: 'global-store' }, { name: 'CSS', md: 'css' } ] diff --git a/site/omis-src/src/docs/en/introduction.md b/site/omis-src/src/docs/en/introduction.md index 1d226a3a7..6cf84409e 100644 --- a/site/omis-src/src/docs/en/introduction.md +++ b/site/omis-src/src/docs/en/introduction.md @@ -63,4 +63,19 @@ const Counter = (props, store) => { } ``` +## Description of parameters + +```jsx +const Comp = (props, store, _, $) => { + +} + +Comp.store = (_, $) => { + +} +``` + +* `_` represents `component` +* `$` represents `globalStore` + You're already getting started! Congratulations! diff --git a/site/omis-src/src/docs/en/ref.md b/site/omis-src/src/docs/en/ref.md index f3617a54f..774fd79d9 100644 --- a/site/omis-src/src/docs/en/ref.md +++ b/site/omis-src/src/docs/en/ref.md @@ -1,62 +1,18 @@ ## Ref -```jsx -define('my-element', class extends WeElement { - onClick = (evt) => { - console.log(this.h1) - } +Ref provides a way to access DOM nodes or Components created in render methods. - render(props) { - return ( -
-

{ this.h1 = e }} onClick={this.onClick}>Hello, world!

-
- ) +```jsx +const HelloMessage = (props, store, _) => { + return h('h1', { ref: ele => _.h1 = ele }, `Hello ${props.name}`) +} + +HelloMessage.store = _ => { + return { + installed() { + //h1 dom element + console.log(_.h1) + } } -}) +} ``` - -Add `ref = {e => {this. anyNameYouWant = e} ` to the element, and then you can access the element using `this. anyNameYouWant` in the JS code. You can improve the performance of update in two ways: - -* Assignment ahead of time -* createRef - -### Assignment ahead of time - -```jsx -define('my-element', class extends WeElement { - onClick = (evt) => { - console.log(this.h1) - } - - myRef = e => { this.h1 = e } - - render(props) { - return ( -
-

Hello, world!

-
- ) - } -}) -``` - -### createRef - -```jsx -define('my-element', class extends WeElement { - onClick = (evt) => { - console.log(this.myRef.current) //h1 - } - - myRef = createRef() - - render(props) { - return ( -
-

Hello, world!

-
- ) - } -}) -``` \ No newline at end of file diff --git a/site/omis-src/src/docs/zh-cn/introduction.md b/site/omis-src/src/docs/zh-cn/introduction.md index ea82ce464..6278c23dc 100644 --- a/site/omis-src/src/docs/zh-cn/introduction.md +++ b/site/omis-src/src/docs/zh-cn/introduction.md @@ -63,4 +63,19 @@ const Counter = (props, store) => { } ``` +## 参数说明 + +```jsx +const Comp = (props, store, _, $) => { + +} + +Comp.store = (_, $) => { + +} +``` + +* `_` 代表 `component` +* `$` 代表 `globalStore` + 恭喜你已经入门! diff --git a/site/omis-src/src/docs/zh-cn/ref.md b/site/omis-src/src/docs/zh-cn/ref.md index d16d9b976..807b49717 100644 --- a/site/omis-src/src/docs/zh-cn/ref.md +++ b/site/omis-src/src/docs/zh-cn/ref.md @@ -1,64 +1,18 @@ ## Ref -```jsx -define('my-element', class extends WeElement { - onClick = (evt) => { - console.log(this.h1) - } - - render(props) { - return ( -
-

{ this.h1 = e }} onClick={this.onClick}>Hello, world!

-
- ) - } -}) -``` - -在元素上添加 `ref={e => { this.anyNameYouWant = e }}` ,然后你就可以 JS 代码里使用 `this.anyNameYouWant` 访问该元素。你可以使用两种方式来提高 update 的性能: - -* 提前赋值 -* createRef - -### 提前赋值 +Ref 提供了一种方式,允许我们访问 DOM 节点或在 render 方法中创建的 Component。 ```jsx -define('my-element', class extends WeElement { - onClick = (evt) => { - console.log(this.h1) +const HelloMessage = (props, store, _) => { + return h('h1', { ref: ele => _.h1 = ele }, `Hello ${props.name}`) +} + +HelloMessage.store = _ => { + return { + installed() { + //h1 dom element + console.log(_.h1) + } } - - myRef = e => { this.h1 = e } - - render(props) { - return ( -
-

Hello, world!

-
- ) - } -}) -``` - -### createRef - -你也可以使用 `createRef` 来得到更高的性能: - -```jsx -define('my-element', class extends WeElement { - onClick = (evt) => { - console.log(this.myRef.current) //h1 - } - - myRef = createRef() - - render(props) { - return ( -
-

Hello, world!

-
- ) - } -}) +} ``` \ No newline at end of file diff --git a/site/omis/asset-manifest.json b/site/omis/asset-manifest.json index 8400bc335..2ec40b7c6 100644 --- a/site/omis/asset-manifest.json +++ b/site/omis/asset-manifest.json @@ -1,14 +1,14 @@ { "cn.css": "static/css/cn.4dd07f49.css", "cn.css.map": "static/css/cn.4dd07f49.css.map", - "cn.js": "static/js/cn.00c021ee.js", - "cn.js.map": "static/js/cn.00c021ee.js.map", + "cn.js": "static/js/cn.00679351.js", + "cn.js.map": "static/js/cn.00679351.js.map", "index.css": "static/css/index.4dd07f49.css", "index.css.map": "static/css/index.4dd07f49.css.map", - "index.js": "static/js/index.0673f9b8.js", - "index.js.map": "static/js/index.0673f9b8.js.map", - "static/js/0.39ef1a0a.chunk.js": "static/js/0.39ef1a0a.chunk.js", - "static/js/0.39ef1a0a.chunk.js.map": "static/js/0.39ef1a0a.chunk.js.map", + "index.js": "static/js/index.55d02fa3.js", + "index.js.map": "static/js/index.55d02fa3.js.map", + "static/js/0.8011c5a4.chunk.js": "static/js/0.8011c5a4.chunk.js", + "static/js/0.8011c5a4.chunk.js.map": "static/js/0.8011c5a4.chunk.js.map", "static/js/1.50ce9893.chunk.js": "static/js/1.50ce9893.chunk.js", "static/js/1.50ce9893.chunk.js.map": "static/js/1.50ce9893.chunk.js.map", "static/js/10.079da8e1.chunk.js": "static/js/10.079da8e1.chunk.js", @@ -17,8 +17,8 @@ "static/js/11.539ad1d3.chunk.js.map": "static/js/11.539ad1d3.chunk.js.map", "static/js/12.4e8c5423.chunk.js": "static/js/12.4e8c5423.chunk.js", "static/js/12.4e8c5423.chunk.js.map": "static/js/12.4e8c5423.chunk.js.map", - "static/js/13.395c8cbd.chunk.js": "static/js/13.395c8cbd.chunk.js", - "static/js/13.395c8cbd.chunk.js.map": "static/js/13.395c8cbd.chunk.js.map", + "static/js/13.29ee0a83.chunk.js": "static/js/13.29ee0a83.chunk.js", + "static/js/13.29ee0a83.chunk.js.map": "static/js/13.29ee0a83.chunk.js.map", "static/js/14.7a34335f.chunk.js": "static/js/14.7a34335f.chunk.js", "static/js/14.7a34335f.chunk.js.map": "static/js/14.7a34335f.chunk.js.map", "static/js/15.37ec360b.chunk.js": "static/js/15.37ec360b.chunk.js", @@ -31,8 +31,8 @@ "static/js/2.e1f2d88b.chunk.js.map": "static/js/2.e1f2d88b.chunk.js.map", "static/js/3.f2d1a5c5.chunk.js": "static/js/3.f2d1a5c5.chunk.js", "static/js/3.f2d1a5c5.chunk.js.map": "static/js/3.f2d1a5c5.chunk.js.map", - "static/js/4.b83b6976.chunk.js": "static/js/4.b83b6976.chunk.js", - "static/js/4.b83b6976.chunk.js.map": "static/js/4.b83b6976.chunk.js.map", + "static/js/4.58424fa9.chunk.js": "static/js/4.58424fa9.chunk.js", + "static/js/4.58424fa9.chunk.js.map": "static/js/4.58424fa9.chunk.js.map", "static/js/5.bcc359c6.chunk.js": "static/js/5.bcc359c6.chunk.js", "static/js/5.bcc359c6.chunk.js.map": "static/js/5.bcc359c6.chunk.js.map", "static/js/6.e19277b4.chunk.js": "static/js/6.e19277b4.chunk.js", @@ -41,7 +41,7 @@ "static/js/7.ba732eb4.chunk.js.map": "static/js/7.ba732eb4.chunk.js.map", "static/js/8.8d224a42.chunk.js": "static/js/8.8d224a42.chunk.js", "static/js/8.8d224a42.chunk.js.map": "static/js/8.8d224a42.chunk.js.map", - "static/js/9.cd41291b.chunk.js": "static/js/9.cd41291b.chunk.js", - "static/js/9.cd41291b.chunk.js.map": "static/js/9.cd41291b.chunk.js.map", + "static/js/9.681a35ad.chunk.js": "static/js/9.681a35ad.chunk.js", + "static/js/9.681a35ad.chunk.js.map": "static/js/9.681a35ad.chunk.js.map", "static/media/omi-logo2019.svg": "static/media/omi-logo2019.923166c3.svg" } \ No newline at end of file diff --git a/site/omis/cn.html b/site/omis/cn.html index c7c861bcb..17ab6e179 100644 --- a/site/omis/cn.html +++ b/site/omis/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/omis/index.html b/site/omis/index.html index a68a9e856..a906db1fd 100644 --- a/site/omis/index.html +++ b/site/omis/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/omis/service-worker.js b/site/omis/service-worker.js index 037d23447..043d17441 100644 --- a/site/omis/service-worker.js +++ b/site/omis/service-worker.js @@ -1 +1 @@ -"use strict";var precacheConfig=[["./cn.html","2c692885c5fba3ff602a26632a496617"],["./index.html","90ecc2c312d1a75316525ce00561afbe"],["./static/css/cn.4dd07f49.css","476d16186dc05ff3faa0a5d4dc9ac72c"],["./static/css/index.4dd07f49.css","9ad340cc60e8fed0f9856b562708144e"],["./static/js/0.39ef1a0a.chunk.js","3dbeff7f40f6eac2d93851b067d71463"],["./static/js/1.50ce9893.chunk.js","981e170f32f93363756f47acc355b3fb"],["./static/js/10.079da8e1.chunk.js","7d2efbdfe324d4541bec143b626b73bf"],["./static/js/11.539ad1d3.chunk.js","69dc127c5687d87a9ce565663fe08677"],["./static/js/12.4e8c5423.chunk.js","49d5076f482fc5291c9dde2a1d97ea93"],["./static/js/13.395c8cbd.chunk.js","e542ca281f3e2ae9e96cf4256e81a40c"],["./static/js/14.7a34335f.chunk.js","904565ec073b72cdc66dad6cd4df31cd"],["./static/js/15.37ec360b.chunk.js","3284817b7224bd4fe72cdf2b3b52f4d0"],["./static/js/16.90a95764.chunk.js","246eeb90c63366cf2dcc68a06b9912a5"],["./static/js/17.4b2bd9bb.chunk.js","5d634dd578578cecf497da7d9dce5994"],["./static/js/2.e1f2d88b.chunk.js","1c3fbd6f6a07672be0f63e1689c896ae"],["./static/js/3.f2d1a5c5.chunk.js","e4dd0a90e6db1cd957971f2207059481"],["./static/js/4.b83b6976.chunk.js","784835c053da0f5b5fdf0627a0efa243"],["./static/js/5.bcc359c6.chunk.js","c3fa370d0c2ae439591ad07f031d9df1"],["./static/js/6.e19277b4.chunk.js","bfa94015a5274e7730f40e94a0d535b7"],["./static/js/7.ba732eb4.chunk.js","5b4b84682920c6e878c945330e7d8874"],["./static/js/8.8d224a42.chunk.js","794340334a59d79664621541b3ae4236"],["./static/js/9.cd41291b.chunk.js","46a4e4d11f6e213f803d0114328bd0d3"],["./static/js/cn.00c021ee.js","3f92bca1cf4db6ffb9befe6d74b5ac27"],["./static/js/index.0673f9b8.js","149a3ae8fc2b788d6270a1415565c1de"],["./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,t){var c=new URL(e);return"/"===c.pathname.slice(-1)&&(c.pathname+=t),c.toString()},cleanResponse=function(t){return t.redirected?("body"in t?Promise.resolve(t.body):t.blob()).then(function(e){return new Response(e,{headers:t.headers,status:t.status,statusText:t.statusText})}):Promise.resolve(t)},createCacheKey=function(e,t,c,n){var a=new URL(e);return n&&a.pathname.match(n)||(a.search+=(a.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(c)),a.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var c=new URL(t).pathname;return e.some(function(e){return c.match(e)})},stripIgnoredUrlParameters=function(e,c){var t=new URL(e);return t.hash="",t.search=t.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(t){return c.every(function(e){return!e.test(t[0])})}).map(function(e){return e.join("=")}).join("&"),t.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],c=e[1],n=new URL(t,self.location),a=createCacheKey(n,hashParamName,c,/\.\w{8}\./);return[n.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(n){return setOfCachedUrls(n).then(function(c){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(t){if(!c.has(t)){var e=new Request(t,{credentials:"same-origin"});return fetch(e).then(function(e){if(!e.ok)throw new Error("Request for "+t+" returned a response with status "+e.status);return cleanResponse(e).then(function(e){return n.put(t,e)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var c=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(t){return t.keys().then(function(e){return Promise.all(e.map(function(e){if(!c.has(e.url))return t.delete(e)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(t){if("GET"===t.request.method){var e,c=stripIgnoredUrlParameters(t.request.url,ignoreUrlParametersMatching),n="index.html";(e=urlsToCacheKeys.has(c))||(c=addDirectoryIndex(c,n),e=urlsToCacheKeys.has(c));var a="./index.html";!e&&"navigate"===t.request.mode&&isPathWhitelisted(["^(?!\\/__).*"],t.request.url)&&(c=new URL(a,self.location).toString(),e=urlsToCacheKeys.has(c)),e&&t.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(c)).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',t.request.url,e),fetch(t.request)}))}}); \ No newline at end of file +"use strict";var precacheConfig=[["./cn.html","4afbd43d89bb4a1707576a7ea89c4102"],["./index.html","16fcd4d77b33dbdc96fddb402a2c6a5a"],["./static/css/cn.4dd07f49.css","476d16186dc05ff3faa0a5d4dc9ac72c"],["./static/css/index.4dd07f49.css","9ad340cc60e8fed0f9856b562708144e"],["./static/js/0.8011c5a4.chunk.js","1b2dba0303df648f158e1a3efc665566"],["./static/js/1.50ce9893.chunk.js","981e170f32f93363756f47acc355b3fb"],["./static/js/10.079da8e1.chunk.js","7d2efbdfe324d4541bec143b626b73bf"],["./static/js/11.539ad1d3.chunk.js","69dc127c5687d87a9ce565663fe08677"],["./static/js/12.4e8c5423.chunk.js","49d5076f482fc5291c9dde2a1d97ea93"],["./static/js/13.29ee0a83.chunk.js","a1593dfb62a0797bfdd6eda64e307e25"],["./static/js/14.7a34335f.chunk.js","904565ec073b72cdc66dad6cd4df31cd"],["./static/js/15.37ec360b.chunk.js","3284817b7224bd4fe72cdf2b3b52f4d0"],["./static/js/16.90a95764.chunk.js","246eeb90c63366cf2dcc68a06b9912a5"],["./static/js/17.4b2bd9bb.chunk.js","5d634dd578578cecf497da7d9dce5994"],["./static/js/2.e1f2d88b.chunk.js","1c3fbd6f6a07672be0f63e1689c896ae"],["./static/js/3.f2d1a5c5.chunk.js","e4dd0a90e6db1cd957971f2207059481"],["./static/js/4.58424fa9.chunk.js","753f5fdda07cee60d26ad03e85ca2ac0"],["./static/js/5.bcc359c6.chunk.js","c3fa370d0c2ae439591ad07f031d9df1"],["./static/js/6.e19277b4.chunk.js","bfa94015a5274e7730f40e94a0d535b7"],["./static/js/7.ba732eb4.chunk.js","5b4b84682920c6e878c945330e7d8874"],["./static/js/8.8d224a42.chunk.js","794340334a59d79664621541b3ae4236"],["./static/js/9.681a35ad.chunk.js","cb4528ca5b1b0e47b6eae8f1e189ffe6"],["./static/js/cn.00679351.js","f72cca2d4787341c9138f19f69470c53"],["./static/js/index.55d02fa3.js","02197100d446a66264bbf26a60329fe6"],["./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,t){var c=new URL(e);return"/"===c.pathname.slice(-1)&&(c.pathname+=t),c.toString()},cleanResponse=function(t){return t.redirected?("body"in t?Promise.resolve(t.body):t.blob()).then(function(e){return new Response(e,{headers:t.headers,status:t.status,statusText:t.statusText})}):Promise.resolve(t)},createCacheKey=function(e,t,c,a){var n=new URL(e);return a&&n.pathname.match(a)||(n.search+=(n.search?"&":"")+encodeURIComponent(t)+"="+encodeURIComponent(c)),n.toString()},isPathWhitelisted=function(e,t){if(0===e.length)return!0;var c=new URL(t).pathname;return e.some(function(e){return c.match(e)})},stripIgnoredUrlParameters=function(e,c){var t=new URL(e);return t.hash="",t.search=t.search.slice(1).split("&").map(function(e){return e.split("=")}).filter(function(t){return c.every(function(e){return!e.test(t[0])})}).map(function(e){return e.join("=")}).join("&"),t.toString()},hashParamName="_sw-precache",urlsToCacheKeys=new Map(precacheConfig.map(function(e){var t=e[0],c=e[1],a=new URL(t,self.location),n=createCacheKey(a,hashParamName,c,/\.\w{8}\./);return[a.toString(),n]}));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(c){return Promise.all(Array.from(urlsToCacheKeys.values()).map(function(t){if(!c.has(t)){var e=new Request(t,{credentials:"same-origin"});return fetch(e).then(function(e){if(!e.ok)throw new Error("Request for "+t+" returned a response with status "+e.status);return cleanResponse(e).then(function(e){return a.put(t,e)})})}}))})}).then(function(){return self.skipWaiting()}))}),self.addEventListener("activate",function(e){var c=new Set(urlsToCacheKeys.values());e.waitUntil(caches.open(cacheName).then(function(t){return t.keys().then(function(e){return Promise.all(e.map(function(e){if(!c.has(e.url))return t.delete(e)}))})}).then(function(){return self.clients.claim()}))}),self.addEventListener("fetch",function(t){if("GET"===t.request.method){var e,c=stripIgnoredUrlParameters(t.request.url,ignoreUrlParametersMatching),a="index.html";(e=urlsToCacheKeys.has(c))||(c=addDirectoryIndex(c,a),e=urlsToCacheKeys.has(c));var n="./index.html";!e&&"navigate"===t.request.mode&&isPathWhitelisted(["^(?!\\/__).*"],t.request.url)&&(c=new URL(n,self.location).toString(),e=urlsToCacheKeys.has(c)),e&&t.respondWith(caches.open(cacheName).then(function(e){return e.match(urlsToCacheKeys.get(c)).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',t.request.url,e),fetch(t.request)}))}}); \ No newline at end of file diff --git a/site/omis/static/js/0.39ef1a0a.chunk.js b/site/omis/static/js/0.39ef1a0a.chunk.js deleted file mode 100644 index 4a508b6f6..000000000 --- a/site/omis/static/js/0.39ef1a0a.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -webpackJsonp([0],{56:function(n,e){n.exports="## Ref\n\n```jsx\ndefine('my-element', class extends WeElement {\n onClick = (evt) => {\n console.log(this.h1)\n }\n\n render(props) {\n return (\n
\n

{ this.h1 = e }} onClick={this.onClick}>Hello, world!

\n
\n )\n }\n})\n```\n\n\u5728\u5143\u7d20\u4e0a\u6dfb\u52a0 `ref={e => { this.anyNameYouWant = e }}` \uff0c\u7136\u540e\u4f60\u5c31\u53ef\u4ee5 JS \u4ee3\u7801\u91cc\u4f7f\u7528 `this.anyNameYouWant` \u8bbf\u95ee\u8be5\u5143\u7d20\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528\u4e24\u79cd\u65b9\u5f0f\u6765\u63d0\u9ad8 update \u7684\u6027\u80fd\uff1a\n\n* \u63d0\u524d\u8d4b\u503c\n* createRef\n\n### \u63d0\u524d\u8d4b\u503c\n\n```jsx\ndefine('my-element', class extends WeElement {\n onClick = (evt) => {\n console.log(this.h1)\n }\n\n myRef = e => { this.h1 = e }\n\n render(props) {\n return (\n
\n

Hello, world!

\n
\n )\n }\n})\n```\n\n### createRef\n\n\u4f60\u4e5f\u53ef\u4ee5\u4f7f\u7528 `createRef` \u6765\u5f97\u5230\u66f4\u9ad8\u7684\u6027\u80fd:\n\n```jsx\ndefine('my-element', class extends WeElement {\n onClick = (evt) => {\n console.log(this.myRef.current) //h1\n }\n\n myRef = createRef()\n\n render(props) {\n return (\n
\n

Hello, world!

\n
\n )\n }\n})\n```"}}); -//# sourceMappingURL=0.39ef1a0a.chunk.js.map \ No newline at end of file diff --git a/site/omis/static/js/0.39ef1a0a.chunk.js.map b/site/omis/static/js/0.39ef1a0a.chunk.js.map deleted file mode 100644 index 8110928af..000000000 --- a/site/omis/static/js/0.39ef1a0a.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../static/js/0.39ef1a0a.chunk.js","docs/zh-cn/ref.md"],"names":["webpackJsonp","56","module","exports"],"mappings":"AAAAA,cAAc,IAERC,GACA,SAAUC,EAAQC,GCHxBD,EAAAC,QAAA","file":"static/js/0.39ef1a0a.chunk.js","sourcesContent":["webpackJsonp([0],{\n\n/***/ 56:\n/***/ (function(module, exports) {\n\nmodule.exports = \"## Ref\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n onClick = (evt) => {\\n console.log(this.h1)\\n }\\n\\n render(props) {\\n return (\\n
\\n

{ this.h1 = e }} onClick={this.onClick}>Hello, world!

\\n
\\n )\\n }\\n})\\n```\\n\\n在元素上添加 `ref={e => { this.anyNameYouWant = e }}` ,然后你就可以 JS 代码里使用 `this.anyNameYouWant` 访问该元素。你可以使用两种方式来提高 update 的性能:\\n\\n* 提前赋值\\n* createRef\\n\\n### 提前赋值\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n onClick = (evt) => {\\n console.log(this.h1)\\n }\\n\\n myRef = e => { this.h1 = e }\\n\\n render(props) {\\n return (\\n
\\n

Hello, world!

\\n
\\n )\\n }\\n})\\n```\\n\\n### createRef\\n\\n你也可以使用 `createRef` 来得到更高的性能:\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n onClick = (evt) => {\\n console.log(this.myRef.current) //h1\\n }\\n\\n myRef = createRef()\\n\\n render(props) {\\n return (\\n
\\n

Hello, world!

\\n
\\n )\\n }\\n})\\n```\"\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/0.39ef1a0a.chunk.js","module.exports = \"## Ref\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n onClick = (evt) => {\\n console.log(this.h1)\\n }\\n\\n render(props) {\\n return (\\n
\\n

{ this.h1 = e }} onClick={this.onClick}>Hello, world!

\\n
\\n )\\n }\\n})\\n```\\n\\n在元素上添加 `ref={e => { this.anyNameYouWant = e }}` ,然后你就可以 JS 代码里使用 `this.anyNameYouWant` 访问该元素。你可以使用两种方式来提高 update 的性能:\\n\\n* 提前赋值\\n* createRef\\n\\n### 提前赋值\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n onClick = (evt) => {\\n console.log(this.h1)\\n }\\n\\n myRef = e => { this.h1 = e }\\n\\n render(props) {\\n return (\\n
\\n

Hello, world!

\\n
\\n )\\n }\\n})\\n```\\n\\n### createRef\\n\\n你也可以使用 `createRef` 来得到更高的性能:\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n onClick = (evt) => {\\n console.log(this.myRef.current) //h1\\n }\\n\\n myRef = createRef()\\n\\n render(props) {\\n return (\\n
\\n

Hello, world!

\\n
\\n )\\n }\\n})\\n```\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs/zh-cn/ref.md\n// module id = 56\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/site/omis/static/js/0.8011c5a4.chunk.js b/site/omis/static/js/0.8011c5a4.chunk.js new file mode 100644 index 000000000..a89e8c7da --- /dev/null +++ b/site/omis/static/js/0.8011c5a4.chunk.js @@ -0,0 +1,2 @@ +webpackJsonp([0],{56:function(n,e){n.exports="## Ref\n\nRef \u63d0\u4f9b\u4e86\u4e00\u79cd\u65b9\u5f0f\uff0c\u5141\u8bb8\u6211\u4eec\u8bbf\u95ee DOM \u8282\u70b9\u6216\u5728 render \u65b9\u6cd5\u4e2d\u521b\u5efa\u7684 Component\u3002\n\n```jsx\nconst HelloMessage = (props, store, _) => {\n return h('h1', { ref: ele => _.h1 = ele }, `Hello ${props.name}`)\n}\n\nHelloMessage.store = _ => {\n return {\n installed() {\n //h1 dom element\n console.log(_.h1)\n }\n }\n}\n```"}}); +//# sourceMappingURL=0.8011c5a4.chunk.js.map \ No newline at end of file diff --git a/site/omis/static/js/0.8011c5a4.chunk.js.map b/site/omis/static/js/0.8011c5a4.chunk.js.map new file mode 100644 index 000000000..45f8156f7 --- /dev/null +++ b/site/omis/static/js/0.8011c5a4.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../static/js/0.8011c5a4.chunk.js","docs/zh-cn/ref.md"],"names":["webpackJsonp","56","module","exports"],"mappings":"AAAAA,cAAc,IAERC,GACA,SAAUC,EAAQC,GCHxBD,EAAAC,QAAA","file":"static/js/0.8011c5a4.chunk.js","sourcesContent":["webpackJsonp([0],{\n\n/***/ 56:\n/***/ (function(module, exports) {\n\nmodule.exports = \"## Ref\\n\\nRef 提供了一种方式,允许我们访问 DOM 节点或在 render 方法中创建的 Component。\\n\\n```jsx\\nconst HelloMessage = (props, store, _) => {\\n return h('h1', { ref: ele => _.h1 = ele }, `Hello ${props.name}`)\\n}\\n\\nHelloMessage.store = _ => {\\n return {\\n installed() {\\n //h1 dom element\\n console.log(_.h1)\\n }\\n }\\n}\\n```\"\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/0.8011c5a4.chunk.js","module.exports = \"## Ref\\n\\nRef 提供了一种方式,允许我们访问 DOM 节点或在 render 方法中创建的 Component。\\n\\n```jsx\\nconst HelloMessage = (props, store, _) => {\\n return h('h1', { ref: ele => _.h1 = ele }, `Hello ${props.name}`)\\n}\\n\\nHelloMessage.store = _ => {\\n return {\\n installed() {\\n //h1 dom element\\n console.log(_.h1)\\n }\\n }\\n}\\n```\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs/zh-cn/ref.md\n// module id = 56\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/site/omis/static/js/13.395c8cbd.chunk.js b/site/omis/static/js/13.29ee0a83.chunk.js similarity index 77% rename from site/omis/static/js/13.395c8cbd.chunk.js rename to site/omis/static/js/13.29ee0a83.chunk.js index 0e53865ca..4a5737d17 100644 --- a/site/omis/static/js/13.395c8cbd.chunk.js +++ b/site/omis/static/js/13.29ee0a83.chunk.js @@ -1,2 +1,2 @@ -webpackJsonp([13],{43:function(n,t){n.exports="## What's Omis \uff1f\n\nOmis (pronounced /\u02c8om\u026as/) is Functional Style, Easy Store and Hyperscript Component Framework in 3KB.\n\n* Functional style but non-functional programming\n* Structure-Style-Behavior Separation\n* Hyperscript is visually more friendly\n* Each component can have a store and be de-centralized\n* Support global store to share data and update on demand\n* Each component store has an update method that executes the method to customize local refresh components\n\n[\u2192 Omis Codepen Demos](https://codepen.io/collection/XjLaRo/)\n\n## Add Omi in One Minute\n\n```jsx\nimport { render, h } from 'omi'\n\nconst Counter = (props, store) => {\n return (\n
\n \n {store.count}\n \n
\n )\n}\n\nCounter.store = _ => {\n return {\n count: 1,\n add() {\n this.count++\n this.update()\n },\n sub() {\n this.count--\n this.update()\n }\n }\n}\n\nCounter.css = `\nspan{\n color: red;\n}\n`\n\nrender(, 'body')\n```\n\nYou can also use hyperscript **with no build tooling**:\n\n```js\nconst Counter = (props, store) => {\n return (\n h('div', {}, [\n h('button', { onClick: store.sub }, '-'),\n h('span', {}, store.count),\n h('button', { onClick: store.add }, '+')\n ])\n )\n}\n```\n\nYou're already getting started! Congratulations!\n"}}); -//# sourceMappingURL=13.395c8cbd.chunk.js.map \ No newline at end of file +webpackJsonp([13],{43:function(n,o){n.exports="## What's Omis \uff1f\n\nOmis (pronounced /\u02c8om\u026as/) is Functional Style, Easy Store and Hyperscript Component Framework in 3KB.\n\n* Functional style but non-functional programming\n* Structure-Style-Behavior Separation\n* Hyperscript is visually more friendly\n* Each component can have a store and be de-centralized\n* Support global store to share data and update on demand\n* Each component store has an update method that executes the method to customize local refresh components\n\n[\u2192 Omis Codepen Demos](https://codepen.io/collection/XjLaRo/)\n\n## Add Omi in One Minute\n\n```jsx\nimport { render, h } from 'omi'\n\nconst Counter = (props, store) => {\n return (\n
\n \n {store.count}\n \n
\n )\n}\n\nCounter.store = _ => {\n return {\n count: 1,\n add() {\n this.count++\n this.update()\n },\n sub() {\n this.count--\n this.update()\n }\n }\n}\n\nCounter.css = `\nspan{\n color: red;\n}\n`\n\nrender(, 'body')\n```\n\nYou can also use hyperscript **with no build tooling**:\n\n```js\nconst Counter = (props, store) => {\n return (\n h('div', {}, [\n h('button', { onClick: store.sub }, '-'),\n h('span', {}, store.count),\n h('button', { onClick: store.add }, '+')\n ])\n )\n}\n```\n\n## Description of parameters\n\n```jsx\nconst Comp = (props, store, _, $) => {\n\n}\n\nComp.store = (_, $) => {\n\n}\n```\n\n* `_` represents `component`\n* `$` represents `globalStore`\n\nYou're already getting started! Congratulations!\n"}}); +//# sourceMappingURL=13.29ee0a83.chunk.js.map \ No newline at end of file diff --git a/site/omis/static/js/13.29ee0a83.chunk.js.map b/site/omis/static/js/13.29ee0a83.chunk.js.map new file mode 100644 index 000000000..b8443a289 --- /dev/null +++ b/site/omis/static/js/13.29ee0a83.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../static/js/13.29ee0a83.chunk.js","docs/en/introduction.md"],"names":["webpackJsonp","43","module","exports"],"mappings":"AAAAA,cAAc,KAERC,GACA,SAAUC,EAAQC,GCHxBD,EAAAC,QAAA","file":"static/js/13.29ee0a83.chunk.js","sourcesContent":["webpackJsonp([13],{\n\n/***/ 43:\n/***/ (function(module, exports) {\n\nmodule.exports = \"## What's Omis ?\\n\\nOmis (pronounced /ˈomɪs/) is Functional Style, Easy Store and Hyperscript Component Framework in 3KB.\\n\\n* Functional style but non-functional programming\\n* Structure-Style-Behavior Separation\\n* Hyperscript is visually more friendly\\n* Each component can have a store and be de-centralized\\n* Support global store to share data and update on demand\\n* Each component store has an update method that executes the method to customize local refresh components\\n\\n[→ Omis Codepen Demos](https://codepen.io/collection/XjLaRo/)\\n\\n## Add Omi in One Minute\\n\\n```jsx\\nimport { render, h } from 'omi'\\n\\nconst Counter = (props, store) => {\\n return (\\n
\\n \\n {store.count}\\n \\n
\\n )\\n}\\n\\nCounter.store = _ => {\\n return {\\n count: 1,\\n add() {\\n this.count++\\n this.update()\\n },\\n sub() {\\n this.count--\\n this.update()\\n }\\n }\\n}\\n\\nCounter.css = `\\nspan{\\n color: red;\\n}\\n`\\n\\nrender(, 'body')\\n```\\n\\nYou can also use hyperscript **with no build tooling**:\\n\\n```js\\nconst Counter = (props, store) => {\\n return (\\n h('div', {}, [\\n h('button', { onClick: store.sub }, '-'),\\n h('span', {}, store.count),\\n h('button', { onClick: store.add }, '+')\\n ])\\n )\\n}\\n```\\n\\n## Description of parameters\\n\\n```jsx\\nconst Comp = (props, store, _, $) => {\\n\\n}\\n\\nComp.store = (_, $) => {\\n\\n}\\n```\\n\\n* `_` represents `component`\\n* `$` represents `globalStore`\\n\\nYou're already getting started! Congratulations!\\n\"\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/13.29ee0a83.chunk.js","module.exports = \"## What's Omis ?\\n\\nOmis (pronounced /ˈomɪs/) is Functional Style, Easy Store and Hyperscript Component Framework in 3KB.\\n\\n* Functional style but non-functional programming\\n* Structure-Style-Behavior Separation\\n* Hyperscript is visually more friendly\\n* Each component can have a store and be de-centralized\\n* Support global store to share data and update on demand\\n* Each component store has an update method that executes the method to customize local refresh components\\n\\n[→ Omis Codepen Demos](https://codepen.io/collection/XjLaRo/)\\n\\n## Add Omi in One Minute\\n\\n```jsx\\nimport { render, h } from 'omi'\\n\\nconst Counter = (props, store) => {\\n return (\\n
\\n \\n {store.count}\\n \\n
\\n )\\n}\\n\\nCounter.store = _ => {\\n return {\\n count: 1,\\n add() {\\n this.count++\\n this.update()\\n },\\n sub() {\\n this.count--\\n this.update()\\n }\\n }\\n}\\n\\nCounter.css = `\\nspan{\\n color: red;\\n}\\n`\\n\\nrender(, 'body')\\n```\\n\\nYou can also use hyperscript **with no build tooling**:\\n\\n```js\\nconst Counter = (props, store) => {\\n return (\\n h('div', {}, [\\n h('button', { onClick: store.sub }, '-'),\\n h('span', {}, store.count),\\n h('button', { onClick: store.add }, '+')\\n ])\\n )\\n}\\n```\\n\\n## Description of parameters\\n\\n```jsx\\nconst Comp = (props, store, _, $) => {\\n\\n}\\n\\nComp.store = (_, $) => {\\n\\n}\\n```\\n\\n* `_` represents `component`\\n* `$` represents `globalStore`\\n\\nYou're already getting started! Congratulations!\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs/en/introduction.md\n// module id = 43\n// module chunks = 13"],"sourceRoot":""} \ No newline at end of file diff --git a/site/omis/static/js/13.395c8cbd.chunk.js.map b/site/omis/static/js/13.395c8cbd.chunk.js.map deleted file mode 100644 index 19367aef9..000000000 --- a/site/omis/static/js/13.395c8cbd.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../static/js/13.395c8cbd.chunk.js","docs/en/introduction.md"],"names":["webpackJsonp","43","module","exports"],"mappings":"AAAAA,cAAc,KAERC,GACA,SAAUC,EAAQC,GCHxBD,EAAAC,QAAA","file":"static/js/13.395c8cbd.chunk.js","sourcesContent":["webpackJsonp([13],{\n\n/***/ 43:\n/***/ (function(module, exports) {\n\nmodule.exports = \"## What's Omis ?\\n\\nOmis (pronounced /ˈomɪs/) is Functional Style, Easy Store and Hyperscript Component Framework in 3KB.\\n\\n* Functional style but non-functional programming\\n* Structure-Style-Behavior Separation\\n* Hyperscript is visually more friendly\\n* Each component can have a store and be de-centralized\\n* Support global store to share data and update on demand\\n* Each component store has an update method that executes the method to customize local refresh components\\n\\n[→ Omis Codepen Demos](https://codepen.io/collection/XjLaRo/)\\n\\n## Add Omi in One Minute\\n\\n```jsx\\nimport { render, h } from 'omi'\\n\\nconst Counter = (props, store) => {\\n return (\\n
\\n \\n {store.count}\\n \\n
\\n )\\n}\\n\\nCounter.store = _ => {\\n return {\\n count: 1,\\n add() {\\n this.count++\\n this.update()\\n },\\n sub() {\\n this.count--\\n this.update()\\n }\\n }\\n}\\n\\nCounter.css = `\\nspan{\\n color: red;\\n}\\n`\\n\\nrender(, 'body')\\n```\\n\\nYou can also use hyperscript **with no build tooling**:\\n\\n```js\\nconst Counter = (props, store) => {\\n return (\\n h('div', {}, [\\n h('button', { onClick: store.sub }, '-'),\\n h('span', {}, store.count),\\n h('button', { onClick: store.add }, '+')\\n ])\\n )\\n}\\n```\\n\\nYou're already getting started! Congratulations!\\n\"\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/13.395c8cbd.chunk.js","module.exports = \"## What's Omis ?\\n\\nOmis (pronounced /ˈomɪs/) is Functional Style, Easy Store and Hyperscript Component Framework in 3KB.\\n\\n* Functional style but non-functional programming\\n* Structure-Style-Behavior Separation\\n* Hyperscript is visually more friendly\\n* Each component can have a store and be de-centralized\\n* Support global store to share data and update on demand\\n* Each component store has an update method that executes the method to customize local refresh components\\n\\n[→ Omis Codepen Demos](https://codepen.io/collection/XjLaRo/)\\n\\n## Add Omi in One Minute\\n\\n```jsx\\nimport { render, h } from 'omi'\\n\\nconst Counter = (props, store) => {\\n return (\\n
\\n \\n {store.count}\\n \\n
\\n )\\n}\\n\\nCounter.store = _ => {\\n return {\\n count: 1,\\n add() {\\n this.count++\\n this.update()\\n },\\n sub() {\\n this.count--\\n this.update()\\n }\\n }\\n}\\n\\nCounter.css = `\\nspan{\\n color: red;\\n}\\n`\\n\\nrender(, 'body')\\n```\\n\\nYou can also use hyperscript **with no build tooling**:\\n\\n```js\\nconst Counter = (props, store) => {\\n return (\\n h('div', {}, [\\n h('button', { onClick: store.sub }, '-'),\\n h('span', {}, store.count),\\n h('button', { onClick: store.add }, '+')\\n ])\\n )\\n}\\n```\\n\\nYou're already getting started! Congratulations!\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs/en/introduction.md\n// module id = 43\n// module chunks = 13"],"sourceRoot":""} \ No newline at end of file diff --git a/site/omis/static/js/4.b83b6976.chunk.js b/site/omis/static/js/4.58424fa9.chunk.js similarity index 82% rename from site/omis/static/js/4.b83b6976.chunk.js rename to site/omis/static/js/4.58424fa9.chunk.js index 964d55b20..1a5f14773 100644 --- a/site/omis/static/js/4.b83b6976.chunk.js +++ b/site/omis/static/js/4.58424fa9.chunk.js @@ -1,2 +1,2 @@ -webpackJsonp([4],{52:function(n,t){n.exports="## Omis\n\nOmis (\u8bfb /\u02c8om\u026as/) \u662f\u51fd\u6570\u5f0f\u98ce\u683c\uff0c\u81ea\u5e26 store \u4e14 hyperscript \u53cb\u597d\u7684\u7ec4\u4ef6\u6846\u67b6\uff0c\u53ea\u6709 3KB\u3002\n\n* \u51fd\u6570\u5f0f\u98ce\u683c\u4f46\u975e\u51fd\u6570\u5f0f\u7f16\u7a0b \n* \u7ed3\u6784-\u6837\u5f0f-\u884c\u4e3a\u5206\u79bb\n* hyperscript \u89c6\u89c9\u4e0a\u66f4\u52a0\u53cb\u597d\n* \u6bcf\u4e2a\u7ec4\u4ef6\u53ef\u4ee5\u5e26\u6709\u4e00\u4e2a store\uff0c\u53bb\u4e2d\u5fc3\u5316\n* \u652f\u6301\u5168\u5c40 store \u5171\u4eab\u6570\u636e\uff0c\u5e76\u4e14\u6309\u9700\u5c40\u90e8\u66f4\u65b0\u7ec4\u4ef6\n* \u6bcf\u4e2a\u7ec4\u4ef6 store \u62e5\u6709 update \u65b9\u6cd5\uff0c\u6267\u884c\u8be5\u65b9\u6cd5\u81ea\u5b9a\u5c40\u90e8\u5237\u65b0\u7ec4\u4ef6\n\n[\u2192 Omis \u5728\u7ebf\u4f8b\u5b50](https://codepen.io/collection/XjLaRo/)\n\n## \u4e00\u5206\u949f\u5165\u95e8\n\n```jsx\nimport { render, h } from 'omi'\n\nconst Counter = (props, store) => {\n return (\n
\n \n {store.count}\n \n
\n )\n}\n\nCounter.store = _ => {\n return {\n count: 1,\n add() {\n this.count++\n this.update()\n },\n sub() {\n this.count--\n this.update()\n }\n }\n}\n\nCounter.css = `\nspan{\n color: red;\n}\n`\n\nrender(, 'body')\n```\n\n\u4e5f\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528 hyperscript\uff0c\u65e0\u9700\u4efb\u4f55\u7f16\u8bd1\u76f4\u63a5\u8fd0\u884c:\n\n```js\nconst Counter = (props, store) => {\n return (\n h('div', {}, [\n h('button', { onClick: store.sub }, '-'),\n h('span', {}, store.count),\n h('button', { onClick: store.add }, '+')\n ])\n )\n}\n```\n\n\u606d\u559c\u4f60\u5df2\u7ecf\u5165\u95e8\uff01\n"}}); -//# sourceMappingURL=4.b83b6976.chunk.js.map \ No newline at end of file +webpackJsonp([4],{52:function(n,o){n.exports="## Omis\n\nOmis (\u8bfb /\u02c8om\u026as/) \u662f\u51fd\u6570\u5f0f\u98ce\u683c\uff0c\u81ea\u5e26 store \u4e14 hyperscript \u53cb\u597d\u7684\u7ec4\u4ef6\u6846\u67b6\uff0c\u53ea\u6709 3KB\u3002\n\n* \u51fd\u6570\u5f0f\u98ce\u683c\u4f46\u975e\u51fd\u6570\u5f0f\u7f16\u7a0b \n* \u7ed3\u6784-\u6837\u5f0f-\u884c\u4e3a\u5206\u79bb\n* hyperscript \u89c6\u89c9\u4e0a\u66f4\u52a0\u53cb\u597d\n* \u6bcf\u4e2a\u7ec4\u4ef6\u53ef\u4ee5\u5e26\u6709\u4e00\u4e2a store\uff0c\u53bb\u4e2d\u5fc3\u5316\n* \u652f\u6301\u5168\u5c40 store \u5171\u4eab\u6570\u636e\uff0c\u5e76\u4e14\u6309\u9700\u5c40\u90e8\u66f4\u65b0\u7ec4\u4ef6\n* \u6bcf\u4e2a\u7ec4\u4ef6 store \u62e5\u6709 update \u65b9\u6cd5\uff0c\u6267\u884c\u8be5\u65b9\u6cd5\u81ea\u5b9a\u5c40\u90e8\u5237\u65b0\u7ec4\u4ef6\n\n[\u2192 Omis \u5728\u7ebf\u4f8b\u5b50](https://codepen.io/collection/XjLaRo/)\n\n## \u4e00\u5206\u949f\u5165\u95e8\n\n```jsx\nimport { render, h } from 'omi'\n\nconst Counter = (props, store) => {\n return (\n
\n \n {store.count}\n \n
\n )\n}\n\nCounter.store = _ => {\n return {\n count: 1,\n add() {\n this.count++\n this.update()\n },\n sub() {\n this.count--\n this.update()\n }\n }\n}\n\nCounter.css = `\nspan{\n color: red;\n}\n`\n\nrender(, 'body')\n```\n\n\u4e5f\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528 hyperscript\uff0c\u65e0\u9700\u4efb\u4f55\u7f16\u8bd1\u76f4\u63a5\u8fd0\u884c:\n\n```js\nconst Counter = (props, store) => {\n return (\n h('div', {}, [\n h('button', { onClick: store.sub }, '-'),\n h('span', {}, store.count),\n h('button', { onClick: store.add }, '+')\n ])\n )\n}\n```\n\n## \u53c2\u6570\u8bf4\u660e\n\n```jsx\nconst Comp = (props, store, _, $) => {\n\n}\n\nComp.store = (_, $) => {\n\n}\n```\n\n* `_` \u4ee3\u8868 `component`\n* `$` \u4ee3\u8868 `globalStore`\n\n\u606d\u559c\u4f60\u5df2\u7ecf\u5165\u95e8\uff01\n"}}); +//# sourceMappingURL=4.58424fa9.chunk.js.map \ No newline at end of file diff --git a/site/omis/static/js/4.58424fa9.chunk.js.map b/site/omis/static/js/4.58424fa9.chunk.js.map new file mode 100644 index 000000000..820d9bc09 --- /dev/null +++ b/site/omis/static/js/4.58424fa9.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../static/js/4.58424fa9.chunk.js","docs/zh-cn/introduction.md"],"names":["webpackJsonp","52","module","exports"],"mappings":"AAAAA,cAAc,IAERC,GACA,SAAUC,EAAQC,GCHxBD,EAAAC,QAAA","file":"static/js/4.58424fa9.chunk.js","sourcesContent":["webpackJsonp([4],{\n\n/***/ 52:\n/***/ (function(module, exports) {\n\nmodule.exports = \"## Omis\\n\\nOmis (读 /ˈomɪs/) 是函数式风格,自带 store 且 hyperscript 友好的组件框架,只有 3KB。\\n\\n* 函数式风格但非函数式编程 \\n* 结构-样式-行为分离\\n* hyperscript 视觉上更加友好\\n* 每个组件可以带有一个 store,去中心化\\n* 支持全局 store 共享数据,并且按需局部更新组件\\n* 每个组件 store 拥有 update 方法,执行该方法自定局部刷新组件\\n\\n[→ Omis 在线例子](https://codepen.io/collection/XjLaRo/)\\n\\n## 一分钟入门\\n\\n```jsx\\nimport { render, h } from 'omi'\\n\\nconst Counter = (props, store) => {\\n return (\\n
\\n \\n {store.count}\\n \\n
\\n )\\n}\\n\\nCounter.store = _ => {\\n return {\\n count: 1,\\n add() {\\n this.count++\\n this.update()\\n },\\n sub() {\\n this.count--\\n this.update()\\n }\\n }\\n}\\n\\nCounter.css = `\\nspan{\\n color: red;\\n}\\n`\\n\\nrender(, 'body')\\n```\\n\\n也可以直接使用 hyperscript,无需任何编译直接运行:\\n\\n```js\\nconst Counter = (props, store) => {\\n return (\\n h('div', {}, [\\n h('button', { onClick: store.sub }, '-'),\\n h('span', {}, store.count),\\n h('button', { onClick: store.add }, '+')\\n ])\\n )\\n}\\n```\\n\\n## 参数说明\\n\\n```jsx\\nconst Comp = (props, store, _, $) => {\\n\\n}\\n\\nComp.store = (_, $) => {\\n\\n}\\n```\\n\\n* `_` 代表 `component`\\n* `$` 代表 `globalStore`\\n\\n恭喜你已经入门!\\n\"\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/4.58424fa9.chunk.js","module.exports = \"## Omis\\n\\nOmis (读 /ˈomɪs/) 是函数式风格,自带 store 且 hyperscript 友好的组件框架,只有 3KB。\\n\\n* 函数式风格但非函数式编程 \\n* 结构-样式-行为分离\\n* hyperscript 视觉上更加友好\\n* 每个组件可以带有一个 store,去中心化\\n* 支持全局 store 共享数据,并且按需局部更新组件\\n* 每个组件 store 拥有 update 方法,执行该方法自定局部刷新组件\\n\\n[→ Omis 在线例子](https://codepen.io/collection/XjLaRo/)\\n\\n## 一分钟入门\\n\\n```jsx\\nimport { render, h } from 'omi'\\n\\nconst Counter = (props, store) => {\\n return (\\n
\\n \\n {store.count}\\n \\n
\\n )\\n}\\n\\nCounter.store = _ => {\\n return {\\n count: 1,\\n add() {\\n this.count++\\n this.update()\\n },\\n sub() {\\n this.count--\\n this.update()\\n }\\n }\\n}\\n\\nCounter.css = `\\nspan{\\n color: red;\\n}\\n`\\n\\nrender(, 'body')\\n```\\n\\n也可以直接使用 hyperscript,无需任何编译直接运行:\\n\\n```js\\nconst Counter = (props, store) => {\\n return (\\n h('div', {}, [\\n h('button', { onClick: store.sub }, '-'),\\n h('span', {}, store.count),\\n h('button', { onClick: store.add }, '+')\\n ])\\n )\\n}\\n```\\n\\n## 参数说明\\n\\n```jsx\\nconst Comp = (props, store, _, $) => {\\n\\n}\\n\\nComp.store = (_, $) => {\\n\\n}\\n```\\n\\n* `_` 代表 `component`\\n* `$` 代表 `globalStore`\\n\\n恭喜你已经入门!\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs/zh-cn/introduction.md\n// module id = 52\n// module chunks = 4"],"sourceRoot":""} \ No newline at end of file diff --git a/site/omis/static/js/4.b83b6976.chunk.js.map b/site/omis/static/js/4.b83b6976.chunk.js.map deleted file mode 100644 index e88a1bdb0..000000000 --- a/site/omis/static/js/4.b83b6976.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../static/js/4.b83b6976.chunk.js","docs/zh-cn/introduction.md"],"names":["webpackJsonp","52","module","exports"],"mappings":"AAAAA,cAAc,IAERC,GACA,SAAUC,EAAQC,GCHxBD,EAAAC,QAAA","file":"static/js/4.b83b6976.chunk.js","sourcesContent":["webpackJsonp([4],{\n\n/***/ 52:\n/***/ (function(module, exports) {\n\nmodule.exports = \"## Omis\\n\\nOmis (读 /ˈomɪs/) 是函数式风格,自带 store 且 hyperscript 友好的组件框架,只有 3KB。\\n\\n* 函数式风格但非函数式编程 \\n* 结构-样式-行为分离\\n* hyperscript 视觉上更加友好\\n* 每个组件可以带有一个 store,去中心化\\n* 支持全局 store 共享数据,并且按需局部更新组件\\n* 每个组件 store 拥有 update 方法,执行该方法自定局部刷新组件\\n\\n[→ Omis 在线例子](https://codepen.io/collection/XjLaRo/)\\n\\n## 一分钟入门\\n\\n```jsx\\nimport { render, h } from 'omi'\\n\\nconst Counter = (props, store) => {\\n return (\\n
\\n \\n {store.count}\\n \\n
\\n )\\n}\\n\\nCounter.store = _ => {\\n return {\\n count: 1,\\n add() {\\n this.count++\\n this.update()\\n },\\n sub() {\\n this.count--\\n this.update()\\n }\\n }\\n}\\n\\nCounter.css = `\\nspan{\\n color: red;\\n}\\n`\\n\\nrender(, 'body')\\n```\\n\\n也可以直接使用 hyperscript,无需任何编译直接运行:\\n\\n```js\\nconst Counter = (props, store) => {\\n return (\\n h('div', {}, [\\n h('button', { onClick: store.sub }, '-'),\\n h('span', {}, store.count),\\n h('button', { onClick: store.add }, '+')\\n ])\\n )\\n}\\n```\\n\\n恭喜你已经入门!\\n\"\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/4.b83b6976.chunk.js","module.exports = \"## Omis\\n\\nOmis (读 /ˈomɪs/) 是函数式风格,自带 store 且 hyperscript 友好的组件框架,只有 3KB。\\n\\n* 函数式风格但非函数式编程 \\n* 结构-样式-行为分离\\n* hyperscript 视觉上更加友好\\n* 每个组件可以带有一个 store,去中心化\\n* 支持全局 store 共享数据,并且按需局部更新组件\\n* 每个组件 store 拥有 update 方法,执行该方法自定局部刷新组件\\n\\n[→ Omis 在线例子](https://codepen.io/collection/XjLaRo/)\\n\\n## 一分钟入门\\n\\n```jsx\\nimport { render, h } from 'omi'\\n\\nconst Counter = (props, store) => {\\n return (\\n
\\n \\n {store.count}\\n \\n
\\n )\\n}\\n\\nCounter.store = _ => {\\n return {\\n count: 1,\\n add() {\\n this.count++\\n this.update()\\n },\\n sub() {\\n this.count--\\n this.update()\\n }\\n }\\n}\\n\\nCounter.css = `\\nspan{\\n color: red;\\n}\\n`\\n\\nrender(, 'body')\\n```\\n\\n也可以直接使用 hyperscript,无需任何编译直接运行:\\n\\n```js\\nconst Counter = (props, store) => {\\n return (\\n h('div', {}, [\\n h('button', { onClick: store.sub }, '-'),\\n h('span', {}, store.count),\\n h('button', { onClick: store.add }, '+')\\n ])\\n )\\n}\\n```\\n\\n恭喜你已经入门!\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs/zh-cn/introduction.md\n// module id = 52\n// module chunks = 4"],"sourceRoot":""} \ No newline at end of file diff --git a/site/omis/static/js/9.681a35ad.chunk.js b/site/omis/static/js/9.681a35ad.chunk.js new file mode 100644 index 000000000..f46c1284a --- /dev/null +++ b/site/omis/static/js/9.681a35ad.chunk.js @@ -0,0 +1,2 @@ +webpackJsonp([9],{47:function(e,n){e.exports="## Ref\n\nRef provides a way to access DOM nodes or Components created in render methods.\n\n```jsx\nconst HelloMessage = (props, store, _) => {\n return h('h1', { ref: ele => _.h1 = ele }, `Hello ${props.name}`)\n}\n\nHelloMessage.store = _ => {\n return {\n installed() {\n //h1 dom element\n console.log(_.h1)\n }\n }\n}\n```\n"}}); +//# sourceMappingURL=9.681a35ad.chunk.js.map \ No newline at end of file diff --git a/site/omis/static/js/9.681a35ad.chunk.js.map b/site/omis/static/js/9.681a35ad.chunk.js.map new file mode 100644 index 000000000..4f9ecc42c --- /dev/null +++ b/site/omis/static/js/9.681a35ad.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../static/js/9.681a35ad.chunk.js","docs/en/ref.md"],"names":["webpackJsonp","47","module","exports"],"mappings":"AAAAA,cAAc,IAERC,GACA,SAAUC,EAAQC,GCHxBD,EAAAC,QAAA","file":"static/js/9.681a35ad.chunk.js","sourcesContent":["webpackJsonp([9],{\n\n/***/ 47:\n/***/ (function(module, exports) {\n\nmodule.exports = \"## Ref\\n\\nRef provides a way to access DOM nodes or Components created in render methods.\\n\\n```jsx\\nconst HelloMessage = (props, store, _) => {\\n return h('h1', { ref: ele => _.h1 = ele }, `Hello ${props.name}`)\\n}\\n\\nHelloMessage.store = _ => {\\n return {\\n installed() {\\n //h1 dom element\\n console.log(_.h1)\\n }\\n }\\n}\\n```\\n\"\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/9.681a35ad.chunk.js","module.exports = \"## Ref\\n\\nRef provides a way to access DOM nodes or Components created in render methods.\\n\\n```jsx\\nconst HelloMessage = (props, store, _) => {\\n return h('h1', { ref: ele => _.h1 = ele }, `Hello ${props.name}`)\\n}\\n\\nHelloMessage.store = _ => {\\n return {\\n installed() {\\n //h1 dom element\\n console.log(_.h1)\\n }\\n }\\n}\\n```\\n\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs/en/ref.md\n// module id = 47\n// module chunks = 9"],"sourceRoot":""} \ No newline at end of file diff --git a/site/omis/static/js/9.cd41291b.chunk.js b/site/omis/static/js/9.cd41291b.chunk.js deleted file mode 100644 index 8191ee915..000000000 --- a/site/omis/static/js/9.cd41291b.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -webpackJsonp([9],{47:function(n,e){n.exports="## Ref\n\n```jsx\ndefine('my-element', class extends WeElement {\n onClick = (evt) => {\n console.log(this.h1)\n }\n\n render(props) {\n return (\n
\n

{ this.h1 = e }} onClick={this.onClick}>Hello, world!

\n
\n )\n }\n})\n```\n\nAdd `ref = {e => {this. anyNameYouWant = e} ` to the element, and then you can access the element using `this. anyNameYouWant` in the JS code. You can improve the performance of update in two ways:\n\n* Assignment ahead of time\n* createRef\n\n### Assignment ahead of time\n\n```jsx\ndefine('my-element', class extends WeElement {\n onClick = (evt) => {\n console.log(this.h1)\n }\n\n myRef = e => { this.h1 = e }\n\n render(props) {\n return (\n
\n

Hello, world!

\n
\n )\n }\n})\n```\n\n### createRef\n\n```jsx\ndefine('my-element', class extends WeElement {\n onClick = (evt) => {\n console.log(this.myRef.current) //h1\n }\n\n myRef = createRef()\n\n render(props) {\n return (\n
\n

Hello, world!

\n
\n )\n }\n})\n```"}}); -//# sourceMappingURL=9.cd41291b.chunk.js.map \ No newline at end of file diff --git a/site/omis/static/js/9.cd41291b.chunk.js.map b/site/omis/static/js/9.cd41291b.chunk.js.map deleted file mode 100644 index 8a4ec56f5..000000000 --- a/site/omis/static/js/9.cd41291b.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../static/js/9.cd41291b.chunk.js","docs/en/ref.md"],"names":["webpackJsonp","47","module","exports"],"mappings":"AAAAA,cAAc,IAERC,GACA,SAAUC,EAAQC,GCHxBD,EAAAC,QAAA","file":"static/js/9.cd41291b.chunk.js","sourcesContent":["webpackJsonp([9],{\n\n/***/ 47:\n/***/ (function(module, exports) {\n\nmodule.exports = \"## Ref\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n onClick = (evt) => {\\n console.log(this.h1)\\n }\\n\\n render(props) {\\n return (\\n
\\n

{ this.h1 = e }} onClick={this.onClick}>Hello, world!

\\n
\\n )\\n }\\n})\\n```\\n\\nAdd `ref = {e => {this. anyNameYouWant = e} ` to the element, and then you can access the element using `this. anyNameYouWant` in the JS code. You can improve the performance of update in two ways:\\n\\n* Assignment ahead of time\\n* createRef\\n\\n### Assignment ahead of time\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n onClick = (evt) => {\\n console.log(this.h1)\\n }\\n\\n myRef = e => { this.h1 = e }\\n\\n render(props) {\\n return (\\n
\\n

Hello, world!

\\n
\\n )\\n }\\n})\\n```\\n\\n### createRef\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n onClick = (evt) => {\\n console.log(this.myRef.current) //h1\\n }\\n\\n myRef = createRef()\\n\\n render(props) {\\n return (\\n
\\n

Hello, world!

\\n
\\n )\\n }\\n})\\n```\"\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// static/js/9.cd41291b.chunk.js","module.exports = \"## Ref\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n onClick = (evt) => {\\n console.log(this.h1)\\n }\\n\\n render(props) {\\n return (\\n
\\n

{ this.h1 = e }} onClick={this.onClick}>Hello, world!

\\n
\\n )\\n }\\n})\\n```\\n\\nAdd `ref = {e => {this. anyNameYouWant = e} ` to the element, and then you can access the element using `this. anyNameYouWant` in the JS code. You can improve the performance of update in two ways:\\n\\n* Assignment ahead of time\\n* createRef\\n\\n### Assignment ahead of time\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n onClick = (evt) => {\\n console.log(this.h1)\\n }\\n\\n myRef = e => { this.h1 = e }\\n\\n render(props) {\\n return (\\n
\\n

Hello, world!

\\n
\\n )\\n }\\n})\\n```\\n\\n### createRef\\n\\n```jsx\\ndefine('my-element', class extends WeElement {\\n onClick = (evt) => {\\n console.log(this.myRef.current) //h1\\n }\\n\\n myRef = createRef()\\n\\n render(props) {\\n return (\\n
\\n

Hello, world!

\\n
\\n )\\n }\\n})\\n```\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/docs/en/ref.md\n// module id = 47\n// module chunks = 9"],"sourceRoot":""} \ No newline at end of file diff --git a/site/omis/static/js/cn.00c021ee.js b/site/omis/static/js/cn.00679351.js similarity index 91% rename from site/omis/static/js/cn.00c021ee.js rename to site/omis/static/js/cn.00679351.js index f3ac36f7a..682d41f24 100644 --- a/site/omis/static/js/cn.00c021ee.js +++ b/site/omis/static/js/cn.00679351.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&&n?s[s.length-1]+=o:s===je?s=[o]:s.push(o),n=i;var u=new r;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 i(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function a(e,t){for(var n,r,o=i(e),a=1;a2?[].slice.call(arguments,2):e.children)}function d(e){1==Ue.push(e)&&(Oe.debounceRendering||Re)(y)}function y(){for(var e;e=Ue.pop();)q(e)}function m(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&&b(e,t.nodeName)}return n||e._componentConstructor===t.nodeName}function b(e,t){return e.normalizedNodeName===t||e.nodeName.toLowerCase()===t.toLowerCase()}function v(e){var t=s({},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 g(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 w(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 A(e){var t=e.parentNode;t&&t.removeChild(e)}function x(e,t,n,r,o){if("className"===t&&(t="class"),"key"===t);else if("ref"===t)u(n,null),u(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"===typeof 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,s=r;"string"===typeof n&&(a=w(n)),"string"==typeof r&&(s=w(r));var c={},l=!1;if(a){for(var f in a)"object"!=typeof s||f in s||(c[f]="",l=!0);for(var p in s)s[p]!==a[p]&&(c[p]=s[p],l=!0);l&&e.setStyles(c)}else e.setStyles(s)}else if("dangerouslySetInnerHTML"===t)r&&(e.innerHTML=r.__html||"");else if("o"==t[0]&&"n"==t[1]){var h=t!==(t=t.replace(/Capture$/,""));t=t.toLowerCase().substring(2),r?n||(e.addEventListener(t,O,h),"tap"==t&&(e.addEventListener("touchstart",E,h),e.addEventListener("touchend",j,h))):(e.removeEventListener(t,O,h),"tap"==t&&(e.removeEventListener("touchstart",E,h),e.removeEventListener("touchend",j,h))),(e._listeners||(e._listeners={}))[t]=r}else if("list"!==t&&"type"!==t&&!o&&t in e)_(e,t,null==r?"":r),null!=r&&!1!==r||e.removeAttribute(t);else{var d=o&&t!==(t=t.replace(/^xlink:?/,""));null==r||!1===r?d?e.removeAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase()):e.removeAttribute(t):"function"!==typeof r&&(d?e.setAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase(),r):e.setAttribute(t,r))}else e.className=r||""}function _(e,t,n){try{e[t]=n}catch(e){}}function O(e){return this._listeners[e.type](Oe.event&&Oe.event(e)||e)}function E(e){this.___touchX=e.touches[0].pageX,this.___touchY=e.touches[0].pageY,this.___scrollTop=document.body.scrollTop}function j(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 C(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=typeof t[n];if("function"==r||"object"==r)return!0;if(t[n]!=e[n])return!0}}function q(e,t,n,r){if(!e._disable){var o,i,a,u=e.props,c=e.data,l=e.context,f=e.prevProps||u,p=e.prevState||c,h=e.prevContext||l,d=e.base,y=e.nextBase,m=d||y,b=e._component,g=!1;if(d&&(e.props=f,e.data=p,e.context=h,e.store||2==t||X(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)&&T(o,"_s"+C(e.constructor)),R(o,e.scopedCssAttr),e.getChildContext&&(l=s(s({},l),e.getChildContext()));var w,A,x=o&&o.nodeName,_=Oe.mapping[x];if(_){var O=v(o);i=b,i&&i.constructor===_&&O.key==i.__key?W(i,O,1,l,!1):(w=i,e._component=i=$(_,O,l),i.nextBase=i.nextBase||y,i._parentComponent=e,W(i,O,0,l,!1),q(i,1,n,!0)),A=i.base}else a=m,w=b,w&&(a=e._component=null),(m||1===t)&&(a&&(a._component=null),A=U(a,o,l,n||!d,m&&m.parentNode,!0));if(m&&A!==m&&i!==b){var E=m.parentNode;E&&A!==E&&(E.replaceChild(A,m),w||(m._component=null,D(m,!1)))}if(w&&Z(w),e.base=A,A&&!r){for(var j=e,P=e;P=P._parentComponent;)(j=P).base=A;A._component=j,A._componentConstructor=j.constructor}}if(!d||n?De.unshift(e):g||(e.afterUpdate&&e.afterUpdate(f,p,h),e.updated&&e.updated(f,p,h),Oe.afterUpdate&&Oe.afterUpdate(e)),null!=e._renderCallbacks)for(;e._renderCallbacks.length;)e._renderCallbacks.pop().call(e);Fe||r||M()}}function J(e,t,n,r){for(var o=e&&e._component,i=o,a=e,s=o&&e._componentConstructor===t.nodeName,u=s,c=v(t);o&&!u&&(o=o._parentComponent);)u=o.constructor===t.nodeName;return o&&u&&(!r||o._component)?(W(o,c,3,n,r),e=o.base):(i&&!s&&(Z(i),e=a=null),o=$(t.nodeName,c,n,t),e&&!o.nextBase&&(o.nextBase=e,a=null),W(o,c,1,n,r),e=o.base,a&&e!==a&&(a._component=null,D(a,!1))),e}function Z(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&&ne(t,o.constructor.updatePath))&&(o.use=f(e.data,o.constructor.use),o.update())}),this.onChange&&this.onChange(t))}}function te(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:ye.apply(null,n)}}function be(e){var t=e.base;if(t)for(;t.parentNode;){if(t.parentNode._component)return t.parentNode._component;t=t.parentNode}}function ve(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 ge(e,t,n,r){n=n||{},t=Object.assign({scopedCSS:!0},t);var o={},i=we(e,t,n,r,o);return{css:Object.values(o),html:i}}function we(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"!==typeof e&&!i)return Ze(e);var l=Ke[i];if(l){s=!0;var f,p=xe(e),h=new l(p,n);if(h._disable=h.__x=!0,h.props=p,h.store=n,h.install&&h.install(),h.beforeRender&&h.beforeRender(),f=h.render(h.props,h.data,h.store),t.scopedCSS){if(h.constructor.css||h.css){var d=h.constructor.css?h.constructor.css:"function"===typeof h.css?h.css():h.css,y="_s"+C(h.constructor);o[y]='",T(f,"_s"+C(h.constructor))}h.scopedCSSAttr=e.css,R(f,h.scopedCSSAttr)}return we(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"===typeof A&&(A=ve(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 j=u&&~b.indexOf("\n"),g=0;g";return O||(u&&~b.indexOf("\n")&&(b+="\n"),b+=""),b}function Ae(e,t){for(var n in t)e[n]=t[n];return e}function xe(e){var t=Ae({},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 _e(){return{}}n.d(t,"h",function(){return o}),n.d(t,"createElement",function(){return o}),n.d(t,"cloneElement",function(){return h}),n.d(t,"createRef",function(){return _e}),n.d(t,"Component",function(){return Xe}),n.d(t,"render",function(){return K}),n.d(t,"rerender",function(){return y}),n.d(t,"options",function(){return Oe}),n.d(t,"WeElement",function(){return rt}),n.d(t,"define",function(){return ie}),n.d(t,"rpx",function(){return fe}),n.d(t,"ModelView",function(){return qe}),n.d(t,"defineElement",function(){return ot}),n.d(t,"classNames",function(){return ye}),n.d(t,"extractClass",function(){return me}),n.d(t,"getHost",function(){return be}),n.d(t,"renderToString",function(){return ge});var Oe={scopedStyle:!0,mapping:{},isWeb:!0,staticStyleMapping:{},doc:"object"===typeof document?document:null,root:function(){return"object"===typeof 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=[],Ce=Object.getOwnPropertySymbols,Pe=Object.prototype.hasOwnProperty,Se=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 Re=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,De=[],Fe=0,ze=!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){Y(this,e),this.props=a(l(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),q(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 pe(this,t),he(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=ie;Oe.root.Omi={h:o,createElement:o,cloneElement:h,createRef:_e,Component:Xe,render:K,rerender:y,options:Oe,WeElement:rt,define:ie,rpx:fe,ModelView:qe,defineElement:ot,classNames:ye,extractClass:me,getHost:be,renderToString:ge},Oe.root.omi=Oe.root.Omi,Oe.root.Omi.version="omio-2.0.5";var it={h:o,createElement:o,cloneElement:h,createRef:_e,Component:Xe,render:K,rerender:y,options:Oe,WeElement:rt,define:ie,rpx:fe,ModelView:qe,defineElement:ot,classNames:ye,extractClass:me,getHost:be,renderToString:ge};t.default=it}.call(t,n(2))},function(e,t){function n(e,t){var n=e[1]||"",o=e[3];if(!o)return n;if(t&&"function"===typeof btoa){var i=r(o);return[n].concat(o.sources.map(function(e){return"/*# sourceURL="+o.sourceRoot+e+" */"})).concat([i]).join("\n")}return[n].join("\n")}function r(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 r=n(t,e);return t[2]?"@media "+t[2]+"{"+r+"}":r}).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 h(e,t){t=t||{};var n=t.body;if(e instanceof h){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 d(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"];h.prototype.clone=function(){return new h(this,{body:this._bodyInit})},f.call(h.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=h,e.Response=m,e.fetch=function(e,t){return new Promise(function(n,r){var o=new h(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:this)},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:"Omis",list:[{name:"\u7b80\u4ecb",md:"introduction"},{name:"\u5b89\u88c5",md:"installation"}]},{title:"\u57fa\u7840\u6982\u5ff5",list:[{name:"JSX-Hyperscript",md:"jsx-hyperscript"},{name:"Props",md:"props"},{name:"\u4e8b\u4ef6",md:"event"},{name:"\u751f\u547d\u5468\u671f",md:"lifecycle"},{name:"GlobalStore-$",md:"global-store"},{name:"CSS",md:"css"}]}],en:[{title:"Omis",list:[{name:"Introduction",md:"introduction"},{name:"Installation",md:"installation"}]},{title:"Base",list:[{name:"JSX-Hyperscript",md:"jsx-hyperscript"},{name:"Props",md:"props"},{name:"Event",md:"event"},{name:"Lifecycle",md:"lifecycle"},{name:"GlobalStore-$",md:"global-store"},{name:"CSS",md:"css"}]}]}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){function r(e){var t=!1;window.history.length!==c.historyLength||c.route._routeByTo||(t=!0),c.route._routeByTo=!1,c.historyLength=window.history.length;var n=!1;if("hashchange"===e.type&&c.route.before&&(n=!1===c.route.before(e)),!n){var r=window.location.hash.replace("#","");""===r&&(r="/");var i=!0;Object.keys(u).every(function(e){var n=r.split("?")[0].match(u[e].reg);if(n){var s=e.match(u[e].reg);return c.route.params=o(n,s),c.route.query=a(r),u[e].callback({params:c.route.params,query:a(r),data:c.route.data,byNative:t}),c.route.data=null,i=!1,!1}return!0}),i&&u["*"]&&u["*"].callback({byNative:t}),"hashchange"===e.type&&c.route.after&&c.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){u[e]={callback:t,reg:s(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,C=b||c;r.push({name:v||o++,prefix:b,delimiter:C,optional:E,repeat:O,pattern:j?a(j):"[^"+i(C===c?C:C+c)+"]+?"})}}return(u||s2;)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&&n?s[s.length-1]+=o:s===je?s=[o]:s.push(o),n=i;var u=new r;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 i(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function a(e,t){for(var n,r,o=i(e),a=1;a2?[].slice.call(arguments,2):e.children)}function d(e){1==Ue.push(e)&&(Oe.debounceRendering||Re)(y)}function y(){for(var e;e=Ue.pop();)q(e)}function m(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&&b(e,t.nodeName)}return n||e._componentConstructor===t.nodeName}function b(e,t){return e.normalizedNodeName===t||e.nodeName.toLowerCase()===t.toLowerCase()}function v(e){var t=s({},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 g(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 w(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 A(e){var t=e.parentNode;t&&t.removeChild(e)}function x(e,t,n,r,o){if("className"===t&&(t="class"),"key"===t);else if("ref"===t)u(n,null),u(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"===typeof 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,s=r;"string"===typeof n&&(a=w(n)),"string"==typeof r&&(s=w(r));var c={},l=!1;if(a){for(var f in a)"object"!=typeof s||f in s||(c[f]="",l=!0);for(var p in s)s[p]!==a[p]&&(c[p]=s[p],l=!0);l&&e.setStyles(c)}else e.setStyles(s)}else if("dangerouslySetInnerHTML"===t)r&&(e.innerHTML=r.__html||"");else if("o"==t[0]&&"n"==t[1]){var h=t!==(t=t.replace(/Capture$/,""));t=t.toLowerCase().substring(2),r?n||(e.addEventListener(t,O,h),"tap"==t&&(e.addEventListener("touchstart",E,h),e.addEventListener("touchend",j,h))):(e.removeEventListener(t,O,h),"tap"==t&&(e.removeEventListener("touchstart",E,h),e.removeEventListener("touchend",j,h))),(e._listeners||(e._listeners={}))[t]=r}else if("list"!==t&&"type"!==t&&!o&&t in e)_(e,t,null==r?"":r),null!=r&&!1!==r||e.removeAttribute(t);else{var d=o&&t!==(t=t.replace(/^xlink:?/,""));null==r||!1===r?d?e.removeAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase()):e.removeAttribute(t):"function"!==typeof r&&(d?e.setAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase(),r):e.setAttribute(t,r))}else e.className=r||""}function _(e,t,n){try{e[t]=n}catch(e){}}function O(e){return this._listeners[e.type](Oe.event&&Oe.event(e)||e)}function E(e){this.___touchX=e.touches[0].pageX,this.___touchY=e.touches[0].pageY,this.___scrollTop=document.body.scrollTop}function j(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 C(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=typeof t[n];if("function"==r||"object"==r)return!0;if(t[n]!=e[n])return!0}}function q(e,t,n,r){if(!e._disable){var o,i,a,u=e.props,c=e.data,l=e.context,f=e.prevProps||u,p=e.prevState||c,h=e.prevContext||l,d=e.base,y=e.nextBase,m=d||y,b=e._component,g=!1;if(d&&(e.props=f,e.data=p,e.context=h,e.store||2==t||X(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)&&T(o,"_s"+C(e.constructor)),R(o,e.scopedCssAttr),e.getChildContext&&(l=s(s({},l),e.getChildContext()));var w,A,x=o&&o.nodeName,_=Oe.mapping[x];if(_){var O=v(o);i=b,i&&i.constructor===_&&O.key==i.__key?W(i,O,1,l,!1):(w=i,e._component=i=$(_,O,l),i.nextBase=i.nextBase||y,i._parentComponent=e,W(i,O,0,l,!1),q(i,1,n,!0)),A=i.base}else a=m,w=b,w&&(a=e._component=null),(m||1===t)&&(a&&(a._component=null),A=U(a,o,l,n||!d,m&&m.parentNode,!0));if(m&&A!==m&&i!==b){var E=m.parentNode;E&&A!==E&&(E.replaceChild(A,m),w||(m._component=null,D(m,!1)))}if(w&&Z(w),e.base=A,A&&!r){for(var j=e,P=e;P=P._parentComponent;)(j=P).base=A;A._component=j,A._componentConstructor=j.constructor}}if(!d||n?De.unshift(e):g||(e.afterUpdate&&e.afterUpdate(f,p,h),e.updated&&e.updated(f,p,h),Oe.afterUpdate&&Oe.afterUpdate(e)),null!=e._renderCallbacks)for(;e._renderCallbacks.length;)e._renderCallbacks.pop().call(e);Fe||r||M()}}function J(e,t,n,r){for(var o=e&&e._component,i=o,a=e,s=o&&e._componentConstructor===t.nodeName,u=s,c=v(t);o&&!u&&(o=o._parentComponent);)u=o.constructor===t.nodeName;return o&&u&&(!r||o._component)?(W(o,c,3,n,r),e=o.base):(i&&!s&&(Z(i),e=a=null),o=$(t.nodeName,c,n,t),e&&!o.nextBase&&(o.nextBase=e,a=null),W(o,c,1,n,r),e=o.base,a&&e!==a&&(a._component=null,D(a,!1))),e}function Z(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&&ne(t,o.constructor.updatePath))&&(o.use=f(e.data,o.constructor.use),o.update())}),this.onChange&&this.onChange(t))}}function te(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:ye.apply(null,n)}}function be(e){var t=e.base;if(t)for(;t.parentNode;){if(t.parentNode._component)return t.parentNode._component;t=t.parentNode}}function ve(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 ge(e,t,n,r){n=n||{},t=Object.assign({scopedCSS:!0},t);var o={},i=we(e,t,n,r,o);return{css:Object.values(o),html:i}}function we(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"!==typeof e&&!i)return Ze(e);var l=Ke[i];if(l){s=!0;var f,p=xe(e),h=new l(p,n);if(h._disable=h.__x=!0,h.props=p,h.store=n,h.install&&h.install(),h.beforeRender&&h.beforeRender(),f=h.render(h.props,h.data,h.store),t.scopedCSS){if(h.constructor.css||h.css){var d=h.constructor.css?h.constructor.css:"function"===typeof h.css?h.css():h.css,y="_s"+C(h.constructor);o[y]='",T(f,"_s"+C(h.constructor))}h.scopedCSSAttr=e.css,R(f,h.scopedCSSAttr)}return we(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"===typeof A&&(A=ve(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 j=u&&~b.indexOf("\n"),g=0;g";return O||(u&&~b.indexOf("\n")&&(b+="\n"),b+=""),b}function Ae(e,t){for(var n in t)e[n]=t[n];return e}function xe(e){var t=Ae({},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 _e(){return{}}n.d(t,"h",function(){return o}),n.d(t,"createElement",function(){return o}),n.d(t,"cloneElement",function(){return h}),n.d(t,"createRef",function(){return _e}),n.d(t,"Component",function(){return Xe}),n.d(t,"render",function(){return K}),n.d(t,"rerender",function(){return y}),n.d(t,"options",function(){return Oe}),n.d(t,"WeElement",function(){return rt}),n.d(t,"define",function(){return ie}),n.d(t,"rpx",function(){return fe}),n.d(t,"ModelView",function(){return qe}),n.d(t,"defineElement",function(){return ot}),n.d(t,"classNames",function(){return ye}),n.d(t,"extractClass",function(){return me}),n.d(t,"getHost",function(){return be}),n.d(t,"renderToString",function(){return ge});var Oe={scopedStyle:!0,mapping:{},isWeb:!0,staticStyleMapping:{},doc:"object"===typeof document?document:null,root:function(){return"object"===typeof 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=[],Ce=Object.getOwnPropertySymbols,Pe=Object.prototype.hasOwnProperty,Se=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 Re=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,De=[],Fe=0,ze=!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){Y(this,e),this.props=a(l(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),q(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 pe(this,t),he(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=ie;Oe.root.Omi={h:o,createElement:o,cloneElement:h,createRef:_e,Component:Xe,render:K,rerender:y,options:Oe,WeElement:rt,define:ie,rpx:fe,ModelView:qe,defineElement:ot,classNames:ye,extractClass:me,getHost:be,renderToString:ge},Oe.root.omi=Oe.root.Omi,Oe.root.Omi.version="omio-2.0.5";var it={h:o,createElement:o,cloneElement:h,createRef:_e,Component:Xe,render:K,rerender:y,options:Oe,WeElement:rt,define:ie,rpx:fe,ModelView:qe,defineElement:ot,classNames:ye,extractClass:me,getHost:be,renderToString:ge};t.default=it}.call(t,n(2))},function(e,t){function n(e,t){var n=e[1]||"",o=e[3];if(!o)return n;if(t&&"function"===typeof btoa){var i=r(o);return[n].concat(o.sources.map(function(e){return"/*# sourceURL="+o.sourceRoot+e+" */"})).concat([i]).join("\n")}return[n].join("\n")}function r(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 r=n(t,e);return t[2]?"@media "+t[2]+"{"+r+"}":r}).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 h(e,t){t=t||{};var n=t.body;if(e instanceof h){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 d(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"];h.prototype.clone=function(){return new h(this,{body:this._bodyInit})},f.call(h.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=h,e.Response=m,e.fetch=function(e,t){return new Promise(function(n,r){var o=new h(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:this)},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:"Omis",list:[{name:"\u7b80\u4ecb",md:"introduction"},{name:"\u5b89\u88c5",md:"installation"}]},{title:"\u57fa\u7840\u6982\u5ff5",list:[{name:"JSX-Hyperscript",md:"jsx-hyperscript"},{name:"Props",md:"props"},{name:"\u4e8b\u4ef6",md:"event"},{name:"\u751f\u547d\u5468\u671f",md:"lifecycle"},{name:"Ref",md:"ref"},{name:"GlobalStore-$",md:"global-store"},{name:"CSS",md:"css"}]}],en:[{title:"Omis",list:[{name:"Introduction",md:"introduction"},{name:"Installation",md:"installation"}]},{title:"Base",list:[{name:"JSX-Hyperscript",md:"jsx-hyperscript"},{name:"Props",md:"props"},{name:"Event",md:"event"},{name:"Lifecycle",md:"lifecycle"},{name:"Ref",md:"ref"},{name:"GlobalStore-$",md:"global-store"},{name:"CSS",md:"css"}]}]}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){function r(e){var t=!1;window.history.length!==c.historyLength||c.route._routeByTo||(t=!0),c.route._routeByTo=!1,c.historyLength=window.history.length;var n=!1;if("hashchange"===e.type&&c.route.before&&(n=!1===c.route.before(e)),!n){var r=window.location.hash.replace("#","");""===r&&(r="/");var i=!0;Object.keys(u).every(function(e){var n=r.split("?")[0].match(u[e].reg);if(n){var s=e.match(u[e].reg);return c.route.params=o(n,s),c.route.query=a(r),u[e].callback({params:c.route.params,query:a(r),data:c.route.data,byNative:t}),c.route.data=null,i=!1,!1}return!0}),i&&u["*"]&&u["*"].callback({byNative:t}),"hashchange"===e.type&&c.route.after&&c.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){u[e]={callback:t,reg:s(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,C=b||c;r.push({name:v||o++,prefix:b,delimiter:C,optional:E,repeat:O,pattern:j?a(j):"[^"+i(C===c?C:C+c)+"]+?"})}}return(u||sHello!`\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==='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=='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!=='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==='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};/* harmony default export */ __webpack_exports__[\"default\"] = (omi);//# sourceMappingURL=omi.esm.js.map\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(2)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\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(){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:this);\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:'Omis',list:[{name:'简介',md:'introduction'},{name:'安装',md:'installation'}]},{title:'基础概念',list:[{name:'JSX-Hyperscript',md:'jsx-hyperscript'},{name:'Props',md:'props'},{name:'事件',md:'event'},{name:'生命周期',md:'lifecycle'},{name:'Ref',md:'ref'},{name:'GlobalStore-$',md:'global-store'},{name:'CSS',md:'css'}]}],en:[{title:'Omis',list:[{name:'Introduction',md:'introduction'},{name:'Installation',md:'installation'}]},{title:'Base',list:[{name:'JSX-Hyperscript',md:'jsx-hyperscript'},{name:'Props',md:'props'},{name:'Event',md:'event'},{name:'Lifecycle',md:'lifecycle'},{name:'Ref',md:'ref'},{name:'GlobalStore-$',md:'global-store'},{name:'CSS',md:'css'}]}]}};exports.default=config;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (immutable) */ __webpack_exports__[\"default\"] = route;\n/*!\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!=='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// ../node_modules/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 static use = [\n 'position'\n ]\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 = 18 19","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 = 18 19","\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 = 18 19","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 = 18 19","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\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 = 18 19","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 = 18 19","\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 = 18 19","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 = 18 19","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 = 18 19","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 = 18 19","\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 = 18 19","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 = 18 19","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 = 18 19","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 = 18 19","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 = 18 19","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 = 18 19","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: 'Omis',\n list: [\n { name: '简介', md: 'introduction' },\n { name: '安装', md: 'installation' }\n ]\n },\n {\n title: '基础概念',\n list: [\n { name: 'JSX-Hyperscript', md: 'jsx-hyperscript' },\n { name: 'Props', md: 'props' },\n { name: '事件', md: 'event' },\n { name: '生命周期', md: 'lifecycle' },\n { name: 'Ref', md: 'ref' },\n { name: 'GlobalStore-$', md: 'global-store' },\n { name: 'CSS', md: 'css' }\n ]\n }\n ],\n en: [\n {\n title: 'Omis',\n list: [\n { name: 'Introduction', md: 'introduction' },\n { name: 'Installation', md: 'installation' }\n ]\n },\n {\n title: 'Base',\n list: [\n { name: 'JSX-Hyperscript', md: 'jsx-hyperscript' },\n { name: 'Props', md: 'props' },\n { name: 'Event', md: 'event' },\n { name: 'Lifecycle', md: 'lifecycle' },\n { name: 'Ref', md: 'ref' },\n { name: 'GlobalStore-$', md: 'global-store' },\n { name: 'CSS', md: 'css' }\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/css.md\": [\n\t\t39,\n\t\t17\n\t],\n\t\"./en/event.md\": [\n\t\t40,\n\t\t16\n\t],\n\t\"./en/global-store.md\": [\n\t\t41,\n\t\t15\n\t],\n\t\"./en/installation.md\": [\n\t\t42,\n\t\t14\n\t],\n\t\"./en/introduction.md\": [\n\t\t43,\n\t\t13\n\t],\n\t\"./en/jsx-hyperscript.md\": [\n\t\t44,\n\t\t12\n\t],\n\t\"./en/lifecycle.md\": [\n\t\t45,\n\t\t11\n\t],\n\t\"./en/props.md\": [\n\t\t46,\n\t\t10\n\t],\n\t\"./en/ref.md\": [\n\t\t47,\n\t\t9\n\t],\n\t\"./zh-cn/css.md\": [\n\t\t48,\n\t\t8\n\t],\n\t\"./zh-cn/event.md\": [\n\t\t49,\n\t\t7\n\t],\n\t\"./zh-cn/global-store.md\": [\n\t\t50,\n\t\t6\n\t],\n\t\"./zh-cn/installation.md\": [\n\t\t51,\n\t\t5\n\t],\n\t\"./zh-cn/introduction.md\": [\n\t\t52,\n\t\t4\n\t],\n\t\"./zh-cn/jsx-hyperscript.md\": [\n\t\t53,\n\t\t3\n\t],\n\t\"./zh-cn/lifecycle.md\": [\n\t\t54,\n\t\t2\n\t],\n\t\"./zh-cn/props.md\": [\n\t\t55,\n\t\t1\n\t],\n\t\"./zh-cn/ref.md\": [\n\t\t56,\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 = 18 19","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/omis/static/js/cn.00c021ee.js.map b/site/omis/static/js/cn.00c021ee.js.map deleted file mode 100644 index d1478ff80..000000000 --- a/site/omis/static/js/cn.00c021ee.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../static/js/cn.00c021ee.js","../webpack/bootstrap 3c67821129d63caad76c","../../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?75e9","elements/my-head/_index.css","elements/my-content/index.js","elements/my-footer/index.js","webpack:///./src/elements/my-footer/_index.css?ddec","elements/my-footer/_index.css","webpack:///./src/elements/my-content/_index.css?5504","elements/my-content/_index.css","elements/my-sidebar/index.js","elements/my-list/index.js","webpack:///./src/elements/my-list/_index.css?c2d6","elements/my-list/_index.css","webpack:///./src/elements/my-sidebar/_index.css?5b3a","elements/my-sidebar/_index.css","elements/my-demo/index.js","webpack:///./src/elements/my-demo/_index.css?573a","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","19","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","setTimeout","appendChild","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error","s","__webpack_exports__","value","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","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","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","WeElement","ModelView","defineElement","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","_Component","vm","char","ignoreLines","Omi","omi","version","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","default","_temp","_ret","_len","_key","toggleMenus","evt","toogleSidebar","stopPropagation","hideSidebar","onClick","alt","href","logo","lan","hash","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","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","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/css.md","./en/event.md","./en/global-store.md","./en/installation.md","./en/introduction.md","./en/jsx-hyperscript.md","./en/lifecycle.md","./en/props.md","./en/ref.md","./zh-cn/css.md","./zh-cn/event.md","./zh-cn/global-store.md","./zh-cn/installation.md","./zh-cn/introduction.md","./zh-cn/jsx-hyperscript.md","./zh-cn/lifecycle.md","./zh-cn/props.md","./zh-cn/ref.md","_store","_store2"],"mappings":"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","file":"static/js/cn.00c021ee.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\t19: 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\":\"39ef1a0a\",\"1\":\"50ce9893\",\"2\":\"e1f2d88b\",\"3\":\"f2d1a5c5\",\"4\":\"b83b6976\",\"5\":\"bcc359c6\",\"6\":\"e19277b4\",\"7\":\"ba732eb4\",\"8\":\"8d224a42\",\"9\":\"cd41291b\",\"10\":\"079da8e1\",\"11\":\"539ad1d3\",\"12\":\"4e8c5423\",\"13\":\"395c8cbd\",\"14\":\"7a34335f\",\"15\":\"37ec360b\",\"16\":\"90a95764\",\"17\":\"4b2bd9bb\"}[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 = 57);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return h; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createElement\", function() { return h; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cloneElement\", function() { return cloneElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createRef\", function() { return createRef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Component\", function() { return Component; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rerender\", function() { return rerender; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"options\", function() { return options; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WeElement\", function() { return WeElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"define\", function() { return define; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rpx\", function() { return rpx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ModelView\", function() { return ModelView; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineElement\", function() { return defineElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"classNames\", function() { return classNames; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extractClass\", function() { return extractClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getHost\", function() { return getHost; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderToString\", function() { return renderToString; });\n/**\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!=='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==='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==='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=='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!=='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==='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};/* harmony default export */ __webpack_exports__[\"default\"] = (omi);//# sourceMappingURL=omi.esm.js.map\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(2)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\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(){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:this);\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:'Omis',list:[{name:'简介',md:'introduction'},{name:'安装',md:'installation'}]},{title:'基础概念',list:[{name:'JSX-Hyperscript',md:'jsx-hyperscript'},{name:'Props',md:'props'},{name:'事件',md:'event'},{name:'生命周期',md:'lifecycle'},// { name: 'Ref', md: 'ref' },\n{name:'GlobalStore-$',md:'global-store'},{name:'CSS',md:'css'}]}],en:[{title:'Omis',list:[{name:'Introduction',md:'introduction'},{name:'Installation',md:'installation'}]},{title:'Base',list:[{name:'JSX-Hyperscript',md:'jsx-hyperscript'},{name:'Props',md:'props'},{name:'Event',md:'event'},{name:'Lifecycle',md:'lifecycle'},// { name: 'Ref', md: 'ref' },\n{name:'GlobalStore-$',md:'global-store'},{name:'CSS',md:'css'}]}]}};exports.default=config;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (immutable) */ __webpack_exports__[\"default\"] = route;\n/*!\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!=='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// ../node_modules/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 static use = [\n 'position'\n ]\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 = 18 19","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 = 18 19","\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 = 18 19","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 = 18 19","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\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 = 18 19","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 = 18 19","\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 = 18 19","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 = 18 19","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 = 18 19","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 = 18 19","\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 = 18 19","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 = 18 19","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 = 18 19","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 = 18 19","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 = 18 19","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 = 18 19","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: 'Omis',\n list: [\n { name: '简介', md: 'introduction' },\n { name: '安装', md: 'installation' }\n ]\n },\n {\n title: '基础概念',\n list: [\n { name: 'JSX-Hyperscript', md: 'jsx-hyperscript' },\n { name: 'Props', md: 'props' },\n { name: '事件', md: 'event' },\n { name: '生命周期', md: 'lifecycle' },\n // { name: 'Ref', md: 'ref' },\n { name: 'GlobalStore-$', md: 'global-store' },\n { name: 'CSS', md: 'css' }\n ]\n }\n ],\n en: [\n {\n title: 'Omis',\n list: [\n { name: 'Introduction', md: 'introduction' },\n { name: 'Installation', md: 'installation' }\n ]\n },\n {\n title: 'Base',\n list: [\n { name: 'JSX-Hyperscript', md: 'jsx-hyperscript' },\n { name: 'Props', md: 'props' },\n { name: 'Event', md: 'event' },\n { name: 'Lifecycle', md: 'lifecycle' },\n // { name: 'Ref', md: 'ref' },\n { name: 'GlobalStore-$', md: 'global-store' },\n { name: 'CSS', md: 'css' }\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/css.md\": [\n\t\t39,\n\t\t17\n\t],\n\t\"./en/event.md\": [\n\t\t40,\n\t\t16\n\t],\n\t\"./en/global-store.md\": [\n\t\t41,\n\t\t15\n\t],\n\t\"./en/installation.md\": [\n\t\t42,\n\t\t14\n\t],\n\t\"./en/introduction.md\": [\n\t\t43,\n\t\t13\n\t],\n\t\"./en/jsx-hyperscript.md\": [\n\t\t44,\n\t\t12\n\t],\n\t\"./en/lifecycle.md\": [\n\t\t45,\n\t\t11\n\t],\n\t\"./en/props.md\": [\n\t\t46,\n\t\t10\n\t],\n\t\"./en/ref.md\": [\n\t\t47,\n\t\t9\n\t],\n\t\"./zh-cn/css.md\": [\n\t\t48,\n\t\t8\n\t],\n\t\"./zh-cn/event.md\": [\n\t\t49,\n\t\t7\n\t],\n\t\"./zh-cn/global-store.md\": [\n\t\t50,\n\t\t6\n\t],\n\t\"./zh-cn/installation.md\": [\n\t\t51,\n\t\t5\n\t],\n\t\"./zh-cn/introduction.md\": [\n\t\t52,\n\t\t4\n\t],\n\t\"./zh-cn/jsx-hyperscript.md\": [\n\t\t53,\n\t\t3\n\t],\n\t\"./zh-cn/lifecycle.md\": [\n\t\t54,\n\t\t2\n\t],\n\t\"./zh-cn/props.md\": [\n\t\t55,\n\t\t1\n\t],\n\t\"./zh-cn/ref.md\": [\n\t\t56,\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 = 18 19","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/omis/static/js/index.0673f9b8.js.map b/site/omis/static/js/index.0673f9b8.js.map deleted file mode 100644 index dcc5381f8..000000000 --- a/site/omis/static/js/index.0673f9b8.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../static/js/index.0673f9b8.js","../webpack/bootstrap 3c67821129d63caad76c","../../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?75e9","elements/my-head/_index.css","elements/my-content/index.js","elements/my-footer/index.js","webpack:///./src/elements/my-footer/_index.css?ddec","elements/my-footer/_index.css","webpack:///./src/elements/my-content/_index.css?5504","elements/my-content/_index.css","elements/my-sidebar/index.js","elements/my-list/index.js","webpack:///./src/elements/my-list/_index.css?c2d6","elements/my-list/_index.css","webpack:///./src/elements/my-sidebar/_index.css?5b3a","elements/my-sidebar/_index.css","elements/my-demo/index.js","webpack:///./src/elements/my-demo/_index.css?573a","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","18","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","setTimeout","appendChild","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error","s","__webpack_exports__","value","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","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","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","WeElement","ModelView","defineElement","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","_Component","vm","char","ignoreLines","Omi","omi","version","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","default","_temp","_ret","_len","_key","toggleMenus","evt","toogleSidebar","stopPropagation","hideSidebar","onClick","alt","href","logo","lan","hash","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","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","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/css.md","./en/event.md","./en/global-store.md","./en/installation.md","./en/introduction.md","./en/jsx-hyperscript.md","./en/lifecycle.md","./en/props.md","./en/ref.md","./zh-cn/css.md","./zh-cn/event.md","./zh-cn/global-store.md","./zh-cn/installation.md","./zh-cn/introduction.md","./zh-cn/jsx-hyperscript.md","./zh-cn/lifecycle.md","./zh-cn/props.md","./zh-cn/ref.md","_store","_store2"],"mappings":"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","file":"static/js/index.0673f9b8.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\t18: 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\":\"39ef1a0a\",\"1\":\"50ce9893\",\"2\":\"e1f2d88b\",\"3\":\"f2d1a5c5\",\"4\":\"b83b6976\",\"5\":\"bcc359c6\",\"6\":\"e19277b4\",\"7\":\"ba732eb4\",\"8\":\"8d224a42\",\"9\":\"cd41291b\",\"10\":\"079da8e1\",\"11\":\"539ad1d3\",\"12\":\"4e8c5423\",\"13\":\"395c8cbd\",\"14\":\"7a34335f\",\"15\":\"37ec360b\",\"16\":\"90a95764\",\"17\":\"4b2bd9bb\"}[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 = 59);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"h\", function() { return h; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createElement\", function() { return h; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"cloneElement\", function() { return cloneElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"createRef\", function() { return createRef; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Component\", function() { return Component; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"render\", function() { return render; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rerender\", function() { return rerender; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"options\", function() { return options; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WeElement\", function() { return WeElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"define\", function() { return define; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"rpx\", function() { return rpx; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ModelView\", function() { return ModelView; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"defineElement\", function() { return defineElement; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"classNames\", function() { return classNames; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"extractClass\", function() { return extractClass; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"getHost\", function() { return getHost; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"renderToString\", function() { return renderToString; });\n/**\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!=='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==='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==='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=='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!=='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==='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};/* harmony default export */ __webpack_exports__[\"default\"] = (omi);//# sourceMappingURL=omi.esm.js.map\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(2)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\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(){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:this);\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:'Omis',list:[{name:'简介',md:'introduction'},{name:'安装',md:'installation'}]},{title:'基础概念',list:[{name:'JSX-Hyperscript',md:'jsx-hyperscript'},{name:'Props',md:'props'},{name:'事件',md:'event'},{name:'生命周期',md:'lifecycle'},// { name: 'Ref', md: 'ref' },\n{name:'GlobalStore-$',md:'global-store'},{name:'CSS',md:'css'}]}],en:[{title:'Omis',list:[{name:'Introduction',md:'introduction'},{name:'Installation',md:'installation'}]},{title:'Base',list:[{name:'JSX-Hyperscript',md:'jsx-hyperscript'},{name:'Props',md:'props'},{name:'Event',md:'event'},{name:'Lifecycle',md:'lifecycle'},// { name: 'Ref', md: 'ref' },\n{name:'GlobalStore-$',md:'global-store'},{name:'CSS',md:'css'}]}]}};exports.default=config;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (immutable) */ __webpack_exports__[\"default\"] = route;\n/*!\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!=='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// ../node_modules/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 static use = [\n 'position'\n ]\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 = 18 19","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 = 18 19","\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 = 18 19","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 = 18 19","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\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 = 18 19","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 = 18 19","\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 = 18 19","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 = 18 19","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 = 18 19","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 = 18 19","\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 = 18 19","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 = 18 19","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 = 18 19","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 = 18 19","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 = 18 19","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 = 18 19","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: 'Omis',\n list: [\n { name: '简介', md: 'introduction' },\n { name: '安装', md: 'installation' }\n ]\n },\n {\n title: '基础概念',\n list: [\n { name: 'JSX-Hyperscript', md: 'jsx-hyperscript' },\n { name: 'Props', md: 'props' },\n { name: '事件', md: 'event' },\n { name: '生命周期', md: 'lifecycle' },\n // { name: 'Ref', md: 'ref' },\n { name: 'GlobalStore-$', md: 'global-store' },\n { name: 'CSS', md: 'css' }\n ]\n }\n ],\n en: [\n {\n title: 'Omis',\n list: [\n { name: 'Introduction', md: 'introduction' },\n { name: 'Installation', md: 'installation' }\n ]\n },\n {\n title: 'Base',\n list: [\n { name: 'JSX-Hyperscript', md: 'jsx-hyperscript' },\n { name: 'Props', md: 'props' },\n { name: 'Event', md: 'event' },\n { name: 'Lifecycle', md: 'lifecycle' },\n // { name: 'Ref', md: 'ref' },\n { name: 'GlobalStore-$', md: 'global-store' },\n { name: 'CSS', md: 'css' }\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/css.md\": [\n\t\t39,\n\t\t17\n\t],\n\t\"./en/event.md\": [\n\t\t40,\n\t\t16\n\t],\n\t\"./en/global-store.md\": [\n\t\t41,\n\t\t15\n\t],\n\t\"./en/installation.md\": [\n\t\t42,\n\t\t14\n\t],\n\t\"./en/introduction.md\": [\n\t\t43,\n\t\t13\n\t],\n\t\"./en/jsx-hyperscript.md\": [\n\t\t44,\n\t\t12\n\t],\n\t\"./en/lifecycle.md\": [\n\t\t45,\n\t\t11\n\t],\n\t\"./en/props.md\": [\n\t\t46,\n\t\t10\n\t],\n\t\"./en/ref.md\": [\n\t\t47,\n\t\t9\n\t],\n\t\"./zh-cn/css.md\": [\n\t\t48,\n\t\t8\n\t],\n\t\"./zh-cn/event.md\": [\n\t\t49,\n\t\t7\n\t],\n\t\"./zh-cn/global-store.md\": [\n\t\t50,\n\t\t6\n\t],\n\t\"./zh-cn/installation.md\": [\n\t\t51,\n\t\t5\n\t],\n\t\"./zh-cn/introduction.md\": [\n\t\t52,\n\t\t4\n\t],\n\t\"./zh-cn/jsx-hyperscript.md\": [\n\t\t53,\n\t\t3\n\t],\n\t\"./zh-cn/lifecycle.md\": [\n\t\t54,\n\t\t2\n\t],\n\t\"./zh-cn/props.md\": [\n\t\t55,\n\t\t1\n\t],\n\t\"./zh-cn/ref.md\": [\n\t\t56,\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 = 18 19","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/omis/static/js/index.0673f9b8.js b/site/omis/static/js/index.55d02fa3.js similarity index 91% rename from site/omis/static/js/index.0673f9b8.js rename to site/omis/static/js/index.55d02fa3.js index 4aae565ac..c8463ac80 100644 --- a/site/omis/static/js/index.0673f9b8.js +++ b/site/omis/static/js/index.55d02fa3.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&&n?s[s.length-1]+=o:s===je?s=[o]:s.push(o),n=i;var u=new r;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 i(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function a(e,t){for(var n,r,o=i(e),a=1;a2?[].slice.call(arguments,2):e.children)}function d(e){1==Ue.push(e)&&(Oe.debounceRendering||Re)(y)}function y(){for(var e;e=Ue.pop();)q(e)}function m(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&&b(e,t.nodeName)}return n||e._componentConstructor===t.nodeName}function b(e,t){return e.normalizedNodeName===t||e.nodeName.toLowerCase()===t.toLowerCase()}function v(e){var t=s({},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 g(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 w(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 A(e){var t=e.parentNode;t&&t.removeChild(e)}function x(e,t,n,r,o){if("className"===t&&(t="class"),"key"===t);else if("ref"===t)u(n,null),u(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"===typeof 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,s=r;"string"===typeof n&&(a=w(n)),"string"==typeof r&&(s=w(r));var c={},l=!1;if(a){for(var f in a)"object"!=typeof s||f in s||(c[f]="",l=!0);for(var p in s)s[p]!==a[p]&&(c[p]=s[p],l=!0);l&&e.setStyles(c)}else e.setStyles(s)}else if("dangerouslySetInnerHTML"===t)r&&(e.innerHTML=r.__html||"");else if("o"==t[0]&&"n"==t[1]){var h=t!==(t=t.replace(/Capture$/,""));t=t.toLowerCase().substring(2),r?n||(e.addEventListener(t,O,h),"tap"==t&&(e.addEventListener("touchstart",E,h),e.addEventListener("touchend",j,h))):(e.removeEventListener(t,O,h),"tap"==t&&(e.removeEventListener("touchstart",E,h),e.removeEventListener("touchend",j,h))),(e._listeners||(e._listeners={}))[t]=r}else if("list"!==t&&"type"!==t&&!o&&t in e)_(e,t,null==r?"":r),null!=r&&!1!==r||e.removeAttribute(t);else{var d=o&&t!==(t=t.replace(/^xlink:?/,""));null==r||!1===r?d?e.removeAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase()):e.removeAttribute(t):"function"!==typeof r&&(d?e.setAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase(),r):e.setAttribute(t,r))}else e.className=r||""}function _(e,t,n){try{e[t]=n}catch(e){}}function O(e){return this._listeners[e.type](Oe.event&&Oe.event(e)||e)}function E(e){this.___touchX=e.touches[0].pageX,this.___touchY=e.touches[0].pageY,this.___scrollTop=document.body.scrollTop}function j(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 C(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=typeof t[n];if("function"==r||"object"==r)return!0;if(t[n]!=e[n])return!0}}function q(e,t,n,r){if(!e._disable){var o,i,a,u=e.props,c=e.data,l=e.context,f=e.prevProps||u,p=e.prevState||c,h=e.prevContext||l,d=e.base,y=e.nextBase,m=d||y,b=e._component,g=!1;if(d&&(e.props=f,e.data=p,e.context=h,e.store||2==t||X(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)&&T(o,"_s"+C(e.constructor)),R(o,e.scopedCssAttr),e.getChildContext&&(l=s(s({},l),e.getChildContext()));var w,A,x=o&&o.nodeName,_=Oe.mapping[x];if(_){var O=v(o);i=b,i&&i.constructor===_&&O.key==i.__key?W(i,O,1,l,!1):(w=i,e._component=i=$(_,O,l),i.nextBase=i.nextBase||y,i._parentComponent=e,W(i,O,0,l,!1),q(i,1,n,!0)),A=i.base}else a=m,w=b,w&&(a=e._component=null),(m||1===t)&&(a&&(a._component=null),A=U(a,o,l,n||!d,m&&m.parentNode,!0));if(m&&A!==m&&i!==b){var E=m.parentNode;E&&A!==E&&(E.replaceChild(A,m),w||(m._component=null,D(m,!1)))}if(w&&Z(w),e.base=A,A&&!r){for(var j=e,P=e;P=P._parentComponent;)(j=P).base=A;A._component=j,A._componentConstructor=j.constructor}}if(!d||n?De.unshift(e):g||(e.afterUpdate&&e.afterUpdate(f,p,h),e.updated&&e.updated(f,p,h),Oe.afterUpdate&&Oe.afterUpdate(e)),null!=e._renderCallbacks)for(;e._renderCallbacks.length;)e._renderCallbacks.pop().call(e);Fe||r||M()}}function J(e,t,n,r){for(var o=e&&e._component,i=o,a=e,s=o&&e._componentConstructor===t.nodeName,u=s,c=v(t);o&&!u&&(o=o._parentComponent);)u=o.constructor===t.nodeName;return o&&u&&(!r||o._component)?(W(o,c,3,n,r),e=o.base):(i&&!s&&(Z(i),e=a=null),o=$(t.nodeName,c,n,t),e&&!o.nextBase&&(o.nextBase=e,a=null),W(o,c,1,n,r),e=o.base,a&&e!==a&&(a._component=null,D(a,!1))),e}function Z(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&&ne(t,o.constructor.updatePath))&&(o.use=f(e.data,o.constructor.use),o.update())}),this.onChange&&this.onChange(t))}}function te(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:ye.apply(null,n)}}function be(e){var t=e.base;if(t)for(;t.parentNode;){if(t.parentNode._component)return t.parentNode._component;t=t.parentNode}}function ve(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 ge(e,t,n,r){n=n||{},t=Object.assign({scopedCSS:!0},t);var o={},i=we(e,t,n,r,o);return{css:Object.values(o),html:i}}function we(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"!==typeof e&&!i)return Ze(e);var l=Ke[i];if(l){s=!0;var f,p=xe(e),h=new l(p,n);if(h._disable=h.__x=!0,h.props=p,h.store=n,h.install&&h.install(),h.beforeRender&&h.beforeRender(),f=h.render(h.props,h.data,h.store),t.scopedCSS){if(h.constructor.css||h.css){var d=h.constructor.css?h.constructor.css:"function"===typeof h.css?h.css():h.css,y="_s"+C(h.constructor);o[y]='",T(f,"_s"+C(h.constructor))}h.scopedCSSAttr=e.css,R(f,h.scopedCSSAttr)}return we(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"===typeof A&&(A=ve(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 j=u&&~b.indexOf("\n"),g=0;g";return O||(u&&~b.indexOf("\n")&&(b+="\n"),b+=""),b}function Ae(e,t){for(var n in t)e[n]=t[n];return e}function xe(e){var t=Ae({},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 _e(){return{}}n.d(t,"h",function(){return o}),n.d(t,"createElement",function(){return o}),n.d(t,"cloneElement",function(){return h}),n.d(t,"createRef",function(){return _e}),n.d(t,"Component",function(){return Xe}),n.d(t,"render",function(){return K}),n.d(t,"rerender",function(){return y}),n.d(t,"options",function(){return Oe}),n.d(t,"WeElement",function(){return rt}),n.d(t,"define",function(){return ie}),n.d(t,"rpx",function(){return fe}),n.d(t,"ModelView",function(){return qe}),n.d(t,"defineElement",function(){return ot}),n.d(t,"classNames",function(){return ye}),n.d(t,"extractClass",function(){return me}),n.d(t,"getHost",function(){return be}),n.d(t,"renderToString",function(){return ge});var Oe={scopedStyle:!0,mapping:{},isWeb:!0,staticStyleMapping:{},doc:"object"===typeof document?document:null,root:function(){return"object"===typeof 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=[],Ce=Object.getOwnPropertySymbols,Pe=Object.prototype.hasOwnProperty,Se=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 Re=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,De=[],Fe=0,ze=!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){Y(this,e),this.props=a(l(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),q(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 pe(this,t),he(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=ie;Oe.root.Omi={h:o,createElement:o,cloneElement:h,createRef:_e,Component:Xe,render:K,rerender:y,options:Oe,WeElement:rt,define:ie,rpx:fe,ModelView:qe,defineElement:ot,classNames:ye,extractClass:me,getHost:be,renderToString:ge},Oe.root.omi=Oe.root.Omi,Oe.root.Omi.version="omio-2.0.5";var it={h:o,createElement:o,cloneElement:h,createRef:_e,Component:Xe,render:K,rerender:y,options:Oe,WeElement:rt,define:ie,rpx:fe,ModelView:qe,defineElement:ot,classNames:ye,extractClass:me,getHost:be,renderToString:ge};t.default=it}.call(t,n(2))},function(e,t){function n(e,t){var n=e[1]||"",o=e[3];if(!o)return n;if(t&&"function"===typeof btoa){var i=r(o);return[n].concat(o.sources.map(function(e){return"/*# sourceURL="+o.sourceRoot+e+" */"})).concat([i]).join("\n")}return[n].join("\n")}function r(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 r=n(t,e);return t[2]?"@media "+t[2]+"{"+r+"}":r}).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 h(e,t){t=t||{};var n=t.body;if(e instanceof h){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 d(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"];h.prototype.clone=function(){return new h(this,{body:this._bodyInit})},f.call(h.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=h,e.Response=m,e.fetch=function(e,t){return new Promise(function(n,r){var o=new h(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:this)},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:"Omis",list:[{name:"\u7b80\u4ecb",md:"introduction"},{name:"\u5b89\u88c5",md:"installation"}]},{title:"\u57fa\u7840\u6982\u5ff5",list:[{name:"JSX-Hyperscript",md:"jsx-hyperscript"},{name:"Props",md:"props"},{name:"\u4e8b\u4ef6",md:"event"},{name:"\u751f\u547d\u5468\u671f",md:"lifecycle"},{name:"GlobalStore-$",md:"global-store"},{name:"CSS",md:"css"}]}],en:[{title:"Omis",list:[{name:"Introduction",md:"introduction"},{name:"Installation",md:"installation"}]},{title:"Base",list:[{name:"JSX-Hyperscript",md:"jsx-hyperscript"},{name:"Props",md:"props"},{name:"Event",md:"event"},{name:"Lifecycle",md:"lifecycle"},{name:"GlobalStore-$",md:"global-store"},{name:"CSS",md:"css"}]}]}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){function r(e){var t=!1;window.history.length!==c.historyLength||c.route._routeByTo||(t=!0),c.route._routeByTo=!1,c.historyLength=window.history.length;var n=!1;if("hashchange"===e.type&&c.route.before&&(n=!1===c.route.before(e)),!n){var r=window.location.hash.replace("#","");""===r&&(r="/");var i=!0;Object.keys(u).every(function(e){var n=r.split("?")[0].match(u[e].reg);if(n){var s=e.match(u[e].reg);return c.route.params=o(n,s),c.route.query=a(r),u[e].callback({params:c.route.params,query:a(r),data:c.route.data,byNative:t}),c.route.data=null,i=!1,!1}return!0}),i&&u["*"]&&u["*"].callback({byNative:t}),"hashchange"===e.type&&c.route.after&&c.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){u[e]={callback:t,reg:s(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,C=b||c;r.push({name:v||o++,prefix:b,delimiter:C,optional:E,repeat:O,pattern:j?a(j):"[^"+i(C===c?C:C+c)+"]+?"})}}return(u||s2;)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&&n?s[s.length-1]+=o:s===je?s=[o]:s.push(o),n=i;var u=new r;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 i(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function a(e,t){for(var n,r,o=i(e),a=1;a2?[].slice.call(arguments,2):e.children)}function d(e){1==Ue.push(e)&&(Oe.debounceRendering||Re)(y)}function y(){for(var e;e=Ue.pop();)q(e)}function m(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&&b(e,t.nodeName)}return n||e._componentConstructor===t.nodeName}function b(e,t){return e.normalizedNodeName===t||e.nodeName.toLowerCase()===t.toLowerCase()}function v(e){var t=s({},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 g(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 w(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 A(e){var t=e.parentNode;t&&t.removeChild(e)}function x(e,t,n,r,o){if("className"===t&&(t="class"),"key"===t);else if("ref"===t)u(n,null),u(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"===typeof 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,s=r;"string"===typeof n&&(a=w(n)),"string"==typeof r&&(s=w(r));var c={},l=!1;if(a){for(var f in a)"object"!=typeof s||f in s||(c[f]="",l=!0);for(var p in s)s[p]!==a[p]&&(c[p]=s[p],l=!0);l&&e.setStyles(c)}else e.setStyles(s)}else if("dangerouslySetInnerHTML"===t)r&&(e.innerHTML=r.__html||"");else if("o"==t[0]&&"n"==t[1]){var h=t!==(t=t.replace(/Capture$/,""));t=t.toLowerCase().substring(2),r?n||(e.addEventListener(t,O,h),"tap"==t&&(e.addEventListener("touchstart",E,h),e.addEventListener("touchend",j,h))):(e.removeEventListener(t,O,h),"tap"==t&&(e.removeEventListener("touchstart",E,h),e.removeEventListener("touchend",j,h))),(e._listeners||(e._listeners={}))[t]=r}else if("list"!==t&&"type"!==t&&!o&&t in e)_(e,t,null==r?"":r),null!=r&&!1!==r||e.removeAttribute(t);else{var d=o&&t!==(t=t.replace(/^xlink:?/,""));null==r||!1===r?d?e.removeAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase()):e.removeAttribute(t):"function"!==typeof r&&(d?e.setAttributeNS("http://www.w3.org/1999/xlink",t.toLowerCase(),r):e.setAttribute(t,r))}else e.className=r||""}function _(e,t,n){try{e[t]=n}catch(e){}}function O(e){return this._listeners[e.type](Oe.event&&Oe.event(e)||e)}function E(e){this.___touchX=e.touches[0].pageX,this.___touchY=e.touches[0].pageY,this.___scrollTop=document.body.scrollTop}function j(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 C(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=typeof t[n];if("function"==r||"object"==r)return!0;if(t[n]!=e[n])return!0}}function q(e,t,n,r){if(!e._disable){var o,i,a,u=e.props,c=e.data,l=e.context,f=e.prevProps||u,p=e.prevState||c,h=e.prevContext||l,d=e.base,y=e.nextBase,m=d||y,b=e._component,g=!1;if(d&&(e.props=f,e.data=p,e.context=h,e.store||2==t||X(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)&&T(o,"_s"+C(e.constructor)),R(o,e.scopedCssAttr),e.getChildContext&&(l=s(s({},l),e.getChildContext()));var w,A,x=o&&o.nodeName,_=Oe.mapping[x];if(_){var O=v(o);i=b,i&&i.constructor===_&&O.key==i.__key?W(i,O,1,l,!1):(w=i,e._component=i=$(_,O,l),i.nextBase=i.nextBase||y,i._parentComponent=e,W(i,O,0,l,!1),q(i,1,n,!0)),A=i.base}else a=m,w=b,w&&(a=e._component=null),(m||1===t)&&(a&&(a._component=null),A=U(a,o,l,n||!d,m&&m.parentNode,!0));if(m&&A!==m&&i!==b){var E=m.parentNode;E&&A!==E&&(E.replaceChild(A,m),w||(m._component=null,D(m,!1)))}if(w&&Z(w),e.base=A,A&&!r){for(var j=e,P=e;P=P._parentComponent;)(j=P).base=A;A._component=j,A._componentConstructor=j.constructor}}if(!d||n?De.unshift(e):g||(e.afterUpdate&&e.afterUpdate(f,p,h),e.updated&&e.updated(f,p,h),Oe.afterUpdate&&Oe.afterUpdate(e)),null!=e._renderCallbacks)for(;e._renderCallbacks.length;)e._renderCallbacks.pop().call(e);Fe||r||M()}}function J(e,t,n,r){for(var o=e&&e._component,i=o,a=e,s=o&&e._componentConstructor===t.nodeName,u=s,c=v(t);o&&!u&&(o=o._parentComponent);)u=o.constructor===t.nodeName;return o&&u&&(!r||o._component)?(W(o,c,3,n,r),e=o.base):(i&&!s&&(Z(i),e=a=null),o=$(t.nodeName,c,n,t),e&&!o.nextBase&&(o.nextBase=e,a=null),W(o,c,1,n,r),e=o.base,a&&e!==a&&(a._component=null,D(a,!1))),e}function Z(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&&ne(t,o.constructor.updatePath))&&(o.use=f(e.data,o.constructor.use),o.update())}),this.onChange&&this.onChange(t))}}function te(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:ye.apply(null,n)}}function be(e){var t=e.base;if(t)for(;t.parentNode;){if(t.parentNode._component)return t.parentNode._component;t=t.parentNode}}function ve(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 ge(e,t,n,r){n=n||{},t=Object.assign({scopedCSS:!0},t);var o={},i=we(e,t,n,r,o);return{css:Object.values(o),html:i}}function we(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"!==typeof e&&!i)return Ze(e);var l=Ke[i];if(l){s=!0;var f,p=xe(e),h=new l(p,n);if(h._disable=h.__x=!0,h.props=p,h.store=n,h.install&&h.install(),h.beforeRender&&h.beforeRender(),f=h.render(h.props,h.data,h.store),t.scopedCSS){if(h.constructor.css||h.css){var d=h.constructor.css?h.constructor.css:"function"===typeof h.css?h.css():h.css,y="_s"+C(h.constructor);o[y]='",T(f,"_s"+C(h.constructor))}h.scopedCSSAttr=e.css,R(f,h.scopedCSSAttr)}return we(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"===typeof A&&(A=ve(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 j=u&&~b.indexOf("\n"),g=0;g";return O||(u&&~b.indexOf("\n")&&(b+="\n"),b+=""),b}function Ae(e,t){for(var n in t)e[n]=t[n];return e}function xe(e){var t=Ae({},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 _e(){return{}}n.d(t,"h",function(){return o}),n.d(t,"createElement",function(){return o}),n.d(t,"cloneElement",function(){return h}),n.d(t,"createRef",function(){return _e}),n.d(t,"Component",function(){return Xe}),n.d(t,"render",function(){return K}),n.d(t,"rerender",function(){return y}),n.d(t,"options",function(){return Oe}),n.d(t,"WeElement",function(){return rt}),n.d(t,"define",function(){return ie}),n.d(t,"rpx",function(){return fe}),n.d(t,"ModelView",function(){return qe}),n.d(t,"defineElement",function(){return ot}),n.d(t,"classNames",function(){return ye}),n.d(t,"extractClass",function(){return me}),n.d(t,"getHost",function(){return be}),n.d(t,"renderToString",function(){return ge});var Oe={scopedStyle:!0,mapping:{},isWeb:!0,staticStyleMapping:{},doc:"object"===typeof document?document:null,root:function(){return"object"===typeof 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=[],Ce=Object.getOwnPropertySymbols,Pe=Object.prototype.hasOwnProperty,Se=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 Re=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,De=[],Fe=0,ze=!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){Y(this,e),this.props=a(l(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),q(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 pe(this,t),he(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=ie;Oe.root.Omi={h:o,createElement:o,cloneElement:h,createRef:_e,Component:Xe,render:K,rerender:y,options:Oe,WeElement:rt,define:ie,rpx:fe,ModelView:qe,defineElement:ot,classNames:ye,extractClass:me,getHost:be,renderToString:ge},Oe.root.omi=Oe.root.Omi,Oe.root.Omi.version="omio-2.0.5";var it={h:o,createElement:o,cloneElement:h,createRef:_e,Component:Xe,render:K,rerender:y,options:Oe,WeElement:rt,define:ie,rpx:fe,ModelView:qe,defineElement:ot,classNames:ye,extractClass:me,getHost:be,renderToString:ge};t.default=it}.call(t,n(2))},function(e,t){function n(e,t){var n=e[1]||"",o=e[3];if(!o)return n;if(t&&"function"===typeof btoa){var i=r(o);return[n].concat(o.sources.map(function(e){return"/*# sourceURL="+o.sourceRoot+e+" */"})).concat([i]).join("\n")}return[n].join("\n")}function r(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 r=n(t,e);return t[2]?"@media "+t[2]+"{"+r+"}":r}).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 h(e,t){t=t||{};var n=t.body;if(e instanceof h){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 d(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"];h.prototype.clone=function(){return new h(this,{body:this._bodyInit})},f.call(h.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=h,e.Response=m,e.fetch=function(e,t){return new Promise(function(n,r){var o=new h(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:this)},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:"Omis",list:[{name:"\u7b80\u4ecb",md:"introduction"},{name:"\u5b89\u88c5",md:"installation"}]},{title:"\u57fa\u7840\u6982\u5ff5",list:[{name:"JSX-Hyperscript",md:"jsx-hyperscript"},{name:"Props",md:"props"},{name:"\u4e8b\u4ef6",md:"event"},{name:"\u751f\u547d\u5468\u671f",md:"lifecycle"},{name:"Ref",md:"ref"},{name:"GlobalStore-$",md:"global-store"},{name:"CSS",md:"css"}]}],en:[{title:"Omis",list:[{name:"Introduction",md:"introduction"},{name:"Installation",md:"installation"}]},{title:"Base",list:[{name:"JSX-Hyperscript",md:"jsx-hyperscript"},{name:"Props",md:"props"},{name:"Event",md:"event"},{name:"Lifecycle",md:"lifecycle"},{name:"Ref",md:"ref"},{name:"GlobalStore-$",md:"global-store"},{name:"CSS",md:"css"}]}]}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e){function r(e){var t=!1;window.history.length!==c.historyLength||c.route._routeByTo||(t=!0),c.route._routeByTo=!1,c.historyLength=window.history.length;var n=!1;if("hashchange"===e.type&&c.route.before&&(n=!1===c.route.before(e)),!n){var r=window.location.hash.replace("#","");""===r&&(r="/");var i=!0;Object.keys(u).every(function(e){var n=r.split("?")[0].match(u[e].reg);if(n){var s=e.match(u[e].reg);return c.route.params=o(n,s),c.route.query=a(r),u[e].callback({params:c.route.params,query:a(r),data:c.route.data,byNative:t}),c.route.data=null,i=!1,!1}return!0}),i&&u["*"]&&u["*"].callback({byNative:t}),"hashchange"===e.type&&c.route.after&&c.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){u[e]={callback:t,reg:s(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,C=b||c;r.push({name:v||o++,prefix:b,delimiter:C,optional:E,repeat:O,pattern:j?a(j):"[^"+i(C===c?C:C+c)+"]+?"})}}return(u||sHello!`\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==='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=='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!=='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==='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};/* harmony default export */ __webpack_exports__[\"default\"] = (omi);//# sourceMappingURL=omi.esm.js.map\n/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(2)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\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(){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:this);\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:'Omis',list:[{name:'简介',md:'introduction'},{name:'安装',md:'installation'}]},{title:'基础概念',list:[{name:'JSX-Hyperscript',md:'jsx-hyperscript'},{name:'Props',md:'props'},{name:'事件',md:'event'},{name:'生命周期',md:'lifecycle'},{name:'Ref',md:'ref'},{name:'GlobalStore-$',md:'global-store'},{name:'CSS',md:'css'}]}],en:[{title:'Omis',list:[{name:'Introduction',md:'introduction'},{name:'Installation',md:'installation'}]},{title:'Base',list:[{name:'JSX-Hyperscript',md:'jsx-hyperscript'},{name:'Props',md:'props'},{name:'Event',md:'event'},{name:'Lifecycle',md:'lifecycle'},{name:'Ref',md:'ref'},{name:'GlobalStore-$',md:'global-store'},{name:'CSS',md:'css'}]}]}};exports.default=config;\n\n/***/ }),\n/* 36 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (immutable) */ __webpack_exports__[\"default\"] = route;\n/*!\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!=='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// ../node_modules/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 static use = [\n 'position'\n ]\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 = 18 19","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 = 18 19","\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 = 18 19","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 = 18 19","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\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 = 18 19","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 = 18 19","\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 = 18 19","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 = 18 19","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 = 18 19","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 = 18 19","\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 = 18 19","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 = 18 19","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 = 18 19","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 = 18 19","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 = 18 19","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 = 18 19","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: 'Omis',\n list: [\n { name: '简介', md: 'introduction' },\n { name: '安装', md: 'installation' }\n ]\n },\n {\n title: '基础概念',\n list: [\n { name: 'JSX-Hyperscript', md: 'jsx-hyperscript' },\n { name: 'Props', md: 'props' },\n { name: '事件', md: 'event' },\n { name: '生命周期', md: 'lifecycle' },\n { name: 'Ref', md: 'ref' },\n { name: 'GlobalStore-$', md: 'global-store' },\n { name: 'CSS', md: 'css' }\n ]\n }\n ],\n en: [\n {\n title: 'Omis',\n list: [\n { name: 'Introduction', md: 'introduction' },\n { name: 'Installation', md: 'installation' }\n ]\n },\n {\n title: 'Base',\n list: [\n { name: 'JSX-Hyperscript', md: 'jsx-hyperscript' },\n { name: 'Props', md: 'props' },\n { name: 'Event', md: 'event' },\n { name: 'Lifecycle', md: 'lifecycle' },\n { name: 'Ref', md: 'ref' },\n { name: 'GlobalStore-$', md: 'global-store' },\n { name: 'CSS', md: 'css' }\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/css.md\": [\n\t\t39,\n\t\t17\n\t],\n\t\"./en/event.md\": [\n\t\t40,\n\t\t16\n\t],\n\t\"./en/global-store.md\": [\n\t\t41,\n\t\t15\n\t],\n\t\"./en/installation.md\": [\n\t\t42,\n\t\t14\n\t],\n\t\"./en/introduction.md\": [\n\t\t43,\n\t\t13\n\t],\n\t\"./en/jsx-hyperscript.md\": [\n\t\t44,\n\t\t12\n\t],\n\t\"./en/lifecycle.md\": [\n\t\t45,\n\t\t11\n\t],\n\t\"./en/props.md\": [\n\t\t46,\n\t\t10\n\t],\n\t\"./en/ref.md\": [\n\t\t47,\n\t\t9\n\t],\n\t\"./zh-cn/css.md\": [\n\t\t48,\n\t\t8\n\t],\n\t\"./zh-cn/event.md\": [\n\t\t49,\n\t\t7\n\t],\n\t\"./zh-cn/global-store.md\": [\n\t\t50,\n\t\t6\n\t],\n\t\"./zh-cn/installation.md\": [\n\t\t51,\n\t\t5\n\t],\n\t\"./zh-cn/introduction.md\": [\n\t\t52,\n\t\t4\n\t],\n\t\"./zh-cn/jsx-hyperscript.md\": [\n\t\t53,\n\t\t3\n\t],\n\t\"./zh-cn/lifecycle.md\": [\n\t\t54,\n\t\t2\n\t],\n\t\"./zh-cn/props.md\": [\n\t\t55,\n\t\t1\n\t],\n\t\"./zh-cn/ref.md\": [\n\t\t56,\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 = 18 19","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