├── .babelrc ├── .travis.yml ├── LICENSE ├── README.md ├── dist ├── aoy.es.js ├── aoy.es.js.map ├── aoy.js ├── aoy.js.map └── aoy.min.js ├── example ├── input.html └── tableSort.html ├── gulpfile.js ├── index.js ├── package.json ├── rollup.config.js ├── src ├── component │ ├── Component.js │ ├── createComponent.js │ └── index.js ├── index.js ├── instance │ ├── Aoy.js │ └── baseInit.js ├── render │ ├── index.js │ └── mount.js ├── store │ ├── Store.js │ ├── connect.js │ ├── dependent.js │ ├── index.js │ ├── initStore.js │ └── injectStore.js ├── util │ ├── api.js │ ├── console.js │ ├── help.js │ ├── index.js │ └── is.js └── vdom │ ├── createEle.js │ ├── createVdom.js │ ├── diff.js │ ├── el.js │ ├── index.js │ └── vnode.js └── test ├── component.test.js ├── diff.test.js ├── mocha.opts ├── store.test.js └── vdom.test.js /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ "es2015" ] 3 | } -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | sudo: required 3 | node_js: 4 | - "6" 5 | install: 6 | - npm install 7 | script: 8 | - npm test 9 | - npm run cover 10 | - npm run build 11 | after_script: 12 | - "cat coverage/lcov.info | node_modules/coveralls/bin/coveralls.js" 13 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 yang 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # aoy [](https://travis-ci.org/aooy/aoy) [](https://coveralls.io/github/aooy/aoy?branch=master) [](https://github.com/aooy/aoy) [](https://github.com/aooy/aoy) 2 | A tiny JavaScript MVVM library with Virtual DOM. It has only ~600 lines of code. 3 | 4 | ## Introduction 5 | [一个轻量级的MVVM框架-aoy](https://github.com/aooy/blog/issues/1) 6 | 7 | ## Install 8 | 9 | npm: 10 | 11 | $ npm install aoy --save 12 | 13 | ## Usage 14 | 15 | ### ES2015 16 | ```js 17 | import { init, el } from 'aoy'; 18 | 19 | //1. init aoy. 20 | const myAoy = init(); 21 | conse store = myAoy.store; 22 | 23 | //2. add a store to aoy instance. 24 | store.add('firstStore',{txt: 'this is a P'}); 25 | 26 | //3. create a component. 27 | const myP = aoy.createComponent({ 28 | el: document.body, 29 | render: function(){ 30 | return el('p', this.firstStore.txt); 31 | } 32 | }); 33 | 34 | //4. component connect to a store, view will be render immediately. 35 | myAoy.connect(myP, 'firstStore'); 36 | 37 | //5. when u update this component's store, view will be render again. 38 | store.get('firstStore').txt = 'change view'; 39 | ``` 40 | ### CommonJS 41 | ```js 42 | var myAoy = require('aoy').init(); 43 | var el = myAoy.el; 44 | ``` 45 | ### Browser globals 46 | The dist folder contains aoy.js and aoy.min.js. 47 | ```js 48 | 49 | 54 | ``` 55 | ## Examples 56 | 57 | * [simple data-binding input](https://aooy.github.io/aoy/input) 58 | * [table sort](https://aooy.github.io/aoy/tableSort) 59 | 60 | ## Api 61 | 62 | ### aoy.init 63 | init function returns a aoy instance. 64 | 65 | ### aoy.el(selectors, props, children]) 66 | return a Virtual DOM. 67 | ```js 68 | var span = el('span','this is p') // render this is p 69 | var p = el('div',[ span ]) // render
this is p
70 | var div = el('div#mydiv.classA.classB') // render 71 | ``` 72 | 73 | ### aoy.createComponent(descriptor) 74 | descriptor is Object 75 | 76 | #### descriptor.el: 77 | it is a HTMLElement for component's parentNode. 78 | 79 | #### descriptor.render: 80 | render functon returns vnode. 81 | 82 | ```js 83 | var inputStore = store.get('inputStore'); 84 | var myinput = aoy.createComponent({ 85 | inputFn: function(){ 86 | 87 | }, 88 | render: function(){ 89 | return el('Input', { 90 | oninput: this.inputFn, 91 | placeholder: this.inputStore.value, 92 | type: 'text' 93 | }); 94 | } 95 | }); 96 | ``` 97 | 98 | ### aoy.connect(component[,stores]) 99 | when connect function is called, Virtual DOM will be rendered immediately. 100 | ```js 101 | var aoy.connect(mycomponent, 'a') // mycomponent denpend on a. 102 | var aoy.connect(mycomponent, ['a', 'b']) // mycomponent denpend on a and b. 103 | ``` 104 | 105 | ### store 106 | aoy instance provides a store. 107 | ```js 108 | var aoy = Aoy.init(); 109 | var store = aoy.store; 110 | ``` 111 | 112 | ### store.add([key ,] data) 113 | function add is used to save data. 114 | if no key, this data's key is _DEFAULT. 115 | ```js 116 | aoy.store.add('a',{b:1}) // a:{b:1} 117 | aoy.store.add({b:1}) // _DEFAULT:{b:1} 118 | ``` 119 | 120 | ### store.get(key) 121 | Return to the corresponding store's data 122 | ```js 123 | aoy.store.add('a',{b:1}) 124 | aoy.store.get('a') // return {b: 1} 125 | ``` 126 | 127 | ### sotre.set(newData) 128 | update data. 129 | ```js 130 | aoy.store.add('a',{b:1}) 131 | 132 | aoy.store.get('a').set({a:1, b:2}) //same: aoy.store.get('a') = {a:1, b:2} 133 | 134 | aoy.store.get('a') // return {a:1, b:2} 135 | ``` 136 | ### Note 137 | * support IE 10 and up + all modern browsers. 138 | * aoy only data-binding one-level key, if data has deep structure, suggest to cooperate [immutable-js](https://github.com/facebook/immutable-js/) . 139 | 140 | ## License 141 | [MIT](https://github.com/pakastin/redom/blob/master/LICENSE) 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | -------------------------------------------------------------------------------- /dist/aoy.es.js: -------------------------------------------------------------------------------- 1 | function error (info) { 2 | if (typeof console !== 'undeifine') { 3 | console.error(info); 4 | } 5 | } 6 | function warn (info) { 7 | if (typeof console !== 'undeifine') { 8 | console.warn(info); 9 | } 10 | } 11 | 12 | function judge (o) { 13 | return Object.prototype.toString.call(o) 14 | } 15 | 16 | function isArray (arr) { 17 | return judge(arr) === '[object Array]' 18 | } 19 | 20 | function isObject (o) { 21 | return judge(o) === '[object Object]' 22 | } 23 | 24 | 25 | 26 | function isString (s) { 27 | return typeof s === 'string' 28 | } 29 | 30 | function isNumber (n) { 31 | return typeof n === 'number' 32 | } 33 | 34 | function toArray (arr) { 35 | return [].slice.call(arr) 36 | } 37 | 38 | function Vdom () { 39 | this.tagName = null; 40 | this.sel = null; 41 | this.id = null; 42 | this.className = []; 43 | this.children = null; 44 | this.el = null; 45 | this.data = null; 46 | this.key = null; 47 | this.text = null; 48 | this.attr = []; 49 | this.store = null; 50 | } 51 | 52 | function sameVnode(oldVnode, vnode){ 53 | return vnode.key === oldVnode.key && vnode.sel === oldVnode.sel 54 | } 55 | function createKeyToOldIdx (children, beginIdx, endIdx) { 56 | var i, map = {}, key, ch; 57 | for (i = beginIdx; i <= endIdx; ++i) { 58 | ch = children[i]; 59 | if (ch != null) { 60 | key = ch.key; 61 | if (key !== null) 62 | { map[key] = i; } 63 | } 64 | } 65 | return map 66 | } 67 | function removeVnodes (parentElm, vnodes, startIdx, endIdx) { 68 | for ( ;startIdx <= endIdx; ++startIdx) { 69 | var ch = vnodes[startIdx]; 70 | if (ch != null) { 71 | api$$1.removeChild(parentElm, ch.el); 72 | } 73 | } 74 | } 75 | function addVnodes (parentElm, before, vnodes, startIdx, endIdx) { 76 | for ( ;startIdx <= endIdx; ++startIdx) { 77 | var ch = vnodes[startIdx]; 78 | if (ch != null) { 79 | api$$1.insertBefore(parentElm, createEle(ch).el, before); 80 | } 81 | } 82 | } 83 | function patchVnode (oldVnode, vnode) { 84 | var el$$1 = vnode.el = oldVnode.el; 85 | var i, oldCh = oldVnode.children, ch = vnode.children; 86 | if (oldVnode === vnode) { return } 87 | 88 | if (oldVnode.text !== null && vnode.text !== null && oldVnode.text !== vnode.text) { 89 | api$$1.setTextContent(el$$1, vnode.text); 90 | }else { 91 | updateEle(el$$1, vnode, oldVnode); 92 | if (oldCh && ch && oldCh !== ch) { 93 | updateChildren(el$$1, oldCh, ch); 94 | }else if (ch){ 95 | createEle(vnode); //create el's children dom 96 | }else if (oldCh){ 97 | api$$1.removeChildren(el$$1); 98 | } 99 | } 100 | } 101 | 102 | function updateChildren (parentElm, oldCh, newCh) { 103 | var oldStartIdx = 0, newStartIdx = 0; 104 | var oldEndIdx = oldCh.length - 1; 105 | var oldStartVnode = oldCh[0]; 106 | var oldEndVnode = oldCh[oldEndIdx]; 107 | var newEndIdx = newCh.length - 1; 108 | var newStartVnode = newCh[0]; 109 | var newEndVnode = newCh[newEndIdx]; 110 | var oldKeyToIdx; 111 | var idxInOld; 112 | var elmToMove; 113 | var before; 114 | while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) { 115 | if (oldStartVnode == null) { 116 | oldStartVnode = oldCh[++oldStartIdx]; // Vnode might have been moved left 117 | }else if (oldEndVnode == null) { 118 | oldEndVnode = oldCh[--oldEndIdx]; 119 | }else if (newStartVnode == null) { 120 | newStartVnode = newCh[++newStartIdx]; 121 | }else if (newEndVnode == null) { 122 | newEndVnode = newCh[--newEndIdx]; 123 | }else if (sameVnode(oldStartVnode, newStartVnode)) { 124 | patchVnode(oldStartVnode, newStartVnode); 125 | oldStartVnode = oldCh[++oldStartIdx]; 126 | newStartVnode = newCh[++newStartIdx]; 127 | }else if (sameVnode(oldEndVnode, newEndVnode)) { 128 | patchVnode(oldEndVnode, newEndVnode); 129 | oldEndVnode = oldCh[--oldEndIdx]; 130 | newEndVnode = newCh[--newEndIdx]; 131 | }else if (sameVnode(oldStartVnode, newEndVnode)) { 132 | patchVnode(oldStartVnode, newEndVnode); 133 | api$$1.insertBefore(parentElm, oldStartVnode.el, api$$1.nextSibling(oldEndVnode.el)); 134 | oldStartVnode = oldCh[++oldStartIdx]; 135 | newEndVnode = newCh[--newEndIdx]; 136 | }else if (sameVnode(oldEndVnode, newStartVnode)) { 137 | patchVnode(oldEndVnode, newStartVnode); 138 | api$$1.insertBefore(parentElm, oldEndVnode.el, oldStartVnode.el); 139 | oldEndVnode = oldCh[--oldEndIdx]; 140 | newStartVnode = newCh[++newStartIdx]; 141 | }else { 142 | if (oldKeyToIdx === undefined) { 143 | oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); 144 | } 145 | idxInOld = oldKeyToIdx[newStartVnode.key]; 146 | if (!idxInOld) { 147 | api$$1.insertBefore(parentElm, createEle(newStartVnode).el, oldStartVnode.el); 148 | newStartVnode = newCh[++newStartIdx]; 149 | } 150 | else { 151 | elmToMove = oldCh[idxInOld]; 152 | if (elmToMove.sel !== newStartVnode.sel) { 153 | api$$1.insertBefore(parentElm, createEle(newStartVnode).el, oldStartVnode.el); 154 | }else { 155 | patchVnode(elmToMove, newStartVnode); 156 | oldCh[idxInOld] = null; 157 | api$$1.insertBefore(parentElm, elmToMove.el, oldStartVnode.el); 158 | } 159 | newStartVnode = newCh[++newStartIdx]; 160 | } 161 | } 162 | } 163 | if (oldStartIdx > oldEndIdx) { 164 | before = newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].el; 165 | addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx); 166 | }else if (newStartIdx > newEndIdx) { 167 | removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx); 168 | } 169 | } 170 | 171 | function patch$$1 (oldVnode, vnode) { 172 | if (sameVnode(oldVnode, vnode)) { 173 | patchVnode(oldVnode, vnode); 174 | } else { 175 | var oEl = oldVnode.el; 176 | var parentEle = api$$1.parentNode(oEl); 177 | createEle(vnode); 178 | if (parentEle !== null) { 179 | api$$1.insertBefore(parentEle, vnode.el, api$$1.nextSibling(oEl)); 180 | api$$1.removeChild(parentEle, oldVnode.el); 181 | oldVnode = null; 182 | } 183 | } 184 | return vnode 185 | } 186 | 187 | function parseQuery (vdom, query) { 188 | var k,state = 0,j = 0; 189 | vdom.sel = query; 190 | 191 | for(var i = 0, len = query.length; i < len; i++) { 192 | var char = query[i]; 193 | if (char === '.' || char === '#' || (k = i === len-1)) { 194 | if (state === 0) { 195 | vdom.tagName = query.substring(j, !k ? i : len).toUpperCase(); 196 | }else if (state === 1) { 197 | vdom.className.push(query.substring(j, !k ? i : len)); 198 | }else if (state === 2) { 199 | vdom.id = query.substring(j, !k ? i : len); 200 | } 201 | state = (char === '.') ? 1 : (char === '#')? 2 : 3; 202 | j = i+1; 203 | } 204 | 205 | } 206 | 207 | } 208 | 209 | function parseData (vdom, v) { 210 | for(var k in v) { 211 | if (k === 'class'){ 212 | var i = v[k].split(' '); 213 | for(var j = 0; j < i.length; j++) { 214 | vdom.className.push(i[j]); 215 | } 216 | }else if (k === 'key') { 217 | vdom.key = v[k]; 218 | }else if (k !== 'style') { 219 | vdom.attr.push(k); 220 | } 221 | } 222 | vdom.data = v; 223 | } 224 | 225 | function parseChindren (vdom, v) { 226 | var a = []; 227 | if (isString(v) || isNumber(v)) { v = [v]; } 228 | for (var i = 0; i < v.length; i++) { 229 | if (!(v[i] instanceof Vdom)) { 230 | a.push(createVdomTxt$$1(v[i])); 231 | }else { 232 | a.push(v[i]); 233 | } 234 | } 235 | vdom.children = a; 236 | } 237 | function createVdomTxt$$1 (str) { 238 | var vd = new Vdom(); 239 | if(isString(str) || isNumber(str)) { 240 | vd.text = str; 241 | } 242 | return vd 243 | } 244 | function createVdom$$1 (arg) { 245 | var i=0, 246 | vd = new Vdom(); 247 | 248 | while(i < arg.length) { 249 | var v = arg[i]; 250 | if (i === 0 && isString(v)) { 251 | // div#id.classA 252 | parseQuery(vd, v); 253 | }else if (i != 0){ 254 | if(isObject(v)) { 255 | // class style clickEvent .ect 256 | parseData(vd, v); 257 | }else if (isArray(v) || isString(v) || isNumber(v)) { 258 | // childern 259 | parseChindren(vd, v); 260 | } 261 | } 262 | i++; 263 | } 264 | return vd 265 | } 266 | 267 | function createEle (vdom) { 268 | var i, e; 269 | if( !vdom.el && (i = vdom.text)) { 270 | e = vdom.el = api$$1.createTextNode(i); 271 | return vdom 272 | } 273 | if ( (i = vdom.tagName) && vdom.el === null) { 274 | e = vdom.el = api$$1.createElement(i); 275 | }else if (vdom.el.nodeType === 1) { 276 | e = vdom.el; 277 | } 278 | updateEle(e, vdom); 279 | return vdom 280 | } 281 | 282 | function updateEle (e ,vdom, oldVdom) { 283 | var i; 284 | if( (i = vdom.className).length > 0 ) { api$$1.setClass(e, i); } 285 | if( (i = vdom.data) !== null ) { api$$1.setAttrs(e, i); } 286 | if( (i = vdom.id) !== null ) { api$$1.setId(e, i); } 287 | if( (i = vdom.children) !== null && !oldVdom) { api$$1.appendChildren(e, i); } 288 | } 289 | 290 | function el$$1 () { 291 | var arg = toArray(arguments); 292 | 293 | if (arg.length === 0) { 294 | error('Parameter cannot be empty'); 295 | return false 296 | } 297 | if (isArray(arg) && arg.length > 0) { 298 | return createVdom$$1.call(this, arg) 299 | } 300 | } 301 | 302 | var api$$1 = Object.create(null); 303 | 304 | api$$1.createElement = function (tag) { 305 | return document.createElement(tag) 306 | }; 307 | api$$1.createTextNode = function (txt) { 308 | return document.createTextNode(txt) 309 | }; 310 | api$$1.appendChild = function (parent, child) { 311 | return parent.appendChild(child) 312 | }; 313 | api$$1.parentNode = function (node) { 314 | return node.parentNode 315 | }; 316 | api$$1.insertBefore = function (parent, newNode, rf) { 317 | return parent.insertBefore(newNode, rf) 318 | }; 319 | api$$1.nextSibling = function (el$$1) { 320 | return el$$1.nextSibling 321 | }; 322 | api$$1.removeChild = function (parent, rc) { 323 | return parent.removeChild(rc) 324 | }; 325 | api$$1.setTextContent = function (ele, txt) { 326 | ele.textContent = txt; 327 | }; 328 | api$$1.setId = function (ele, id) { 329 | ele.id = id; 330 | }; 331 | api$$1.defineProperty = function (obj, prop, descriptor) { 332 | Object.defineProperty(obj, prop, descriptor); 333 | }; 334 | api$$1.appendChildren = function (ele, children) { 335 | var this$1 = this; 336 | 337 | if(ele && isArray(children)) { 338 | for(var i = 0; i < children.length; i++) { 339 | var c = (void 0); 340 | if (children[i] instanceof Vdom) { 341 | c = children[i].el || createEle(children[i]).el; 342 | } 343 | this$1.appendChild(ele, c); 344 | } 345 | } 346 | }; 347 | api$$1.setClass = function (ele, c) { 348 | if(ele && isArray(c)) { 349 | var k = ''; 350 | for(var i = 0; i < c.length; i++) { 351 | //ele.classList.add(c[i]) 352 | if(i !== c.length-1){ 353 | k += c[i] + ' '; 354 | }else{ 355 | k += c[i]; 356 | } 357 | } 358 | ele.className = k; 359 | } 360 | }; 361 | api$$1.setAttrs = function (ele, a) { 362 | if(ele && isObject(a)) { 363 | for(var k in a) { 364 | if (k === 'class') { continue } 365 | var s = a[k]; 366 | if (k === 'style' && isObject(s)) { 367 | for(var j in s) { 368 | ele.style[j] = s[j]; 369 | } 370 | }else { 371 | ele[k] = s; 372 | } 373 | } 374 | } 375 | }; 376 | api$$1.removeChildren = function (ele) { 377 | var this$1 = this; 378 | 379 | var i, ch = ele.childNodes; 380 | while(ch[0]) { 381 | this$1.removeChild(ele, ch[0]); 382 | } 383 | }; 384 | 385 | function injectStore (store, key, data, context) { 386 | var archiver; 387 | if(isObject(data)){ 388 | store[key] = data; 389 | archiver = new Archiver(data,key,context); 390 | for(var k in data) { 391 | archiver(k); 392 | } 393 | } 394 | return data 395 | } 396 | 397 | function Archiver (data, sname, context) { 398 | var c; 399 | var storage = {}; 400 | var cm = context.componentManage; 401 | var devc = function (c) { 402 | c.forEach( function(v, i) { 403 | var newVn = v.render(); 404 | patch$$1(v.vdom, newVn); 405 | v.vdom = newVn; 406 | }); 407 | }; 408 | var des = function(key) { 409 | return { 410 | get: function() { 411 | return storage[key] 412 | }, 413 | set: function(value) { 414 | storage[key] = value; 415 | if (c = cm[sname]) { 416 | devc(c); 417 | } 418 | } 419 | } 420 | }; 421 | api$$1.defineProperty(data, 'set', { 422 | value: function () { 423 | var o; 424 | if (isObject(o = arguments[0])) { 425 | for(var k in o){ 426 | if(!storage.hasOwnProperty(k)) { 427 | api$$1.defineProperty(data, k, des(k)); 428 | } 429 | storage[k] = o[k]; 430 | } 431 | if(c = cm[sname]) { 432 | devc(c); 433 | } 434 | }else{ 435 | error("set function's parameter must be a object"); 436 | } 437 | } 438 | }); 439 | return function (key) { 440 | storage[key] = data[key]; 441 | api$$1.defineProperty(data, key, des(key)); 442 | } 443 | } 444 | 445 | function initStore$$1 () { 446 | var STORE = new Store$$1(); 447 | var archiver; 448 | if (this instanceof AoyC && !this._FINALSTORE) { 449 | Object.defineProperty(this, 'store', { 450 | set: function (value) { 451 | warn('Not allowed to modify store'); 452 | }, 453 | get: function () { 454 | return STORE 455 | } 456 | }); 457 | Object.defineProperty(this, '_FINALSTORE', { 458 | value: true 459 | }); 460 | }else{ 461 | warn('Not Aoy instance or Already init store'); 462 | } 463 | //return STORE 464 | return this 465 | } 466 | 467 | function Store$$1 () { 468 | var mainStore = {}; 469 | this.componentManage = {}; 470 | this.add = function () { 471 | var arg = toArray(arguments); 472 | var subStore; 473 | if(arg.length > 0) { 474 | var iskey = isString(arg[0]); 475 | var isdata = isObject(arg[1]); 476 | var iskeyobj = isObject(arg[0]); 477 | 478 | if(iskey && isdata) { 479 | subStore = injectStore(mainStore, arg[0], arg[1], this); 480 | }else if (iskeyobj) { 481 | subStore = injectStore(mainStore, '_DEFAULT', arg[0], this); 482 | }else { 483 | error('Missing key or data parameter'); 484 | } 485 | } 486 | return subStore 487 | }; 488 | 489 | this.get = function (key) { 490 | if (key === undefined) { 491 | key = '_DEFAULT'; 492 | } 493 | return mainStore[key] 494 | }; 495 | 496 | this.getMainStore = function () { 497 | return mainStore 498 | }; 499 | 500 | this.remove = function (key) { 501 | if(key === undefined){ 502 | key = '_DEFAULT'; 503 | } 504 | delete mainStore[key]; 505 | }; 506 | } 507 | 508 | var uid = 0; 509 | 510 | function createComponent$$1 (cp) { 511 | var c; 512 | var _this = this; 513 | var cid = uid++; 514 | return (function () { 515 | if (isObject(cp)) { 516 | c = new Component(cp); 517 | api$$1.defineProperty(c, 'aoy', { 518 | value: _this 519 | }); 520 | api$$1.defineProperty(c, '_UID', { 521 | value: cid 522 | }); 523 | } 524 | return c 525 | }()) 526 | } 527 | 528 | function Component (op) { 529 | var this$1 = this; 530 | 531 | if (isObject(op)) { 532 | for (var k in op) { 533 | this$1[k] = op[k]; 534 | } 535 | } 536 | } 537 | 538 | function connect (component, storeName) { 539 | var store = this.store; 540 | var c = store.componentManage; 541 | 542 | var getStore = store.get; 543 | var cid = component._UID; 544 | 545 | var _this = this; 546 | var depfn = function(com, key) { 547 | if ( c[key]) { 548 | c[key].push(component); 549 | }else { 550 | c[key] = [component]; 551 | } 552 | _this._dependent(cid, key); 553 | api$$1.defineProperty(com, key, { 554 | get: function() { 555 | return getStore(key) 556 | } 557 | }); 558 | }; 559 | 560 | if (component instanceof Component) { 561 | if(isString(storeName)){ 562 | depfn(component, storeName); 563 | }else if (isArray(storeName)){ 564 | for(var i =0; i < storeName.length; i++ ) { 565 | depfn(component, storeName[i]); 566 | } 567 | } 568 | //render vdom 569 | this.mount(component.el, component); 570 | } 571 | } 572 | 573 | function dependent (cid, sname) { 574 | var i = this.dependManage[cid]; 575 | 576 | if (i && i.length>0) { 577 | i.push(sname); 578 | }else { 579 | this.dependManage[cid] = [sname]; 580 | } 581 | } 582 | 583 | function mount (parent,component) { 584 | var vnode = component.render(); 585 | var d = createEle(vnode); 586 | component.vdom = vnode; 587 | api$$1.appendChild(parent, d.el); 588 | } 589 | 590 | function baseInit (Aoy) { 591 | Aoy.prototype._init = function(arg) { 592 | 593 | this.dependManage = Object.create(null); 594 | this._initStore(); 595 | }; 596 | 597 | Aoy.prototype._initStore = initStore$$1; 598 | 599 | Aoy.prototype.createComponent = createComponent$$1; 600 | 601 | Aoy.prototype.connect = connect; 602 | 603 | Aoy.prototype._dependent = dependent; 604 | 605 | Aoy.prototype.mount = mount; 606 | 607 | Aoy.prototype.el = el$$1; 608 | 609 | Aoy.prototype.patch = patch$$1; 610 | 611 | } 612 | 613 | function AoyC () { 614 | if (this instanceof AoyC) { 615 | this._init(); 616 | } 617 | } 618 | 619 | function init () { 620 | baseInit(AoyC); 621 | return new AoyC() 622 | } 623 | 624 | export { init, el$$1 as el }; 625 | //# sourceMappingURL=aoy.es.js.map 626 | -------------------------------------------------------------------------------- /dist/aoy.es.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"aoy.es.js","sources":["../src/util/console.js","../src/util/is.js","../src/util/help.js","../src/vdom/vnode.js","../src/vdom/diff.js","../src/vdom/createVdom.js","../src/vdom/createEle.js","../src/vdom/el.js","../src/util/api.js","../src/store/injectStore.js","../src/store/initStore.js","../src/store/Store.js","../src/component/createComponent.js","../src/component/Component.js","../src/store/connect.js","../src/store/dependent.js","../src/render/mount.js","../src/instance/baseInit.js","../src/instance/Aoy.js"],"sourcesContent":["export function error (info) {\n\tif (typeof console !== 'undeifine') {\n\t\tconsole.error(info)\n\t}\n}\nexport function warn (info) {\n\tif (typeof console !== 'undeifine') {\n\t\tconsole.warn(info)\n\t}\n}","function judge (o) {\n\treturn Object.prototype.toString.call(o)\n}\n\nexport function isArray (arr) {\n\treturn judge(arr) === '[object Array]'\n}\n\nexport function isObject (o) {\n\treturn judge(o) === '[object Object]'\n}\n\nexport function isFunction (f) {\n\treturn typeof f === 'function'\n}\t\n\nexport function isString (s) {\n\treturn typeof s === 'string'\n}\n\nexport function isNumber (n) {\n\treturn typeof n === 'number'\n}\n\n\n\n\n\n\n","export function toArray (arr) {\n\treturn [].slice.call(arr)\n}\n","export function Vdom () {\n\tthis.tagName = null\n\tthis.sel = null\n\tthis.id = null\n\tthis.className = []\n\tthis.children = null\n\tthis.el = null\n\tthis.data = null\n\tthis.key = null\n\tthis.text = null\n\tthis.attr = []\n\tthis.store = null\n}\n","import { api, isArray} from '../util/index'\nimport { createEle, updateEle } from './index'\n\nfunction sameVnode(oldVnode, vnode){\n\treturn vnode.key === oldVnode.key && vnode.sel === oldVnode.sel\n}\nfunction createKeyToOldIdx (children, beginIdx, endIdx) {\n var i, map = {}, key, ch\n for (i = beginIdx; i <= endIdx; ++i) {\n ch = children[i]\n if (ch != null) {\n key = ch.key\n if (key !== null)\n map[key] = i\n }\n }\n return map\n}\nfunction removeVnodes (parentElm, vnodes, startIdx, endIdx) {\n for ( ;startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx]\n if (ch != null) {\n api.removeChild(parentElm, ch.el)\n }\n }\n }\nfunction addVnodes (parentElm, before, vnodes, startIdx, endIdx) {\n for ( ;startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx]\n if (ch != null) {\n api.insertBefore(parentElm, createEle(ch).el, before)\n }\n }\n } \nfunction patchVnode (oldVnode, vnode) {\n\tconst el = vnode.el = oldVnode.el\n let i, oldCh = oldVnode.children, ch = vnode.children\n if (oldVnode === vnode) return\n \n if (oldVnode.text !== null && vnode.text !== null && oldVnode.text !== vnode.text) {\n api.setTextContent(el, vnode.text)\n }else {\n updateEle(el, vnode, oldVnode)\n \tif (oldCh && ch && oldCh !== ch) {\n\t \tupdateChildren(el, oldCh, ch)\n\t }else if (ch){\n\t \tcreateEle(vnode) //create el's children dom\n\t }else if (oldCh){\n\t \tapi.removeChildren(el)\n\t }\n }\n}\n\nfunction updateChildren (parentElm, oldCh, newCh) {\n\tlet oldStartIdx = 0, newStartIdx = 0\n let oldEndIdx = oldCh.length - 1\n let oldStartVnode = oldCh[0]\n let oldEndVnode = oldCh[oldEndIdx]\n let newEndIdx = newCh.length - 1\n let newStartVnode = newCh[0]\n let newEndVnode = newCh[newEndIdx]\n let oldKeyToIdx\n let idxInOld\n let elmToMove\n let before\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n oldStartVnode = oldCh[++oldStartIdx] // Vnode might have been moved left\n }else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx]\n }else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx]\n }else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx]\n }else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode)\n oldStartVnode = oldCh[++oldStartIdx]\n newStartVnode = newCh[++newStartIdx]\n }else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode)\n oldEndVnode = oldCh[--oldEndIdx]\n newEndVnode = newCh[--newEndIdx]\n }else if (sameVnode(oldStartVnode, newEndVnode)) {\n patchVnode(oldStartVnode, newEndVnode)\n api.insertBefore(parentElm, oldStartVnode.el, api.nextSibling(oldEndVnode.el))\n oldStartVnode = oldCh[++oldStartIdx]\n newEndVnode = newCh[--newEndIdx]\n }else if (sameVnode(oldEndVnode, newStartVnode)) {\n patchVnode(oldEndVnode, newStartVnode)\n api.insertBefore(parentElm, oldEndVnode.el, oldStartVnode.el)\n oldEndVnode = oldCh[--oldEndIdx]\n newStartVnode = newCh[++newStartIdx]\n }else {\n if (oldKeyToIdx === undefined) {\n oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx)\n }\n idxInOld = oldKeyToIdx[newStartVnode.key]\n if (!idxInOld) {\n api.insertBefore(parentElm, createEle(newStartVnode).el, oldStartVnode.el)\n newStartVnode = newCh[++newStartIdx]\n }\n else {\n elmToMove = oldCh[idxInOld]\n if (elmToMove.sel !== newStartVnode.sel) {\n api.insertBefore(parentElm, createEle(newStartVnode).el, oldStartVnode.el)\n }else {\n patchVnode(elmToMove, newStartVnode)\n oldCh[idxInOld] = null\n api.insertBefore(parentElm, elmToMove.el, oldStartVnode.el)\n }\n newStartVnode = newCh[++newStartIdx]\n }\n }\n }\n if (oldStartIdx > oldEndIdx) {\n before = newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].el\n addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx)\n }else if (newStartIdx > newEndIdx) {\n removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx)\n }\n}\n\nexport function patch (oldVnode, vnode) {\n\tif (sameVnode(oldVnode, vnode)) {\n\t\tpatchVnode(oldVnode, vnode)\n\t} else {\n\t\tconst oEl = oldVnode.el\n\t\tlet parentEle = api.parentNode(oEl)\n\t\tcreateEle(vnode)\n\t\tif (parentEle !== null) {\n\t\t\tapi.insertBefore(parentEle, vnode.el, api.nextSibling(oEl))\n\t\t\tapi.removeChild(parentEle, oldVnode.el)\n\t\t\toldVnode = null\n\t\t}\n\t}\n\treturn vnode\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","import { isString, isObject, isArray, isNumber, api } from '../util/index'\nimport { Vdom, createEle } from './index'\n\nfunction parseQuery (vdom, query) {\n\tlet k,state = 0,j = 0\n\tvdom.sel = query\n\n\tfor(let i = 0, len = query.length; i < len; i++) {\n\t\tlet char = query[i]\n\t\t\tif (char === '.' || char === '#' || (k = i === len-1)) {\n\t\t\t\tif (state === 0) {\n\t\t\t\t\tvdom.tagName = query.substring(j, !k ? i : len).toUpperCase()\n\t\t\t\t}else if (state === 1) {\n\t\t\t\t\tvdom.className.push(query.substring(j, !k ? i : len))\n\t\t\t\t}else if (state === 2) {\n\t\t\t\t\tvdom.id = query.substring(j, !k ? i : len)\n\t\t\t\t}\n\t\t\t\tstate = (char === '.') ? 1 : (char === '#')? 2 : 3\n\t\t\t\tj = i+1\n\t\t\t}\t\t\n\n\t}\n\t\n}\n\nfunction parseData (vdom, v) {\n\tfor(let k in v) {\n\t\tif (k === 'class'){\n\t\t\tlet i = v[k].split(' ')\n\t\t\tfor(let j = 0; j < i.length; j++) {\n\t\t\t\tvdom.className.push(i[j])\n\t\t\t}\n\t\t}else if (k === 'key') {\n\t\t\tvdom.key = v[k]\n\t\t}else if (k !== 'style') {\n\t\t\tvdom.attr.push(k)\t\n\t\t}\n\t}\n\tvdom.data = v\n}\n\nfunction parseChindren (vdom, v) {\n\tlet a = []\n\tif (isString(v) || isNumber(v)) v = [v]\n\tfor (let i = 0; i < v.length; i++) {\n\t\tif (!(v[i] instanceof Vdom)) {\n\t\t\ta.push(createVdomTxt(v[i]))\n\t\t}else {\n\t\t\ta.push(v[i])\n\t\t}\n\t}\n\tvdom.children = a\n}\nexport function createVdomTxt (str) {\n\tlet vd = new Vdom()\n\tif(isString(str) || isNumber(str)) {\n\t\tvd.text = str\n\t}\n\treturn vd\n}\nexport function createVdom (arg) {\n\tlet i=0,\n\t\tvd = new Vdom()\n\n\twhile(i < arg.length) {\n\t\tlet v = arg[i]\n\t\tif (i === 0 && isString(v)) {\n\t\t\t// div#id.classA\n\t\t\tparseQuery(vd, v)\n\t\t}else if (i != 0){\n\t\t\tif(isObject(v)) {\n\t\t\t\t// class style clickEvent .ect\n\t\t\t\tparseData(vd, v)\n\t\t\t}else if (isArray(v) || isString(v) || isNumber(v)) {\n\t\t\t\t// childern\n\t\t\t\tparseChindren(vd, v)\n\t\t\t}\n\t\t}\n\t\ti++\n\t}\n\treturn vd\n}","import { api, isObject, isString } from '../util/index'\n\nexport function createEle (vdom) {\n\tlet i, e \n\tif( !vdom.el && (i = vdom.text)) {\n\t\te = vdom.el = api.createTextNode(i)\n\t\treturn vdom\n\t} \n\tif ( (i = vdom.tagName) && vdom.el === null) {\n\t\te = vdom.el = api.createElement(i)\n\t}else if (vdom.el.nodeType === 1) {\n\t\te = vdom.el\n\t}\n\tupdateEle(e, vdom)\n\treturn vdom\n}\n\nexport function updateEle (e ,vdom, oldVdom) {\n\tlet i\n\tif( (i = vdom.className).length > 0 ) api.setClass(e, i)\n\tif( (i = vdom.data) !== null ) api.setAttrs(e, i)\n\tif( (i = vdom.id) !== null ) api.setId(e, i)\n\tif( (i = vdom.children) !== null && !oldVdom) api.appendChildren(e, i)\n}\n","import { toArray, isArray, error } from '../util/index'\nimport { createVdom } from './index'\n\nexport function el () {\n\t\tconst arg = toArray(arguments)\n\n\t\tif (arg.length === 0) {\n\t\t\terror('Parameter cannot be empty')\n\t\t\treturn false\n\t\t}\n\t\tif (isArray(arg) && arg.length > 0) {\n\t\t\treturn createVdom.call(this, arg)\n\t\t}\t\n\t}\n\t","import { error, isArray, isObject, isString } from './index'\nimport { Vdom, createEle } from '../vdom/index'\n\nexport let api = Object.create(null)\n\n\tapi.createElement = function (tag) {\n\t\treturn document.createElement(tag)\n\t} \n\tapi.createTextNode = function (txt) {\n\t\treturn document.createTextNode(txt)\n\t}\n\tapi.appendChild = function (parent, child) {\n\t\treturn parent.appendChild(child)\n\t}\n\tapi.parentNode = function (node) {\n\t\treturn node.parentNode\n\t}\n\tapi.insertBefore = function (parent, newNode, rf) {\n\t\treturn parent.insertBefore(newNode, rf)\n\t}\n\tapi.nextSibling = function (el) {\n\t\treturn el.nextSibling\n\t}\n\tapi.removeChild = function (parent, rc) {\n\t\treturn parent.removeChild(rc)\n\t}\n\tapi.setTextContent = function (ele, txt) {\n\t\tele.textContent = txt\n\t}\n\tapi.setId = function (ele, id) {\n\t\tele.id = id\n\t}\n\tapi.defineProperty = function (obj, prop, descriptor) {\n\t\tObject.defineProperty(obj, prop, descriptor)\n\t}\n\tapi.appendChildren = function (ele, children) {\n\t\tif(ele && isArray(children)) {\n\t\t\tfor(let i = 0; i < children.length; i++) {\n\t\t\t\tlet c\n\t\t\t\tif (children[i] instanceof Vdom) {\n\t\t\t\t\tc = children[i].el || createEle(children[i]).el\n\t\t\t\t}\n\t\t\t\tthis.appendChild(ele, c)\n\t\t\t}\n\t\t}\n\t}\n\tapi.setClass = function (ele, c) {\n\t\tif(ele && isArray(c)) {\n\t\t\tlet k = ''\n\t\t\tfor(let i = 0; i < c.length; i++) {\n\t\t\t\t//ele.classList.add(c[i])\n\t\t\t\tif(i !== c.length-1){\n\t\t\t\t\tk += c[i] + ' '\n\t\t\t\t}else{\n\t\t\t\t\tk += c[i]\n\t\t\t\t}\n\t\t\t}\n\t\t\tele.className = k\n\t\t}\n\t}\n\tapi.setAttrs = function (ele, a) {\n\t\tif(ele && isObject(a)) {\n\t\t\tfor(let k in a) {\n\t\t\t\tif (k === 'class') continue\n\t\t\t\tlet s = a[k]\n\t\t\t\tif (k === 'style' && isObject(s)) {\n\t\t\t\t\tfor(let j in s) {\n\t\t\t\t\t\tele.style[j] = s[j]\n\t\t\t\t\t}\n\t\t\t\t}else {\n\t\t\t\t\tele[k] = s\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tapi.removeChildren = function (ele) {\n\t\tlet i, ch = ele.childNodes\n\t\twhile(ch[0]) {\n\t\t\tthis.removeChild(ele, ch[0])\n\t\t}\n\t}\n\n\n\n\n\n\n\n\n\n\n\n\n\n","import { isObject, error, api, warn } from '../util/index'\nimport { patch } from '../vdom/index'\n\nexport function injectStore (store, key, data, context) {\n\tlet archiver\n\tif(isObject(data)){\n\t\tstore[key] = data\n\t\tarchiver = new Archiver(data,key,context)\n\t\tfor(let k in data) {\n\t\t\tarchiver(k)\n\t\t}\n\t}\n\treturn data\n}\n\nfunction Archiver (data, sname, context) {\n let c\n let storage = {}\n let cm = context.componentManage\n let devc = function (c) {\n\t\tc.forEach( function(v, i) {\n\t\t\tlet newVn = v.render()\n\t\t\tpatch(v.vdom, newVn)\n\t\t\tv.vdom = newVn\n\t\t})\n }\n let des = function(key) {\n\t return {\n\t \t\t get: function() {\n\t\t\t return storage[key]\n\t\t\t },\n\t\t\t set: function(value) {\n\t\t\t storage[key] = value\n\t\t\t if (c = cm[sname]) {\n\t\t\t \t\t devc(c)\n\t\t\t }\n\t\t\t }\n\t \t\t}\n }\n api.defineProperty(data, 'set', {\n \tvalue: function () {\n \t\tlet o\n \t\tif (isObject(o = arguments[0])) {\n \t\t\tfor(let k in o){\n \t\t\t\tif(!storage.hasOwnProperty(k)) {\n \t\t\t\t\tapi.defineProperty(data, k, des(k))\n \t\t\t\t}\n \t\t\t\tstorage[k] = o[k]\n \t\t\t}\n \t\t\tif(c = cm[sname]) {\n\t\t\t \t\t devc(c)\n\t\t\t \t}\n \t\t}else{\n \t\t\terror(\"set function's parameter must be a object\")\n \t\t}\n \t}\n })\n return function (key) {\n \t\tstorage[key] = data[key]\n\t \tapi.defineProperty(data, key, des(key))\n\t}\n}\n\n\n\n\n\n\n\n\n\n","import { isObject, warn } from '../util/index'\nimport { injectStore, Store } from './index'\nimport { AoyC } from '../instance/Aoy'\n\nexport function initStore () {\n\tlet STORE = new Store()\n\tlet archiver\n\tif (this instanceof AoyC && !this._FINALSTORE) {\n\t\tObject.defineProperty(this, 'store', {\n\t\t\tset: function (value) {\n\t\t\t\twarn('Not allowed to modify store')\n\t\t\t},\n\t\t\tget: function () {\n\t\t\t\treturn STORE\n\t\t\t}\n\t\t})\n\t\tObject.defineProperty(this, '_FINALSTORE', {\n\t\t\tvalue: true\n\t\t})\n\t}else{\n\t\twarn('Not Aoy instance or Already init store')\n\t}\n\t//return STORE\n\treturn this\n}\n\n\n\n\n\n\n","import { toArray, isString, isObject, error, api } from '../util/index'\nimport { injectStore } from './index'\n\n\nexport function Store () {\n\tlet mainStore = {}\n\tthis.componentManage = {}\n\tthis.add = function () {\n\t\tconst arg = toArray(arguments)\n\t\tlet subStore\n\t\tif(arg.length > 0) {\n\t\t const iskey = isString(arg[0])\n\t\t const isdata = isObject(arg[1])\n\t\t const iskeyobj = isObject(arg[0])\n\n\t\t if(iskey && isdata) {\n\t\t \t\tsubStore = injectStore(mainStore, arg[0], arg[1], this)\n\t\t\t}else if (iskeyobj) {\t\n\t\t\t\tsubStore = injectStore(mainStore, '_DEFAULT', arg[0], this)\n\t\t\t}else {\n\t\t\t\terror('Missing key or data parameter')\n\t\t\t}\n\t\t}\n\t\treturn subStore\n\t}\n\n\tthis.get = function (key) {\n\t\tif (key === undefined) {\n\t\t\tkey = '_DEFAULT'\n\t\t}\n\t\treturn mainStore[key]\n\t}\n\n\tthis.getMainStore = function () {\n\t\treturn mainStore\n\t}\n\n\tthis.remove = function (key) {\n\t\tif(key === undefined){\n\t\t\tkey = '_DEFAULT'\n\t\t}\n\t\tdelete mainStore[key]\n\t}\n}\n\n\n\n\n\n\n\n\n\n\n","import { isObject, api } from '../util/index'\nimport { Component } from './index'\nlet uid = 0\n\nexport function createComponent (cp) {\n let c\n let _this = this\n let cid = uid++\n return (function () {\n if (isObject(cp)) {\n\t\tc = new Component(cp)\n\t\tapi.defineProperty(c, 'aoy', {\n\t\t\tvalue: _this\n\t\t})\n\t\tapi.defineProperty(c, '_UID', {\n\t\t\tvalue: cid\n\t\t})\n\t}\n\treturn c\n }())\n}\n","import { isObject } from '../util/index'\n\nexport function Component (op) {\n if (isObject(op)) {\n for (let k in op) {\n this[k] = op[k]\n }\n }\n}\n","import { isArray, isString, api } from '../util/index'\nimport { Component } from '../component/index'\n\nexport function connect (component, storeName) {\n\tlet store = this.store\n\tlet c = store.componentManage\n\n\tlet getStore = store.get\n\tlet cid = component._UID\n\n\tlet _this = this\n\tlet depfn = function(com, key) {\n\t\tif ( c[key]) {\n\t\t\tc[key].push(component)\n\t\t}else {\n\t\t\tc[key] = [component]\n\t\t}\n\t\t_this._dependent(cid, key)\n\t\tapi.defineProperty(com, key, {\n\t\t\t\tget: function() {\n\t\t\t\t\treturn getStore(key)\n\t\t\t\t} \n\t\t\t})\n\t}\n\n\tif (component instanceof Component) {\n\t\tif(isString(storeName)){\n\t\t\tdepfn(component, storeName)\n\t\t}else if (isArray(storeName)){\n\t\t\tfor(let i =0; i < storeName.length; i++ ) {\n\t\t\t\tdepfn(component, storeName[i])\n\t\t\t}\n\t\t}\n\t\t//render vdom\n\t\tthis.mount(component.el, component)\n\t}\n}","export function dependent (cid, sname) {\n\tlet i = this.dependManage[cid]\n\t\n\tif (i && i.length>0) {\n\t\ti.push(sname)\n\t}else {\n\t\tthis.dependManage[cid] = [sname]\n\t}\n}","import { createVdom, createEle, patch } from '../vdom/index'\nimport { api, isFunction } from '../util/index'\nexport function mount (parent,component) {\n\tconst vnode = component.render()\n\tconst d = createEle(vnode)\n\tcomponent.vdom = vnode\n\tapi.appendChild(parent, d.el)\n}\n","import { isArray, error, toArray, api, warn } from '../util/index'\nimport { createVdom, createEle, patch, el } from '../vdom/index'\nimport { injectStore, initStore, connect, dependent } from '../store/index'\nimport { createComponent } from '../component/index'\nimport { mount } from '../render/index'\n\nexport function baseInit (Aoy) {\n\tAoy.prototype._init = function(arg) {\n\n\t\tthis.dependManage = Object.create(null)\n\t\tthis._initStore()\n\t}\n\t\n\tAoy.prototype._initStore = initStore\n\n\tAoy.prototype.createComponent = createComponent\n\n\tAoy.prototype.connect = connect\n\n\tAoy.prototype._dependent = dependent\n\n\tAoy.prototype.mount = mount\n\n\tAoy.prototype.el = el\n\n\tAoy.prototype.patch = patch\n\n}\n\n\n\n\n","import { baseInit } from './baseInit'\nimport { toArray} from '../util/index'\n\nexport function AoyC () {\n\tif (this instanceof AoyC) {\n\t\tthis._init()\n\t}\t\n}\n\nexport function init () {\n\tbaseInit(AoyC)\n\treturn new AoyC()\n}\n"],"names":["api","const","el","let","patch","createVdomTxt","createVdom","this","initStore","Store","createComponent"],"mappings":"AAAO,SAAS,KAAK,EAAE,IAAI,EAAE;CAC5B,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;EACnC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;EACnB;CACD;AACD,AAAO,SAAS,IAAI,EAAE,IAAI,EAAE;CAC3B,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE;EACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;EAClB;;;ACRF,SAAS,KAAK,EAAE,CAAC,EAAE;CAClB,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;CACxC;;AAED,AAAO,SAAS,OAAO,EAAE,GAAG,EAAE;CAC7B,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,gBAAgB;CACtC;;AAED,AAAO,SAAS,QAAQ,EAAE,CAAC,EAAE;CAC5B,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,iBAAiB;CACrC;;AAED,AAAO,AAEN;;AAED,AAAO,SAAS,QAAQ,EAAE,CAAC,EAAE;CAC5B,OAAO,OAAO,CAAC,KAAK,QAAQ;CAC5B;;AAED,AAAO,SAAS,QAAQ,EAAE,CAAC,EAAE;CAC5B,OAAO,OAAO,CAAC,KAAK,QAAQ;CAC5B;;ACtBM,SAAS,OAAO,EAAE,GAAG,EAAE;CAC7B,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;CACzB;;ACFM,SAAS,IAAI,IAAI;CACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;CACnB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAA;CACf,IAAI,CAAC,EAAE,GAAG,IAAI,CAAA;CACd,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;CACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;CACpB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAA;CACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;CAChB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAA;CACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;CAChB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;CACd,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;CACjB;;ACTD,SAAS,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC;CAClC,OAAO,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG;CAC/D;AACD,SAAS,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE;IACpD,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,CAAA;IACxB,KAAK,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,MAAM,EAAE,EAAE,CAAC,EAAE;QACjC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAChB,IAAI,EAAE,IAAI,IAAI,EAAE;YACZ,GAAG,GAAG,EAAE,CAAC,GAAG,CAAA;YACZ,IAAI,GAAG,KAAK,IAAI;gBACZ,EAAA,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,EAAA;SACnB;KACJ;IACD,OAAO,GAAG;CACb;AACD,SAAS,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;QACpD,OAAO,QAAQ,IAAI,MAAM,EAAE,EAAE,QAAQ,EAAE;YACnC,IAAI,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;YACzB,IAAI,EAAE,IAAI,IAAI,EAAE;oBACRA,MAAG,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,CAAA;aACxC;SACJ;KACJ;AACL,SAAS,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;QACzD,OAAO,QAAQ,IAAI,MAAM,EAAE,EAAE,QAAQ,EAAE;YACnC,IAAI,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;YACzB,IAAI,EAAE,IAAI,IAAI,EAAE;gBACZA,MAAG,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;aACxD;SACJ;KACJ;AACL,SAAS,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE;CACrCC,IAAMC,KAAE,GAAG,KAAK,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAA;IAC9BC,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAA;IACrD,IAAI,QAAQ,KAAK,KAAK,EAAE,EAAA,MAAM,EAAA;;IAE9B,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE;QAC/EH,MAAG,CAAC,cAAc,CAACE,KAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;KACrC,KAAK;QACF,SAAS,CAACA,KAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;KACjC,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,KAAK,EAAE,EAAE;MAChC,cAAc,CAACA,KAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;MAC7B,KAAK,IAAI,EAAE,CAAC;MACZ,SAAS,CAAC,KAAK,CAAC,CAAA;MAChB,KAAK,IAAI,KAAK,CAAC;MACfF,MAAG,CAAC,cAAc,CAACE,KAAE,CAAC,CAAA;MACtB;KACD;CACJ;;AAED,SAAS,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE;CACjDC,IAAI,WAAW,GAAG,CAAC,EAAE,WAAW,GAAG,CAAC,CAAA;IACjCA,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IAChCA,IAAI,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAC5BA,IAAI,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAA;IAClCA,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;IAChCA,IAAI,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;IAC5BA,IAAI,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAA;IAClCA,IAAI,WAAW,CAAA;IACfA,IAAI,QAAQ,CAAA;IACZA,IAAI,SAAS,CAAA;IACbA,IAAI,MAAM,CAAA;IACV,OAAO,WAAW,IAAI,SAAS,IAAI,WAAW,IAAI,SAAS,EAAE;YACrD,IAAI,aAAa,IAAI,IAAI,EAAE;gBACvB,aAAa,GAAG,KAAK,CAAC,EAAE,WAAW,CAAC,CAAA;aACvC,KAAK,IAAI,WAAW,IAAI,IAAI,EAAE;gBAC3B,WAAW,GAAG,KAAK,CAAC,EAAE,SAAS,CAAC,CAAA;aACnC,KAAK,IAAI,aAAa,IAAI,IAAI,EAAE;gBAC7B,aAAa,GAAG,KAAK,CAAC,EAAE,WAAW,CAAC,CAAA;aACvC,KAAK,IAAI,WAAW,IAAI,IAAI,EAAE;gBAC3B,WAAW,GAAG,KAAK,CAAC,EAAE,SAAS,CAAC,CAAA;aACnC,KAAK,IAAI,SAAS,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE;gBAC/C,UAAU,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;gBACxC,aAAa,GAAG,KAAK,CAAC,EAAE,WAAW,CAAC,CAAA;gBACpC,aAAa,GAAG,KAAK,CAAC,EAAE,WAAW,CAAC,CAAA;aACvC,KAAK,IAAI,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE;gBAC3C,UAAU,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;gBACpC,WAAW,GAAG,KAAK,CAAC,EAAE,SAAS,CAAC,CAAA;gBAChC,WAAW,GAAG,KAAK,CAAC,EAAE,SAAS,CAAC,CAAA;aACnC,KAAK,IAAI,SAAS,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE;gBAC7C,UAAU,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;gBACtCH,MAAG,CAAC,YAAY,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,EAAEA,MAAG,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;gBAC9E,aAAa,GAAG,KAAK,CAAC,EAAE,WAAW,CAAC,CAAA;gBACpC,WAAW,GAAG,KAAK,CAAC,EAAE,SAAS,CAAC,CAAA;aACnC,KAAK,IAAI,SAAS,CAAC,WAAW,EAAE,aAAa,CAAC,EAAE;gBAC7C,UAAU,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;gBACtCA,MAAG,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,CAAC,CAAA;gBAC7D,WAAW,GAAG,KAAK,CAAC,EAAE,SAAS,CAAC,CAAA;gBAChC,aAAa,GAAG,KAAK,CAAC,EAAE,WAAW,CAAC,CAAA;aACvC,KAAK;gBACF,IAAI,WAAW,KAAK,SAAS,EAAE;oBAC3B,WAAW,GAAG,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAA;iBACjE;gBACD,QAAQ,GAAG,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;gBACzC,IAAI,CAAC,QAAQ,EAAE;oBACXA,MAAG,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,CAAC,CAAA;oBAC1E,aAAa,GAAG,KAAK,CAAC,EAAE,WAAW,CAAC,CAAA;iBACvC;qBACI;oBACD,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAA;oBAC3B,IAAI,SAAS,CAAC,GAAG,KAAK,aAAa,CAAC,GAAG,EAAE;wBACrCA,MAAG,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,CAAC,CAAA;qBAC7E,KAAK;wBACF,UAAU,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;wBACpC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAA;wBACtBA,MAAG,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,CAAC,CAAA;qBAC9D;oBACD,aAAa,GAAG,KAAK,CAAC,EAAE,WAAW,CAAC,CAAA;iBACvC;aACJ;SACJ;QACD,IAAI,WAAW,GAAG,SAAS,EAAE;YACzB,MAAM,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YACtE,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAA;SAC9D,KAAK,IAAI,WAAW,GAAG,SAAS,EAAE;YAC/B,YAAY,CAAC,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,CAAA;SACzD;CACR;;AAED,AAAO,SAASI,QAAK,EAAE,QAAQ,EAAE,KAAK,EAAE;CACvC,IAAI,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE;EAC/B,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;EAC3B,MAAM;EACNH,IAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,CAAA;EACvBE,IAAI,SAAS,GAAGH,MAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;EACnC,SAAS,CAAC,KAAK,CAAC,CAAA;EAChB,IAAI,SAAS,KAAK,IAAI,EAAE;GACvBA,MAAG,CAAC,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,EAAEA,MAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAA;GAC3DA,MAAG,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAA;GACvC,QAAQ,GAAG,IAAI,CAAA;GACf;EACD;CACD,OAAO,KAAK;CACZ;;ACrID,SAAS,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE;CACjCG,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;CACrB,IAAI,CAAC,GAAG,GAAG,KAAK,CAAA;;CAEhB,IAAIA,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;EAChDA,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;GAClB,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;IACtD,IAAI,KAAK,KAAK,CAAC,EAAE;KAChB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAA;KAC7D,KAAK,IAAI,KAAK,KAAK,CAAC,EAAE;KACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;KACrD,KAAK,IAAI,KAAK,KAAK,CAAC,EAAE;KACtB,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAA;KAC1C;IACD,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;IAClD,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACP;;EAEF;;CAED;;AAED,SAAS,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE;CAC5B,IAAIA,IAAI,CAAC,IAAI,CAAC,EAAE;EACf,IAAI,CAAC,KAAK,OAAO,CAAC;GACjBA,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;GACvB,IAAIA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACzB;GACD,KAAK,IAAI,CAAC,KAAK,KAAK,EAAE;GACtB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;GACf,KAAK,IAAI,CAAC,KAAK,OAAO,EAAE;GACxB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;GACjB;EACD;CACD,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;CACb;;AAED,SAAS,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE;CAChCA,IAAI,CAAC,GAAG,EAAE,CAAA;CACV,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAA,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,EAAA;CACvC,KAAKA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAClC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,EAAE;GAC5B,CAAC,CAAC,IAAI,CAACE,gBAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;GAC3B,KAAK;GACL,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;GACZ;EACD;CACD,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAA;CACjB;AACD,AAAO,SAASA,gBAAa,EAAE,GAAG,EAAE;CACnCF,IAAI,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;CACnB,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE;EAClC,EAAE,CAAC,IAAI,GAAG,GAAG,CAAA;EACb;CACD,OAAO,EAAE;CACT;AACD,AAAO,SAASG,aAAU,EAAE,GAAG,EAAE;CAChCH,IAAI,CAAC,CAAC,CAAC;EACN,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;;CAEhB,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE;EACrBA,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;EACd,IAAI,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;;GAE3B,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;GACjB,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;GAChB,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE;;IAEf,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAChB,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;;IAEnD,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IACpB;GACD;EACD,CAAC,EAAE,CAAA;EACH;CACD,OAAO,EAAE;;;AC9EH,SAAS,SAAS,EAAE,IAAI,EAAE;CAChCA,IAAI,CAAC,EAAE,CAAC,CAAA;CACR,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE;EAChC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAGH,MAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA;EACnC,OAAO,IAAI;EACX;CACD,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE;EAC5C,CAAC,GAAG,IAAI,CAAC,EAAE,GAAGA,MAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;EAClC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,KAAK,CAAC,EAAE;EACjC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAA;EACX;CACD,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;CAClB,OAAO,IAAI;CACX;;AAED,AAAO,SAAS,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;CAC5CG,IAAI,CAAC,CAAA;CACL,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,GAAG,EAAAH,MAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,EAAA;CACxD,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,MAAM,IAAI,GAAG,EAAAA,MAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,EAAA;CACjD,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,MAAM,IAAI,GAAG,EAAAA,MAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,EAAA;CAC5C,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,EAAAA,MAAG,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,EAAA;CACtE;;ACpBM,SAASE,KAAE,IAAI;EACpBD,IAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;;EAE9B,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;GACrB,KAAK,CAAC,2BAA2B,CAAC,CAAA;GAClC,OAAO,KAAK;GACZ;EACD,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;GACnC,OAAOK,aAAU,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;GACjC;EACD;;ACVKH,IAAIH,MAAG,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;;CAEnCA,MAAG,CAAC,aAAa,GAAG,UAAU,GAAG,EAAE;EAClC,OAAO,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;EAClC,CAAA;CACDA,MAAG,CAAC,cAAc,GAAG,UAAU,GAAG,EAAE;EACnC,OAAO,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC;EACnC,CAAA;CACDA,MAAG,CAAC,WAAW,GAAG,UAAU,MAAM,EAAE,KAAK,EAAE;EAC1C,OAAO,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;EAChC,CAAA;CACDA,MAAG,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE;EAChC,OAAO,IAAI,CAAC,UAAU;EACtB,CAAA;CACDA,MAAG,CAAC,YAAY,GAAG,UAAU,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;EACjD,OAAO,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;EACvC,CAAA;CACDA,MAAG,CAAC,WAAW,GAAG,UAAUE,KAAE,EAAE;EAC/B,OAAOA,KAAE,CAAC,WAAW;EACrB,CAAA;CACDF,MAAG,CAAC,WAAW,GAAG,UAAU,MAAM,EAAE,EAAE,EAAE;EACvC,OAAO,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;EAC7B,CAAA;CACDA,MAAG,CAAC,cAAc,GAAG,UAAU,GAAG,EAAE,GAAG,EAAE;EACxC,GAAG,CAAC,WAAW,GAAG,GAAG,CAAA;EACrB,CAAA;CACDA,MAAG,CAAC,KAAK,GAAG,UAAU,GAAG,EAAE,EAAE,EAAE;EAC9B,GAAG,CAAC,EAAE,GAAG,EAAE,CAAA;EACX,CAAA;CACDA,MAAG,CAAC,cAAc,GAAG,UAAU,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE;EACrD,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;EAC5C,CAAA;CACDA,MAAG,CAAC,cAAc,GAAG,UAAU,GAAG,EAAE,QAAQ,EAAE;;;EAC7C,GAAG,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;GAC5B,IAAIG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IACxCA,IAAI,CAAC,WAAA,CAAA;IACL,IAAI,QAAQ,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE;KAChC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;KAC/C;IACDI,MAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IACxB;GACD;EACD,CAAA;CACDP,MAAG,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,CAAC,EAAE;EAChC,GAAG,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;GACrBG,IAAI,CAAC,GAAG,EAAE,CAAA;GACV,IAAIA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;;IAEjC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;KACnB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAA;KACf,IAAI;KACJ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;KACT;IACD;GACD,GAAG,CAAC,SAAS,GAAG,CAAC,CAAA;GACjB;EACD,CAAA;CACDH,MAAG,CAAC,QAAQ,GAAG,UAAU,GAAG,EAAE,CAAC,EAAE;EAChC,GAAG,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;GACtB,IAAIG,IAAI,CAAC,IAAI,CAAC,EAAE;IACf,IAAI,CAAC,KAAK,OAAO,EAAE,EAAA,QAAQ,EAAA;IAC3BA,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACZ,IAAI,CAAC,KAAK,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;KACjC,IAAIA,IAAI,CAAC,IAAI,CAAC,EAAE;MACf,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;MACnB;KACD,KAAK;KACL,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;KACV;IACD;GACD;EACD,CAAA;CACDH,MAAG,CAAC,cAAc,GAAG,UAAU,GAAG,EAAE;;;EACnCG,IAAI,CAAC,EAAE,EAAE,GAAG,GAAG,CAAC,UAAU,CAAA;EAC1B,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE;GACZI,MAAI,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;GAC5B;EACD,CAAA;;AC7EK,SAAS,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;CACvDJ,IAAI,QAAQ,CAAA;CACZ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;EACjB,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;EACjB,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;EACzC,IAAIA,IAAI,CAAC,IAAI,IAAI,EAAE;GAClB,QAAQ,CAAC,CAAC,CAAC,CAAA;GACX;EACD;CACD,OAAO,IAAI;CACX;;AAED,SAAS,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;EACvCA,IAAI,CAAC,CAAA;EACLA,IAAI,OAAO,GAAG,EAAE,CAAA;EAChBA,IAAI,EAAE,GAAG,OAAO,CAAC,eAAe,CAAA;EAChCA,IAAI,IAAI,GAAG,UAAU,CAAC,EAAE;EACxB,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC,EAAE;GACzBA,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,CAAA;GACtBC,QAAK,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;GACpB,CAAC,CAAC,IAAI,GAAG,KAAK,CAAA;GACd,CAAC,CAAA;GACD,CAAA;EACDD,IAAI,GAAG,GAAG,SAAS,GAAG,EAAE;GACvB,OAAO;OACH,GAAG,EAAE,WAAW;SACd,OAAO,OAAO,CAAC,GAAG,CAAC;QACpB;KACH,GAAG,EAAE,SAAS,KAAK,EAAE;SACjB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;SACpB,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE;SACnB,IAAI,CAAC,CAAC,CAAC,CAAA;UACN;QACF;MACF;GACH,CAAA;EACDH,MAAG,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE;GAC/B,KAAK,EAAE,YAAY;IAClBG,IAAI,CAAC,CAAA;IACL,IAAI,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;KAC/B,IAAIA,IAAI,CAAC,IAAI,CAAC,CAAC;MACd,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;OAC9BH,MAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;OACnC;MACD,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;MACjB;KACD,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE;SACd,IAAI,CAAC,CAAC,CAAC,CAAA;QACR;KACH,IAAI;KACJ,KAAK,CAAC,2CAA2C,CAAC,CAAA;KAClD;IACD;GACD,CAAC,CAAA;EACF,OAAO,UAAU,GAAG,EAAE;IACpB,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;IACxBA,MAAG,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;EACzC;CACD;;ACzDM,SAASQ,YAAS,IAAI;CAC5BL,IAAI,KAAK,GAAG,IAAIM,QAAK,EAAE,CAAA;CACvBN,IAAI,QAAQ,CAAA;CACZ,IAAI,IAAI,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;EAC9C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE;GACpC,GAAG,EAAE,UAAU,KAAK,EAAE;IACrB,IAAI,CAAC,6BAA6B,CAAC,CAAA;IACnC;GACD,GAAG,EAAE,YAAY;IAChB,OAAO,KAAK;IACZ;GACD,CAAC,CAAA;EACF,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE;GAC1C,KAAK,EAAE,IAAI;GACX,CAAC,CAAA;EACF,IAAI;EACJ,IAAI,CAAC,wCAAwC,CAAC,CAAA;EAC9C;;CAED,OAAO,IAAI;CACX;;ACpBM,SAASM,QAAK,IAAI;CACxBN,IAAI,SAAS,GAAG,EAAE,CAAA;CAClB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;CACzB,IAAI,CAAC,GAAG,GAAG,YAAY;EACtBF,IAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;EAC9BE,IAAI,QAAQ,CAAA;EACZ,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;IACjBF,IAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9BA,IAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/BA,IAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;;IAEjC,GAAG,KAAK,IAAI,MAAM,EAAE;MAClB,QAAQ,GAAG,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACzD,KAAK,IAAI,QAAQ,EAAE;IACnB,QAAQ,GAAG,WAAW,CAAC,SAAS,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAC3D,KAAK;IACL,KAAK,CAAC,+BAA+B,CAAC,CAAA;IACtC;GACD;EACD,OAAO,QAAQ;EACf,CAAA;;CAED,IAAI,CAAC,GAAG,GAAG,UAAU,GAAG,EAAE;EACzB,IAAI,GAAG,KAAK,SAAS,EAAE;GACtB,GAAG,GAAG,UAAU,CAAA;GAChB;EACD,OAAO,SAAS,CAAC,GAAG,CAAC;EACrB,CAAA;;CAED,IAAI,CAAC,YAAY,GAAG,YAAY;EAC/B,OAAO,SAAS;EAChB,CAAA;;CAED,IAAI,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE;EAC5B,GAAG,GAAG,KAAK,SAAS,CAAC;GACpB,GAAG,GAAG,UAAU,CAAA;GAChB;EACD,OAAO,SAAS,CAAC,GAAG,CAAC,CAAA;EACrB,CAAA;CACD;;ACzCDE,IAAI,GAAG,GAAG,CAAC,CAAA;;AAEX,AAAO,SAASO,kBAAe,EAAE,EAAE,EAAE;EACnCP,IAAI,CAAC,CAAA;EACLA,IAAI,KAAK,GAAG,IAAI,CAAA;EAChBA,IAAI,GAAG,GAAG,GAAG,EAAE,CAAA;EACf,QAAQ,YAAY;IAClB,IAAI,QAAQ,CAAC,EAAE,CAAC,EAAE;EACpB,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAA;EACrBH,MAAG,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE;GAC5B,KAAK,EAAE,KAAK;GACZ,CAAC,CAAA;EACFA,MAAG,CAAC,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE;GAC7B,KAAK,EAAE,GAAG;GACV,CAAC,CAAA;EACF;CACD,OAAO,CAAC;GACN,EAAE,CAAC;CACL;;AClBM,SAAS,SAAS,EAAE,EAAE,EAAE;;;EAC7B,IAAI,QAAQ,CAAC,EAAE,CAAC,EAAE;IAChB,KAAKG,IAAI,CAAC,IAAI,EAAE,EAAE;MAChBI,MAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;KAChB;GACF;CACF;;ACLM,SAAS,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE;CAC9CJ,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;CACtBA,IAAI,CAAC,GAAG,KAAK,CAAC,eAAe,CAAA;;CAE7BA,IAAI,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAA;CACxBA,IAAI,GAAG,GAAG,SAAS,CAAC,IAAI,CAAA;;CAExBA,IAAI,KAAK,GAAG,IAAI,CAAA;CAChBA,IAAI,KAAK,GAAG,SAAS,GAAG,EAAE,GAAG,EAAE;EAC9B,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE;GACZ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;GACtB,KAAK;GACL,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;GACpB;EACD,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;EAC1BH,MAAG,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE;IAC3B,GAAG,EAAE,WAAW;KACf,OAAO,QAAQ,CAAC,GAAG,CAAC;KACpB;IACD,CAAC,CAAA;EACH,CAAA;;CAED,IAAI,SAAS,YAAY,SAAS,EAAE;EACnC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;GACtB,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;GAC3B,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;GAC5B,IAAIG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG;IACzC,KAAK,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA;IAC9B;GACD;;EAED,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;EACnC;;;ACnCK,SAAS,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE;CACtCA,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;;CAE9B,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;EACpB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;EACb,KAAK;EACL,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;EAChC;;;ACLK,SAAS,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE;CACxCF,IAAM,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,CAAA;CAChCA,IAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;CAC1B,SAAS,CAAC,IAAI,GAAG,KAAK,CAAA;CACtBD,MAAG,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;CAC7B;;ACDM,SAAS,QAAQ,EAAE,GAAG,EAAE;CAC9B,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,GAAG,EAAE;;EAEnC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;EACvC,IAAI,CAAC,UAAU,EAAE,CAAA;EACjB,CAAA;;CAED,GAAG,CAAC,SAAS,CAAC,UAAU,GAAGQ,YAAS,CAAA;;CAEpC,GAAG,CAAC,SAAS,CAAC,eAAe,GAAGE,kBAAe,CAAA;;CAE/C,GAAG,CAAC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAA;;CAE/B,GAAG,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,CAAA;;CAEpC,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,KAAK,CAAA;;CAE3B,GAAG,CAAC,SAAS,CAAC,EAAE,GAAGR,KAAE,CAAA;;CAErB,GAAG,CAAC,SAAS,CAAC,KAAK,GAAGE,QAAK,CAAA;;CAE3B;;ACxBM,SAAS,IAAI,IAAI;CACvB,IAAI,IAAI,YAAY,IAAI,EAAE;EACzB,IAAI,CAAC,KAAK,EAAE,CAAA;EACZ;CACD;;AAED,AAAO,SAAS,IAAI,IAAI;CACvB,QAAQ,CAAC,IAAI,CAAC,CAAA;CACd,OAAO,IAAI,IAAI,EAAE;CACjB;;"} -------------------------------------------------------------------------------- /dist/aoy.js: -------------------------------------------------------------------------------- 1 | (function (global, factory) { 2 | typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : 3 | typeof define === 'function' && define.amd ? define(['exports'], factory) : 4 | (factory((global.Aoy = global.Aoy || {}))); 5 | }(this, (function (exports) { 'use strict'; 6 | 7 | function error (info) { 8 | if (typeof console !== 'undeifine') { 9 | console.error(info); 10 | } 11 | } 12 | function warn (info) { 13 | if (typeof console !== 'undeifine') { 14 | console.warn(info); 15 | } 16 | } 17 | 18 | function judge (o) { 19 | return Object.prototype.toString.call(o) 20 | } 21 | 22 | function isArray (arr) { 23 | return judge(arr) === '[object Array]' 24 | } 25 | 26 | function isObject (o) { 27 | return judge(o) === '[object Object]' 28 | } 29 | 30 | 31 | 32 | function isString (s) { 33 | return typeof s === 'string' 34 | } 35 | 36 | function isNumber (n) { 37 | return typeof n === 'number' 38 | } 39 | 40 | function toArray (arr) { 41 | return [].slice.call(arr) 42 | } 43 | 44 | function Vdom () { 45 | this.tagName = null; 46 | this.sel = null; 47 | this.id = null; 48 | this.className = []; 49 | this.children = null; 50 | this.el = null; 51 | this.data = null; 52 | this.key = null; 53 | this.text = null; 54 | this.attr = []; 55 | this.store = null; 56 | } 57 | 58 | function sameVnode(oldVnode, vnode){ 59 | return vnode.key === oldVnode.key && vnode.sel === oldVnode.sel 60 | } 61 | function createKeyToOldIdx (children, beginIdx, endIdx) { 62 | var i, map = {}, key, ch; 63 | for (i = beginIdx; i <= endIdx; ++i) { 64 | ch = children[i]; 65 | if (ch != null) { 66 | key = ch.key; 67 | if (key !== null) 68 | { map[key] = i; } 69 | } 70 | } 71 | return map 72 | } 73 | function removeVnodes (parentElm, vnodes, startIdx, endIdx) { 74 | for ( ;startIdx <= endIdx; ++startIdx) { 75 | var ch = vnodes[startIdx]; 76 | if (ch != null) { 77 | api$$1.removeChild(parentElm, ch.el); 78 | } 79 | } 80 | } 81 | function addVnodes (parentElm, before, vnodes, startIdx, endIdx) { 82 | for ( ;startIdx <= endIdx; ++startIdx) { 83 | var ch = vnodes[startIdx]; 84 | if (ch != null) { 85 | api$$1.insertBefore(parentElm, createEle(ch).el, before); 86 | } 87 | } 88 | } 89 | function patchVnode (oldVnode, vnode) { 90 | var el$$1 = vnode.el = oldVnode.el; 91 | var i, oldCh = oldVnode.children, ch = vnode.children; 92 | if (oldVnode === vnode) { return } 93 | 94 | if (oldVnode.text !== null && vnode.text !== null && oldVnode.text !== vnode.text) { 95 | api$$1.setTextContent(el$$1, vnode.text); 96 | }else { 97 | updateEle(el$$1, vnode, oldVnode); 98 | if (oldCh && ch && oldCh !== ch) { 99 | updateChildren(el$$1, oldCh, ch); 100 | }else if (ch){ 101 | createEle(vnode); //create el's children dom 102 | }else if (oldCh){ 103 | api$$1.removeChildren(el$$1); 104 | } 105 | } 106 | } 107 | 108 | function updateChildren (parentElm, oldCh, newCh) { 109 | var oldStartIdx = 0, newStartIdx = 0; 110 | var oldEndIdx = oldCh.length - 1; 111 | var oldStartVnode = oldCh[0]; 112 | var oldEndVnode = oldCh[oldEndIdx]; 113 | var newEndIdx = newCh.length - 1; 114 | var newStartVnode = newCh[0]; 115 | var newEndVnode = newCh[newEndIdx]; 116 | var oldKeyToIdx; 117 | var idxInOld; 118 | var elmToMove; 119 | var before; 120 | while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) { 121 | if (oldStartVnode == null) { 122 | oldStartVnode = oldCh[++oldStartIdx]; // Vnode might have been moved left 123 | }else if (oldEndVnode == null) { 124 | oldEndVnode = oldCh[--oldEndIdx]; 125 | }else if (newStartVnode == null) { 126 | newStartVnode = newCh[++newStartIdx]; 127 | }else if (newEndVnode == null) { 128 | newEndVnode = newCh[--newEndIdx]; 129 | }else if (sameVnode(oldStartVnode, newStartVnode)) { 130 | patchVnode(oldStartVnode, newStartVnode); 131 | oldStartVnode = oldCh[++oldStartIdx]; 132 | newStartVnode = newCh[++newStartIdx]; 133 | }else if (sameVnode(oldEndVnode, newEndVnode)) { 134 | patchVnode(oldEndVnode, newEndVnode); 135 | oldEndVnode = oldCh[--oldEndIdx]; 136 | newEndVnode = newCh[--newEndIdx]; 137 | }else if (sameVnode(oldStartVnode, newEndVnode)) { 138 | patchVnode(oldStartVnode, newEndVnode); 139 | api$$1.insertBefore(parentElm, oldStartVnode.el, api$$1.nextSibling(oldEndVnode.el)); 140 | oldStartVnode = oldCh[++oldStartIdx]; 141 | newEndVnode = newCh[--newEndIdx]; 142 | }else if (sameVnode(oldEndVnode, newStartVnode)) { 143 | patchVnode(oldEndVnode, newStartVnode); 144 | api$$1.insertBefore(parentElm, oldEndVnode.el, oldStartVnode.el); 145 | oldEndVnode = oldCh[--oldEndIdx]; 146 | newStartVnode = newCh[++newStartIdx]; 147 | }else { 148 | if (oldKeyToIdx === undefined) { 149 | oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); 150 | } 151 | idxInOld = oldKeyToIdx[newStartVnode.key]; 152 | if (!idxInOld) { 153 | api$$1.insertBefore(parentElm, createEle(newStartVnode).el, oldStartVnode.el); 154 | newStartVnode = newCh[++newStartIdx]; 155 | } 156 | else { 157 | elmToMove = oldCh[idxInOld]; 158 | if (elmToMove.sel !== newStartVnode.sel) { 159 | api$$1.insertBefore(parentElm, createEle(newStartVnode).el, oldStartVnode.el); 160 | }else { 161 | patchVnode(elmToMove, newStartVnode); 162 | oldCh[idxInOld] = null; 163 | api$$1.insertBefore(parentElm, elmToMove.el, oldStartVnode.el); 164 | } 165 | newStartVnode = newCh[++newStartIdx]; 166 | } 167 | } 168 | } 169 | if (oldStartIdx > oldEndIdx) { 170 | before = newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].el; 171 | addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx); 172 | }else if (newStartIdx > newEndIdx) { 173 | removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx); 174 | } 175 | } 176 | 177 | function patch$$1 (oldVnode, vnode) { 178 | if (sameVnode(oldVnode, vnode)) { 179 | patchVnode(oldVnode, vnode); 180 | } else { 181 | var oEl = oldVnode.el; 182 | var parentEle = api$$1.parentNode(oEl); 183 | createEle(vnode); 184 | if (parentEle !== null) { 185 | api$$1.insertBefore(parentEle, vnode.el, api$$1.nextSibling(oEl)); 186 | api$$1.removeChild(parentEle, oldVnode.el); 187 | oldVnode = null; 188 | } 189 | } 190 | return vnode 191 | } 192 | 193 | function parseQuery (vdom, query) { 194 | var k,state = 0,j = 0; 195 | vdom.sel = query; 196 | 197 | for(var i = 0, len = query.length; i < len; i++) { 198 | var char = query[i]; 199 | if (char === '.' || char === '#' || (k = i === len-1)) { 200 | if (state === 0) { 201 | vdom.tagName = query.substring(j, !k ? i : len).toUpperCase(); 202 | }else if (state === 1) { 203 | vdom.className.push(query.substring(j, !k ? i : len)); 204 | }else if (state === 2) { 205 | vdom.id = query.substring(j, !k ? i : len); 206 | } 207 | state = (char === '.') ? 1 : (char === '#')? 2 : 3; 208 | j = i+1; 209 | } 210 | 211 | } 212 | 213 | } 214 | 215 | function parseData (vdom, v) { 216 | for(var k in v) { 217 | if (k === 'class'){ 218 | var i = v[k].split(' '); 219 | for(var j = 0; j < i.length; j++) { 220 | vdom.className.push(i[j]); 221 | } 222 | }else if (k === 'key') { 223 | vdom.key = v[k]; 224 | }else if (k !== 'style') { 225 | vdom.attr.push(k); 226 | } 227 | } 228 | vdom.data = v; 229 | } 230 | 231 | function parseChindren (vdom, v) { 232 | var a = []; 233 | if (isString(v) || isNumber(v)) { v = [v]; } 234 | for (var i = 0; i < v.length; i++) { 235 | if (!(v[i] instanceof Vdom)) { 236 | a.push(createVdomTxt$$1(v[i])); 237 | }else { 238 | a.push(v[i]); 239 | } 240 | } 241 | vdom.children = a; 242 | } 243 | function createVdomTxt$$1 (str) { 244 | var vd = new Vdom(); 245 | if(isString(str) || isNumber(str)) { 246 | vd.text = str; 247 | } 248 | return vd 249 | } 250 | function createVdom$$1 (arg) { 251 | var i=0, 252 | vd = new Vdom(); 253 | 254 | while(i < arg.length) { 255 | var v = arg[i]; 256 | if (i === 0 && isString(v)) { 257 | // div#id.classA 258 | parseQuery(vd, v); 259 | }else if (i != 0){ 260 | if(isObject(v)) { 261 | // class style clickEvent .ect 262 | parseData(vd, v); 263 | }else if (isArray(v) || isString(v) || isNumber(v)) { 264 | // childern 265 | parseChindren(vd, v); 266 | } 267 | } 268 | i++; 269 | } 270 | return vd 271 | } 272 | 273 | function createEle (vdom) { 274 | var i, e; 275 | if( !vdom.el && (i = vdom.text)) { 276 | e = vdom.el = api$$1.createTextNode(i); 277 | return vdom 278 | } 279 | if ( (i = vdom.tagName) && vdom.el === null) { 280 | e = vdom.el = api$$1.createElement(i); 281 | }else if (vdom.el.nodeType === 1) { 282 | e = vdom.el; 283 | } 284 | updateEle(e, vdom); 285 | return vdom 286 | } 287 | 288 | function updateEle (e ,vdom, oldVdom) { 289 | var i; 290 | if( (i = vdom.className).length > 0 ) { api$$1.setClass(e, i); } 291 | if( (i = vdom.data) !== null ) { api$$1.setAttrs(e, i); } 292 | if( (i = vdom.id) !== null ) { api$$1.setId(e, i); } 293 | if( (i = vdom.children) !== null && !oldVdom) { api$$1.appendChildren(e, i); } 294 | } 295 | 296 | function el$$1 () { 297 | var arg = toArray(arguments); 298 | 299 | if (arg.length === 0) { 300 | error('Parameter cannot be empty'); 301 | return false 302 | } 303 | if (isArray(arg) && arg.length > 0) { 304 | return createVdom$$1.call(this, arg) 305 | } 306 | } 307 | 308 | var api$$1 = Object.create(null); 309 | 310 | api$$1.createElement = function (tag) { 311 | return document.createElement(tag) 312 | }; 313 | api$$1.createTextNode = function (txt) { 314 | return document.createTextNode(txt) 315 | }; 316 | api$$1.appendChild = function (parent, child) { 317 | return parent.appendChild(child) 318 | }; 319 | api$$1.parentNode = function (node) { 320 | return node.parentNode 321 | }; 322 | api$$1.insertBefore = function (parent, newNode, rf) { 323 | return parent.insertBefore(newNode, rf) 324 | }; 325 | api$$1.nextSibling = function (el$$1) { 326 | return el$$1.nextSibling 327 | }; 328 | api$$1.removeChild = function (parent, rc) { 329 | return parent.removeChild(rc) 330 | }; 331 | api$$1.setTextContent = function (ele, txt) { 332 | ele.textContent = txt; 333 | }; 334 | api$$1.setId = function (ele, id) { 335 | ele.id = id; 336 | }; 337 | api$$1.defineProperty = function (obj, prop, descriptor) { 338 | Object.defineProperty(obj, prop, descriptor); 339 | }; 340 | api$$1.appendChildren = function (ele, children) { 341 | var this$1 = this; 342 | 343 | if(ele && isArray(children)) { 344 | for(var i = 0; i < children.length; i++) { 345 | var c = (void 0); 346 | if (children[i] instanceof Vdom) { 347 | c = children[i].el || createEle(children[i]).el; 348 | } 349 | this$1.appendChild(ele, c); 350 | } 351 | } 352 | }; 353 | api$$1.setClass = function (ele, c) { 354 | if(ele && isArray(c)) { 355 | var k = ''; 356 | for(var i = 0; i < c.length; i++) { 357 | //ele.classList.add(c[i]) 358 | if(i !== c.length-1){ 359 | k += c[i] + ' '; 360 | }else{ 361 | k += c[i]; 362 | } 363 | } 364 | ele.className = k; 365 | } 366 | }; 367 | api$$1.setAttrs = function (ele, a) { 368 | if(ele && isObject(a)) { 369 | for(var k in a) { 370 | if (k === 'class') { continue } 371 | var s = a[k]; 372 | if (k === 'style' && isObject(s)) { 373 | for(var j in s) { 374 | ele.style[j] = s[j]; 375 | } 376 | }else { 377 | ele[k] = s; 378 | } 379 | } 380 | } 381 | }; 382 | api$$1.removeChildren = function (ele) { 383 | var this$1 = this; 384 | 385 | var i, ch = ele.childNodes; 386 | while(ch[0]) { 387 | this$1.removeChild(ele, ch[0]); 388 | } 389 | }; 390 | 391 | function injectStore (store, key, data, context) { 392 | var archiver; 393 | if(isObject(data)){ 394 | store[key] = data; 395 | archiver = new Archiver(data,key,context); 396 | for(var k in data) { 397 | archiver(k); 398 | } 399 | } 400 | return data 401 | } 402 | 403 | function Archiver (data, sname, context) { 404 | var c; 405 | var storage = {}; 406 | var cm = context.componentManage; 407 | var devc = function (c) { 408 | c.forEach( function(v, i) { 409 | var newVn = v.render(); 410 | patch$$1(v.vdom, newVn); 411 | v.vdom = newVn; 412 | }); 413 | }; 414 | var des = function(key) { 415 | return { 416 | get: function() { 417 | return storage[key] 418 | }, 419 | set: function(value) { 420 | storage[key] = value; 421 | if (c = cm[sname]) { 422 | devc(c); 423 | } 424 | } 425 | } 426 | }; 427 | api$$1.defineProperty(data, 'set', { 428 | value: function () { 429 | var o; 430 | if (isObject(o = arguments[0])) { 431 | for(var k in o){ 432 | if(!storage.hasOwnProperty(k)) { 433 | api$$1.defineProperty(data, k, des(k)); 434 | } 435 | storage[k] = o[k]; 436 | } 437 | if(c = cm[sname]) { 438 | devc(c); 439 | } 440 | }else{ 441 | error("set function's parameter must be a object"); 442 | } 443 | } 444 | }); 445 | return function (key) { 446 | storage[key] = data[key]; 447 | api$$1.defineProperty(data, key, des(key)); 448 | } 449 | } 450 | 451 | function initStore$$1 () { 452 | var STORE = new Store$$1(); 453 | var archiver; 454 | if (this instanceof AoyC && !this._FINALSTORE) { 455 | Object.defineProperty(this, 'store', { 456 | set: function (value) { 457 | warn('Not allowed to modify store'); 458 | }, 459 | get: function () { 460 | return STORE 461 | } 462 | }); 463 | Object.defineProperty(this, '_FINALSTORE', { 464 | value: true 465 | }); 466 | }else{ 467 | warn('Not Aoy instance or Already init store'); 468 | } 469 | //return STORE 470 | return this 471 | } 472 | 473 | function Store$$1 () { 474 | var mainStore = {}; 475 | this.componentManage = {}; 476 | this.add = function () { 477 | var arg = toArray(arguments); 478 | var subStore; 479 | if(arg.length > 0) { 480 | var iskey = isString(arg[0]); 481 | var isdata = isObject(arg[1]); 482 | var iskeyobj = isObject(arg[0]); 483 | 484 | if(iskey && isdata) { 485 | subStore = injectStore(mainStore, arg[0], arg[1], this); 486 | }else if (iskeyobj) { 487 | subStore = injectStore(mainStore, '_DEFAULT', arg[0], this); 488 | }else { 489 | error('Missing key or data parameter'); 490 | } 491 | } 492 | return subStore 493 | }; 494 | 495 | this.get = function (key) { 496 | if (key === undefined) { 497 | key = '_DEFAULT'; 498 | } 499 | return mainStore[key] 500 | }; 501 | 502 | this.getMainStore = function () { 503 | return mainStore 504 | }; 505 | 506 | this.remove = function (key) { 507 | if(key === undefined){ 508 | key = '_DEFAULT'; 509 | } 510 | delete mainStore[key]; 511 | }; 512 | } 513 | 514 | var uid = 0; 515 | 516 | function createComponent$$1 (cp) { 517 | var c; 518 | var _this = this; 519 | var cid = uid++; 520 | return (function () { 521 | if (isObject(cp)) { 522 | c = new Component(cp); 523 | api$$1.defineProperty(c, 'aoy', { 524 | value: _this 525 | }); 526 | api$$1.defineProperty(c, '_UID', { 527 | value: cid 528 | }); 529 | } 530 | return c 531 | }()) 532 | } 533 | 534 | function Component (op) { 535 | var this$1 = this; 536 | 537 | if (isObject(op)) { 538 | for (var k in op) { 539 | this$1[k] = op[k]; 540 | } 541 | } 542 | } 543 | 544 | function connect (component, storeName) { 545 | var store = this.store; 546 | var c = store.componentManage; 547 | 548 | var getStore = store.get; 549 | var cid = component._UID; 550 | 551 | var _this = this; 552 | var depfn = function(com, key) { 553 | if ( c[key]) { 554 | c[key].push(component); 555 | }else { 556 | c[key] = [component]; 557 | } 558 | _this._dependent(cid, key); 559 | api$$1.defineProperty(com, key, { 560 | get: function() { 561 | return getStore(key) 562 | } 563 | }); 564 | }; 565 | 566 | if (component instanceof Component) { 567 | if(isString(storeName)){ 568 | depfn(component, storeName); 569 | }else if (isArray(storeName)){ 570 | for(var i =0; i < storeName.length; i++ ) { 571 | depfn(component, storeName[i]); 572 | } 573 | } 574 | //render vdom 575 | this.mount(component.el, component); 576 | } 577 | } 578 | 579 | function dependent (cid, sname) { 580 | var i = this.dependManage[cid]; 581 | 582 | if (i && i.length>0) { 583 | i.push(sname); 584 | }else { 585 | this.dependManage[cid] = [sname]; 586 | } 587 | } 588 | 589 | function mount (parent,component) { 590 | var vnode = component.render(); 591 | var d = createEle(vnode); 592 | component.vdom = vnode; 593 | api$$1.appendChild(parent, d.el); 594 | } 595 | 596 | function baseInit (Aoy) { 597 | Aoy.prototype._init = function(arg) { 598 | 599 | this.dependManage = Object.create(null); 600 | this._initStore(); 601 | }; 602 | 603 | Aoy.prototype._initStore = initStore$$1; 604 | 605 | Aoy.prototype.createComponent = createComponent$$1; 606 | 607 | Aoy.prototype.connect = connect; 608 | 609 | Aoy.prototype._dependent = dependent; 610 | 611 | Aoy.prototype.mount = mount; 612 | 613 | Aoy.prototype.el = el$$1; 614 | 615 | Aoy.prototype.patch = patch$$1; 616 | 617 | } 618 | 619 | function AoyC () { 620 | if (this instanceof AoyC) { 621 | this._init(); 622 | } 623 | } 624 | 625 | function init () { 626 | baseInit(AoyC); 627 | return new AoyC() 628 | } 629 | 630 | exports.init = init; 631 | exports.el = el$$1; 632 | 633 | Object.defineProperty(exports, '__esModule', { value: true }); 634 | 635 | }))); 636 | //# sourceMappingURL=aoy.js.map 637 | -------------------------------------------------------------------------------- /dist/aoy.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"aoy.js","sources":["../src/util/console.js","../src/util/is.js","../src/util/help.js","../src/vdom/vnode.js","../src/vdom/diff.js","../src/vdom/createVdom.js","../src/vdom/createEle.js","../src/vdom/el.js","../src/util/api.js","../src/store/injectStore.js","../src/store/initStore.js","../src/store/Store.js","../src/component/createComponent.js","../src/component/Component.js","../src/store/connect.js","../src/store/dependent.js","../src/render/mount.js","../src/instance/baseInit.js","../src/instance/Aoy.js"],"sourcesContent":["export function error (info) {\n\tif (typeof console !== 'undeifine') {\n\t\tconsole.error(info)\n\t}\n}\nexport function warn (info) {\n\tif (typeof console !== 'undeifine') {\n\t\tconsole.warn(info)\n\t}\n}","function judge (o) {\n\treturn Object.prototype.toString.call(o)\n}\n\nexport function isArray (arr) {\n\treturn judge(arr) === '[object Array]'\n}\n\nexport function isObject (o) {\n\treturn judge(o) === '[object Object]'\n}\n\nexport function isFunction (f) {\n\treturn typeof f === 'function'\n}\t\n\nexport function isString (s) {\n\treturn typeof s === 'string'\n}\n\nexport function isNumber (n) {\n\treturn typeof n === 'number'\n}\n\n\n\n\n\n\n","export function toArray (arr) {\n\treturn [].slice.call(arr)\n}\n","export function Vdom () {\n\tthis.tagName = null\n\tthis.sel = null\n\tthis.id = null\n\tthis.className = []\n\tthis.children = null\n\tthis.el = null\n\tthis.data = null\n\tthis.key = null\n\tthis.text = null\n\tthis.attr = []\n\tthis.store = null\n}\n","import { api, isArray} from '../util/index'\nimport { createEle, updateEle } from './index'\n\nfunction sameVnode(oldVnode, vnode){\n\treturn vnode.key === oldVnode.key && vnode.sel === oldVnode.sel\n}\nfunction createKeyToOldIdx (children, beginIdx, endIdx) {\n var i, map = {}, key, ch\n for (i = beginIdx; i <= endIdx; ++i) {\n ch = children[i]\n if (ch != null) {\n key = ch.key\n if (key !== null)\n map[key] = i\n }\n }\n return map\n}\nfunction removeVnodes (parentElm, vnodes, startIdx, endIdx) {\n for ( ;startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx]\n if (ch != null) {\n api.removeChild(parentElm, ch.el)\n }\n }\n }\nfunction addVnodes (parentElm, before, vnodes, startIdx, endIdx) {\n for ( ;startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx]\n if (ch != null) {\n api.insertBefore(parentElm, createEle(ch).el, before)\n }\n }\n } \nfunction patchVnode (oldVnode, vnode) {\n\tconst el = vnode.el = oldVnode.el\n let i, oldCh = oldVnode.children, ch = vnode.children\n if (oldVnode === vnode) return\n \n if (oldVnode.text !== null && vnode.text !== null && oldVnode.text !== vnode.text) {\n api.setTextContent(el, vnode.text)\n }else {\n updateEle(el, vnode, oldVnode)\n \tif (oldCh && ch && oldCh !== ch) {\n\t \tupdateChildren(el, oldCh, ch)\n\t }else if (ch){\n\t \tcreateEle(vnode) //create el's children dom\n\t }else if (oldCh){\n\t \tapi.removeChildren(el)\n\t }\n }\n}\n\nfunction updateChildren (parentElm, oldCh, newCh) {\n\tlet oldStartIdx = 0, newStartIdx = 0\n let oldEndIdx = oldCh.length - 1\n let oldStartVnode = oldCh[0]\n let oldEndVnode = oldCh[oldEndIdx]\n let newEndIdx = newCh.length - 1\n let newStartVnode = newCh[0]\n let newEndVnode = newCh[newEndIdx]\n let oldKeyToIdx\n let idxInOld\n let elmToMove\n let before\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n oldStartVnode = oldCh[++oldStartIdx] // Vnode might have been moved left\n }else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx]\n }else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx]\n }else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx]\n }else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode)\n oldStartVnode = oldCh[++oldStartIdx]\n newStartVnode = newCh[++newStartIdx]\n }else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode)\n oldEndVnode = oldCh[--oldEndIdx]\n newEndVnode = newCh[--newEndIdx]\n }else if (sameVnode(oldStartVnode, newEndVnode)) {\n patchVnode(oldStartVnode, newEndVnode)\n api.insertBefore(parentElm, oldStartVnode.el, api.nextSibling(oldEndVnode.el))\n oldStartVnode = oldCh[++oldStartIdx]\n newEndVnode = newCh[--newEndIdx]\n }else if (sameVnode(oldEndVnode, newStartVnode)) {\n patchVnode(oldEndVnode, newStartVnode)\n api.insertBefore(parentElm, oldEndVnode.el, oldStartVnode.el)\n oldEndVnode = oldCh[--oldEndIdx]\n newStartVnode = newCh[++newStartIdx]\n }else {\n if (oldKeyToIdx === undefined) {\n oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx)\n }\n idxInOld = oldKeyToIdx[newStartVnode.key]\n if (!idxInOld) {\n api.insertBefore(parentElm, createEle(newStartVnode).el, oldStartVnode.el)\n newStartVnode = newCh[++newStartIdx]\n }\n else {\n elmToMove = oldCh[idxInOld]\n if (elmToMove.sel !== newStartVnode.sel) {\n api.insertBefore(parentElm, createEle(newStartVnode).el, oldStartVnode.el)\n }else {\n patchVnode(elmToMove, newStartVnode)\n oldCh[idxInOld] = null\n api.insertBefore(parentElm, elmToMove.el, oldStartVnode.el)\n }\n newStartVnode = newCh[++newStartIdx]\n }\n }\n }\n if (oldStartIdx > oldEndIdx) {\n before = newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].el\n addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx)\n }else if (newStartIdx > newEndIdx) {\n removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx)\n }\n}\n\nexport function patch (oldVnode, vnode) {\n\tif (sameVnode(oldVnode, vnode)) {\n\t\tpatchVnode(oldVnode, vnode)\n\t} else {\n\t\tconst oEl = oldVnode.el\n\t\tlet parentEle = api.parentNode(oEl)\n\t\tcreateEle(vnode)\n\t\tif (parentEle !== null) {\n\t\t\tapi.insertBefore(parentEle, vnode.el, api.nextSibling(oEl))\n\t\t\tapi.removeChild(parentEle, oldVnode.el)\n\t\t\toldVnode = null\n\t\t}\n\t}\n\treturn vnode\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","import { isString, isObject, isArray, isNumber, api } from '../util/index'\nimport { Vdom, createEle } from './index'\n\nfunction parseQuery (vdom, query) {\n\tlet k,state = 0,j = 0\n\tvdom.sel = query\n\n\tfor(let i = 0, len = query.length; i < len; i++) {\n\t\tlet char = query[i]\n\t\t\tif (char === '.' || char === '#' || (k = i === len-1)) {\n\t\t\t\tif (state === 0) {\n\t\t\t\t\tvdom.tagName = query.substring(j, !k ? i : len).toUpperCase()\n\t\t\t\t}else if (state === 1) {\n\t\t\t\t\tvdom.className.push(query.substring(j, !k ? i : len))\n\t\t\t\t}else if (state === 2) {\n\t\t\t\t\tvdom.id = query.substring(j, !k ? i : len)\n\t\t\t\t}\n\t\t\t\tstate = (char === '.') ? 1 : (char === '#')? 2 : 3\n\t\t\t\tj = i+1\n\t\t\t}\t\t\n\n\t}\n\t\n}\n\nfunction parseData (vdom, v) {\n\tfor(let k in v) {\n\t\tif (k === 'class'){\n\t\t\tlet i = v[k].split(' ')\n\t\t\tfor(let j = 0; j < i.length; j++) {\n\t\t\t\tvdom.className.push(i[j])\n\t\t\t}\n\t\t}else if (k === 'key') {\n\t\t\tvdom.key = v[k]\n\t\t}else if (k !== 'style') {\n\t\t\tvdom.attr.push(k)\t\n\t\t}\n\t}\n\tvdom.data = v\n}\n\nfunction parseChindren (vdom, v) {\n\tlet a = []\n\tif (isString(v) || isNumber(v)) v = [v]\n\tfor (let i = 0; i < v.length; i++) {\n\t\tif (!(v[i] instanceof Vdom)) {\n\t\t\ta.push(createVdomTxt(v[i]))\n\t\t}else {\n\t\t\ta.push(v[i])\n\t\t}\n\t}\n\tvdom.children = a\n}\nexport function createVdomTxt (str) {\n\tlet vd = new Vdom()\n\tif(isString(str) || isNumber(str)) {\n\t\tvd.text = str\n\t}\n\treturn vd\n}\nexport function createVdom (arg) {\n\tlet i=0,\n\t\tvd = new Vdom()\n\n\twhile(i < arg.length) {\n\t\tlet v = arg[i]\n\t\tif (i === 0 && isString(v)) {\n\t\t\t// div#id.classA\n\t\t\tparseQuery(vd, v)\n\t\t}else if (i != 0){\n\t\t\tif(isObject(v)) {\n\t\t\t\t// class style clickEvent .ect\n\t\t\t\tparseData(vd, v)\n\t\t\t}else if (isArray(v) || isString(v) || isNumber(v)) {\n\t\t\t\t// childern\n\t\t\t\tparseChindren(vd, v)\n\t\t\t}\n\t\t}\n\t\ti++\n\t}\n\treturn vd\n}","import { api, isObject, isString } from '../util/index'\n\nexport function createEle (vdom) {\n\tlet i, e \n\tif( !vdom.el && (i = vdom.text)) {\n\t\te = vdom.el = api.createTextNode(i)\n\t\treturn vdom\n\t} \n\tif ( (i = vdom.tagName) && vdom.el === null) {\n\t\te = vdom.el = api.createElement(i)\n\t}else if (vdom.el.nodeType === 1) {\n\t\te = vdom.el\n\t}\n\tupdateEle(e, vdom)\n\treturn vdom\n}\n\nexport function updateEle (e ,vdom, oldVdom) {\n\tlet i\n\tif( (i = vdom.className).length > 0 ) api.setClass(e, i)\n\tif( (i = vdom.data) !== null ) api.setAttrs(e, i)\n\tif( (i = vdom.id) !== null ) api.setId(e, i)\n\tif( (i = vdom.children) !== null && !oldVdom) api.appendChildren(e, i)\n}\n","import { toArray, isArray, error } from '../util/index'\nimport { createVdom } from './index'\n\nexport function el () {\n\t\tconst arg = toArray(arguments)\n\n\t\tif (arg.length === 0) {\n\t\t\terror('Parameter cannot be empty')\n\t\t\treturn false\n\t\t}\n\t\tif (isArray(arg) && arg.length > 0) {\n\t\t\treturn createVdom.call(this, arg)\n\t\t}\t\n\t}\n\t","import { error, isArray, isObject, isString } from './index'\nimport { Vdom, createEle } from '../vdom/index'\n\nexport let api = Object.create(null)\n\n\tapi.createElement = function (tag) {\n\t\treturn document.createElement(tag)\n\t} \n\tapi.createTextNode = function (txt) {\n\t\treturn document.createTextNode(txt)\n\t}\n\tapi.appendChild = function (parent, child) {\n\t\treturn parent.appendChild(child)\n\t}\n\tapi.parentNode = function (node) {\n\t\treturn node.parentNode\n\t}\n\tapi.insertBefore = function (parent, newNode, rf) {\n\t\treturn parent.insertBefore(newNode, rf)\n\t}\n\tapi.nextSibling = function (el) {\n\t\treturn el.nextSibling\n\t}\n\tapi.removeChild = function (parent, rc) {\n\t\treturn parent.removeChild(rc)\n\t}\n\tapi.setTextContent = function (ele, txt) {\n\t\tele.textContent = txt\n\t}\n\tapi.setId = function (ele, id) {\n\t\tele.id = id\n\t}\n\tapi.defineProperty = function (obj, prop, descriptor) {\n\t\tObject.defineProperty(obj, prop, descriptor)\n\t}\n\tapi.appendChildren = function (ele, children) {\n\t\tif(ele && isArray(children)) {\n\t\t\tfor(let i = 0; i < children.length; i++) {\n\t\t\t\tlet c\n\t\t\t\tif (children[i] instanceof Vdom) {\n\t\t\t\t\tc = children[i].el || createEle(children[i]).el\n\t\t\t\t}\n\t\t\t\tthis.appendChild(ele, c)\n\t\t\t}\n\t\t}\n\t}\n\tapi.setClass = function (ele, c) {\n\t\tif(ele && isArray(c)) {\n\t\t\tlet k = ''\n\t\t\tfor(let i = 0; i < c.length; i++) {\n\t\t\t\t//ele.classList.add(c[i])\n\t\t\t\tif(i !== c.length-1){\n\t\t\t\t\tk += c[i] + ' '\n\t\t\t\t}else{\n\t\t\t\t\tk += c[i]\n\t\t\t\t}\n\t\t\t}\n\t\t\tele.className = k\n\t\t}\n\t}\n\tapi.setAttrs = function (ele, a) {\n\t\tif(ele && isObject(a)) {\n\t\t\tfor(let k in a) {\n\t\t\t\tif (k === 'class') continue\n\t\t\t\tlet s = a[k]\n\t\t\t\tif (k === 'style' && isObject(s)) {\n\t\t\t\t\tfor(let j in s) {\n\t\t\t\t\t\tele.style[j] = s[j]\n\t\t\t\t\t}\n\t\t\t\t}else {\n\t\t\t\t\tele[k] = s\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tapi.removeChildren = function (ele) {\n\t\tlet i, ch = ele.childNodes\n\t\twhile(ch[0]) {\n\t\t\tthis.removeChild(ele, ch[0])\n\t\t}\n\t}\n\n\n\n\n\n\n\n\n\n\n\n\n\n","import { isObject, error, api, warn } from '../util/index'\nimport { patch } from '../vdom/index'\n\nexport function injectStore (store, key, data, context) {\n\tlet archiver\n\tif(isObject(data)){\n\t\tstore[key] = data\n\t\tarchiver = new Archiver(data,key,context)\n\t\tfor(let k in data) {\n\t\t\tarchiver(k)\n\t\t}\n\t}\n\treturn data\n}\n\nfunction Archiver (data, sname, context) {\n let c\n let storage = {}\n let cm = context.componentManage\n let devc = function (c) {\n\t\tc.forEach( function(v, i) {\n\t\t\tlet newVn = v.render()\n\t\t\tpatch(v.vdom, newVn)\n\t\t\tv.vdom = newVn\n\t\t})\n }\n let des = function(key) {\n\t return {\n\t \t\t get: function() {\n\t\t\t return storage[key]\n\t\t\t },\n\t\t\t set: function(value) {\n\t\t\t storage[key] = value\n\t\t\t if (c = cm[sname]) {\n\t\t\t \t\t devc(c)\n\t\t\t }\n\t\t\t }\n\t \t\t}\n }\n api.defineProperty(data, 'set', {\n \tvalue: function () {\n \t\tlet o\n \t\tif (isObject(o = arguments[0])) {\n \t\t\tfor(let k in o){\n \t\t\t\tif(!storage.hasOwnProperty(k)) {\n \t\t\t\t\tapi.defineProperty(data, k, des(k))\n \t\t\t\t}\n \t\t\t\tstorage[k] = o[k]\n \t\t\t}\n \t\t\tif(c = cm[sname]) {\n\t\t\t \t\t devc(c)\n\t\t\t \t}\n \t\t}else{\n \t\t\terror(\"set function's parameter must be a object\")\n \t\t}\n \t}\n })\n return function (key) {\n \t\tstorage[key] = data[key]\n\t \tapi.defineProperty(data, key, des(key))\n\t}\n}\n\n\n\n\n\n\n\n\n\n","import { isObject, warn } from '../util/index'\nimport { injectStore, Store } from './index'\nimport { AoyC } from '../instance/Aoy'\n\nexport function initStore () {\n\tlet STORE = new Store()\n\tlet archiver\n\tif (this instanceof AoyC && !this._FINALSTORE) {\n\t\tObject.defineProperty(this, 'store', {\n\t\t\tset: function (value) {\n\t\t\t\twarn('Not allowed to modify store')\n\t\t\t},\n\t\t\tget: function () {\n\t\t\t\treturn STORE\n\t\t\t}\n\t\t})\n\t\tObject.defineProperty(this, '_FINALSTORE', {\n\t\t\tvalue: true\n\t\t})\n\t}else{\n\t\twarn('Not Aoy instance or Already init store')\n\t}\n\t//return STORE\n\treturn this\n}\n\n\n\n\n\n\n","import { toArray, isString, isObject, error, api } from '../util/index'\nimport { injectStore } from './index'\n\n\nexport function Store () {\n\tlet mainStore = {}\n\tthis.componentManage = {}\n\tthis.add = function () {\n\t\tconst arg = toArray(arguments)\n\t\tlet subStore\n\t\tif(arg.length > 0) {\n\t\t const iskey = isString(arg[0])\n\t\t const isdata = isObject(arg[1])\n\t\t const iskeyobj = isObject(arg[0])\n\n\t\t if(iskey && isdata) {\n\t\t \t\tsubStore = injectStore(mainStore, arg[0], arg[1], this)\n\t\t\t}else if (iskeyobj) {\t\n\t\t\t\tsubStore = injectStore(mainStore, '_DEFAULT', arg[0], this)\n\t\t\t}else {\n\t\t\t\terror('Missing key or data parameter')\n\t\t\t}\n\t\t}\n\t\treturn subStore\n\t}\n\n\tthis.get = function (key) {\n\t\tif (key === undefined) {\n\t\t\tkey = '_DEFAULT'\n\t\t}\n\t\treturn mainStore[key]\n\t}\n\n\tthis.getMainStore = function () {\n\t\treturn mainStore\n\t}\n\n\tthis.remove = function (key) {\n\t\tif(key === undefined){\n\t\t\tkey = '_DEFAULT'\n\t\t}\n\t\tdelete mainStore[key]\n\t}\n}\n\n\n\n\n\n\n\n\n\n\n","import { isObject, api } from '../util/index'\nimport { Component } from './index'\nlet uid = 0\n\nexport function createComponent (cp) {\n let c\n let _this = this\n let cid = uid++\n return (function () {\n if (isObject(cp)) {\n\t\tc = new Component(cp)\n\t\tapi.defineProperty(c, 'aoy', {\n\t\t\tvalue: _this\n\t\t})\n\t\tapi.defineProperty(c, '_UID', {\n\t\t\tvalue: cid\n\t\t})\n\t}\n\treturn c\n }())\n}\n","import { isObject } from '../util/index'\n\nexport function Component (op) {\n if (isObject(op)) {\n for (let k in op) {\n this[k] = op[k]\n }\n }\n}\n","import { isArray, isString, api } from '../util/index'\nimport { Component } from '../component/index'\n\nexport function connect (component, storeName) {\n\tlet store = this.store\n\tlet c = store.componentManage\n\n\tlet getStore = store.get\n\tlet cid = component._UID\n\n\tlet _this = this\n\tlet depfn = function(com, key) {\n\t\tif ( c[key]) {\n\t\t\tc[key].push(component)\n\t\t}else {\n\t\t\tc[key] = [component]\n\t\t}\n\t\t_this._dependent(cid, key)\n\t\tapi.defineProperty(com, key, {\n\t\t\t\tget: function() {\n\t\t\t\t\treturn getStore(key)\n\t\t\t\t} \n\t\t\t})\n\t}\n\n\tif (component instanceof Component) {\n\t\tif(isString(storeName)){\n\t\t\tdepfn(component, storeName)\n\t\t}else if (isArray(storeName)){\n\t\t\tfor(let i =0; i < storeName.length; i++ ) {\n\t\t\t\tdepfn(component, storeName[i])\n\t\t\t}\n\t\t}\n\t\t//render vdom\n\t\tthis.mount(component.el, component)\n\t}\n}","export function dependent (cid, sname) {\n\tlet i = this.dependManage[cid]\n\t\n\tif (i && i.length>0) {\n\t\ti.push(sname)\n\t}else {\n\t\tthis.dependManage[cid] = [sname]\n\t}\n}","import { createVdom, createEle, patch } from '../vdom/index'\nimport { api, isFunction } from '../util/index'\nexport function mount (parent,component) {\n\tconst vnode = component.render()\n\tconst d = createEle(vnode)\n\tcomponent.vdom = vnode\n\tapi.appendChild(parent, d.el)\n}\n","import { isArray, error, toArray, api, warn } from '../util/index'\nimport { createVdom, createEle, patch, el } from '../vdom/index'\nimport { injectStore, initStore, connect, dependent } from '../store/index'\nimport { createComponent } from '../component/index'\nimport { mount } from '../render/index'\n\nexport function baseInit (Aoy) {\n\tAoy.prototype._init = function(arg) {\n\n\t\tthis.dependManage = Object.create(null)\n\t\tthis._initStore()\n\t}\n\t\n\tAoy.prototype._initStore = initStore\n\n\tAoy.prototype.createComponent = createComponent\n\n\tAoy.prototype.connect = connect\n\n\tAoy.prototype._dependent = dependent\n\n\tAoy.prototype.mount = mount\n\n\tAoy.prototype.el = el\n\n\tAoy.prototype.patch = patch\n\n}\n\n\n\n\n","import { baseInit } from './baseInit'\nimport { toArray} from '../util/index'\n\nexport function AoyC () {\n\tif (this instanceof AoyC) {\n\t\tthis._init()\n\t}\t\n}\n\nexport function init () {\n\tbaseInit(AoyC)\n\treturn new AoyC()\n}\n"],"names":["api","const","el","let","patch","createVdomTxt","createVdom","this","initStore","Store","createComponent"],"mappings":"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"} -------------------------------------------------------------------------------- /dist/aoy.min.js: -------------------------------------------------------------------------------- 1 | !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(e.Aoy=e.Aoy||{})}(this,function(e){"use strict";function n(e){"undeifine"!=typeof console&&console.error(e)}function t(e){"undeifine"!=typeof console&&console.warn(e)}function r(e){return Object.prototype.toString.call(e)}function i(e){return"[object Array]"===r(e)}function o(e){return"[object Object]"===r(e)}function l(e){return"string"==typeof e}function u(e){return"number"==typeof e}function f(e){return[].slice.call(e)}function a(){this.tagName=null,this.sel=null,this.id=null,this.className=[],this.children=null,this.el=null,this.data=null,this.key=null,this.text=null,this.attr=[],this.store=null}function s(e,n){return n.key===e.key&&n.sel===e.sel}function c(e,n,t){var r,i,o,l={};for(r=n;r<=t;++r)null!=(o=e[r])&&null!==(i=o.key)&&(l[i]=r);return l}function d(e,n,t,r){for(;t<=r;++t){var i=n[t];null!=i&&D.removeChild(e,i.el)}}function h(e,n,t,r,i){for(;r<=i;++r){var o=t[r];null!=o&&D.insertBefore(e,N(o).el,n)}}function p(e,n){var t=n.el=e.el,r=e.children,i=n.children;e!==n&&(null!==e.text&&null!==n.text&&e.text!==n.text?D.setTextContent(t,n.text):(_(t,n,e),r&&i&&r!==i?v(t,r,i):i?N(n):r&&D.removeChildren(t)))}function v(e,n,t){for(var r,i,o,l,u=0,f=0,a=n.length-1,v=n[0],y=n[a],g=t.length-1,m=t[0],b=t[g];u<=a&&f<=g;)null==v?v=n[++u]:null==y?y=n[--a]:null==m?m=t[++f]:null==b?b=t[--g]:s(v,m)?(p(v,m),v=n[++u],m=t[++f]):s(y,b)?(p(y,b),y=n[--a],b=t[--g]):s(v,b)?(p(v,b),D.insertBefore(e,v.el,D.nextSibling(y.el)),v=n[++u],b=t[--g]):s(y,m)?(p(y,m),D.insertBefore(e,y.el,v.el),y=n[--a],m=t[++f]):(void 0===r&&(r=c(n,u,a)),i=r[m.key],i?(o=n[i],o.sel!==m.sel?D.insertBefore(e,N(m).el,v.el):(p(o,m),n[i]=null,D.insertBefore(e,o.el,v.el)),m=t[++f]):(D.insertBefore(e,N(m).el,v.el),m=t[++f]));u>a?(l=null==t[g+1]?null:t[g+1].el,h(e,l,t,f,g)):f>g&&d(e,n,u,a)}function y(e,n){if(s(e,n))p(e,n);else{var t=e.el,r=D.parentNode(t);N(n),null!==r&&(D.insertBefore(r,n.el,D.nextSibling(t)),D.removeChild(r,e.el),e=null)}return n}function g(e,n){var t,r=0,i=0;e.sel=n;for(var o=0,l=n.length;oim p
im p
im span