UNPKG

@falconjs.io/falcon

Version:
1 lines 62 kB
{"version":3,"sources":["../node_modules/superfine/src/index.js","../src/libs/model.js","../node_modules/url-mapper/mapper.js","../node_modules/urlon/lib/urlon.js","../node_modules/path-to-regexp/index.js","../node_modules/url-mapper/compileRoute.js","../node_modules/url-mapper/index.js","../src/libs/router.js","../src/index.js","demo.js"],"names":["DEFAULT","RECYCLED_NODE","TEXT_NODE","XLINK_NS","SVG_NS","EMPTY_OBJECT","EMPTY_ARRAY","map","isArray","Array","merge","a","b","target","i","eventProxy","event","currentTarget","events","type","updateProperty","element","name","lastValue","nextValue","isSvg","style","setProperty","slice","removeEventListener","addEventListener","nullOrFalse","removeAttribute","ns","replace","removeAttributeNS","setAttributeNS","setAttribute","createElement","node","lifecycle","document","createTextNode","createElementNS","props","oncreate","push","length","children","appendChild","updateElement","lastProps","nextProps","isRecycled","cb","onupdate","removeChildren","ondestroy","removeElement","parent","remove","removeChild","onremove","getKey","key","createKeyMap","start","end","out","patchElement","lastNode","nextNode","nodeValue","newElement","insertBefore","savedNode","childNode","lastKey","lastChildren","lastChStart","lastChEnd","nextKey","nextChildren","nextChStart","nextChEnd","lastKeyed","nextKeyed","createVNode","createTextVNode","text","recycleChild","nodeType","recycleElement","nodeName","toLowerCase","call","childNodes","recycle","container","patch","pop","h","rest","arguments","Observable","dataObj","signals","Dep","subs","depend","deps","dep","includes","getValidDeps","filter","notifyDeps","sig","notify","observe","property","autorender","console","log","makeReactive","obj","computeFunc","val","Object","defineProperty","get","set","newVal","observeData","hasOwnProperty","makeComputed","signal","lenght","forEach","signalHandler","cache","subscribeWatchers","watchers","context","bind","data","watch","state","module","exports","urlMapper","router","routes","loc","matchedRoute","Render","view","Router","StateStore","fName","lName","age","location","fullName","old","oldornot","App","Display","Controller","e","value","View","Component","Home","noPageFound","render","getElementById","reroute","route","hm","match","values","link","querySelectorAll","url","attributes","href","preventDefault","history","pushState"],"mappings":"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AAC9F,MAAJ,GAAa,IAAb;AACA,eAAO8H,KAAP;AACH,OAf2B;AAiB5BT,MAAAA,GAjB4B,iBAiBvB;AAAC;AAAe;AAjBO,KAAhC;AAmBH,GA5BD;;AA8BA,MAAIU,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,QAAD,EAAWC,OAAX,EAAuB;AAC3C,SAAK,IAAI9E,GAAT,IAAgB6E,QAAhB,EAAyB;AACrB,UAAGA,QAAQ,CAACR,cAAT,CAAwBrE,GAAxB,CAAH,EAAgC;AAC5BsD,QAAAA,OAAO,CAACtD,GAAD,EAAM6E,QAAQ,CAAC7E,GAAD,CAAR,CAAc+E,IAAd,CAAmBD,OAAnB,CAAN,CAAP;AACH;AACJ;AACJ,GAND;;AAQAV,EAAAA,WAAW,CAAC3B,OAAO,CAACuC,IAAT,CAAX;AACAJ,EAAAA,iBAAiB,CAACnC,OAAO,CAACwC,KAAT,EAAgBxC,OAAO,CAACuC,IAAxB,CAAjB;AAEA,SAAO;AACHE,IAAAA,KAAK,EAAEzC,OAAO,CAACuC,IADZ;AAEH1B,IAAAA,OAAO,EAAPA,OAFG;AAGHD,IAAAA,MAAM,EAANA;AAHG,GAAP;AAMH,CAtID;;AAwIC8B,MAAM,CAACC,OAAP,GAAiB;AACV5C,EAAAA,UAAU,EAAEA;AADF,CAAjB;;ACxID;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACPA;;AACA;;;;AAEA,IAAM6C,SAAS,GAAG,yBAAlB;;AAEA,IAAIC,MAAM,GAAG,SAATA,MAAS,CAACC,MAAD;AAAA,SAAY,UAAAC,GAAG,EAAK;AAC7B,QAAIC,YAAY,GAAGJ,SAAS,CAAC9I,GAAV,CAAciJ,GAAd,EAAkBD,MAAlB,CAAnB;AACA,WAAQE,YAAR;AACH,GAHY;AAAA,CAAb;;AAMAN,MAAM,CAACC,OAAP,GAAiB;AACbE,EAAAA,MAAM,EAAEA;AADK,CAAjB;;;;ACXA;;AACA;;AACA;;AAEA,IAAMI,MAAM,GAAG,SAATA,MAAS,CAACC,IAAD,EAAOzD,SAAP,EAAkB3D,IAAlB;AAAA,SAA2B,UAAA2G,KAAK,EAAI;AAC/C3G,IAAAA,IAAI,GAAG,sBAAMA,IAAN,EAAYoH,IAAI,CAACT,KAAD,CAAhB,EAAyBhD,SAAzB,CAAP;AACH,GAFc;AAAA,CAAf;;AAMAiD,MAAM,CAACC,OAAP,GAAiB;AACb/C,EAAAA,CAAC,EAAEA,YADU;AAEbF,EAAAA,KAAK,EAAEA,gBAFM;AAGbK,EAAAA,UAAU,EAAEA,iBAHC;AAIbkD,EAAAA,MAAM,EAAEA,MAJK;AAKbE,EAAAA,MAAM,EAAEN;AALK,CAAjB;;;;ACVA;;;;AAEA,IAAIO,UAAU,GAAG;AACTb,EAAAA,IAAI,EAAE;AACFc,IAAAA,KAAK,EAAE,MADL;AAEFC,IAAAA,KAAK,EAAE,KAFL;AAGFC,IAAAA,GAAG,EAAC,EAHF;AAIFC,IAAAA,QAAQ,EAAG,GAJT;AAKFC,IAAAA,QALE,sBAKU;AACJ,aAAO,KAAKJ,KAAL,GAAa,GAAb,GAAmB,KAAKC,KAA/B;AACH,KAPH;AAQFI,IAAAA,GARE,iBAQK;AACH,UAAIC,QAAQ,GAAC,OAAb;;AACA,UAAG,KAAKJ,GAAL,GAAW,EAAd,EAAiB;AACbI,QAAAA,QAAQ,GAAG,KAAX;AACH;;AACD,aAAOA,QAAP;AACH;AAdC;AADG,CAAjB;AAmBA,IAAIC,GAAG,GAAG,IAAI7D,eAAJ,CAAeqD,UAAf,CAAV;;AAEA,IAAIS,OAAO,GAAG,SAAVA,OAAU,GAAM;AAChB,SACE;AAAK,IAAA,QAAQ,EAAE7C,OAAO,CAACC,GAAR,CAAY,oCAAZ;AAAf,KACE,wBAAK2C,GAAG,CAACnB,KAAJ,CAAUgB,QAAf,CADF,EAEE,yBAAMG,GAAG,CAACnB,KAAJ,CAAUc,GAAhB,CAFF,EAGE,yBAAMK,GAAG,CAACnB,KAAJ,CAAUiB,GAAhB,CAHF,EAIE;AAAG,IAAA,IAAI,EAAC;AAAR,YAJF,EAKE;AAAG,IAAA,IAAI,EAAC;AAAR,oBALF,EAME;AAAG,IAAA,IAAI,EAAC;AAAR,WANF,CADF;AAUH,CAXD;;AAcA,IAAII,UAAU,GAAG,SAAbA,UAAa,GAAK;AAChB,SACE,yBACE;AAAO,IAAA,KAAK,EAAIF,GAAG,CAACnB,KAAJ,CAAUY,KAA1B;AAAiC,IAAA,OAAO,EAAE,iBAACU,CAAD,EAAK;AAACH,MAAAA,GAAG,CAACnB,KAAJ,CAAUY,KAAV,GAAkBU,CAAC,CAAC3J,MAAF,CAAS4J,KAA3B;AAAkC;AAAlF,IADF,EAEE;AAAO,IAAA,KAAK,EAAIJ,GAAG,CAACnB,KAAJ,CAAUa,KAA1B;AAAiC,IAAA,OAAO,EAAE,iBAACS,CAAD,EAAK;AAACH,MAAAA,GAAG,CAACnB,KAAJ,CAAUa,KAAV,GAAkBS,CAAC,CAAC3J,MAAF,CAAS4J,KAA3B;AAAkC;AAAlF,IAFF,EAGE;AAAO,IAAA,IAAI,EAAC,OAAZ;AAAoB,IAAA,KAAK,EAAEJ,GAAG,CAACnB,KAAJ,CAAUc,GAArC;AAA2C,IAAA,OAAO,EAAE,iBAACQ,CAAD,EAAK;AAACH,MAAAA,GAAG,CAACnB,KAAJ,CAAUc,GAAV,GAAgBQ,CAAC,CAAC3J,MAAF,CAAS4J,KAAzB;AAAgC;AAA1F,IAHF,CADF;AAOL,CARD;;AAUA,IAAIC,IAAI,GAAI,SAARA,IAAQ,CAACC,SAAD,EAAe;AACrB,SACE,yBACE,YAAC,SAAD,OADF,CADF;AAKL,CAND;;AAOA,IAAIC,IAAI,GAAE,SAANA,IAAM,GAAM;AAAE,SAAO,yBAAK,YAAC,OAAD,OAAL,EAAe,YAAC,UAAD,OAAf,CAAP;AAA2C,CAA7D;;AACA,IAAIC,WAAW,GAAG,SAAdA,WAAc,GAAK;AAACpD,EAAAA,OAAO,CAACC,GAAR,CAAY,KAAZ;AAAmB,SAAO,yBAAK,8BAAL,CAAP;AAAgC,CAA3E;;AAEA,IAAMoD,MAAM,GAAG,iBAAOJ,IAAP,EAAajI,QAAQ,CAACsI,cAAT,CAAwB,MAAxB,CAAb,CAAf;AAEA,IAAMxB,MAAM,GAAG;AACb,OAAKqB,IADQ;AAEb,UAAQL,UAFK;AAGb,OAAKM;AAHQ,CAAf;AAKA,IAAIvB,MAAM,GAAG,iBAAOC,MAAP,CAAb;;AAGA,IAAIyB,OAAO,GAAG,SAAVA,OAAU,CAACxB,GAAD,EAAQ;AACtB,MAAIyB,KAAK,GAAG3B,MAAM,CAACe,GAAG,CAACnB,KAAJ,CAAUe,QAAX,CAAlB;AACC,MAAIiB,EAAE,GAAE,iBAAO1B,GAAP,CAAR;AACA/B,EAAAA,OAAO,CAACC,GAAR,CAAY,KAAZ,EAAkB8B,GAAlB;;AACC,MAAGyB,KAAH,EAAS;AACP,QAAIN,SAAS,GAAGM,KAAK,CAACE,KAAtB;AACA,QAAIvI,KAAK,GAAGqI,KAAK,CAACG,MAAlB;AACA3D,IAAAA,OAAO,CAACC,GAAR,CAAY,SAAZ;AACAoD,IAAAA,MAAM,CAACH,SAAD,CAAN;AACD;AACF,CAVD;;AAWCK,OAAO,CAAC,MAAD,CAAP;AACDX,GAAG,CAAC/C,OAAJ,CAAY,OAAZ,EAAqB,YAAK;AAACwD,EAAAA,MAAM;AAAG,CAApC;AACAT,GAAG,CAAC/C,OAAJ,CAAY,OAAZ,EAAqB,YAAK;AAACwD,EAAAA,MAAM;AAAG,CAApC;AACAT,GAAG,CAAC/C,OAAJ,CAAY,KAAZ,EAAmB,YAAK;AAACwD,EAAAA,MAAM;AAAG,CAAlC;AACAT,GAAG,CAAC/C,OAAJ,CAAY,UAAZ,EAAwB,YAAI;AAAC0D,EAAAA,OAAO,CAACX,GAAG,CAACnB,KAAJ,CAAUe,QAAX,CAAP;AAA4B,CAAzD,GAGA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;;AAEA,IAAIoB,IAAI,GAAG5I,QAAQ,CAAC6I,gBAAT,CAA0B,GAA1B,CAAX;;AACA,KAAM,IAAItH,GAAV,IAAiBqH,IAAjB,EAAsB;AACpB,MAAG,QAAOA,IAAI,CAACrH,GAAD,CAAX,MAAqB,QAAxB,EAAiC;AAAA;AAC/B,UAAIuH,GAAG,GAAGF,IAAI,CAACrH,GAAD,CAAJ,CAAUwH,UAAV,CAAqBC,IAArB,CAA0BhB,KAApC;AACAY,MAAAA,IAAI,CAACrH,GAAD,CAAJ,CAAUlC,gBAAV,CAA2B,OAA3B,EAAoC,UAAC0I,CAAD,EAAK;AACvCA,QAAAA,CAAC,CAACkB,cAAF;AACArB,QAAAA,GAAG,CAACnB,KAAJ,CAAUe,QAAV,GAAqBsB,GAArB;AACAI,QAAAA,OAAO,CAACC,SAAR,CAAkB,EAAlB,EAAsB,IAAtB,EAA4BL,GAA5B;AACD,OAJD;AAF+B;AAOhC;AAEF","file":"demo.d3b53871.map","sourceRoot":"..\\demo","sourcesContent":["var DEFAULT = 0\nvar RECYCLED_NODE = 1\nvar TEXT_NODE = 2\n\nvar XLINK_NS = \"http://www.w3.org/1999/xlink\"\nvar SVG_NS = \"http://www.w3.org/2000/svg\"\n\nvar EMPTY_OBJECT = {}\nvar EMPTY_ARRAY = []\n\nvar map = EMPTY_ARRAY.map\nvar isArray = Array.isArray\n\nvar merge = function(a, b) {\n var target = {}\n\n for (var i in a) target[i] = a[i]\n for (var i in b) target[i] = b[i]\n\n return target\n}\n\nvar eventProxy = function(event) {\n return event.currentTarget.events[event.type](event)\n}\n\nvar updateProperty = function(element, name, lastValue, nextValue, isSvg) {\n if (name === \"key\") {\n } else if (name === \"style\") {\n for (var i in merge(lastValue, nextValue)) {\n var style = nextValue == null || nextValue[i] == null ? \"\" : nextValue[i]\n if (i[0] === \"-\") {\n element[name].setProperty(i, style)\n } else {\n element[name][i] = style\n }\n }\n } else {\n if (name[0] === \"o\" && name[1] === \"n\") {\n if (!element.events) element.events = {}\n\n element.events[(name = name.slice(2))] = nextValue\n\n if (nextValue == null) {\n element.removeEventListener(name, eventProxy)\n } else if (lastValue == null) {\n element.addEventListener(name, eventProxy)\n }\n } else {\n var nullOrFalse = nextValue == null || nextValue === false\n\n if (\n name in element &&\n name !== \"list\" &&\n name !== \"draggable\" &&\n name !== \"spellcheck\" &&\n name !== \"translate\" &&\n !isSvg\n ) {\n element[name] = nextValue == null ? \"\" : nextValue\n if (nullOrFalse) {\n element.removeAttribute(name)\n }\n } else {\n var ns = isSvg && name !== (name = name.replace(/^xlink:?/, \"\"))\n if (ns) {\n if (nullOrFalse) {\n element.removeAttributeNS(XLINK_NS, name)\n } else {\n element.setAttributeNS(XLINK_NS, name, nextValue)\n }\n } else {\n if (nullOrFalse) {\n element.removeAttribute(name)\n } else {\n element.setAttribute(name, nextValue)\n }\n }\n }\n }\n }\n}\n\nvar createElement = function(node, lifecycle, isSvg) {\n var element =\n node.type === TEXT_NODE\n ? document.createTextNode(node.name)\n : (isSvg = isSvg || node.name === \"svg\")\n ? document.createElementNS(SVG_NS, node.name)\n : document.createElement(node.name)\n\n var props = node.props\n if (props.oncreate) {\n lifecycle.push(function() {\n props.oncreate(element)\n })\n }\n\n for (var i = 0, length = node.children.length; i < length; i++) {\n element.appendChild(createElement(node.children[i], lifecycle, isSvg))\n }\n\n for (var name in props) {\n updateProperty(element, name, null, props[name], isSvg)\n }\n\n return (node.element = element)\n}\n\nvar updateElement = function(\n element,\n lastProps,\n nextProps,\n lifecycle,\n isSvg,\n isRecycled\n) {\n for (var name in merge(lastProps, nextProps)) {\n if (\n (name === \"value\" || name === \"checked\"\n ? element[name]\n : lastProps[name]) !== nextProps[name]\n ) {\n updateProperty(element, name, lastProps[name], nextProps[name], isSvg)\n }\n }\n\n var cb = isRecycled ? nextProps.oncreate : nextProps.onupdate\n if (cb != null) {\n lifecycle.push(function() {\n cb(element, lastProps)\n })\n }\n}\n\nvar removeChildren = function(node) {\n for (var i = 0, length = node.children.length; i < length; i++) {\n removeChildren(node.children[i])\n }\n\n var cb = node.props.ondestroy\n if (cb != null) {\n cb(node.element)\n }\n\n return node.element\n}\n\nvar removeElement = function(parent, node) {\n var remove = function() {\n parent.removeChild(removeChildren(node))\n }\n\n var cb = node.props && node.props.onremove\n if (cb != null) {\n cb(node.element, remove)\n } else {\n remove()\n }\n}\n\nvar getKey = function(node) {\n return node == null ? null : node.key\n}\n\nvar createKeyMap = function(children, start, end) {\n var out = {}\n var key\n var node\n\n for (; start <= end; start++) {\n if ((key = (node = children[start]).key) != null) {\n out[key] = node\n }\n }\n\n return out\n}\n\nvar patchElement = function(\n parent,\n element,\n lastNode,\n nextNode,\n lifecycle,\n isSvg\n) {\n if (nextNode === lastNode) {\n } else if (\n lastNode != null &&\n lastNode.type === TEXT_NODE &&\n nextNode.type === TEXT_NODE\n ) {\n if (lastNode.name !== nextNode.name) {\n element.nodeValue = nextNode.name\n }\n } else if (lastNode == null || lastNode.name !== nextNode.name) {\n var newElement = parent.insertBefore(\n createElement(nextNode, lifecycle, isSvg),\n element\n )\n\n if (lastNode != null) removeElement(parent, lastNode)\n\n element = newElement\n } else {\n updateElement(\n element,\n lastNode.props,\n nextNode.props,\n lifecycle,\n (isSvg = isSvg || nextNode.name === \"svg\"),\n lastNode.type === RECYCLED_NODE\n )\n\n var savedNode\n var childNode\n\n var lastKey\n var lastChildren = lastNode.children\n var lastChStart = 0\n var lastChEnd = lastChildren.length - 1\n\n var nextKey\n var nextChildren = nextNode.children\n var nextChStart = 0\n var nextChEnd = nextChildren.length - 1\n\n while (nextChStart <= nextChEnd && lastChStart <= lastChEnd) {\n lastKey = getKey(lastChildren[lastChStart])\n nextKey = getKey(nextChildren[nextChStart])\n\n if (lastKey == null || lastKey !== nextKey) break\n\n patchElement(\n element,\n lastChildren[lastChStart].element,\n lastChildren[lastChStart],\n nextChildren[nextChStart],\n lifecycle,\n isSvg\n )\n\n lastChStart++\n nextChStart++\n }\n\n while (nextChStart <= nextChEnd && lastChStart <= lastChEnd) {\n lastKey = getKey(lastChildren[lastChEnd])\n nextKey = getKey(nextChildren[nextChEnd])\n\n if (lastKey == null || lastKey !== nextKey) break\n\n patchElement(\n element,\n lastChildren[lastChEnd].element,\n lastChildren[lastChEnd],\n nextChildren[nextChEnd],\n lifecycle,\n isSvg\n )\n\n lastChEnd--\n nextChEnd--\n }\n\n if (lastChStart > lastChEnd) {\n while (nextChStart <= nextChEnd) {\n element.insertBefore(\n createElement(nextChildren[nextChStart++], lifecycle, isSvg),\n (childNode = lastChildren[lastChStart]) && childNode.element\n )\n }\n } else if (nextChStart > nextChEnd) {\n while (lastChStart <= lastChEnd) {\n removeElement(element, lastChildren[lastChStart++])\n }\n } else {\n var lastKeyed = createKeyMap(lastChildren, lastChStart, lastChEnd)\n var nextKeyed = {}\n\n while (nextChStart <= nextChEnd) {\n lastKey = getKey((childNode = lastChildren[lastChStart]))\n nextKey = getKey(nextChildren[nextChStart])\n\n if (\n nextKeyed[lastKey] ||\n (nextKey != null && nextKey === getKey(lastChildren[lastChStart + 1]))\n ) {\n if (lastKey == null) {\n removeElement(element, childNode)\n }\n lastChStart++\n continue\n }\n\n if (nextKey == null || lastNode.type === RECYCLED_NODE) {\n if (lastKey == null) {\n patchElement(\n element,\n childNode && childNode.element,\n childNode,\n nextChildren[nextChStart],\n lifecycle,\n isSvg\n )\n nextChStart++\n }\n lastChStart++\n } else {\n if (lastKey === nextKey) {\n patchElement(\n element,\n childNode.element,\n childNode,\n nextChildren[nextChStart],\n lifecycle,\n isSvg\n )\n nextKeyed[nextKey] = true\n lastChStart++\n } else {\n if ((savedNode = lastKeyed[nextKey]) != null) {\n patchElement(\n element,\n element.insertBefore(\n savedNode.element,\n childNode && childNode.element\n ),\n savedNode,\n nextChildren[nextChStart],\n lifecycle,\n isSvg\n )\n nextKeyed[nextKey] = true\n } else {\n patchElement(\n element,\n childNode && childNode.element,\n null,\n nextChildren[nextChStart],\n lifecycle,\n isSvg\n )\n }\n }\n nextChStart++\n }\n }\n\n while (lastChStart <= lastChEnd) {\n if (getKey((childNode = lastChildren[lastChStart++])) == null) {\n removeElement(element, childNode)\n }\n }\n\n for (var key in lastKeyed) {\n if (nextKeyed[key] == null) {\n removeElement(element, lastKeyed[key])\n }\n }\n }\n }\n\n return (nextNode.element = element)\n}\n\nvar createVNode = function(name, props, children, element, key, type) {\n return {\n name: name,\n props: props,\n children: children,\n element: element,\n key: key,\n type: type\n }\n}\n\nvar createTextVNode = function(text, element) {\n return createVNode(text, EMPTY_OBJECT, EMPTY_ARRAY, element, null, TEXT_NODE)\n}\n\nvar recycleChild = function(element) {\n return element.nodeType === 3 // Node.TEXT_NODE\n ? createTextVNode(element.nodeValue, element)\n : recycleElement(element)\n}\n\nvar recycleElement = function(element) {\n return createVNode(\n element.nodeName.toLowerCase(),\n EMPTY_OBJECT,\n map.call(element.childNodes, recycleChild),\n element,\n null,\n RECYCLED_NODE\n )\n}\n\nexport var recycle = function(container) {\n return recycleElement(container.children[0])\n}\n\nexport var patch = function(lastNode, nextNode, container) {\n var lifecycle = []\n\n patchElement(container, container.children[0], lastNode, nextNode, lifecycle)\n\n while (lifecycle.length > 0) lifecycle.pop()()\n\n return nextNode\n}\n\nexport var h = function(name, props) {\n var node\n var rest = []\n var children = []\n var length = arguments.length\n\n while (length-- > 2) rest.push(arguments[length])\n\n if ((props = props == null ? {} : props).children != null) {\n if (rest.length <= 0) {\n rest.push(props.children)\n }\n delete props.children\n }\n\n while (rest.length > 0) {\n if (isArray((node = rest.pop()))) {\n for (length = node.length; length-- > 0; ) {\n rest.push(node[length])\n }\n } else if (node === false || node === true || node == null) {\n } else {\n children.push(typeof node === \"object\" ? node : createTextVNode(node))\n }\n }\n\n return typeof name === \"function\"\n ? name(props, (props.children = children))\n : createVNode(name, props, children, null, props.key, DEFAULT)\n}\n","let Observable = (dataObj) => {\n let signals = {}\n let Dep = {\n target: null,\n subs:{},\n depend (deps,dep){\n if(!deps.includes(this.target)){\n deps.push(this.target)\n }\n if(!Dep.subs[this.target].includes(dep)){\n Dep.subs[this.target].push(dep)\n }\n },\n getValidDeps (deps, key){\n return deps.filter(dep => this.subs[dep].includes(key))\n },\n notifyDeps(deps){\n //deps.forEach(notify)\n deps.map( (sig) => notify(sig))\n }\n }\n \n /**\n * Observe function\n * \n * @param {*} property \n * @param {function} cb \n */\n let observe = (property, cb) => {\n if(!signals[property]) signals[property] = []\n signals[property].push(cb) \n }\n\n let autorender = ()=>{\n console.log('rerender')\n }\n \n /**\n * \n * @param {object} obj \n * @param {*} key \n */\n let makeReactive = (obj, key, computeFunc) => {\n let val = obj[key]\n let deps =[]\n \n Object.defineProperty(obj, key,{\n get(){\n if(Dep.target) {\n \n Dep.depend(deps,key)\n }\n return val \n },\n set(newVal){\n val = newVal\n deps = Dep.getValidDeps(deps, key)\n Dep.notifyDeps(deps, key)\n notify(key)\n autorender()\n \n }\n })\n }\n \n /**\n * \n * @param {object} obj \n */\n let observeData = (obj) =>{\n for (let key in obj){\n if( obj.hasOwnProperty(key)){\n if(typeof obj[key] === 'function'){\n makeComputed(obj,key, obj[key])\n } else{\n makeReactive(obj, key)\n } \n }\n }\n }\n \n let notify = (signal) => {\n if(!signals[signal] || signals[signal].lenght <1) return\n \n signals[signal].forEach( (signalHandler) => signalHandler() )\n }\n \n let makeComputed = (obj, key, computeFunc) =>{\n let cache = null\n let deps = []\n observe(key, ()=>{\n cache = null //clear cache\n deps = Dep.getValidDeps(deps,key)\n Dep.notifyDeps(deps, key)\n })\n \n Object.defineProperty(obj, key, {\n \n get() {\n if(Dep.target) {\n Dep.depend(deps, key)\n }\n Dep.target = key\n \n if(!cache){\n Dep.subs[key] =[]\n cache = computeFunc.call(obj)\n }\n //Clear target context\n Dep.target = null\n return cache\n },\n \n set(){/*Do nothing*/}\n })\n }\n \n let subscribeWatchers = (watchers, context) => {\n for( let key in watchers){\n if(watchers.hasOwnProperty(key)){\n observe(key, watchers[key].bind(context))\n }\n }\n }\n \n observeData(dataObj.data)\n subscribeWatchers(dataObj.watch, dataObj.data)\n \n return {\n state: dataObj.data,\n observe,\n notify\n }\n \n}\n \n module.exports = {\n Observable: Observable\n}","module.exports = function mapper (compileFn, options) {\n if (typeof compileFn !== 'function') throw new Error('URL Mapper - function to compile a route expected as first argument')\n\n options = options || {}\n var cache = {}\n\n function getCompiledRoute (route) {\n if (!cache[route]) {\n cache[route] = compileFn(route, options)\n }\n\n return cache[route]\n }\n\n function parse (route, url) {\n if (arguments.length < 2) throw new Error('URL Mapper - parse method expects 2 arguments')\n return getCompiledRoute(route).parse(url)\n }\n\n function stringify (route, values) {\n if (arguments.length < 2) throw new Error('URL Mapper - stringify method expects 2 arguments')\n return getCompiledRoute(route).stringify(values)\n }\n\n function map (url, routes) {\n if (arguments.length < 2) throw new Error('URL Mapper - map method expects 2 arguments')\n for (var route in routes) {\n var compiled = getCompiledRoute(route)\n var values = compiled.parse(url)\n if (values) {\n var match = routes[route]\n\n return {\n route: route,\n match: match,\n values: values\n }\n }\n }\n }\n\n return {\n parse: parse,\n stringify: stringify,\n map: map\n }\n}\n","/* eslint-disable no-labels */\n'use strict'\n\nvar keyStringifyRegexp = /([=:@$/])/g\nvar valueStringifyRegexp = /([&;/])/g\nvar keyParseRegexp = /[=:@$]/\nvar valueParseRegexp = /[&;]/\n\nfunction encodeString (str, regexp) {\n return encodeURI(str.replace(regexp, '/$1'))\n}\n\nfunction trim (res) {\n return typeof res === 'string' ? res.replace(/;+$/g, '') : res\n}\n\nfunction stringify (input, recursive) {\n if (!recursive) {\n return trim(stringify(input, true))\n }\n // Number, Boolean or Null\n if (\n typeof input === 'number' ||\n input === true ||\n input === false ||\n input === null\n ) {\n return ':' + input\n }\n var res = []\n // Array\n if (input instanceof Array) {\n for (var i = 0; i < input.length; ++i) {\n typeof input[i] === 'undefined'\n ? res.push(':null')\n : res.push(stringify(input[i], true))\n }\n return '@' + res.join('&') + ';'\n }\n // Object\n if (typeof input === 'object') {\n for (var key in input) {\n var val = stringify(input[key], true)\n if (val) {\n res.push(encodeString(key, keyStringifyRegexp) + val)\n }\n }\n return '$' + res.join('&') + ';'\n }\n // undefined\n if (typeof input === 'undefined') {\n return\n }\n // String\n return '=' + encodeString(input.toString(), valueStringifyRegexp)\n}\n\nfunction parse (str) {\n var pos = 0\n str = decodeURI(str)\n\n function readToken (regexp) {\n var token = ''\n for (; pos !== str.length; ++pos) {\n if (str.charAt(pos) === '/') {\n pos += 1\n if (pos === str.length) {\n token += ';'\n break\n }\n } else if (str.charAt(pos).match(regexp)) {\n break\n }\n token += str.charAt(pos)\n }\n return token\n }\n\n function parseToken () {\n var type = str.charAt(pos++)\n // String\n if (type === '=') {\n return readToken(valueParseRegexp)\n }\n // Number, Boolean or Null\n if (type === ':') {\n var value = readToken(valueParseRegexp)\n if (value === 'true') {\n return true\n }\n if (value === 'false') {\n return false\n }\n value = parseFloat(value)\n return isNaN(value) ? null : value\n }\n var res\n // Array\n if (type === '@') {\n res = []\n loop: {\n // empty array\n if (pos >= str.length || str.charAt(pos) === ';') {\n break loop\n }\n // parse array items\n while (1) {\n res.push(parseToken())\n if (pos >= str.length || str.charAt(pos) === ';') {\n break loop\n }\n pos += 1\n }\n }\n pos += 1\n return res\n }\n // Object\n if (type === '$') {\n res = {}\n loop: {\n if (pos >= str.length || str.charAt(pos) === ';') {\n break loop\n }\n while (1) {\n var name = readToken(keyParseRegexp)\n res[name] = parseToken()\n if (pos >= str.length || str.charAt(pos) === ';') {\n break loop\n }\n pos += 1\n }\n }\n pos += 1\n return res\n }\n // Error\n throw new Error('Unexpected char ' + type)\n }\n\n return parseToken()\n}\n\nmodule.exports = {\n stringify: stringify,\n parse: parse\n}\n","/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * Default configs.\n */\nvar DEFAULT_DELIMITER = '/'\nvar DEFAULT_DELIMITERS = './'\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \":test(\\\\d+)?\" => [\"test\", \"\\d+\", undefined, \"?\"]\n // \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", undefined]\n '(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = (options && options.delimiter) || DEFAULT_DELIMITER\n var delimiters = (options && options.delimiters) || DEFAULT_DELIMITERS\n var pathEscaped = false\n var res\n\n while ((res = PATH_REGEXP.exec(str)) !== null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n pathEscaped = true\n continue\n }\n\n var prev = ''\n var next = str[index]\n var name = res[2]\n var capture = res[3]\n var group = res[4]\n var modifier = res[5]\n\n if (!pathEscaped && path.length) {\n var k = path.length - 1\n\n if (delimiters.indexOf(path[k]) > -1) {\n prev = path[k]\n path = path.slice(0, k)\n }\n }\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n pathEscaped = false\n }\n\n var partial = prev !== '' && next !== undefined && next !== prev\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = prev || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prev,\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n pattern: pattern ? escapeGroup(pattern) : '[^' + escapeString(delimiter) + ']+?'\n })\n }\n\n // Push any remaining characters.\n if (path || index < str.length) {\n tokens.push(path + str.substr(index))\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$')\n }\n }\n\n return function (data, options) {\n var path = ''\n var encode = (options && options.encode) || encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n continue\n }\n\n var value = data ? data[token.name] : undefined\n var segment\n\n if (Array.isArray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got array')\n }\n\n if (value.length === 0) {\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n\n for (var j = 0; j < value.length; j++) {\n s