@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
3 lines (2 loc) • 8.98 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("kendo.core.js"),require("kendo.binder.js"),require("kendo.fx.js")):"function"==typeof define&&define.amd?define(["exports","kendo.core.min","kendo.binder","kendo.fx"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.View={}))}(this,(function(e){!function(e){var t=window.kendo,n=t.attr,i=t.ui,r=t.attrValue,o=(t.directiveSelector,t.Observable),a=t.ui.Widget,s=t.roleSelector,d="init",c="transitionStart",h="transitionEnd",l="show",f="hide",u=/unrecognized expression/,w="showStart",p="sameViewRequested",v="viewShow",g="viewTypeDetermined",m="after",_="k-content",y="k-view",b="k-stretched-view",V="k-widget",k="k-footer",x=t.ui.Widget.extend({init:function(n,i){var r=this;i=i||{},r.id=t.guid(),o.fn.init.call(r),this.options=e.extend({},this.options,i),r.content=n,r.options.renderOnInit&&a.fn.init.call(r,r._createElement(),i),r.options.wrapInSections&&r._renderSections(),r.tagName=i.tagName||"div",r.model=i.model,r._wrap=!1!==i.wrap,this._evalTemplate=i.evalTemplate||!1,this._useWithBlock=i.useWithBlock,r._fragments={},r.bind([d,l,f,c,h],i)},options:{name:"View",renderOnInit:!1,wrapInSections:!1,detachOnHide:!0,detachOnDestroy:!0},render:function(n){var i=this,r=!i.element;return r&&(i.element=i._createElement()),n&&e(n).append(i.element),r&&(t.bind(i.element,i.model),i.trigger(d)),n&&(i._eachFragment("attach"),i.trigger(l)),i.element},clone:function(){return new S(this)},triggerBeforeShow:function(){return!0},triggerBeforeHide:function(){return!0},showStart:function(){var e=this.render();e&&e.css("display",""),this.trigger(w,{view:this})},showEnd:function(){},hideEnd:function(){this.hide()},beforeTransition:function(e){this.trigger(c,{type:e})},afterTransition:function(e){this.trigger(h,{type:e})},hide:function(){this.options.detachOnHide&&(this._eachFragment("detach"),e(this.element).detach()),this.trigger(f)},destroy:function(){var e=this,n=e.element;n&&(a.fn.destroy.call(e),t.unbind(n),t.destroy(n),e.options.detachOnDestroy&&n.remove())},purge:function(){var t=this;t.destroy(),e(t.element).add(t.content).add(t.wrapper).off().remove()},fragments:function(t){e.extend(this._fragments,t)},_eachFragment:function(e){for(var t in this._fragments)this._fragments[t][e](this,t)},_createElement:function(){var n,i,r=this,o="<"+r.tagName+">";try{"SCRIPT"===(i=e(document.getElementById(r.content)||r.content))[0].tagName&&(i=i.html())}catch(e){u.test(e.message)&&(i=r.content)}if("string"==typeof i)i=i.replace(/^\s+|\s+$/g,""),r._evalTemplate&&(i=t.template(i,{useWithBlock:r._useWithBlock})(r.model||{})),n=e(o).append(i),r._wrap||(n=n.contents());else{if(n=i,r._evalTemplate){var a=e(t.template(e("<div />").append(n.clone(!0)).html(),{useWithBlock:r._useWithBlock})(r.model||{}));e.contains(document,n[0])&&n.replaceWith(a),n=a}r._wrap&&(n=n.wrapAll(o).parent())}return n},_renderSections:function(){var e=this;e.options.wrapInSections&&(e._wrapper(),e._createContent(),e._createHeader(),e._createFooter())},_wrapper:function(){var e=this,n=e.content;n.is(s("view"))?e.wrapper=e.content:e.wrapper=n.wrap("<div data-"+t.ns+'stretch="true" data-'+t.ns+'role="view" data-'+t.ns+'init-widgets="false"></div>').parent();var i=e.wrapper;i.attr("id",e.id),i.addClass(y),i.addClass(V),i.attr("role","view")},_createContent:function(){var t=e(this.wrapper),i=s("content");t.children(i)[0]||t.children().filter((function(){var t=e(this);if(!t.is(s("header"))&&!t.is(s("footer")))return t})).wrap("<div "+n("role")+'="content"></div>');this.contentElement=t.children(s("content")),this.contentElement.addClass(b).addClass(_)},_createHeader:function(){var e=this.wrapper;this.header=e.children(s("header"))},_createFooter:function(){var e=this.wrapper;this.footer=e.children(s("footer")).addClass(k)}}),S=t.Class.extend({init:function(t){e.extend(this,{element:t.element.clone(!0),transition:t.transition,id:t.id}),t.element.parent().append(this.element)},hideEnd:function(){this.element.remove()},beforeTransition:e.noop,afterTransition:e.noop}),C=x.extend({init:function(e,t){x.fn.init.call(this,e,t),this.containers={}},container:function(e){var t=this.containers[e];return t||(t=this._createContainer(e),this.containers[e]=t),t},showIn:function(e,t,n){this.container(e).show(t,n)},_createContainer:function(e){var t,n=this.render(),i=n.find(e);if(!i.length&&n.is(e)){if(!n.is(e))throw new Error("can't find a container with the specified "+e+" selector");i=n}return(t=new O(i)).bind("accepted",(function(e){e.view.render(i)})),t}}),T=x.extend({attach:function(e,t){e.element.find(t).replaceWith(this.render())},detach:function(){}}),E=/^(\w+)(:(\w+))?( (\w+))?$/;var O=o.extend({init:function(e){o.fn.init.call(this),this.container=e,this.history=[],this.view=null,this.running=!1},after:function(){this.running=!1,this.trigger("complete",{view:this.view}),this.trigger("after")},end:function(){this.view.showEnd(),this.previous.hideEnd(),this.after()},show:function(e,n,i){if(!e.triggerBeforeShow()||this.view&&!this.view.triggerBeforeHide())return this.trigger("after"),!1;i=i||e.id;var r=this,o=e===r.view?e.clone():r.view,a=r.history,s=(a[a.length-2]||{}).id===i,d=n||(s?a[a.length-1].transition:e.transition),c=function(e){if(!e)return{};var t=e.match(E)||[];return{type:t[1],direction:t[3],reverse:"reverse"===t[5]}}(d);return r.running&&r.effect.stop(),"none"===d&&(d=null),r.trigger("accepted",{view:e}),r.view=e,r.previous=o,r.running=!0,s?a.pop():a.push({id:i,transition:d}),o?(d&&t.effects.enabled?(e.element.addClass("k-fx-hidden"),e.showStart(),s&&!n&&(c.reverse=!c.reverse),r.effect=t.fx(e.element).replace(o.element,c.type).beforeTransition((function(){e.beforeTransition("show"),o.beforeTransition("hide")})).afterTransition((function(){e.afterTransition("show"),o.afterTransition("hide")})).direction(c.direction).setReverse(c.reverse),r.effect.run().then((function(){r.end()}))):(e.showStart(),r.end()),!0):(e.showStart(),e.showEnd(),r.after(),!0)},destroy:function(){var e=this.view;e&&e.destroy&&e.destroy()}}),I=o.extend({init:function(n){var i,r,a=this;o.fn.init.call(a),a.options=n,e.extend(a,n),a.sandbox=e("<div />"),r=a.container,i=a._hideViews(r),a.rootView=i.first(),a.layouts={},a.viewContainer=new t.ViewContainer(a.container),a.viewContainer.bind("accepted",(function(e){e.view.params=a.params})),a.viewContainer.bind("complete",(function(e){a.trigger(v,{view:e.view})})),a.viewContainer.bind(m,(function(){a.trigger(m)})),this.bind(this.events,n)},events:[w,m,v,"loadStart","loadComplete",p,g],destroy:function(){var e=this,n=e.viewContainer;for(var i in t.destroy(e.container),e.layouts)this.layouts[i].destroy();n&&n.destroy()},view:function(){return this.viewContainer.view},showView:function(e,n,i){if(""===(e=e.replace(new RegExp("^"+this.remoteViewURLPrefix),""))&&this.remoteViewURLPrefix&&(e="/"),e.replace(/^#/,"")===this.url)return this.trigger(p),!1;this.trigger(w);var r=this,o=r._findViewElement(e),a=t.widgetInstance(o);return r.url=e.replace(/^#/,""),r.params=i,a&&a.reload&&(a.purge(),o=[]),this.trigger(g,{remote:0===o.length,url:e}),!o[0]||(a||(a=r._createView(o)),r.viewContainer.show(a,n,e))},append:function(t,i){var r,o,a=this.sandbox,s=(i||"").split("?")[0],d=this.container;return t.indexOf("<body")>-1&&(t=e("<div>").append(t).html()),a[0].innerHTML=t,d.append(a.children("script, style")),(o=(r=this._hideViews(a)).first()).length||(r=o=a.wrapInner("<div data-role=view />").children()),s&&o.hide().attr(n("url"),s),d.append(r),t=null,this._createView(o)},_locate:function(e){return s(e)},_findViewElement:function(e){var t,i=e.split("?")[0];return i?((t=this.container.children("["+n("url")+"='"+i+"']"))[0]||-1!==i.indexOf("/")||(t=this.container.children("#"===i.charAt(0)?i:"#"+i)),t[0]||(t=this._findViewElementById(e)),t):this.rootView},_findViewElementById:function(e){return this.container.children("[id='"+e+"']")},_createView:function(e){return this._createSpaView(e)},_createMobileView:function(e){return t.initWidget(e,{defaultTransition:this.transition,loader:this.loader,container:this.container,getLayout:this.getLayoutProxy,modelScope:this.modelScope,reload:r(e,"reload")},i.roles)},_createSpaView:function(e){var n=(this.options||{}).viewOptions||{};return new t.View(e,{renderOnInit:n.renderOnInit,wrap:n.wrap||!1,wrapInSections:n.wrapInSections,detachOnHide:n.detachOnHide,detachOnDestroy:n.detachOnDestroy})},_hideViews:function(e){return e.children(this._locate("view")).hide()}});t.ViewEngine=I,t.ViewContainer=O,t.Fragment=T,t.Layout=C,t.View=x,t.ViewClone=S}(window.kendo.jQuery);var t=kendo;e.__meta__={id:"view",name:"View",category:"framework",description:"The View class instantiates and handles the events of a certain screen from the application.",depends:["core","binder","fx"],hidden:!1},e.default=t,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=kendo.view.min.js.map