{"version":3,"file":"kendo.view.min.js","names":["factory","define","amd","$","kendo","attr","ui","attrValue","directiveSelector","Observable","Widget","roleSelector","INIT","TRANSITION_START","TRANSITION_END","SHOW","HIDE","sizzleErrorRegExp","bodyRegExp","SHOW_START","SAME_VIEW_REQUESTED","VIEW_SHOW","VIEW_TYPE_DETERMINED","AFTER","classNames","View","ViewClone","Layout","Fragment","transitionRegExp","ViewContainer","ViewEngine","window","jQuery","extend","init","content","options","that","this","id","guid","fn","call","renderOnInit","_createElement","wrapInSections","_renderSections","tagName","model","_wrap","wrap","_evalTemplate","evalTemplate","_useWithBlock","useWithBlock","_fragments","bind","name","detachOnHide","detachOnDestroy","render","container","notInitialized","element","append","trigger","_eachFragment","clone","triggerBeforeShow","triggerBeforeHide","showStart","css","view","showEnd","hideEnd","hide","beforeTransition","type","afterTransition","detach","destroy","unbind","remove","purge","add","wrapper","off","fragments","methodName","placeholder","document","getElementById","html","e","test","message","replace","template","contents","result","contains","replaceWith","wrapAll","parent","_wrapper","_createContent","_createHeader","_createFooter","is","ns","addClass","contentSelector","children","filter","child","contentElement","header","footer","Class","transition","noop","containers","selector","_createContainer","showIn","show","root","find","length","Error","attach","history","running","after","end","previous","locationID","current","back","theTransition","transitionData","matches","match","direction","reverse","parseTransition","effect","stop","pop","push","effects","enabled","fx","setReverse","run","then","views","sandbox","_hideViews","rootView","first","layouts","viewContainer","params","events","showView","url","RegExp","remoteViewURLPrefix","_findViewElement","widgetInstance","reload","remote","_createView","urlPath","split","$1","innerHTML","wrapInner","_locate","selectors","$angular","indexOf","charAt","_findViewElementById","_createSpaView","_createMobileView","initWidget","defaultTransition","loader","getLayout","getLayoutProxy","modelScope","roles","viewOptions"],"sources":["kendo.view.js"],"mappings":"CAAA,SAAWA,GACW,mBAAXC,QAAyBA,OAAOC,IAAMD,OAAO,CAAC,iBAAkB,mBAAoB,gBAAiBD,GAC5GA,IAFJ,EAGG,WACC,IASUG,EACFC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EAEAC,EAGAC,EACAC,EACAC,EACAC,EACAC,EACAC,YASAC,EA6QAC,EAmBAC,EA6CAC,EASAC,EAgBAC,EA0GAC,EArfE5B,EAksBP6B,OAAO5B,MAAM6B,OAjsBR7B,EAAQ4B,OAAO5B,MACfC,EAAOD,EAAMC,KACbC,EAAKF,EAAME,GACXC,EAAYH,EAAMG,UAClBC,EAAoBJ,EAAMI,kBAC1BC,EAAaL,EAAMK,WACnBC,EAASN,EAAME,GAAGI,OAClBC,EAAeP,EAAMO,aAGrBC,EAAO,OACPC,EAAmB,kBACnBC,EAAiB,gBACjBC,EAAO,OACPC,EAAO,OAGPC,EAAoB,0BAEpBC,EAAa,wDAGbC,EAAa,YACbC,EAAsB,oBACtBC,EAAY,WACZC,EAAuB,qBACvBC,EAAQ,QACRC,EACS,YADTA,EAEM,SAFNA,EAGe,mBAHfA,EAIQ,WAJRA,EAKQ,WALRA,EAMQ,WAGRC,EAAOrB,EAAME,GAAGI,OAAOwB,OAAO,CAC9BC,KAAM,SAASC,EAASC,GACpB,IAAIC,EAAOC,KACXF,EAAUA,GAAW,GACrBC,EAAKE,GAAKpC,EAAMqC,OAEhBhC,EAAWiC,GAAGP,KAAKQ,KAAKL,GACxBC,KAAKF,QAAUlC,EAAE+B,OAAO,GAAIK,KAAKF,QAASA,GAE1CC,EAAKF,QAAUA,EAEXE,EAAKD,QAAQO,cACblC,EAAOgC,GAAGP,KAAKQ,KAAKL,EAAMA,EAAKO,iBAAkBR,GAGjDC,EAAKD,QAAQS,gBACbR,EAAKS,kBAGTT,EAAKU,QAAUX,EAAQW,SAAW,MAClCV,EAAKW,MAAQZ,EAAQY,MACrBX,EAAKY,OAAyB,IAAjBb,EAAQc,KACrBZ,KAAKa,cAAgBf,EAAQgB,eAAgB,EAC7Cd,KAAKe,cAAgBjB,EAAQkB,aAC7BjB,EAAKkB,WAAa,GAElBlB,EAAKmB,KAAK,CAAE7C,EAAMG,EAAMC,EAAMH,EAAkBC,GAAkBuB,IAGtEA,QAAS,CACLqB,KAAM,OACNd,cAAc,EACdE,gBAAgB,EAChBa,cAAc,EACdC,iBAAiB,GAGrBC,OAAQ,SAASC,GACb,IAAIxB,EAAOC,KACPwB,GAAkBzB,EAAK0B,QAsB3B,OAlBID,IACAzB,EAAK0B,QAAU1B,EAAKO,kBAGpBiB,GACA3D,EAAE2D,GAAWG,OAAO3B,EAAK0B,SAGzBD,IACA3D,EAAMqD,KAAKnB,EAAK0B,QAAS1B,EAAKW,OAC9BX,EAAK4B,QAAQtD,IAGbkD,IACAxB,EAAK6B,cA9EJ,UA+ED7B,EAAK4B,QAAQnD,IAGVuB,EAAK0B,SAGhBI,MAAO,WACH,OAAO,IAAI1C,EAAUa,OAGzB8B,kBAAmB,WACf,OAAO,GAGXC,kBAAmB,WACf,OAAO,GAGXC,UAAW,WACP,IACIP,EADOzB,KACQsB,SAEfG,GACAA,EAAQQ,IAAI,UAAW,IAG3BjC,KAAK2B,QAAQ/C,EAAY,CAAEsD,KAAMlC,QAGrCmC,QAAS,aAGTC,QAAS,WACLpC,KAAKqC,QAGTC,iBAAkB,SAASC,GACvBvC,KAAK2B,QAAQrD,EAAkB,CAAEiE,KAAMA,KAG3CC,gBAAiB,SAASD,GACtBvC,KAAK2B,QAAQpD,EAAgB,CAAEgE,KAAMA,KAGzCF,KAAM,WACErC,KAAKF,QAAQsB,eACbpB,KAAK4B,cA5HJ,UA6HDhE,EAAEoC,KAAKyB,SAASgB,UAGpBzC,KAAK2B,QAAQlD,IAGjBiE,QAAS,WACL,IAAI3C,EAAOC,KACPyB,EAAU1B,EAAK0B,QAEfA,IACAtD,EAAOgC,GAAGuC,QAAQtC,KAAKL,GAEvBlC,EAAM8E,OAAOlB,GACb5D,EAAM6E,QAAQjB,GAEV1B,EAAKD,QAAQuB,iBACbI,EAAQmB,WAMpBC,MAAO,WACH,IAAI9C,EAAOC,KAEXD,EAAK2C,UACL9E,EAAEmC,EAAK0B,SAASqB,IAAI/C,EAAKF,SAASiD,IAAI/C,EAAKgD,SAASC,MAAMJ,UAG9DK,UAAW,SAASA,GAChBrF,EAAE+B,OAAOK,KAAKiB,WAAYgC,IAG9BrB,cAAe,SAASsB,GACpB,IAAK,IAAIC,KAAenD,KAAKiB,WACzBjB,KAAKiB,WAAWkC,GAAaD,GAAYlD,KAAMmD,IAIvD7C,eAAgB,WACZ,IAEImB,EACA5B,EAHAE,EAAOC,KACP+C,EAAU,IAAMhD,EAAKU,QAAU,IAInC,IAlLK,YAmLDZ,EAAUjC,EAAEwF,SAASC,eAAetD,EAAKF,UAAYE,EAAKF,UAE9C,GAAGY,UACXZ,EAAUA,EAAQyD,QAExB,MAAOC,GACD7E,EAAkB8E,KAAKD,EAAEE,WACzB5D,EAAUE,EAAKF,SAIvB,GAAuB,iBAAZA,EACPA,EAAUA,EAAQ6D,QAAQ,aAAc,IACpC3D,EAAKc,gBACLhB,EAAUhC,EAAM8F,SAAS9D,EAAS,CAAEmB,aAAcjB,EAAKgB,eAA7ClD,CAA8DkC,EAAKW,OAAS,KAG1Fe,EAAU7D,EAAEmF,GAASrB,OAAO7B,GAMvBE,EAAKY,QACPc,EAAUA,EAAQmC,gBAElB,CAEH,GADAnC,EAAU5B,EACNE,EAAKc,cAAe,CACpB,IAAIgD,EAASjG,EAAEC,EAAM8F,SAAS/F,EAAE,WAAW8D,OAAOD,EAAQI,OAAM,IAAOyB,OAAQ,CAAEtC,aAAcjB,EAAKgB,eAArFlD,CAAsGkC,EAAKW,OAAS,KAG/H9C,EAAEkG,SAASV,SAAU3B,EAAQ,KAC7BA,EAAQsC,YAAYF,GAGxBpC,EAAUoC,EAEV9D,EAAKY,QACLc,EAAUA,EAAQuC,QAAQjB,GAASkB,UAI3C,OAAOxC,GAGXjB,gBAAiB,WACb,IAAIT,EAAOC,KAEPD,EAAKD,QAAQS,iBACbR,EAAKmE,WACLnE,EAAKoE,iBACLpE,EAAKqE,gBACLrE,EAAKsE,kBAIbH,SAAU,WACN,IAAInE,EAAOC,KACPH,EAAUE,EAAKF,QAEfA,EAAQyE,GAAGlG,EAAa,SACxB2B,EAAKgD,QAAUhD,EAAKF,QAEpBE,EAAKgD,QAAUlD,EACVe,KAAK,aAAe/C,EAAM0G,GAAK,uBAAyB1G,EAAM0G,GAAK,oBAAsB1G,EAAM0G,GAAK,+BACpGN,SAGT,IAAIlB,EAAUhD,EAAKgD,QAEnBA,EAAQjF,KAAK,KAAMiC,EAAKE,IAExB8C,EAAQyB,SAASvF,GACjB8D,EAAQyB,SAASvF,GACjB8D,EAAQjF,KAAK,OAAQ,SAGzBqG,eAAgB,WACZ,IACIpB,EAAUnF,EADHoC,KACU+C,SACjB0B,EAAkBrG,EAAa,WAE9B2E,EAAQ2B,SAASD,GAAiB,IACZ1B,EAAQ2B,WAAWC,QAAO,WAC7C,IAAIC,EAAQhH,EAAEoC,MACd,IAAK4E,EAAMN,GAAGlG,EAAa,aAAewG,EAAMN,GAAGlG,EAAa,WAC5D,OAAOwG,KAIEhE,KAAK,QAAU9C,EAAK,QAAU,qBAInDkC,KAAK6E,eAAiB9B,EAAQ2B,SAAStG,EAAa,YAEpD4B,KAAK6E,eACAL,SAASvF,GACTuF,SAASvF,IAGlBmF,cAAe,WACX,IACIrB,EADO/C,KACQ+C,QAEnB/C,KAAK8E,OAAS/B,EAAQ2B,SAAStG,EAAa,WAAWoG,SAASvF,IAGpEoF,cAAe,WACX,IACItB,EADO/C,KACQ+C,QAEnB/C,KAAK+E,OAAShC,EAAQ2B,SAAStG,EAAa,WAAWoG,SAASvF,MAIpEE,EAAYtB,EAAMmH,MAAMrF,OAAO,CAC/BC,KAAM,SAASsC,GACXtE,EAAE+B,OAAOK,KAAM,CACXyB,QAASS,EAAKT,QAAQI,OAAM,GAC5BoD,WAAY/C,EAAK+C,WACjBhF,GAAIiC,EAAKjC,KAGbiC,EAAKT,QAAQwC,SAASvC,OAAO1B,KAAKyB,UAGtCW,QAAS,WACLpC,KAAKyB,QAAQmB,UAGjBN,iBAAkB1E,EAAEsH,KACpB1C,gBAAiB5E,EAAEsH,OAGnB9F,EAASF,EAAKS,OAAO,CACrBC,KAAM,SAASC,EAASC,GACpBZ,EAAKiB,GAAGP,KAAKQ,KAAKJ,KAAMH,EAASC,GACjCE,KAAKmF,WAAa,IAGtB5D,UAAW,SAAS6D,GAChB,IAAI7D,EAAYvB,KAAKmF,WAAWC,GAOhC,OALK7D,IACDA,EAAYvB,KAAKqF,iBAAiBD,GAClCpF,KAAKmF,WAAWC,GAAY7D,GAGzBA,GAGX+D,OAAQ,SAASF,EAAUlD,EAAM+C,GAC7BjF,KAAKuB,UAAU6D,GAAUG,KAAKrD,EAAM+C,IAGxCI,iBAAkB,SAASD,GACvB,IAEI7D,EAFAiE,EAAOxF,KAAKsB,SACZG,EAAU+D,EAAKC,KAAKL,GAGxB,IAAK3D,EAAQiE,QAAUF,EAAKlB,GAAGc,GAAW,CACtC,IAAII,EAAKlB,GAAGc,GAIR,MAAM,IAAIO,MAAM,6CAA+CP,EAAW,aAH1E3D,EAAU+D,EAalB,OANAjE,EAAY,IAAIhC,EAAckC,IAEpBP,KAAK,YAAY,SAASqC,GAChCA,EAAErB,KAAKZ,OAAOG,MAGXF,KAIXlC,EAAWH,EAAKS,OAAO,CACvBiG,OAAQ,SAAS1D,EAAMiB,GACnBjB,EAAKT,QAAQgE,KAAKtC,GAAaY,YAAY/D,KAAKsB,WAGpDmB,OAAQ,eAIRnD,EAAmB,4BAgBnBC,EAAgBrB,EAAWyB,OAAO,CAClCC,KAAM,SAAS2B,GACXrD,EAAWiC,GAAGP,KAAKQ,KAAKJ,MACxBA,KAAKuB,UAAYA,EACjBvB,KAAK6F,QAAU,GACf7F,KAAKkC,KAAO,KACZlC,KAAK8F,SAAU,GAGnBC,MAAO,WACH/F,KAAK8F,SAAU,EACf9F,KAAK2B,QAAQ,WAAY,CAAEO,KAAMlC,KAAKkC,OACtClC,KAAK2B,QAAQ,UAGjBqE,IAAK,WACDhG,KAAKkC,KAAKC,UACVnC,KAAKiG,SAAS7D,UACdpC,KAAK+F,SAGTR,KAAM,SAASrD,EAAM+C,EAAYiB,GAC7B,IAAKhE,EAAKJ,qBAAwB9B,KAAKkC,OAASlC,KAAKkC,KAAKH,oBAEtD,OADA/B,KAAK2B,QAAQ,UACN,EAGXuE,EAAaA,GAAchE,EAAKjC,GAEhC,IAAIF,EAAOC,KACPmG,EAAWjE,IAASnC,EAAKmC,KAAQA,EAAKL,QAAU9B,EAAKmC,KACrD2D,EAAU9F,EAAK8F,QAEfO,GADgBP,EAAQA,EAAQH,OAAS,IAAM,IAC1BzF,KAAOiG,EAG5BG,EAAgBpB,IAAgBmB,EAAOP,EAAQA,EAAQH,OAAS,GAAGT,WAAa/C,EAAK+C,YACrFqB,EAnDZ,SAAyBrB,GACrB,IAAKA,EACD,MAAO,GAGX,IAAIsB,EAAUtB,EAAWuB,MAAMlH,IAAqB,GAEpD,MAAO,CACHiD,KAAMgE,EAAQ,GACdE,UAAWF,EAAQ,GACnBG,QAAwB,YAAfH,EAAQ,IAyCII,CAAgBN,GAqBrC,OAnBItG,EAAK+F,SACL/F,EAAK6G,OAAOC,OAGM,SAAlBR,IACAA,EAAgB,MAGpBtG,EAAK4B,QAAQ,WAAY,CAAEO,KAAMA,IACjCnC,EAAKmC,KAAOA,EACZnC,EAAKkG,SAAWE,EAChBpG,EAAK+F,SAAU,EAEVM,EAGDP,EAAQiB,MAFRjB,EAAQkB,KAAK,CAAE9G,GAAIiG,EAAYjB,WAAYoB,IAK1CF,GAOAE,GAAkBxI,EAAMmJ,QAAQC,SAMjC/E,EAAKT,QAAQ+C,SAAS,eACtBtC,EAAKF,YAEDoE,IAASnB,IACTqB,EAAeI,SAAWJ,EAAeI,SAG7C3G,EAAK6G,OAAS/I,EAAMqJ,GAAGhF,EAAKT,SAASiC,QAAQyC,EAAQ1E,QAAS6E,EAAe/D,MACxED,kBAAiB,WACdJ,EAAKI,iBAAiB,QACtB6D,EAAQ7D,iBAAiB,WAE5BE,iBAAgB,WACbN,EAAKM,gBAAgB,QACrB2D,EAAQ3D,gBAAgB,WAE3BiE,UAAUH,EAAeG,WACzBU,WAAWb,EAAeI,SAE/B3G,EAAK6G,OAAOQ,MAAMC,MAAK,WAAatH,EAAKiG,WAxBzC9D,EAAKF,YACLjC,EAAKiG,QA0BF,IAlCH9D,EAAKF,YACLE,EAAKC,UACLpC,EAAKgG,SACE,IAkCfrD,QAAS,WACL,IACIR,EADOlC,KACKkC,KAEZA,GAAQA,EAAKQ,SACbR,EAAKQ,aAKblD,EAAatB,EAAWyB,OAAO,CAC/BC,KAAM,SAASE,GACX,IACIwH,EACA/F,EAFAxB,EAAOC,KAIX9B,EAAWiC,GAAGP,KAAKQ,KAAKL,GACxBA,EAAKD,QAAUA,EAEflC,EAAE+B,OAAOI,EAAMD,GACfC,EAAKwH,QAAU3J,EAAE,WACjB2D,EAAYxB,EAAKwB,UAEjB+F,EAAQvH,EAAKyH,WAAWjG,GACxBxB,EAAK0H,SAAWH,EAAMI,QACtB3H,EAAK4H,QAAU,GAEf5H,EAAK6H,cAAgB,IAAI/J,EAAM0B,cAAcQ,EAAKwB,WAElDxB,EAAK6H,cAAc1G,KAAK,YAAY,SAASqC,GACzCA,EAAErB,KAAK2F,OAAS9H,EAAK8H,UAGzB9H,EAAK6H,cAAc1G,KAAK,YAAY,SAASqC,GACzCxD,EAAK4B,QAAQ7C,EAAW,CAAEoD,KAAMqB,EAAErB,UAGtCnC,EAAK6H,cAAc1G,KAAKlC,GAAO,WAC3Be,EAAK4B,QAAQ3C,MAGjBgB,KAAKkB,KAAKlB,KAAK8H,OAAQhI,IAG3BgI,OAAQ,CACJlJ,EACAI,EACAF,EArgBS,YACG,eAugBZD,EACAE,GAGJ2D,QAAS,WACL,IAAI3C,EAAOC,KACP4H,EAAgB7H,EAAK6H,cAIzB,IAAK,IAAI3H,KAFTpC,EAAM6E,QAAQ3C,EAAKwB,WAEJxB,EAAK4H,QAChB3H,KAAK2H,QAAQ1H,GAAIyC,UAGjBkF,GACAA,EAAclF,WAItBR,KAAM,WACF,OAAOlC,KAAK4H,cAAc1F,MAG9B6F,SAAU,SAASC,EAAK/C,EAAY4C,GAMhC,GAJY,MADZG,EAAMA,EAAItE,QAAQ,IAAIuE,OAAO,IAAMjI,KAAKkI,qBAAsB,MAC5ClI,KAAKkI,sBACnBF,EAAM,KAGNA,EAAItE,QAAQ,KAAM,MAAQ1D,KAAKgI,IAE/B,OADAhI,KAAK2B,QAAQ9C,IACN,EAGXmB,KAAK2B,QAAQ/C,GAEb,IAAImB,EAAOC,KACPyB,EAAU1B,EAAKoI,iBAAiBH,GAChC9F,EAAOrE,EAAMuK,eAAe3G,GAahC,OAXA1B,EAAKiI,IAAMA,EAAItE,QAAQ,KAAM,IAE7B3D,EAAK8H,OAASA,EAEV3F,GAAQA,EAAKmG,SACbnG,EAAKW,QACLpB,EAAU,IAGdzB,KAAK2B,QAAQ5C,EAAsB,CAAEuJ,OAA2B,IAAnB7G,EAAQiE,OAAcsC,IAAKA,KAEpEvG,EAAQ,KACHS,IACDA,EAAOnC,EAAKwI,YAAY9G,IAGrB1B,EAAK6H,cAAcrC,KAAKrD,EAAM+C,EAAY+C,KAMzDtG,OAAQ,SAAS4B,EAAM0E,GACnB,IAGIV,EACApF,EAJAqF,EAAUvH,KAAKuH,QACfiB,GAAWR,GAAO,IAAIS,MAAM,KAAK,GACjClH,EAAYvB,KAAKuB,UA0BrB,OAtBI5C,EAAW6E,KAAKF,KAChBA,EAAO2E,OAAOS,IAGlBnB,EAAQ,GAAGoB,UAAYrF,EAEvB/B,EAAUG,OAAO6F,EAAQ7C,SAAS,mBAGlCxC,GADAoF,EAAQtH,KAAKwH,WAAWD,IACXG,SAGHhC,SACN4B,EAAQpF,EAAOqF,EAAQqB,UAAU,0BAA0BlE,YAG3D8D,GACAtG,EAAKG,OAAOvE,KAAKA,EAAK,OAAQ0K,GAGlCjH,EAAUG,OAAO4F,GAEVtH,KAAKuI,YAAYrG,IAG5B2G,QAAS,SAASC,GACd,OAAO9I,KAAK+I,SAAW9K,EAAkB6K,GAAa1K,EAAa0K,IAGvEX,iBAAkB,SAASH,GACvB,IAAIvG,EACA+G,EAAUR,EAAIS,MAAM,KAAK,GAE7B,OAAKD,IAIL/G,EAAUzB,KAAKuB,UAAUmD,SAAS,IAAM5G,EAAK,OAAS,KAAO0K,EAAU,OAG1D,KAAgC,IAA1BA,EAAQQ,QAAQ,OAC/BvH,EAAUzB,KAAKuB,UAAUmD,SAA+B,MAAtB8D,EAAQS,OAAO,GAAaT,EAAU,IAAMA,IAG7E/G,EAAQ,KACTA,EAAUzB,KAAKkJ,qBAAqBlB,IAGjCvG,GAdIzB,KAAKyH,UAiBpByB,qBAAsB,SAASjJ,GAE3B,OADcD,KAAKuB,UAAUmD,SAAS,QAAUzE,EAAK,OAIzDsI,YAAa,SAAS9G,GAElB,OAAOzB,KAAKmJ,eAAe1H,IAG/B2H,kBAAmB,SAAS3H,GACxB,OAAO5D,EAAMwL,WAAW5H,EAAS,CAC7B6H,kBAAmBtJ,KAAKiF,WACxBsE,OAAQvJ,KAAKuJ,OACbhI,UAAWvB,KAAKuB,UAChBiI,UAAWxJ,KAAKyJ,eAChBC,WAAY1J,KAAK0J,WACjBrB,OAAQrK,EAAUyD,EAAS,WAC5B1D,EAAG4L,QAGVR,eAAgB,SAAS1H,GACrB,IAAImI,GAAe5J,KAAKF,SAAW,IAAI8J,aAAe,GACtD,OAAO,IAAI/L,EAAMqB,KAAKuC,EAAS,CAC3BpB,aAAcuJ,EAAYvJ,aAC1BO,KAAMgJ,EAAYhJ,OAAQ,EAC1BL,eAAgBqJ,EAAYrJ,eAC5Ba,aAAcwI,EAAYxI,aAC1BC,gBAAiBuI,EAAYvI,mBAIrCmG,WAAY,SAASjG,GACjB,OAAOA,EAAUmD,SAAS1E,KAAK6I,QAAQ,SAASxG,UAIxDxE,EAAM2B,WAAaA,EAEnB3B,EAAM0B,cAAgBA,EACtB1B,EAAMwB,SAAWA,EACjBxB,EAAMuB,OAASA,EACfvB,EAAMqB,KAAOA,EACbrB,EAAMsB,UAAYA","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.core', 'kendo.binder', 'kendo.fx'], factory) :\n factory();\n})((function () {\n var __meta__ = {\n id: \"view\",\n name: \"View\",\n category: \"framework\",\n description: \"The View class instantiates and handles the events of a certain screen from the application.\",\n depends: [ \"core\", \"binder\", \"fx\" ],\n hidden: false\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n attr = kendo.attr,\n ui = kendo.ui,\n attrValue = kendo.attrValue,\n directiveSelector = kendo.directiveSelector,\n Observable = kendo.Observable,\n Widget = kendo.ui.Widget,\n roleSelector = kendo.roleSelector,\n\n SCRIPT = \"SCRIPT\",\n INIT = \"init\",\n TRANSITION_START = \"transitionStart\",\n TRANSITION_END = \"transitionEnd\",\n SHOW = \"show\",\n HIDE = \"hide\",\n ATTACH = \"attach\",\n DETACH = \"detach\",\n sizzleErrorRegExp = /unrecognized expression/;\n\n var bodyRegExp = /]*>(([\\u000a\\u000d\\u2028\\u2029]|.)*)<\\/body>/i;\n var LOAD_START = \"loadStart\";\n var LOAD_COMPLETE = \"loadComplete\";\n var SHOW_START = \"showStart\";\n var SAME_VIEW_REQUESTED = \"sameViewRequested\";\n var VIEW_SHOW = \"viewShow\";\n var VIEW_TYPE_DETERMINED = \"viewTypeDetermined\";\n var AFTER = \"after\";\n var classNames = {\n content: \"k-content\",\n view: \"k-view\",\n stretchedView: \"k-stretched-view\",\n widget: \"k-widget\",\n header: \"k-header\",\n footer: \"k-footer\"\n };\n\n var View = kendo.ui.Widget.extend({\n init: function(content, options) {\n var that = this;\n options = options || {};\n that.id = kendo.guid();\n\n Observable.fn.init.call(that);\n this.options = $.extend({}, this.options, options);\n\n that.content = content;\n\n if (that.options.renderOnInit) {\n Widget.fn.init.call(that, that._createElement(), options);\n }\n\n if (that.options.wrapInSections) {\n that._renderSections();\n }\n\n that.tagName = options.tagName || \"div\";\n that.model = options.model;\n that._wrap = options.wrap !== false;\n this._evalTemplate = options.evalTemplate || false;\n this._useWithBlock = options.useWithBlock;\n that._fragments = {};\n\n that.bind([ INIT, SHOW, HIDE, TRANSITION_START, TRANSITION_END ], options);\n },\n\n options: {\n name: \"View\",\n renderOnInit: false,\n wrapInSections: false,\n detachOnHide: true,\n detachOnDestroy: true\n },\n\n render: function(container) {\n var that = this,\n notInitialized = !that.element;\n\n // The order below matters - kendo.bind should happen when the element is in the DOM, and show should be triggered after init.\n\n if (notInitialized) {\n that.element = that._createElement();\n }\n\n if (container) {\n $(container).append(that.element);\n }\n\n if (notInitialized) {\n kendo.bind(that.element, that.model);\n that.trigger(INIT);\n }\n\n if (container) {\n that._eachFragment(ATTACH);\n that.trigger(SHOW);\n }\n\n return that.element;\n },\n\n clone: function() {\n return new ViewClone(this);\n },\n\n triggerBeforeShow: function() {\n return true;\n },\n\n triggerBeforeHide: function() {\n return true;\n },\n\n showStart: function() {\n var that = this;\n var element = that.render();\n\n if (element) {\n element.css(\"display\", \"\");\n }\n\n this.trigger(SHOW_START, { view: this });\n },\n\n showEnd: function() {\n },\n\n hideEnd: function() {\n this.hide();\n },\n\n beforeTransition: function(type) {\n this.trigger(TRANSITION_START, { type: type });\n },\n\n afterTransition: function(type) {\n this.trigger(TRANSITION_END, { type: type });\n },\n\n hide: function() {\n if (this.options.detachOnHide) {\n this._eachFragment(DETACH);\n $(this.element).detach();\n }\n\n this.trigger(HIDE);\n },\n\n destroy: function() {\n var that = this;\n var element = that.element;\n\n if (element) {\n Widget.fn.destroy.call(that);\n\n kendo.unbind(element);\n kendo.destroy(element);\n\n if (that.options.detachOnDestroy) {\n element.remove();\n }\n }\n },\n\n // ported from mobile view\n purge: function() {\n var that = this;\n\n that.destroy();\n $(that.element).add(that.content).add(that.wrapper).off().remove();\n },\n\n fragments: function(fragments) {\n $.extend(this._fragments, fragments);\n },\n\n _eachFragment: function(methodName) {\n for (var placeholder in this._fragments) {\n this._fragments[placeholder][methodName](this, placeholder);\n }\n },\n\n _createElement: function() {\n var that = this,\n wrapper = \"<\" + that.tagName + \">\",\n element,\n content;\n\n try {\n content = $(document.getElementById(that.content) || that.content); // support passing id without #\n\n if (content[0].tagName === SCRIPT) {\n content = content.html();\n }\n } catch (e) {\n if (sizzleErrorRegExp.test(e.message)) {\n content = that.content;\n }\n }\n\n if (typeof content === \"string\") {\n content = content.replace(/^\\s+|\\s+$/g, '');\n if (that._evalTemplate) {\n content = kendo.template(content, { useWithBlock: that._useWithBlock })(that.model || {});\n }\n\n element = $(wrapper).append(content);\n // drop the wrapper if asked - this seems like the easiest (although not very intuitive) way to avoid messing up templates with questionable content, like this one for instance:\n // \n if (!that._wrap) {\n element = element.contents();\n }\n } else {\n element = content;\n if (that._evalTemplate) {\n var result = $(kendo.template($(\"
\").append(element.clone(true)).html(), { useWithBlock: that._useWithBlock })(that.model || {}));\n\n // template uses DOM\n if ($.contains(document, element[0])) {\n element.replaceWith(result);\n }\n\n element = result;\n }\n if (that._wrap) {\n element = element.wrapAll(wrapper).parent();\n }\n }\n\n return element;\n },\n\n _renderSections: function() {\n var that = this;\n\n if (that.options.wrapInSections) {\n that._wrapper();\n that._createContent();\n that._createHeader();\n that._createFooter();\n }\n },\n\n _wrapper: function() {\n var that = this;\n var content = that.content;\n\n if (content.is(roleSelector(\"view\"))) {\n that.wrapper = that.content;\n } else {\n that.wrapper = content\n .wrap('
')\n .parent();\n }\n\n var wrapper = that.wrapper;\n\n wrapper.attr(\"id\", that.id);\n\n wrapper.addClass(classNames.view);\n wrapper.addClass(classNames.widget);\n wrapper.attr(\"role\", \"view\");\n },\n\n _createContent: function() {\n var that = this;\n var wrapper = $(that.wrapper);\n var contentSelector = roleSelector(\"content\");\n\n if (!wrapper.children(contentSelector)[0]) {\n var ccontentElements = wrapper.children().filter(function() {\n var child = $(this);\n if (!child.is(roleSelector(\"header\")) && !child.is(roleSelector(\"footer\"))) {\n return child;\n }\n });\n\n ccontentElements.wrap(\"
');\n }\n\n // use contentElement instead of content as view.content can be a string\n this.contentElement = wrapper.children(roleSelector(\"content\"));\n\n this.contentElement\n .addClass(classNames.stretchedView)\n .addClass(classNames.content);\n },\n\n _createHeader: function() {\n var that = this;\n var wrapper = that.wrapper;\n\n this.header = wrapper.children(roleSelector(\"header\")).addClass(classNames.header);\n },\n\n _createFooter: function() {\n var that = this;\n var wrapper = that.wrapper;\n\n this.footer = wrapper.children(roleSelector(\"footer\")).addClass(classNames.footer);\n }\n });\n\n var ViewClone = kendo.Class.extend({\n init: function(view) {\n $.extend(this, {\n element: view.element.clone(true),\n transition: view.transition,\n id: view.id\n });\n\n view.element.parent().append(this.element);\n },\n\n hideEnd: function() {\n this.element.remove();\n },\n\n beforeTransition: $.noop,\n afterTransition: $.noop\n });\n\n var Layout = View.extend({\n init: function(content, options) {\n View.fn.init.call(this, content, options);\n this.containers = {};\n },\n\n container: function(selector) {\n var container = this.containers[selector];\n\n if (!container) {\n container = this._createContainer(selector);\n this.containers[selector] = container;\n }\n\n return container;\n },\n\n showIn: function(selector, view, transition) {\n this.container(selector).show(view, transition);\n },\n\n _createContainer: function(selector) {\n var root = this.render(),\n element = root.find(selector),\n container;\n\n if (!element.length && root.is(selector)) {\n if (root.is(selector)) {\n element = root;\n } else {\n\n throw new Error(\"can't find a container with the specified \" + selector + \" selector\");\n }\n }\n\n container = new ViewContainer(element);\n\n container.bind(\"accepted\", function(e) {\n e.view.render(element);\n });\n\n return container;\n }\n });\n\n var Fragment = View.extend({\n attach: function(view, placeholder) {\n view.element.find(placeholder).replaceWith(this.render());\n },\n\n detach: function() {\n }\n });\n\n var transitionRegExp = /^(\\w+)(:(\\w+))?( (\\w+))?$/;\n\n function parseTransition(transition) {\n if (!transition) {\n return {};\n }\n\n var matches = transition.match(transitionRegExp) || [];\n\n return {\n type: matches[1],\n direction: matches[3],\n reverse: matches[5] === \"reverse\"\n };\n }\n\n var ViewContainer = Observable.extend({\n init: function(container) {\n Observable.fn.init.call(this);\n this.container = container;\n this.history = [];\n this.view = null;\n this.running = false;\n },\n\n after: function() {\n this.running = false;\n this.trigger(\"complete\", { view: this.view });\n this.trigger(\"after\");\n },\n\n end: function() {\n this.view.showEnd();\n this.previous.hideEnd();\n this.after();\n },\n\n show: function(view, transition, locationID) {\n if (!view.triggerBeforeShow() || (this.view && !this.view.triggerBeforeHide())) {\n this.trigger(\"after\");\n return false;\n }\n\n locationID = locationID || view.id;\n\n var that = this,\n current = (view === that.view) ? view.clone() : that.view,\n history = that.history,\n previousEntry = history[history.length - 2] || {},\n back = previousEntry.id === locationID,\n // If explicit transition is set, it will be with highest priority\n // Next we will try using the history record transition or the view transition configuration\n theTransition = transition || ( back ? history[history.length - 1].transition : view.transition ),\n transitionData = parseTransition(theTransition);\n\n if (that.running) {\n that.effect.stop();\n }\n\n if (theTransition === \"none\") {\n theTransition = null;\n }\n\n that.trigger(\"accepted\", { view: view });\n that.view = view;\n that.previous = current;\n that.running = true;\n\n if (!back) {\n history.push({ id: locationID, transition: theTransition });\n } else {\n history.pop();\n }\n\n if (!current) {\n view.showStart();\n view.showEnd();\n that.after();\n return true;\n }\n\n if (!theTransition || !kendo.effects.enabled) {\n view.showStart();\n that.end();\n } else {\n // hide the view element before init/show - prevents blinks on iPad\n // the replace effect will remove this class\n view.element.addClass(\"k-fx-hidden\");\n view.showStart();\n // do not reverse the explicit transition\n if (back && !transition) {\n transitionData.reverse = !transitionData.reverse;\n }\n\n that.effect = kendo.fx(view.element).replace(current.element, transitionData.type)\n .beforeTransition(function() {\n view.beforeTransition(\"show\");\n current.beforeTransition(\"hide\");\n })\n .afterTransition(function() {\n view.afterTransition(\"show\");\n current.afterTransition(\"hide\");\n })\n .direction(transitionData.direction)\n .setReverse(transitionData.reverse);\n\n that.effect.run().then(function() { that.end(); });\n }\n\n return true;\n },\n\n destroy: function() {\n var that = this;\n var view = that.view;\n\n if (view && view.destroy) {\n view.destroy();\n }\n }\n });\n\n var ViewEngine = Observable.extend({\n init: function(options) {\n var that = this,\n views,\n container;\n\n Observable.fn.init.call(that);\n that.options = options;\n\n $.extend(that, options);\n that.sandbox = $(\"
\");\n container = that.container;\n\n views = that._hideViews(container);\n that.rootView = views.first();\n that.layouts = {};\n\n that.viewContainer = new kendo.ViewContainer(that.container);\n\n that.viewContainer.bind(\"accepted\", function(e) {\n e.view.params = that.params;\n });\n\n that.viewContainer.bind(\"complete\", function(e) {\n that.trigger(VIEW_SHOW, { view: e.view });\n });\n\n that.viewContainer.bind(AFTER, function() {\n that.trigger(AFTER);\n });\n\n this.bind(this.events, options);\n },\n\n events: [\n SHOW_START,\n AFTER,\n VIEW_SHOW,\n LOAD_START,\n LOAD_COMPLETE,\n SAME_VIEW_REQUESTED,\n VIEW_TYPE_DETERMINED\n ],\n\n destroy: function() {\n var that = this;\n var viewContainer = that.viewContainer;\n\n kendo.destroy(that.container);\n\n for (var id in that.layouts) {\n this.layouts[id].destroy();\n }\n\n if (viewContainer) {\n viewContainer.destroy();\n }\n },\n\n view: function() {\n return this.viewContainer.view;\n },\n\n showView: function(url, transition, params) {\n url = url.replace(new RegExp(\"^\" + this.remoteViewURLPrefix), \"\");\n if (url === \"\" && this.remoteViewURLPrefix) {\n url = \"/\";\n }\n\n if (url.replace(/^#/, \"\") === this.url) {\n this.trigger(SAME_VIEW_REQUESTED);\n return false;\n }\n\n this.trigger(SHOW_START);\n\n var that = this,\n element = that._findViewElement(url),\n view = kendo.widgetInstance(element);\n\n that.url = url.replace(/^#/, \"\");\n\n that.params = params;\n\n if (view && view.reload) {\n view.purge();\n element = [];\n }\n\n this.trigger(VIEW_TYPE_DETERMINED, { remote: element.length === 0, url: url });\n\n if (element[0]) {\n if (!view) {\n view = that._createView(element);\n }\n\n return that.viewContainer.show(view, transition, url);\n } else {\n return true;\n }\n },\n\n append: function(html, url) {\n var sandbox = this.sandbox,\n urlPath = (url || \"\").split(\"?\")[0],\n container = this.container,\n views,\n view;\n\n if (bodyRegExp.test(html)) {\n html = RegExp.$1;\n }\n\n sandbox[0].innerHTML = html;\n\n container.append(sandbox.children(\"script, style\"));\n\n views = this._hideViews(sandbox);\n view = views.first();\n\n // Generic HTML content found as remote view - no remote view markers\n if (!view.length) {\n views = view = sandbox.wrapInner(\"
\").children(); // one element\n }\n\n if (urlPath) {\n view.hide().attr(attr(\"url\"), urlPath);\n }\n\n container.append(views);\n\n return this._createView(view);\n },\n\n _locate: function(selectors) {\n return this.$angular ? directiveSelector(selectors) : roleSelector(selectors);\n },\n\n _findViewElement: function(url) {\n var element,\n urlPath = url.split(\"?\")[0];\n\n if (!urlPath) {\n return this.rootView;\n }\n\n element = this.container.children(\"[\" + attr(\"url\") + \"='\" + urlPath + \"']\");\n\n // do not try to search for \"#/foo/bar\" id, jQuery throws error\n if (!element[0] && urlPath.indexOf(\"/\") === -1) {\n element = this.container.children(urlPath.charAt(0) === \"#\" ? urlPath : \"#\" + urlPath);\n }\n\n if (!element[0]) {\n element = this._findViewElementById(url);\n }\n\n return element;\n },\n\n _findViewElementById: function(id) {\n var element = this.container.children(\"[id='\" + id + \"']\");\n return element;\n },\n\n _createView: function(element) {\n //return this._createMobileView(element);\n return this._createSpaView(element);\n },\n\n _createMobileView: function(element) {\n return kendo.initWidget(element, {\n defaultTransition: this.transition,\n loader: this.loader,\n container: this.container,\n getLayout: this.getLayoutProxy,\n modelScope: this.modelScope,\n reload: attrValue(element, \"reload\")\n }, ui.roles);\n },\n\n _createSpaView: function(element) {\n var viewOptions = (this.options || {}).viewOptions || {};\n return new kendo.View(element, {\n renderOnInit: viewOptions.renderOnInit,\n wrap: viewOptions.wrap || false,\n wrapInSections: viewOptions.wrapInSections,\n detachOnHide: viewOptions.detachOnHide,\n detachOnDestroy: viewOptions.detachOnDestroy\n });\n },\n\n _hideViews: function(container) {\n return container.children(this._locate(\"view\")).hide();\n }\n });\n\n kendo.ViewEngine = ViewEngine;\n\n kendo.ViewContainer = ViewContainer;\n kendo.Fragment = Fragment;\n kendo.Layout = Layout;\n kendo.View = View;\n kendo.ViewClone = ViewClone;\n\n })(window.kendo.jQuery);\n\n}));\n"]}