UNPKG

kendo-ui-core

Version:
3 lines (2 loc) 8.7 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("kendo.core.js"),require("kendo.binder.js"),require("kendo.fx.js")):"function"==typeof define&&define.amd?define(["kendo.core.min","kendo.binder.min","kendo.fx.min"],t):((e="undefined"!=typeof globalThis?globalThis:e||self).kendoview=e.kendoview||{},e.kendoview.js=t())}(this,(function(){return function(e,t){var n=window.kendo,i=n.attr,r=n.ui,o=n.attrValue,a=(n.directiveSelector,n.Observable),s=n.ui.Widget,d=n.roleSelector,c="init",h="transitionStart",l="transitionEnd",f="show",u="hide",w=/unrecognized expression/,p="showStart",v="sameViewRequested",m="viewShow",g="viewTypeDetermined",_="after",y="k-content",V="k-view",b="k-stretched-view",k="k-widget",x="k-header",C="k-footer",S=n.ui.Widget.extend({init:function(t,i){var r=this;i=i||{},r.id=n.guid(),a.fn.init.call(r),this.options=e.extend({},this.options,i),r.content=t,r.options.renderOnInit&&s.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([c,f,u,h,l],i)},options:{name:"View",renderOnInit:!1,wrapInSections:!1,detachOnHide:!0,detachOnDestroy:!0},render:function(t){var i=this,r=!i.element;return r&&(i.element=i._createElement()),t&&e(t).append(i.element),r&&(n.bind(i.element,i.model),i.trigger(c)),t&&(i._eachFragment("attach"),i.trigger(f)),i.element},clone:function(){return new E(this)},triggerBeforeShow:function(){return!0},triggerBeforeHide:function(){return!0},showStart:function(){var e=this.render();e&&e.css("display",""),this.trigger(p,{view:this})},showEnd:function(){},hideEnd:function(){this.hide()},beforeTransition:function(e){this.trigger(h,{type:e})},afterTransition:function(e){this.trigger(l,{type:e})},hide:function(){this.options.detachOnHide&&(this._eachFragment("detach"),e(this.element).detach()),this.trigger(u)},destroy:function(){var e=this,t=e.element;t&&(s.fn.destroy.call(e),n.unbind(t),n.destroy(t),e.options.detachOnDestroy&&t.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 t,i,r=this,o="<"+r.tagName+">";try{"SCRIPT"===(i=e(document.getElementById(r.content)||r.content))[0].tagName&&(i=i.html())}catch(e){w.test(e.message)&&(i=r.content)}if("string"==typeof i)i=i.replace(/^\s+|\s+$/g,""),r._evalTemplate&&(i=n.template(i,{useWithBlock:r._useWithBlock})(r.model||{})),t=e(o).append(i),r._wrap||(t=t.contents());else{if(t=i,r._evalTemplate){var a=e(n.template(e("<div />").append(t.clone(!0)).html(),{useWithBlock:r._useWithBlock})(r.model||{}));e.contains(document,t[0])&&t.replaceWith(a),t=a}r._wrap&&(t=t.wrapAll(o).parent())}return t},_renderSections:function(){var e=this;e.options.wrapInSections&&(e._wrapper(),e._createContent(),e._createHeader(),e._createFooter())},_wrapper:function(){var e=this,t=e.content;t.is(d("view"))?e.wrapper=e.content:e.wrapper=t.wrap("<div data-"+n.ns+'stretch="true" data-'+n.ns+'role="view" data-'+n.ns+'init-widgets="false"></div>').parent();var i=e.wrapper;i.attr("id",e.id),i.addClass(V),i.addClass(k),i.attr("role","view")},_createContent:function(){var t=e(this.wrapper),n=d("content");t.children(n)[0]||t.children().filter((function(){var t=e(this);if(!t.is(d("header"))&&!t.is(d("footer")))return t})).wrap("<div "+i("role")+'="content"></div>');this.contentElement=t.children(d("content")),this.contentElement.addClass(b).addClass(y)},_createHeader:function(){var e=this.wrapper;this.header=e.children(d("header")).addClass(x)},_createFooter:function(){var e=this.wrapper;this.footer=e.children(d("footer")).addClass(C)}}),E=n.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}),T=S.extend({init:function(e,t){S.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 B(i)).bind("accepted",(function(e){e.view.render(i)})),t}}),I=S.extend({attach:function(e,t){e.element.find(t).replaceWith(this.render())},detach:function(){}}),O=/^(\w+)(:(\w+))?( (\w+))?$/;var B=a.extend({init:function(e){a.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,t,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=t||(s?a[a.length-1].transition:e.transition),c=function(e){if(!e)return{};var t=e.match(O)||[];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&&n.effects.enabled?(e.element.addClass("k-fx-hidden"),e.showStart(),s&&!t&&(c.reverse=!c.reverse),r.effect=n.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()}}),W=a.extend({init:function(t){var i,r,o=this;a.fn.init.call(o),o.options=t,e.extend(o,t),o.sandbox=e("<div />"),r=o.container,i=o._hideViews(r),o.rootView=i.first(),o.layouts={},o.viewContainer=new n.ViewContainer(o.container),o.viewContainer.bind("accepted",(function(e){e.view.params=o.params})),o.viewContainer.bind("complete",(function(e){o.trigger(m,{view:e.view})})),o.viewContainer.bind(_,(function(){o.trigger(_)})),this.bind(this.events,t)},events:[p,_,m,"loadStart","loadComplete",v,g],destroy:function(){var e=this,t=e.viewContainer;for(var i in n.destroy(e.container),e.layouts)this.layouts[i].destroy();t&&t.destroy()},view:function(){return this.viewContainer.view},showView:function(e,t,i){if(""===(e=e.replace(new RegExp("^"+this.remoteViewURLPrefix),""))&&this.remoteViewURLPrefix&&(e="/"),e.replace(/^#/,"")===this.url)return this.trigger(v),!1;this.trigger(p);var r=this,o=r._findViewElement(e),a=n.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,t,e))},append:function(t,n){var r,o,a=this.sandbox,s=(n||"").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(i("url"),s),d.append(r),t=null,this._createView(o)},_locate:function(e){return d(e)},_findViewElement:function(e){var t,n=e.split("?")[0];return n?((t=this.container.children("["+i("url")+"='"+n+"']"))[0]||-1!==n.indexOf("/")||(t=this.container.children("#"===n.charAt(0)?n:"#"+n)),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 n.initWidget(e,{defaultTransition:this.transition,loader:this.loader,container:this.container,getLayout:this.getLayoutProxy,modelScope:this.modelScope,reload:o(e,"reload")},r.roles)},_createSpaView:function(e){var t=(this.options||{}).viewOptions||{};return new n.View(e,{renderOnInit:t.renderOnInit,wrap:t.wrap||!1,wrapInSections:t.wrapInSections,detachOnHide:t.detachOnHide,detachOnDestroy:t.detachOnDestroy})},_hideViews:function(e){return e.children(this._locate("view")).hide()}});n.ViewEngine=W,n.ViewContainer=B,n.Fragment=I,n.Layout=T,n.View=S,n.ViewClone=E}(window.kendo.jQuery),kendo})); //# sourceMappingURL=kendo.view.min.js.map