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