{"version":3,"sources":["..\\node_modules\\superfine\\src\\index.js","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","libs\\router.js","utils.js","index.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","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","matchedRoute","loc","Navigate","App","route","location","Component","match","values","render","transLink","link","querySelectorAll","attributes","href","value","charAt","url","e","preventDefault","history","pushState","Utils","Render","view","Router"],"mappings":"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AGxEH,AF6Ca,aAf2B;AE7BxC,AF8CYkH,eAjB4B,iBAiBvB,CAAC,cAAe;AD2B/B,AGxEF,AF4BwC,MD4ClC1E,GC5CE,ED4CGf,KAAKK,KAAL,CAAWa,SAApB;AACA,AGxEF,AF8CK,KA5BD,CDsDEH,MAAM,IAAV,EAAgB;AACdA,AGxEJ,OHwEOf,KAAKlB,OAAR;AACD,AGxEH,AF8CI,QAAIqH,oBAAoB,SAApBA,iBAAoB,CAACC,QAAD,EAAWC,OAAX,EAAuB;AE7CnD,AF8CQ,aAAK,IAAI5E,GAAT,IAAgB2E,QAAhB,EAAyB;AD2B/B,AGxEF,AF8CY,SD0BHpG,KAAKlB,EC1BCsH,KD0Bb,IC1BsBR,cAAT,CAAwBnE,GAAxB,CAAH,EAAgC;AD2B3C,AGxED,AF8CgBsD,CDehB,uBCfwBtD,GAAR,EAAa2E,SAAS3E,GAAT,EAAc6E,IAAd,CAAmBD,OAAnB,CAAb;AE7ChB,AF8Ca;AD2Bb,AGxEA,AF8CS,ID0BLlF,gBAAgB,UAASC,MAAT,EAAiBpB,IAAjB,EAAuB;AACzC,AGxEF,AF8CK,KAND,CDgCEqB,SAAS,YAAW;AACtBD,AGxEJ,WHwEWE,WAAP,CAAmBL,eAAejB,IAAf,CAAnB;AACD,AGxEH,AF8CI2F,GDwBF,aCxBczB,QAAQqC,IAApB;AE7CJ,AF8CIJ,sBAAkBjC,QAAQsC,KAA1B,EAAiCtC,QAAQqC,IAAzC;AD2BF,AGxEF,MHwEMxF,KAAKf,KAAKK,KAAL,IAAcL,KAAKK,KAAL,CAAWkB,QAAlC;AACA,AGxEF,AF8CI,MD0BER,KC1BK,CD0BC,IAAV,EAAgB;AACdA,AGxEJ,AF8CQ0F,OD0BDzG,KAAKlB,GC1BGoF,ID0BX,EAAiB7C,EC1BEkF,ID0BnB,AC3BO;AD4BR,AGxEH,AF8CQxB,GDwBN,MAEO,eC5BE;AD6BP1D,AGxEJ,AF8CQyD;AD2BL,AGxEH,AF0CW,KAAP;AD+BH,AGxED,AF+CC,CDcD,ACpJA;AEwFA;AHyEA,AGxEA,AF+CC4B,IDyBGlF,GCzBImF,MDyBK,CCzBZ,GAAiB,MDyBI3G,IAAT,EAAe;AAC1B,AGxEF,AF+CQiE,SDyBCjE,OCzBWiE,CDyBH,IAAR,GAAe,IAAf,GAAsBjE,KAAKyB,GAAlC;AACD,AGxED,AF6CkB,CDyBlB,ACzBC;AE5CD;AHyEA,AGxEA,IHwEIC,eAAe,UAASjB,QAAT,EAAmBkB,KAAnB,EAA0BC,GAA1B,EAA+B;AAChD,AGxEF,MHwEMC,MAAM,EAAV;AACA,AGxEF,MHwEMJ,GAAJ;AACA,AGxEF,MHwEMzB,IAAJ;AGvEF;AHyEE,AGxEF,SHwES2B,SAASC,GAAhB,EAAqBD,OAArB,EAA8B;AAC5B,AGxEJ,QHwEQ,CAACF,MAAM,CAACzB,OAAOS,SAASkB,KAAT,CAAR,EAAyBF,GAAhC,KAAwC,IAA5C,EAAkD;AAChDI,AGxEN,UHwEUJ,GAAJ,IAAWzB,IAAX;AACD,AGxEL;AHyEG,AGxEH;AACA;AHyEE,AGxEF,SHwES6B,GAAP;AACD,AGxED,CH4DA;AG3DA;AHyEA,AGxEA,IHwEIC,eAAe,UACjBV,MADiB,EAEjBtC,OAFiB,EAGjBiD,QAHiB,EAIjBC,QAJiB,EAKjB/B,SALiB,EAMjBf,KANiB,EAOjB;AACA,AG/EF,MH+EM8C,aAAaD,QAAjB,EAA2B,CAC1B,CADD,MACO,IACLA,YAAY,IAAZ,IACAA,SAASnD,IAAT,KAAkBjB,SADlB,IAEAqE,SAASpD,IAAT,KAAkBjB,SAHb,EAIL;AACA,AGpFJ,QHoFQoE,SAAShD,IAAT,KAAkBiD,SAASjD,IAA/B,EAAqC;AACnCD,AGpFN,cHoFcmD,SAAR,GAAoBD,SAASjD,IAA7B;AACD,AGpFL;AHqFG,AGpFH,GH4ES,MAQA,IAAIgD,YAAY,IAAZ,IAAoBA,SAAShD,IAAT,KAAkBiD,SAASjD,IAAnD,EAAyD;AAC9D,AGpFJ,QHoFQmD,aAAad,OAAOe,YAAP,CACfpC,cAAciC,QAAd,EAAwB/B,SAAxB,EAAmCf,KAAnC,CADe,EAEfJ,OAFe,CAAjB;AGnFJ;AHwFI,AGvFJ,QHuFQiD,YAAY,IAAhB,EAAsBZ,cAAcC,MAAd,EAAsBW,QAAtB;AGtF1B;AHwFIjD,AGvFJ,cHuFcoD,UAAV;AACD,AGvFH,GH8ES,MASA;AACLvB,AGvFJ,kBHwFM7B,OADF,EAEEiD,SAAS1B,KAFX,EAGE2B,SAAS3B,KAHX,EAIEJ,SAJF,EAKGf,QAAQA,SAAS8C,SAASjD,IAAT,KAAkB,KALtC,EAMEgD,SAASnD,IAAT,KAAkBlB,aANpB;AGtFJ;AH+FI,AG9FJ,QH8FQ0E,SAAJ;AACA,AG9FJ,QH8FQC,SAAJ;AG7FJ;AH+FI,AG9FJ,QH8FQC,OAAJ;AACA,AG9FJ,QH8FQC,eAAeR,SAAStB,QAA5B;AACA,AG9FJ,QH8FQ+B,cAAc,CAAlB;AACA,AG9FJ,QH8FQC,YAAYF,aAAa/B,MAAb,GAAsB,CAAtC;AG7FJ;AH+FI,AG9FJ,QH8FQkC,OAAJ;AACA,AG9FJ,QH8FQC,eAAeX,SAASvB,QAA5B;AACA,AG9FJ,QH8FQmC,cAAc,CAAlB;AACA,AG9FJ,QH8FQC,YAAYF,aAAanC,MAAb,GAAsB,CAAtC;AG7FJ;AH+FI,AG9FJ,WH8FWoC,eAAeC,SAAf,IAA4BL,eAAeC,SAAlD,EAA6D;AAC3DH,AG9FN,gBH8FgBd,OAAOe,aAAaC,WAAb,CAAP,CAAV;AACAE,AG9FN,gBH8FgBlB,OAAOmB,aAAaC,WAAb,CAAP,CAAV;AG7FN;AH+FM,AG9FN,UH8FUN,WAAW,IAAX,IAAmBA,YAAYI,OAAnC,EAA4C;AG7FlD;AH+FMZ,AG9FN,mBH+FQhD,OADF,EAEEyD,aAAaC,WAAb,EAA0B1D,OAF5B,EAGEyD,aAAaC,WAAb,CAHF,EAIEG,aAAaC,WAAb,CAJF,EAKE3C,SALF,EAMEf,KANF;AG7FN;AHsGMsD,AGrGN;AHsGMI,AGrGN;AHsGK,AGrGL;AACA;AHsGI,AGrGJ,WHqGWA,eAAeC,SAAf,IAA4BL,eAAeC,SAAlD,EAA6D;AAC3DH,AGrGN,gBHqGgBd,OAAOe,aAAaE,SAAb,CAAP,CAAV;AACAC,gBAAUlB,OAAOmB,aAAaE,SAAb,CAAP,CAAV;AIzPN;AACA,AJ0PM,UAAIP,WAAW,IAAX,IAAmBA,YAAYI,OAAnC,EAA4C;AIzPlD;AACA,AJ0PMZ,mBACEhD,OADF,EAEEyD,aAAaE,SAAb,EAAwB3D,OAF1B,EAGEyD,aAAaE,SAAb,CAHF,EAIEE,aAAaE,SAAb,CAJF,EAKE5C,SALF,EAMEf,KANF;AIzPN;AACA,AJiQMuD;AIhQN,AJiQMI;AIhQN,AJiQK;AIhQL;AACA,AJiQI,QAAIL,cAAcC,SAAlB,EAA6B;AIhQjC,AJiQM,aAAOG,eAAeC,SAAtB,EAAiC;AIhQvC,AJiQQ/D,gBAAQqD,YAAR,CACEpC,cAAc4C,aAAaC,aAAb,CAAd,EAA2C3C,SAA3C,EAAsDf,KAAtD,CADF,EAEE,CAACmD,YAAYE,aAAaC,WAAb,CAAb,KAA2CH,UAAUvD,OAFvD;AIhQR,AJoQO;AInQP,AJoQK,KAPD,MAOO,IAAI8D,cAAcC,SAAlB,EAA6B;AInQxC,AJoQM,aAAOL,eAAeC,SAAtB,EAAiC;AInQvC,AJoQQtB,sBAAcrC,OAAd,EAAuByD,aAAaC,aAAb,CAAvB;AInQR,AJoQO;AInQP,AJoQK,KAJM,MAIA;AInQX,AJoQM,UAAIM,YAAYpB,aAAaa,YAAb,EAA2BC,WAA3B,EAAwCC,SAAxC,CAAhB;AInQN,AJoQM,UAAIM,YAAY,EAAhB;AInQN;AACA,AJoQM,aAAOH,eAAeC,SAAtB,EAAiC;AInQvC,AJoQQP,kBAAUd,OAAQa,YAAYE,aAAaC,WAAb,CAApB,CAAV;AInQR,AJoQQE,kBAAUlB,OAAOmB,aAAaC,WAAb,CAAP,CAAV;AInQR;AACA,AJoQQ,YACEG,UAAUT,OAAV,KACCI,WAAW,IAAX,IAAmBA,YAAYlB,OAAOe,aAAaC,cAAc,CAA3B,CAAP,CAFlC,EAGE;AItQV,AJuQU,cAAIF,WAAW,IAAf,EAAqB;AItQ/B,AJuQYnB,0BAAcrC,OAAd,EAAuBuD,SAAvB;AItQZ,AJuQW;AItQX,AJuQUG;AItQV,AJuQU;AItQV,AJuQS;AItQT;AACA,AJuQQ,YAAIE,WAAW,IAAX,IAAmBX,SAASnD,IAAT,KAAkBlB,aAAzC,EAAwD;AItQhE,AJuQU,cAAI4E,WAAW,IAAf,EAAqB;AItQ/B,AJuQYR,yBACEhD,OADF,EAEEuD,aAAaA,UAAUvD,OAFzB,EAGEuD,SAHF,EAIEM,aAAaC,WAAb,CAJF,EAKE3C,SALF,EAMEf,KANF;AItQZ,AJ8QY0D;AI7QZ,AJ8QW;AI7QX,AJ8QUJ;AI7QV,AJ8QS,SAbD,MAaO;AI7Qf,AJ8QU,cAAIF,YAAYI,OAAhB,EAAyB;AI7QnC,AJ8QYZ,yBACEhD,OADF,EAEEuD,UAAUvD,OAFZ,EAGEuD,SAHF,EAIEM,aAAaC,WAAb,CAJF,EAKE3C,SALF,EAMEf,KANF;AI7QZ,AJqRY6D,sBAAUL,OAAV,IAAqB,IAArB;AIpRZ,AJqRYF;AIpRZ,AJqRW,WAXD,MAWO;AIpRjB,AJqRY,gBAAI,CAACJ,YAAYU,UAAUJ,OAAV,CAAb,KAAoC,IAAxC,EAA8C;AIpR1D,AJqRcZ,2BACEhD,OADF,EAEEA,QAAQqD,YAAR,CACEC,UAAUtD,OADZ,EAEEuD,aAAaA,UAAUvD,OAFzB,CAFF,EAMEsD,SANF,EAOEO,aAAaC,WAAb,CAPF,EAQE3C,SARF,EASEf,KATF;AIpRd,AJ+Rc6D,wBAAUL,OAAV,IAAqB,IAArB;AI9Rd,AJ+Ra,aAbD,MAaO;AI9RnB,AJ+RcZ,2BACEhD,OADF,EAEEuD,aAAaA,UAAUvD,OAFzB,EAGE,IAHF,EAIE6D,aAAaC,WAAb,CAJF,EAKE3C,SALF,EAMEf,KANF;AI9Rd,AJsSa;AIrSb,AJsSW;AIrSX,AJsSU0D;AIrSV,AJsSS;AIrST,AJsSO;AIrSP;AACA,AJsSM,aAAOJ,eAAeC,SAAtB,EAAiC;AIrSvC,AJsSQ,YAAIjB,OAAQa,YAAYE,aAAaC,aAAb,CAApB,KAAqD,IAAzD,EAA+D;AIrSvE,AJsSUrB,wBAAcrC,OAAd,EAAuBuD,SAAvB;AIrSV,AJsSS;AIrST,AJsSO;AIrSP;AACA,AJsSM,WAAK,IAAIZ,GAAT,IAAgBqB,SAAhB,EAA2B;AIrSjC,AJsSQ,YAAIC,UAAUtB,GAAV,KAAkB,IAAtB,EAA4B;AIrSpC,AJsSUN,wBAAcrC,OAAd,EAAuBgE,UAAUrB,GAAV,CAAvB;AIrSV,AJsSS;AIrST,AJsSO;AIrSP,AJsSK;AIrSL,AJsSG;AIrSH;AACA,AJsSE,SAAQO,SAASlD,OAAT,GAAmBA,OAA3B;AIrSF,AJsSC,CA1LD;AI3GA;AACA,AJsSA,IAAIkE,cAAc,UAASjE,IAAT,EAAesB,KAAf,EAAsBI,QAAtB,EAAgC3B,OAAhC,EAAyC2C,GAAzC,EAA8C7C,IAA9C,EAAoD;AIrStE,AJsSE,SAAO;AIrST,AJsSIG,UAAMA,IADD;AIpST,AJsSIsB,WAAOA,KAFF;AInST,AJsSII,cAAUA,QAHL;AIlST,AJsSI3B,aAASA,OAJJ;AIjST,AJsSI2C,SAAKA,GALA;AIhST,AJsSI7C,UAAMA;AIrSV,AJ+RS,GAAP;AI9RF,AJsSC,CATD;AI5RA;AACA,AJsSA,IAAIqE,kBAAkB,UAASC,IAAT,EAAepE,OAAf,EAAwB;AIrS9C,AJsSE,SAAOkE,YAAYE,IAAZ,EAAkBpF,YAAlB,EAAgCC,WAAhC,EAA6Ce,OAA7C,EAAsD,IAAtD,EAA4DnB,SAA5D,CAAP;AIrSF,AJsSC,CAFD;AInSA;AACA,AJsSA,IAAIwF,eAAe,UAASrE,OAAT,EAAkB;AIrSrC,AJsSE,SAAOA,QAAQsE,QAAR,KAAqB,CAArB,CAAuB;AIrShC,AJqSS,IACHH,gBAAgBnE,QAAQmD,SAAxB,EAAmCnD,OAAnC,CADG,GAEHuE,eAAevE,OAAf,CAFJ;AIpSF,AJuSC,CAJD;AIlSA;AACA,AJuSA,IAAIuE,iBAAiB,UAASvE,OAAT,EAAkB;AItSvC,AJuSE,SAAOkE,YACLlE,QAAQwE,QAAR,CAAiBC,WAAjB,EADK,EAELzF,YAFK,EAGLE,IAAIwF,IAAJ,CAAS1E,QAAQ2E,UAAjB,EAA6BN,YAA7B,CAHK,EAILrE,OAJK,EAKL,IALK,EAMLpB,aANK,CAAP;AItSF,AJ8SC,CATD;AIpSA;AACA,AJ8SO,IAAIgG,4BAAU,UAASC,SAAT,EAAoB;AI7SzC,AJ8SE,SAAON,eAAeM,UAAUlD,QAAV,CAAmB,CAAnB,CAAf,CAAP;AI7SF,AJ8SC,CAFM;AI3SP;AACA,AJ8SO,IAAImD,wBAAQ,UAAS7B,QAAT,EAAmBC,QAAnB,EAA6B2B,SAA7B,EAAwC;AI7S3D,AJ8SE,MAAI1D,YAAY,EAAhB;AI7SF;AACA,AJ8SE6B,eAAa6B,SAAb,EAAwBA,UAAUlD,QAAV,CAAmB,CAAnB,CAAxB,EAA+CsB,QAA/C,EAAyDC,QAAzD,EAAmE/B,SAAnE;AI7SF;AACA,AJ8SE,SAAOA,UAAUO,MAAV,GAAmB,CAA1B,EAA6BP,UAAU4D,GAAV;AI7S/B;AACA,AJ8SE,SAAO7B,QAAP;AI7SF,AJ8SC,CARM;AIrSP;AACA,AJ8SO,IAAI8B,gBAAI,UAAS/E,IAAT,EAAesB,KAAf,EAAsB;AI7SrC,AJ8SE,MAAIL,IAAJ;AI7SF,AJ8SE,MAAI+D,OAAO,EAAX;AI7SF,AJ8SE,MAAItD,WAAW,EAAf;AI7SF,AJ8SE,MAAID,SAASwD,UAAUxD,MAAvB;AI7SF;AACA,AJ8SE,SAAOA,WAAW,CAAlB,EAAqBuD,KAAKxD,IAAL,CAAUyD,UAAUxD,MAAV,CAAV;AI7SvB;AACA,AJ8SE,MAAI,CAACH,QAAQA,SAAS,IAAT,GAAgB,EAAhB,GAAqBA,KAA9B,EAAqCI,QAArC,IAAiD,IAArD,EAA2D;AI7S7D,AJ8SI,QAAIsD,KAAKvD,MAAL,IAAe,CAAnB,EAAsB;AI7S1B,AJ8SMuD,WAAKxD,IAAL,CAAUF,MAAMI,QAAhB;AI7SN,AJ8SK;AI7SL,AJ8SI,WAAOJ,MAAMI,QAAb;AI7SJ,AJ8SG;AI7SH;AACA,AJ8SE,SAAOsD,KAAKvD,MAAL,GAAc,CAArB,EAAwB;AI7S1B,AJ8SI,QAAIvC,QAAS+B,OAAO+D,KAAKF,GAAL,EAAhB,CAAJ,EAAkC;AI7StC,AJ8SM,WAAKrD,SAASR,KAAKQ,MAAnB,EAA2BA,WAAW,CAAtC,GAA2C;AI7SjD,AJ8SQuD,aAAKxD,IAAL,CAAUP,KAAKQ,MAAL,CAAV;AI7SR,AJ8SO;AI7SP,AJ8SK,KAJD,MAIO,IAAIR,SAAS,KAAT,IAAkBA,SAAS,IAA3B,IAAmCA,QAAQ,IAA/C,EAAqD,CAC3D,CADM,MACA;AI9SX,AJ+SMS,eAASF,IAAT,CAAc,OAAOP,IAAP,KAAgB,QAAhB,GAA2BA,IAA3B,GAAkCiD,gBAAgBjD,IAAhB,CAAhD;AI9SN,AJ+SK;AI9SL,AJ+SG;AI9SH;AACA,AJ+SE,SAAO,OAAOjB,IAAP,KAAgB,UAAhB,GACHA,KAAKsB,KAAL,EAAaA,MAAMI,QAAN,GAAiBA,QAA9B,CADG,GAEHuC,YAAYjE,IAAZ,EAAkBsB,KAAlB,EAAyBI,QAAzB,EAAmC,IAAnC,EAAyCJ,MAAMoB,GAA/C,EAAoDhE,OAApD,CAFJ;AI9SF,AJiTC,CA7BM;AInRP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA,ACFA;;ACAA;ADGA,IAAIgK,YAAY,SAAZA,SAAY,CAACP,GAAD,EAAQ;ACFxB,ADGI,MAAIQ,OAAOxH,SAASyH,gBAAT,CAA0B,GAA1B,CAAX;AACJ,OAAM,IAAIlG,GAAV,IAAiBiG,IAAjB,EAAsB;ACHtB,AFEA,ACEE,IDFId,ICED,QDFa,ACENc,KAAKjG,GAAL,CAAP,MAAqB,QAArB,GDFL,CCEsCiG,KAAKjG,GAAL,EAAUmG,UAAV,CAAqBC,IAArB,CAA0BC,KAA1B,CAAgCC,MAAhC,CAAuC,CAAvC,MAA6C,GAAjF,EAAqF;ADLvF,ACKuF;ACHvF,ADII,YAAIC,MAAMN,KAAKjG,GAAL,EAAUmG,UAAV,CAAqBC,IAArB,CAA0BC,KAApC;AACAJ,aAAKjG,GAAL,EAAUlC,gBAAV,CAA2B,OAA3B,EAAoC,UAAC0I,CAAD,EAAK;ADF7C,ACGMA,ICNMI,AFGRxB,QCGIqB,CDHK,SAATrB,ICGE,EDHO,CAACC,MAAD;AAAA,ACIPI,SDJmB,KCIfT,KAAJ,CAAUW,IDJiB,ICI3B,GAAqBY,GAArB;ADHF,ACIEG,QDJEpB,UCIMqB,KDJSxB,ICIjB,CAAkB,EAAlB,EAAsB,CDJK5I,GAAV,ACIjB,CDJ+BgJ,CCIHgB,EDJX,CCIjB,CDJmClB,MAAlB,CAAnB;AACA,ACIC,SAJD,EDAQC,YAAR;AEHJ,AFIC,ACHsF,GDA1E,CEDPuB,SAAS,SAATA,MAAS,CAACC,IAAD,EAAO5E,SAAP,EAAkB3D,IAAlB;AAAA,AFCF,ACOV,CDPH,UED0C,iBAAS;AAC/CA,ADQH,eCRU,sBAAMA,IAAN,EAAYuI,KAAK9B,KAAL,CAAZ,EAAyB9C,SAAzB,CAAP;AACH,AFID,ACIC,CAZD,GDQIsD,CENW,UFMA,SAAXA,QAAW,CAACC,GAAD,EAAQ;AENR,AFOX,CEPJ,KFOQC,QAAQD,IAAIT,KAAJ,CAAUI,MAAV,CAAiBK,IAAIT,KAAJ,CAAUW,QAA3B,CAAZ;AACE,ACINV,MDJSS,CCIFR,IDJD,EAAS,CCIf,GAAgB;ACNhBD,AFGQ,ACIJe,OCPGd,CFGKU,KCIGI,CCPf,GAAiB,GFGON,MAAMG,KAAtB;AEFJxD,AFGI,ACEQ,CAAhB,MCLOA,CFGKzD,QAAQ8G,GEJH,GFISI,MAAlB;AEFJ3D,AFGIsD,QAAIT,GEHD7C,EFGH,CAAU4D,MAAV,CAAiBH,MELR,GFKT;AEFJpD,AFGG,GAJD,MAIK,OEHKA,iBAHC;AAIbqE,AFGI,QAAIjB,IEHAiB,MAJK,GFOOpB,IAAIT,KAAJ,CAAUK,MAAV,CAAiB,GAAjB,CAAhB;AEFJ0B,AFGItB,QAAIT,IEHAI,CFGJ,CAAUW,MAAV,CAAiBH,KERR,KFQT;AEFJJ,AFGG,cEHOA,gBANG;AAOboB,AFGC,CAVL,UEOWA;AAPM,CAAjB;AFYA3B,OAAOC,OAAP,GAAiB;AACbE,UAAQA,MADK;AAEbI,YAAUA;AAFG,CAAjB","file":"index.map","sourceRoot":"..\\src","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) => {\r\n    let signals = {}\r\n    let Dep = {\r\n        target: null,\r\n        subs:{},\r\n        depend (deps,dep){\r\n            if(!deps.includes(this.target)){\r\n                deps.push(this.target)\r\n            }\r\n            if(!Dep.subs[this.target].includes(dep)){\r\n                Dep.subs[this.target].push(dep)\r\n            }\r\n        },\r\n        getValidDeps (deps, key){\r\n            return deps.filter(dep => this.subs[dep].includes(key))\r\n        },\r\n        notifyDeps(deps){\r\n            //deps.forEach(notify)\r\n            deps.map( (sig) => notify(sig))\r\n        }\r\n    }\r\n    \r\n    /**\r\n     * Observe function\r\n     * \r\n     * @param {*} property \r\n     * @param {function} cb \r\n     */\r\n    let observe = (property, cb) => {\r\n        if(!signals[property]) signals[property] = []\r\n        signals[property].push(cb)  \r\n    }\r\n    //TODO\r\n    let autorender = ()=>{\r\n       // console.log('rerender')\r\n    }\r\n    \r\n    /**\r\n     * \r\n     * @param {object} obj \r\n     * @param {*} key \r\n     */\r\n    let makeReactive = (obj, key, computeFunc) => {\r\n        let val = obj[key]\r\n        let deps =[]\r\n    \r\n        Object.defineProperty(obj, key,{\r\n            get(){\r\n                if(Dep.target) {\r\n                   \r\n                    Dep.depend(deps,key)\r\n                    }\r\n                    return val       \r\n            },\r\n             set(newVal){\r\n                val = newVal\r\n                deps = Dep.getValidDeps(deps, key)\r\n                Dep.notifyDeps(deps, key)\r\n                notify(key)\r\n                autorender()\r\n                \r\n            }\r\n        })\r\n    }\r\n    \r\n    /**\r\n     * \r\n     * @param {object} obj \r\n     */\r\n    let observeData = (obj) =>{\r\n        for (let key in obj){\r\n            if( obj.hasOwnProperty(key)){\r\n                if(typeof obj[key] === 'function'){\r\n                    makeComputed(obj,key, obj[key])\r\n                } else{\r\n                    makeReactive(obj, key)\r\n                }      \r\n            }\r\n        }\r\n    }\r\n    \r\n    let notify = (signal) => {\r\n        if(!signals[signal] || signals[signal].lenght <1) return\r\n         \r\n         signals[signal].forEach( (signalHandler) => signalHandler() )\r\n    }\r\n    \r\n    let makeComputed = (obj, key, computeFunc) =>{\r\n        let cache = null\r\n        let deps = []\r\n        observe(key, ()=>{\r\n            cache = null //clear cache\r\n            deps = Dep.getValidDeps(deps,key)\r\n            Dep.notifyDeps(deps, key)\r\n        })\r\n    \r\n        Object.defineProperty(obj, key, {\r\n    \r\n            get() {\r\n                if(Dep.target) {\r\n                    Dep.depend(deps, key)\r\n                }\r\n                Dep.target = key\r\n    \r\n                if(!cache){\r\n                    Dep.subs[key] =[]\r\n                    cache = computeFunc.call(obj)\r\n                }\r\n                //Clear target context\r\n                Dep.target = null\r\n                return cache\r\n            },\r\n    \r\n            set(){/*Do nothing*/}\r\n        })\r\n    }\r\n    \r\n    let subscribeWatchers = (watchers, context) => {\r\n        for( let key in watchers){\r\n            if(watchers.hasOwnProperty(key)){\r\n                observe(key, watchers[key].bind(context))\r\n            }\r\n        }\r\n    }\r\n    \r\n    observeData(dataObj.data)\r\n    subscribeWatchers(dataObj.watch, dataObj.data)\r\n    \r\n    return {\r\n        state: dataObj.data,\r\n        observe,\r\n        notify\r\n    }\r\n    \r\n}\r\n    \r\n module.exports = {\r\n        Observable: Observable\r\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          segment = encode(value[j], token)\n\n          if (!matches[i].test(segment)) {\n            throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\"')\n          }\n\n          path += (j === 0 ? token.prefix : token.delimiter) + segment\n        }\n\n        continue\n      }\n\n      if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n        segment = encode(String(value), token)\n\n        if (!matches[i].test(segment)) {\n          throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"')\n        }\n\n        path += token.prefix + segment\n        continue\n      }\n\n      if (token.optional) {\n        // Prepend partial segment prefixes.\n        if (token.partial) path += token.prefix\n\n        continue\n      }\n\n      throw new TypeError('Expected \"' + token.name + '\" to be ' + (token.repeat ? 'an array' : 'a string'))\n    }\n\n    return path\n  }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param  {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n  return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param  {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n  return group.replace(/([=!:$/()])/g, '\\\\$1')\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param  {Object} options\n * @return {string}\n */\nfunction flags (options) {\n  return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param  {!RegExp} path\n * @param  {Array=}  keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n  if (!keys) return path\n\n  // Use a negative lookahead to match only capturing groups.\n  var groups = path.source.match(/\\((?!\\?)/g)\n\n  if (groups) {\n    for (var i = 0; i < groups.length; i++) {\n      keys.push({\n        name: i,\n        prefix: null,\n        delimiter: null,\n        optional: false,\n        repeat: false,\n        partial: false,\n        pattern: null\n      })\n    }\n  }\n\n  return path\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param  {!Array}  path\n * @param  {Array=}  keys\n * @param  {Object=} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n  var parts = []\n\n  for (var i = 0; i < path.length; i++) {\n    parts.push(pathToRegexp(path[i], keys, options).source)\n  }\n\n  return new RegExp('(?:' + parts.join('|') + ')', flags(options))\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param  {string}  path\n * @param  {Array=}  keys\n * @param  {Object=} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n  return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param  {!Array}  tokens\n * @param  {Array=}  keys\n * @param  {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n  options = options || {}\n\n  var strict = options.strict\n  var start = options.start !== false\n  var end = options.end !== false\n  var delimiter = escapeString(options.delimiter || DEFAULT_DELIMITER)\n  var delimiters = options.delimiters || DEFAULT_DELIMITERS\n  var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|')\n  var route = start ? '^' : ''\n  var isEndDelimited = tokens.length === 0\n\n  // Iterate over the tokens and create our regexp string.\n  for (var i = 0; i < tokens.length; i++) {\n    var token = tokens[i]\n\n    if (typeof token === 'string') {\n      route += escapeString(token)\n      isEndDelimited = i === tokens.length - 1 && delimiters.indexOf(token[token.length - 1]) > -1\n    } else {\n      var capture = token.repeat\n        ? '(?:' + token.pattern + ')(?:' + escapeString(token.delimiter) + '(?:' + token.pattern + '))*'\n        : token.pattern\n\n      if (keys) keys.push(token)\n\n      if (token.optional) {\n        if (token.partial) {\n          route += escapeString(token.prefix) + '(' + capture + ')?'\n        } else {\n          route += '(?:' + escapeString(token.prefix) + '(' + capture + '))?'\n        }\n      } else {\n        route += escapeString(token.prefix) + '(' + capture + ')'\n      }\n    }\n  }\n\n  if (end) {\n    if (!strict) route += '(?:' + delimiter + ')?'\n\n    route += endsWith === '$' ? '$' : '(?=' + endsWith + ')'\n  } else {\n    if (!strict) route += '(?:' + delimiter + '(?=' + endsWith + '))?'\n    if (!isEndDelimited) route += '(?=' + delimiter + '|' + endsWith + ')'\n  }\n\n  return new RegExp(route, flags(options))\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param  {(string|RegExp|Array)} path\n * @param  {Array=}                keys\n * @param  {Object=}               options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n  if (path instanceof RegExp) {\n    return regexpToRegexp(path, keys)\n  }\n\n  if (Array.isArray(path)) {\n    return arrayToRegexp(/** @type {!Array} */ (path), keys, options)\n  }\n\n  return stringToRegexp(/** @type {string} */ (path), keys, options)\n}\n","'use strict'\nvar URLON = require('urlon')\nvar pathToRegexp = require('path-to-regexp')\n\nfunction getKeyName (key) {\n  return key.name.toString()\n}\n\n// loose escaping for segment part\n// see: https://github.com/pillarjs/path-to-regexp/pull/75\nfunction encodeSegment (str) {\n  return encodeURI(str).replace(/[/?#'\"]/g, function (c) {\n    return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n  })\n}\n\nfunction compileRoute (route, options) {\n  var re\n  var compiled\n  var keys = []\n  var querySeparator = options.querySeparator || '?'\n\n  re = pathToRegexp(route, keys)\n  keys = keys.map(getKeyName)\n  compiled = pathToRegexp.compile(route)\n\n  return {\n    parse: function (url) {\n      var path = url\n      var result = {}\n\n      if (~path.indexOf('#') && !~querySeparator.indexOf('#')) {\n        path = path.split('#')[0]\n      }\n\n      if (~path.indexOf(querySeparator)) {\n        if (options.query) {\n          var queryString = '$' + path.slice(path.indexOf(querySeparator) + querySeparator.length)\n          result = URLON.parse(queryString)\n        }\n        path = path.split(querySeparator)[0]\n      }\n\n      var match = re.exec(path)\n      if (!match) return null\n\n      for (var i = 1; i < match.length; ++i) {\n        var key = keys[i - 1]\n        var value = match[i] && decodeURIComponent(match[i])\n        result[key] = (value && value[0] === ':')\n          ? URLON.parse(value)\n          : value\n      }\n\n      return result\n    },\n\n    stringify: function (values) {\n      var pathParams = {}\n      var queryParams = {}\n\n      Object.keys(values).forEach(function (key) {\n        if (~keys.indexOf(key)) {\n          switch (typeof values[key]) {\n            case 'boolean':\n            case 'number':\n              pathParams[key] = URLON.stringify(values[key])\n              break\n\n            case 'object':\n              if (values[key]) {\n                throw new Error('URL Mapper - objects are not allowed to be stringified as part of path')\n              } else { // null\n                pathParams[key] = URLON.stringify(values[key])\n              }\n              break\n\n            default:\n              pathParams[key] = values[key]\n          }\n        } else {\n          queryParams[key] = values[key]\n        }\n      })\n\n      var path = compiled(pathParams, { encode: encodeSegment })\n      var queryString = ''\n\n      if (options.query) {\n        if (Object.keys(queryParams).length) {\n          queryString = URLON.stringify(queryParams).slice(1)\n        }\n      }\n\n      return path + (queryString ? querySeparator + queryString : '')\n    }\n  }\n}\n\nmodule.exports = compileRoute\n","'use strict'\nvar mapper = require('./mapper')\nvar compileRoute = require('./compileRoute')\n\nmodule.exports = function urlMapper (options) {\n  return mapper(compileRoute, options)\n}\n","import {Observable} from './model'\r\n//import {h} from 'superfine'\r\nimport Mapper from 'url-mapper'\r\n\r\nconst urlMapper = Mapper()\r\n\r\nlet router = (routes) => loc  => {\r\n    var matchedRoute = urlMapper.map(loc,routes)\r\n    return (matchedRoute)\r\n}\r\n\r\nlet Navigate = (App) =>{\r\n    let route = App.state.router(App.state.location)\r\n      if(route){\r\n        let Component = route.match\r\n        let props = route.values\r\n        App.state.render(Component)\r\n      }else{\r\n        let Component = App.state.routes['*']\r\n        App.state.render(Component)\r\n      }\r\n    }\r\n\r\nmodule.exports = {\r\n    router: router,\r\n    Navigate: Navigate\r\n}","/**\r\n * TransForm all links to Router NAvigation Button\r\n */\r\nlet transLink = (App) =>{\r\n    let link = document.querySelectorAll('a')\r\nfor ( var key in link){\r\n  if(typeof link[key] === 'object' && link[key].attributes.href.value.charAt(0) ==='/'){\r\n    let url = link[key].attributes.href.value\r\n    link[key].addEventListener('click', (e)=>{\r\n      e.preventDefault()\r\n      App.state.location = url\r\n      history.pushState({}, null, url);\r\n    }) \r\n  }\r\n}\r\n}\r\n\r\nmodule.exports ={\r\n    transLink: transLink\r\n}","import {patch, h} from 'superfine'\r\nimport {Observable} from './libs/model'\r\nimport {router, Navigate} from './libs/router'\r\nimport * as Utils from './utils'\r\n\r\nconst Render = (view, container, node) => state => {\r\n    node = patch(node, view(state), container)\r\n}\r\n\r\n\r\n\r\nmodule.exports = {\r\n    h: h,\r\n    patch: patch,\r\n    Observable: Observable,\r\n    Render: Render,\r\n    Router: router,\r\n    Navigate: Navigate,\r\n    Utils: Utils\r\n}"]}